r760 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
Author: mfortun Date: 2011-04-06 14:49:06 +0200 (Wed, 06 Apr 2011) New Revision: 760 Url: http://nuiton.org/repositories/revision/wikitty/760 Log: cosmetic change to respect code conventions, resume prototyping sync operation Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 09:16:25 UTC (rev 759) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 12:49:06 UTC (rev 760) @@ -1,7 +1,9 @@ package org.nuiton.wikitty.publication; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileReader; +import java.io.FileWriter; import java.util.List; import java.util.Properties; @@ -24,20 +26,18 @@ protected static ApplicationConfig applicationConfig; protected static WikittyProxy proxyWS; - - /*static string for allias, wrong named attribut TODO mfortun-2011-04-06 need to - * set better name + /* + * static string for allias, wrong named attribut TODO mfortun-2011-04-06 + * need to set better name */ - public static String WITTY_SERVICE_KEY= "wikitty.service.server.url"; - public static String NO_RECURSION_KEY="norecursion"; - public static String DIRECTORY_KEY="directory"; - - public static String PROPERTY_DIRECTORY=".wp"; - public static String WIKITTYPUBLICATION_PROPERTIES_FILE=""; - - - - + public static String WITTY_SERVICE_KEY = "wikitty.service.server.url"; + public static String NO_RECURSION_KEY = "norecursion"; + public static String DIRECTORY_KEY = "directory"; + public static String HESSIAN_PROTOCOL_KEY = "hessian"; + + public static String PROPERTY_DIRECTORY = ".wp"; + public static String WIKITTYPUBLICATION_PROPERTIES_FILE = ""; + /** * @param args * @throws ArgumentsParserException @@ -77,9 +77,13 @@ */ // allias for norecursion - applicationConfig.addAlias("--norecursion", "--option", NO_RECURSION_KEY, - "true"); + applicationConfig.addAlias("--norecursion", "--option", + NO_RECURSION_KEY, "true"); + // allias for the protocole + applicationConfig.addAlias("--hessian", "--option", + HESSIAN_PROTOCOL_KEY, "true"); + // allias for all the action applicationConfig.addAlias("wp import", "--option", "import"); applicationConfig.addAlias("wp checkout", "--option", "checkout"); @@ -124,33 +128,32 @@ */ public static void importToWikitty() { - boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + boolean noRecur = applicationConfig + .getOptionAsBoolean(NO_RECURSION_KEY); File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); - String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); + String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY); - log.info("import : wikittyservice: " - + wikittyService - + " noresursion=" + noRecur + " directory= " - + dir.getAbsolutePath()); - //usage: wp --norecursion --ws http://truc.com import --dir /home/Manou - - - /* TODO mfortun-2011-04-05 just prototypage, remove when really - *implements the method - * + log.info("import : wikittyservice: " + wikittyService + " noresursion=" + + noRecur + " directory= " + dir.getAbsolutePath()); + // usage: wp --norecursion --ws http://truc.com import --dir /home/Manou + + /* + * TODO mfortun-2011-04-05 just prototypage, remove when really + * implements the method */ System.out.println("import :\n"); for (File child : dir.listFiles()) { if (child.isDirectory() && false == noRecur) { printDirectory(child); - } else if(false==child.isDirectory()) { + } else if (false == child.isDirectory()) { System.out.println(child.getAbsolutePath()); } } } - /* TODO mfortun-2011-04-05 just prototypage, remove when really implements + /* + * TODO mfortun-2011-04-05 just prototypage, remove when really implements * the method linked: importToWikitty */ public static void printDirectory(File dir) { @@ -171,33 +174,36 @@ */ public static void checkoutFromWikitty(String label) { - boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + boolean noRecur = applicationConfig + .getOptionAsBoolean(NO_RECURSION_KEY); File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); - String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); + String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY); + boolean hessianProtocole = applicationConfig + .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY); - log.info("checkout : wikittyservice: " - + wikittyService + log.info("checkout : wikittyservice: " + wikittyService + " noresursion=" + noRecur + " directory= " - + dir.getAbsolutePath() - +"Label a checkout " +label); - - proxyWS= new WikittyProxy(applicationConfig); - - - - - //write the proper properties file! - Properties props= new Properties(); + + dir.getAbsolutePath() + "Label a checkout " + label + + "HessianProtocol=" + hessianProtocole); + + proxyWS = new WikittyProxy(applicationConfig); + + /* + * obtain the list of wikittypub and write then in the file system with + * the appropriate wikittyservice ! + */ + + // write the proper properties file! + Properties props = new Properties(); props.put(WITTY_SERVICE_KEY, wikittyService); - if ( wikittyService.startsWith("cajo")){ - props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient"); - }else{ - props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + if (true == hessianProtocole) { + props.put("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + } else { + props.put("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); } - - - - + /* * on va commencer par vérifier les arguments ''wp checkout * [--norecursion] [url du WikittyService] [Label à extraire] [directory @@ -211,34 +217,64 @@ /** * Relocate the default url of the wikitty service */ - public static void relocateWikitty() { - + public static void relocateWikitty() throws Exception { + + /* + * log.info("checkout : wikittyservice: " + wikittyService + + * " noresursion=" + noRecur + " directory= " + dir.getAbsolutePath() + * +"Label a checkout " +label+ "HessianProtocol="+hessianProtocole); + */ + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); - String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); - - if (null==dir || false==dir.exists()){ - searchWikittyPublicationHomeDir(new File(".")); + String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY); + boolean hessianProtocole = applicationConfig + .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY); + + File wpHomeDir; + + System.out + .println("search the directory of .wp file to write new properties file"); + // search for the home directory + if (null == dir || false == dir.exists()) { + wpHomeDir = searchWikittyPublicationHomeDir(new File(".")); + } else { + wpHomeDir = new File(dir.getCanonicalFile() + File.pathSeparator + + PROPERTY_DIRECTORY); } - - System.out.println("search the directory of .wp file to write new properties file"); - - - Properties props= new Properties(); + + Properties oldProperties = new Properties(); + + // TODO mfortun-2011-04-06 catch exception instead of throws + File propertiesFile = new File(wpHomeDir + + WIKITTYPUBLICATION_PROPERTIES_FILE); + // load the old file just for loggin + oldProperties.load(new FileReader(propertiesFile)); + + log.info("Try relocate :" + "wikitty service:" + + oldProperties.getProperty(WITTY_SERVICE_KEY) + " by " + + wikittyService + " HessianProtocol: " + hessianProtocole + + " File : " + propertiesFile.getCanonicalPath()); + + // Creation of the new properties file + Properties props = new Properties(); props.put(WITTY_SERVICE_KEY, wikittyService); - if ( wikittyService.startsWith("cajo")){ - props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient"); - }else{ - props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + if (true == hessianProtocole) { + props.put("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + } else { + props.put("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); } - - + + // save the new property file + props.store(new FileWriter(propertiesFile), ""); + /* * Properties props=new Properties(); props.load(new FileReader(new * File("/home/Manou/temp.properties"))); * applicationConfig.setOptions(props); */ - /* * on va commencer par vérifier les arguments ''wp relocate [nouvelle * url du WikittyService par defaut] [directory a relocaliser]'' on doit @@ -247,32 +283,59 @@ } - - /** * commit the current wikittyworkspace into a wikitty service */ - public static void commitToWikitty() { - - boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + public static void commitToWikitty() throws Exception { + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); - String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); - + File wpHomeDir; + if (null == dir || false == dir.exists()) { + /* + * si pas de dir on commit le dossier courant + */ + dir = new File("."); - if(null==dir || false==dir.exists()){ - /* - * si pas de dir on commit le dossier courant - */ - dir = new File("."); - - //on va chercher le home dir - searchWikittyPublicationHomeDir(dir); } - - - - + // on va chercher le home dir + wpHomeDir = searchWikittyPublicationHomeDir(dir); + + Properties properties = new Properties(); + + // TODO mfortun-2011-04-06 catch exception instead of throws + File propertiesFile = new File(wpHomeDir.getCanonicalPath() + + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE); + // load the old file just for loggin + properties.load(new FileReader(propertiesFile)); + + // on va rajouter les propriété de notre file + applicationConfig.setOptions(properties); + + boolean noRecur = applicationConfig + .getOptionAsBoolean(NO_RECURSION_KEY); + + String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY); + boolean hessianProtocole = applicationConfig + .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY); + + if (true == hessianProtocole) { + applicationConfig.setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + } else { + applicationConfig.setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); + } + + log.info("commit " + " wikitty-service" + wikittyService + + "noRecurs : " + noRecur + " hessian Protocole :" + + hessianProtocole + "directory : " + dir.getAbsolutePath()); + // faire la liste des fichiers à commit + // avec récursivité si c'est demandé. + // et les transformer en wikitty, vérifier les versions et tout. + + // création du proxy + /* * on va commencer par vérifier les arguments ''wp commit * [--norecursion] [--ws (url du WikittyService)] [répertoire à @@ -285,27 +348,64 @@ /** * delete a file or directory from the workspace it remove the label from * the wikitty + * + * @throws Exception */ - public static void deleteFromWikitty(File toDelete) { - - + public static void deleteFromWikitty(File toDelete) throws Exception { - //check args - if ( null==toDelete || false==toDelete.exists()){ - //Exception - }else{ - - searchWikittyPublicationHomeDir(new File(".")); - //search for the .wp home dir to load props - - //then load proxy - - //if toDelete is a directory do something different from usualy - //recursivly remove labels - + // check args + if (null == toDelete || false == toDelete.exists()) { + // Exception + } else { + + File wpHomeDir = searchWikittyPublicationHomeDir(new File(".")); + // search for the .wp home dir to load props + + // then load proxy + + // if toDelete is a directory do something different from usualy + // recursivly remove labels + + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + + // on va chercher le home dir + wpHomeDir = searchWikittyPublicationHomeDir(dir); + + Properties properties = new Properties(); + + // TODO mfortun-2011-04-06 catch exception instead of throws + File propertiesFile = new File(wpHomeDir.getCanonicalPath() + + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE); + // load the old file just for loggin + properties.load(new FileReader(propertiesFile)); + + // on va rajouter les propriété de notre file + applicationConfig.setOptions(properties); + + String wikittyService = applicationConfig + .getOption(WITTY_SERVICE_KEY); + boolean hessianProtocole = applicationConfig + .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY); + + if (true == hessianProtocole) { + applicationConfig + .setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + } else { + applicationConfig.setOption( + "wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); + } + + log.info("Delete " + " wikitty-service" + wikittyService + + " hessian Protocole :" + hessianProtocole + + "file to delete : " + toDelete.getAbsolutePath()); + // faire la liste des fichiers à commit + // avec récursivité si c'est demandé. + // et les transformer en wikitty, vérifier les versions et tout. + } - - + /* * on va commencer par vérifier les arguments ''wp delete [--ws (url du * WikittyService)] [répertoire ou fichier à supprimer]'' on doit avoir @@ -318,16 +418,54 @@ /** * update the current workspace from a wikitty */ - public static void updateFromWikitty() { - - boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + public static void updateFromWikitty() throws Exception { + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); - String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); - - - - + File wpHomeDir; + if (null == dir || false == dir.exists()) { + /* + * si pas de dir on commit le dossier courant + */ + dir = new File("."); + + } + // on va chercher le home dir + wpHomeDir = searchWikittyPublicationHomeDir(dir); + + Properties properties = new Properties(); + + // TODO mfortun-2011-04-06 catch exception instead of throws + File propertiesFile = new File(wpHomeDir.getCanonicalPath() + + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE); + // load the old file just for loggin + properties.load(new FileReader(propertiesFile)); + + // on va rajouter les propriété de notre file + applicationConfig.setOptions(properties); + + boolean noRecur = applicationConfig + .getOptionAsBoolean(NO_RECURSION_KEY); + + String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY); + boolean hessianProtocole = applicationConfig + .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY); + + if (true == hessianProtocole) { + applicationConfig.setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceHessianClient"); + } else { + applicationConfig.setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); + } + + log.info("update " + " wikitty-service" + wikittyService + + "noRecurs : " + noRecur + " hessian Protocole :" + + hessianProtocole + "directory : " + dir.getAbsolutePath()); + // faire la liste des fichiers à commit + // avec récursivité si c'est demandé. + // et les transformer en wikitty, vérifier les versions et tout. + /* * on va commencer par vérifier les arguments * ''wp update * [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à @@ -335,32 +473,33 @@ * quelque chose dans le recursion */ } - - + /** - * Use to search in the file system the directory that containt the - * .wp dir that containt the properties file for the wikitty service's adresse + * Use to search in the file system the directory that containt the .wp dir + * that containt the properties file for the wikitty service's adresse */ - protected static File searchWikittyPublicationHomeDir(File start) { - - if (start.exists()&& true==start.isDirectory()){ - //on va retourner le dossier .wp home - - //method récursiv qui remonte dans les parents pour retrouver. - - - File temp= new File(start.getAbsolutePath()+PROPERTY_DIRECTORY); - if (true==temp.exists()){ - File propertie= new File(temp.getAbsolutePath()+WIKITTYPUBLICATION_PROPERTIES_FILE); - if(true==propertie.exists()){ - return temp; + protected static File searchWikittyPublicationHomeDir(File start) + throws Exception { + + if (start.exists() && true == start.isDirectory()) { + // on va retourner le dossier .wp home + + // method récursiv qui remonte dans les parents pour retrouver. + + File temp = new File(start.getAbsolutePath() + PROPERTY_DIRECTORY); + if (true == temp.exists()) { + File propertie = new File(temp.getCanonicalPath() + + File.pathSeparator + + WIKITTYPUBLICATION_PROPERTIES_FILE); + if (true == propertie.exists()) { + return temp; } } - return searchWikittyPublicationHomeDir(start.getParentFile()); - }else { - //Exception + return searchWikittyPublicationHomeDir(start.getParentFile()); + } else { + // Exception /* - * TODO mfortun-2011-04-06 whrite/set the appropriate exception here + * TODO mfortun-2011-04-06 write/set the appropriate exception here */ return null; }
participants (1)
-
mfortun@users.nuiton.org