Author: mfortun Date: 2011-04-06 11:16:25 +0200 (Wed, 06 Apr 2011) New Revision: 759 Url: http://nuiton.org/repositories/revision/wikitty/759 Log: migrate string to static field, complete method with prototype code 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-05 16:00:48 UTC (rev 758) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 09:16:25 UTC (rev 759) @@ -24,6 +24,20 @@ 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 + */ + 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=""; + + + + /** * @param args * @throws ArgumentsParserException @@ -53,9 +67,9 @@ applicationConfig = new ApplicationConfig(); // allias for the url of the wikitty service - applicationConfig.addAlias("--ws", "--option", "wikitty.service"); + applicationConfig.addAlias("--ws", "--option", WITTY_SERVICE_KEY); - applicationConfig.addAlias("--dir", "--option", "directory"); + applicationConfig.addAlias("--dir", "--option", DIRECTORY_KEY); /* * TODO mfortun-2011-04-05 once application fixed setdefault value and @@ -63,7 +77,7 @@ */ // allias for norecursion - applicationConfig.addAlias("--norecursion", "--option", "norecursion", + applicationConfig.addAlias("--norecursion", "--option", NO_RECURSION_KEY, "true"); // allias for all the action @@ -110,9 +124,9 @@ */ public static void importToWikitty() { - boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion"); - File dir = applicationConfig.getOptionAsFile("directory"); - String wikittyService= applicationConfig.getOption("wikitty.service"); + boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); log.info("import : wikittyservice: " + wikittyService @@ -157,9 +171,9 @@ */ public static void checkoutFromWikitty(String label) { - boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion"); - File dir = applicationConfig.getOptionAsFile("directory"); - String wikittyService= applicationConfig.getOption("wikitty.service"); + boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); log.info("checkout : wikittyservice: " + wikittyService @@ -167,9 +181,23 @@ + dir.getAbsolutePath() +"Label a checkout " +label); + proxyWS= new WikittyProxy(applicationConfig); + + //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"); + } + + + + /* * on va commencer par vérifier les arguments ''wp checkout * [--norecursion] [url du WikittyService] [Label à extraire] [directory @@ -184,12 +212,33 @@ * Relocate the default url of the wikitty service */ public static void relocateWikitty() { + + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); + + if (null==dir || false==dir.exists()){ + searchWikittyPublicationHomeDir(new File(".")); + } + + System.out.println("search the directory of .wp file to write 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"); + } + + /* * 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 @@ -198,11 +247,33 @@ } + + /** * commit the current wikittyworkspace into a wikitty service */ public static void commitToWikitty() { + + boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); + + + + 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 commencer par vérifier les arguments ''wp commit * [--norecursion] [--ws (url du WikittyService)] [répertoire à * pousser]'' on doit avoir deux string dans le unparsed et @@ -215,7 +286,26 @@ * delete a file or directory from the workspace it remove the label from * the wikitty */ - public static void deleteFromWikitty() { + public static void deleteFromWikitty(File toDelete) { + + + + //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 + + } + + /* * on va commencer par vérifier les arguments ''wp delete [--ws (url du * WikittyService)] [répertoire ou fichier à supprimer]'' on doit avoir @@ -229,6 +319,15 @@ * update the current workspace from a wikitty */ public static void updateFromWikitty() { + + boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY); + File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY); + String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY); + + + + + /* * on va commencer par vérifier les arguments * ''wp update * [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à @@ -236,5 +335,35 @@ * 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 + */ + 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; + } + } + return searchWikittyPublicationHomeDir(start.getParentFile()); + }else { + //Exception + /* + * TODO mfortun-2011-04-06 whrite/set the appropriate exception here + */ + return null; + } + } }
participants (1)
-
mfortun@users.nuiton.org