Author: mfortun Date: 2011-04-05 14:34:58 +0200 (Tue, 05 Apr 2011) New Revision: 756 Url: http://nuiton.org/repositories/revision/wikitty/756 Log: first steps for the sync part of wikitty publication Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java Modified: trunk/wikitty-publication/pom.xml trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java trunk/wikitty-publication/src/site/rst/wp-analyse.rst Modified: trunk/wikitty-publication/pom.xml =================================================================== --- trunk/wikitty-publication/pom.xml 2011-04-01 16:57:08 UTC (rev 755) +++ trunk/wikitty-publication/pom.xml 2011-04-05 12:34:58 UTC (rev 756) @@ -129,6 +129,39 @@ </plugin> </plugins> + <pluginManagement> + <plugins> + <!--TODO TEXT. This plugin's configuration is used in m2e only.--> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>org.nuiton.eugene</groupId> + <artifactId> + maven-eugene-plugin + </artifactId> + <versionRange> + [2.3.1,) + </versionRange> + <goals> + <goal>smart-generate</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore></ignore> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> </build> </project> Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-04-01 16:57:08 UTC (rev 755) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-04-05 12:34:58 UTC (rev 756) @@ -67,6 +67,8 @@ int firstIndex = StringUtil.toInt(first); int endIndex = StringUtil.toInt(end); + + Criteria criteria = Search.query().keyword(r).criteria(); criteria.setFirstIndex(firstIndex); criteria.setEndIndex(endIndex); Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-05 12:34:58 UTC (rev 756) @@ -0,0 +1,210 @@ +package org.nuiton.wikitty.publication; + +import java.io.File; +import java.io.FileReader; +import java.util.List; +import java.util.Properties; + +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ArgumentsParserException; +import org.nuiton.wikitty.WikittyProxy; + +///XXX a faire avec applicationConfig faire des trucs et des machins +/// objectif mercredi ça affiche les trucs depuis le repo +/// et ça lit en local aussi + +public class WikittyPublication { + + protected static WikittyPublicationFileSystem wikittyServiceFileSystem; + protected static ApplicationConfig applicationConfig; + protected static WikittyProxy proxyWS; + + /** + * @param args + * @throws ArgumentsParserException + */ + public static void main(String[] args) throws Exception { + + /* + * + */ + + // on va creer un wikitty proxy pour le lien avec le wikitty qui stock + // mes trucs + // et on va avoir un wikittypublicationfilesystem pour stocker sur le + // local et tout + // soucis du wikittyFS c'est de savoir dans quel dossier il va taffer ? + // a moins qu'il prenne un directory de travail + + /* + * ws.properties :wikitty.service= http://www.adresse.com:8080 + * + * wikittypubs.properties + * script.js=numéroVersion7 id.script.js= id du wikitty + * scripttut.js=numéroVersion id.scripttut.js= id du wikitty + * image.png=numéroVersion id.image.png= id du wikitty label= + * racine.directory2, racine.directory22 + */ + + applicationConfig = new ApplicationConfig(); + + + + + // allias for the url of the wikitty service + applicationConfig.addAlias("--ws", "--option", "wikitty.service"); + + + // allias for norecursion + applicationConfig.addAlias("--norecursion", "--option", "recursion", + "false"); + + // allias for the action + applicationConfig.addAlias("wp", "--option", "action"); + + // après on prend les unparsed en fonction de tout + // on attend un certain nombre d'argument + // objectif préparer pour ce soir toutes les commandes avec argument + // plus d'autre trucs. + applicationConfig.parse(args); + + + String action = applicationConfig.getOption("action"); + if ("import".equals(action)) { + importToWikitty(); + } else if ("commit".equals(action)) { + commitToWikitty(); + } else if ("checkout".equals(action)) { + checkoutFromWikitty(); + } else if ("relocate".equals(action)) { + relocateWikitty(); + } else if ("delete".equals(action)) { + deleteFromWikitty(); + } else if ("update".equals(action)) { + updateFromWikitty(); + } else { + // on va throw une exception puisque l'action n'est pas reconnu + } + + + } + + /** + * Method that import the content of a directory into a wikitty service + */ + protected static void importToWikitty() { + List<String> argumentsImports= applicationConfig.getUnparsed(); + + if(2!=argumentsImports.size()){ + System.out.println("Import usage: wp import [--norecursion] [url du WikittyService] [directory]"); + } else{ + String recurValue= applicationConfig.getOption("recursion"); + + String result="Import:"; + if (recurValue!=null && false== applicationConfig.getOptionAsBoolean(recurValue) ){ + result+="\nRecursion=false"; + } + System.out.println(); + result+="\nWikittyUrl="+argumentsImports.get(0); + result+="\nDirectory="+argumentsImports.get(1); + + System.out.println(result); + + + } + + + + //System.out.println("User choice: wp import" + ); + + /* + * on va commencer par vérifier les arguments * ''wp import + * [--norecursion] [url du WikittyService] [directory]'' on doit avoir + * deux string dans le unparsed et potentiellement quelque chose dans le + * getoption recursion + */ + + } + + /** + * Method that checkout a label recursivly or not into a local directory + * from a wikitty service + */ + protected static void checkoutFromWikitty() { + + + + /* + * on va commencer par vérifier les arguments ''wp checkout + * [--norecursion] [url du WikittyService] [Label à extraire] [directory + * local d'accueil]'' on doit avoir trois string dans le unparsed: url, + * label, directory et potentiellement quelque chose dans le getoption + * recursion + */ + + } + + /** + * Relocate the default url of the wikitty service + */ + protected static void relocateWikitty() { + /* + * 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 + * avoir trois string dans le unparsed: url et directory + */ + + } + + + /** + * commit the current wikittyworkspace into a wikitty service + */ + protected static void commitToWikitty() { + /* + * 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 + * potentiellement quelque chose dans le getoption recursion + */ + + } + + /** + * delete a file or directory from the workspace + * it remove the label from the wikitty + */ + protected static void deleteFromWikitty() { + /* + * on va commencer par vérifier les arguments + * ''wp delete [--ws (url du WikittyService)] [répertoire ou fichier à + * supprimer]'' + * on doit avoir un string dans le unparsed et après pour pour le wikittyservice + * bah on tape dedans en fonction de si elle a été précisé en ligne de commande + * applicationConfig se débrouille + */ + } + + /** + * update the current workspace from a wikitty + */ + protected static void updateFromWikitty() { + /* + * on va commencer par vérifier les arguments + * * ''wp update [--norecursion] [--ws (url du + * WikittyService)] [répertoire à mettre à jour]'' + * normalement un string dans unparsed + * et potentiellement quelque chose dans le recursion + * + * + */ + } + +} Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-05 12:34:58 UTC (rev 756) @@ -0,0 +1,195 @@ +package org.nuiton.wikitty.publication; + +import java.util.Collection; +import java.util.List; + +import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.entities.WikittyExtension; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.TreeNodeResult; +import org.nuiton.wikitty.services.WikittyEvent; +import org.nuiton.wikitty.services.WikittyListener; + + +public class WikittyPublicationFileSystem implements WikittyService { + + + + @Override + public void addWikittyServiceListener(WikittyListener listener, + ServiceListenerType type) { + // TODO Auto-generated method stub + + } + + @Override + public void removeWikittyServiceListener(WikittyListener listener, + ServiceListenerType type) { + // TODO Auto-generated method stub + + } + + @Override + public String login(String login, String password) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void logout(String securityToken) { + // TODO Auto-generated method stub + + } + + @Override + public WikittyEvent clear(String securityToken) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean canWrite(String securityToken, Wikitty wikitty) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean canDelete(String securityToken, String wikittyId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean canRead(String securityToken, String wikittyId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean exists(String securityToken, String wikittyId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isDeleted(String securityToken, String wikittyId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public WikittyEvent replay(String securityToken, List<WikittyEvent> events, + boolean force) { + // TODO Auto-generated method stub + return null; + } + + @Override + //XXX à faire en priorité + public WikittyEvent store(String securityToken, + Collection<Wikitty> wikitties, boolean force) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<String> getAllExtensionIds(String securityToken) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<String> getAllExtensionsRequires(String securityToken, + String extensionName) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyEvent storeExtension(String securityToken, + Collection<WikittyExtension> exts) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyEvent deleteExtension(String securityToken, + Collection<String> extNames) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyExtension restoreExtension(String securityToken, + String extensionId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyExtension restoreExtensionLastVersion(String securityToken, + String name) { + // TODO Auto-generated method stub + return null; + } + + @Override + //XXX à faire en priorité + + public List<Wikitty> restore(String securityToken, List<String> id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyEvent delete(String securityToken, Collection<String> ids) { + // TODO Auto-generated method stub + return null; + } + + @Override + public PagedResult<String>[] findAllByCriteria(String securityToken, + Criteria... criteria) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String[] findByCriteria(String securityToken, Criteria... criteria) { + // TODO Auto-generated method stub + return null; + } + + @Override + public WikittyEvent deleteTree(String securityToken, String treeNodeId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public TreeNodeResult<String> findTreeNode(String securityToken, + String wikittyId, int depth, boolean count, Criteria filter) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Wikitty restoreVersion(String securityToken, String wikittyId, + String version) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void syncSearchEngine(String securityToken) { + // TODO Auto-generated method stub + + } + + + + +} + Modified: trunk/wikitty-publication/src/site/rst/wp-analyse.rst =================================================================== --- trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-04-01 16:57:08 UTC (rev 755) +++ trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-04-05 12:34:58 UTC (rev 756) @@ -264,7 +264,7 @@ Il est bien sur possible d'utiliser l'application avec tous les sources dans Wikitty. Mais il est aussi possible d'utiliser l'application en extrayant les sources dans des fichiers et les -packagers dans un war. Dans ce cas l'application est vigée et n'est +packagers dans un war. Dans ce cas l'application est figée et n'est plus modifiable à l'exécution. Pour cela on utilise la servlet WikittyPublicationExternalize qui au lieu d'aller chercher les WikittyPubText et WikittyPubData dans le WikittyService va les @@ -280,7 +280,7 @@ les données pour des raisons de sécurites. Au contraire lors d'une phase de prototypage ou si l'on souhaite -pouvoir modifier facilement l'application on utiilsera le déploiement +pouvoir modifier facilement l'application on utilisera le déploiement avec l'application dans Wikitty. Statistique d'accès au pages