Author: mfortun Date: 2011-04-07 14:29:34 +0200 (Thu, 07 Apr 2011) New Revision: 764 Url: http://nuiton.org/repositories/revision/wikitty/764 Log: change protyping code to real method in the 'main' class, add a method in my wikitty service to convert ObjectToWikitty Modified: 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/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 15:52:16 UTC (rev 763) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-07 12:29:34 UTC (rev 764) @@ -11,6 +11,13 @@ import org.nuiton.util.ApplicationConfig; import org.nuiton.util.ArgumentsParserException; import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.entities.WikittyLabel; +import org.nuiton.wikitty.publication.entities.WikittyPubData; +import org.nuiton.wikitty.publication.entities.WikittyPubText; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; ///XXX a faire avec applicationConfig faire des trucs et des machins /// objectif mercredi ça affiche les trucs depuis le repo @@ -125,7 +132,7 @@ /** * Method that import the content of a directory into a wikitty service */ - public static void importToWikitty() { + public static void importToWikitty() throws Exception { boolean noRecur = applicationConfig .getOptionAsBoolean(NO_RECURSION_KEY); @@ -136,21 +143,24 @@ + noRecur + " directory= " + dir.getAbsolutePath()); // usage: wp --norecursion --ws http://truc.com import --dir /home/Manou - /* - * Ici il y aura une moulinette pour la création des wikittys des - * nouveaux fichiers. Possible de faire la même moulinette au niveau des - * commits, update et tout ça puisque on pourra faire la différence des - * fichiers envoyés, déclaré en tant que wikitty et ceux qui éxiste, - * risque d'avoir une mauvaise cohésion ? cohérence ? - */ + // real code: + wikittyServiceFileSystem = new WikittyPublicationFileSystem(dir); + proxyWS = new WikittyProxy(applicationConfig); - /* - * TODO mfortun-2011-04-05 just prototyping, remove when really - * implements the method - */ - System.out.println("import :\n"); - printDirectory(dir, !noRecur); + // load the list of file + List<File> toTransfert = listFile(dir, !noRecur); + List<Wikitty> listWikitty = new ArrayList<Wikitty>(); + // transform file into wikitties + + for (File fileToTransform : toTransfert) { + listWikitty.add(wikittyServiceFileSystem + .objectToWikitty(fileToTransform)); + } + + // send the wikitties + proxyWS.storeWikitty(listWikitty); + } /* @@ -200,7 +210,7 @@ * Method that checkout a label recursivly or not into a local directory * from a wikitty service */ - public static void checkoutFromWikitty(String label) { + public static void checkoutFromWikitty(String label) throws Exception { boolean noRecur = applicationConfig .getOptionAsBoolean(NO_RECURSION_KEY); @@ -215,7 +225,37 @@ + "HessianProtocol=" + hessianProtocole); proxyWS = new WikittyProxy(applicationConfig); + wikittyServiceFileSystem = new WikittyPublicationFileSystem(dir); + // Construct the criteria + Criteria labelCriteria; + Search mainRequest = Search.query(); + Search subRoqu = mainRequest.or(); + + // must have the type of wikittypubtext/wikittypubdata + subRoqu.exteq(WikittyPubText.EXT_WIKITTYPUBTEXT).exteq( + WikittyPubData.EXT_WIKITTYPUBDATA); + if (noRecur) { + // and extension with the name strictly equals to the label (no + // recursivity) + labelCriteria = mainRequest.exteq(WikittyLabel.EXT_WIKITTYLABEL) + .eq(WikittyLabel.FQ_FIELD_WIKITTYLABEL_LABELS, label) + .criteria(); + + } else { + // and extension with the name that containt the label (recursivity) + labelCriteria = mainRequest.exteq(WikittyLabel.EXT_WIKITTYLABEL) + .sw(WikittyLabel.FQ_FIELD_WIKITTYLABEL_LABELS, label) + .criteria(); + } + + // request to the proxy + List<Wikitty> wikittiesToWrite = proxyWS.findAllByCriteria( + labelCriteria).getAll(); + + // write the wikities + wikittyServiceFileSystem.store("", wikittiesToWrite, true); + /* * obtain the list of wikittypub and write then in the file system with * the appropriate wikittyservice ! @@ -232,6 +272,17 @@ "org.nuiton.wikitty.services.WikittyServiceCajoClient"); } + // create the properties directory + File wpDirectory = new File(dir.getCanonicalPath() + File.separator + + PROPERTY_DIRECTORY + File.separator); + if (!wpDirectory.exists()) { + wpDirectory.createNewFile(); + } + + File propertiesFiles = new File(wpDirectory.getCanonicalPath() + + File.separator + WIKITTYPUBLICATION_PROPERTIES_FILE); + + props.store(new FileWriter(propertiesFiles), ""); /* * on va commencer par vérifier les arguments ''wp checkout * [--norecursion] [url du WikittyService] [Label à extraire] [directory Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-06 15:52:16 UTC (rev 763) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-07 12:29:34 UTC (rev 764) @@ -1,5 +1,6 @@ package org.nuiton.wikitty.publication; +import java.io.File; import java.util.Collection; import java.util.List; @@ -14,19 +15,37 @@ import org.nuiton.wikitty.services.WikittyEvent; import org.nuiton.wikitty.services.WikittyListener; - public class WikittyPublicationFileSystem implements WikittyService { /** to use log facility, just put in your code: log.info(\"...\"); */ - final static private Log log = LogFactory.getLog(WikittyPublicationFileSystem.class); + final static private Log log = LogFactory + .getLog(WikittyPublicationFileSystem.class); + protected File homeFile; + + /** + * Constructor with the working directory + * @param home the home directory + */ + public WikittyPublicationFileSystem(File home){ + this.setHomeFile(home); + } + + public File getHomeFile() { + return homeFile; + } + public void setHomeFile(File homeFile) { + this.homeFile = homeFile; + } + + @Override public void addWikittyServiceListener(WikittyListener listener, ServiceListenerType type) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); // - + } @Override @@ -35,15 +54,15 @@ // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); // - + } @Override public String login(String login, String password) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -51,55 +70,55 @@ // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); // - + } @Override public WikittyEvent clear(String securityToken) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public boolean canWrite(String securityToken, Wikitty wikitty) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return false; - + // return false; + } @Override public boolean canDelete(String securityToken, String wikittyId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return false; - + // return false; + } @Override public boolean canRead(String securityToken, String wikittyId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return false; - + // return false; + } @Override public boolean exists(String securityToken, String wikittyId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return false; - + // return false; + } @Override public boolean isDeleted(String securityToken, String wikittyId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return false; - + // return false; + } @Override @@ -107,8 +126,8 @@ boolean force) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -116,16 +135,16 @@ Collection<Wikitty> wikitties, boolean force) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public List<String> getAllExtensionIds(String securityToken) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -133,8 +152,8 @@ String extensionName) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -142,8 +161,8 @@ Collection<WikittyExtension> exts) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -151,8 +170,8 @@ Collection<String> extNames) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -160,8 +179,8 @@ String extensionId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -169,24 +188,29 @@ String name) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public List<Wikitty> restore(String securityToken, List<String> id) { // TODO mfortun-2011-04-05 + + /* + * + */ + throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public WikittyEvent delete(String securityToken, Collection<String> ids) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -194,24 +218,24 @@ Criteria... criteria) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public String[] findByCriteria(String securityToken, Criteria... criteria) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override public WikittyEvent deleteTree(String securityToken, String treeNodeId) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -219,8 +243,8 @@ String wikittyId, int depth, boolean count, Criteria filter) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -228,8 +252,8 @@ String version) { // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); - //return null; - + // return null; + } @Override @@ -237,11 +261,27 @@ // TODO mfortun-2011-04-05 throw new UnsupportedOperationException("not yet implemented"); // - + } - - + /** + * Transform an object into a wikitty object + * in this case a File into a wikittyPubText/Data + * @param object the objet to transform + * @return the wikitty + * @throws Exception + */ + /* + * TODO mfortun-2011-04-07 correct the Exception's type + */ + public Wikitty objectToWikitty(Object object) throws Exception { + if (object instanceof File) { + + return null; + } else { + throw new Exception(); + } + } }