Author: mfortun Date: 2011-04-08 17:35:00 +0200 (Fri, 08 Apr 2011) New Revision: 771 Url: http://nuiton.org/repositories/revision/wikitty/771 Log: *Import basically works. *correction of properties to make a cajoServer works properly *mok method in wikittyservicefilesystem for import testing Modified: trunk/wikitty-publication/src/main/java/ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties trunk/wikitty-publication/src/main/webapp/ Property changes on: trunk/wikitty-publication/src/main/java ___________________________________________________________________ Added: svn:ignore + tempTest 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-08 13:49:27 UTC (rev 770) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-08 15:35:00 UTC (rev 771) @@ -14,6 +14,7 @@ import org.nuiton.util.ArgumentsParserException; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyLabel; import org.nuiton.wikitty.publication.entities.WikittyPubData; @@ -21,6 +22,17 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.Search; + +/** + * Main class of the sync part of wikitty publication, this class is the entry + * point for sync operation : import, checkout, commit, delete, relocate and + * update. + * + * + * + * @author mfortun + * + */ public class WikittyPublication { /** to use log facility, just put in your code: log.info(\"...\"); */ @@ -161,8 +173,15 @@ + noRecur + " directory= " + dir.getAbsolutePath()); // usage: wp --norecursion --ws http://truc.com import --dir /home/Manou + applicationConfig.setOption("wikitty.WikittyService.components", + "org.nuiton.wikitty.services.WikittyServiceCajoClient"); + + System.out.println(applicationConfig + .getOption("wikitty.service.server.url")); + // real code: - WikittyProxy remoteWikittyService = new WikittyProxy(applicationConfig); + WikittyProxy remoteWikittyService = new WikittyProxy( + WikittyServiceFactory.buildWikittyService(applicationConfig)); // load the list of file List<File> toTransfert = listFile(dir, !noRecur); @@ -171,7 +190,8 @@ // transform file into wikitties for (File fileToTransform : toTransfert) { - listWikitty.add(WikittyPublicationFileSystem.fileToWikitty(fileToTransform, dir)); + listWikitty.add(WikittyPublicationFileSystem.fileToWikitty( + fileToTransform, dir)); } // send the wikitties @@ -209,11 +229,14 @@ */ static protected List<File> listFile(File starts, boolean recursivly) { ArrayList<File> result = new ArrayList<File>(); - result.add(starts); + if (!starts.isDirectory()) { + result.add(starts); + } for (File child : starts.listFiles()) { if (child.isDirectory() && recursivly && !child.getName().equals(PROPERTY_DIRECTORY)) { - result.add(child); + // Directory don't have to be harvest + // result.add(child); result.addAll(listFile(child, recursivly)); } else if (!child.isDirectory()) { result.add(child); @@ -240,7 +263,8 @@ + dir.getAbsolutePath() + "Label a checkout " + label + "HessianProtocol=" + hessianProtocole); - WikittyProxy remoteWikittyService = new WikittyProxy(applicationConfig); + WikittyProxy remoteWikittyService = new WikittyProxy( + WikittyServiceFactory.buildWikittyService(applicationConfig)); WikittyPublicationFileSystem localWikittyService = new WikittyPublicationFileSystem( dir); 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-08 13:49:27 UTC (rev 770) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-08 15:35:00 UTC (rev 771) @@ -37,6 +37,8 @@ final static private Log log = LogFactory .getLog(WikittyPublicationFileSystem.class); + static public String WIKITTYLABEL_SEPARATOR = "."; + protected File homeFile; /** @@ -315,18 +317,28 @@ Wikitty result = new WikittyImpl(); result.addExtension(WikittyLabelImpl.extensionWikittyLabel); + + //creation of the label /* - * TODO mfortun-2011-04-08 need to parse the file name to create the - * label need to use starts directory. + * TODO mfortun-2011-04-08 find a better way to do this ? */ - String pathToFile = fileToTransform.getCanonicalPath(); + String pathToFile = fileToTransform.getParent(); + String pathToStart = starts.getCanonicalPath(); + String startDirName = starts.getName(); - WikittyLabelHelper.addLabels(result, "path"); + /* + * remove path from root to start dir to have path from start to current + * working dir e.g.: if current file= + * /home/foo/bob/chaine.chaussette.tar.gz and starts dir = /home/foo/ + * then path will be = foo/bob + */ + String path = startDirName + pathToFile.replaceAll(pathToStart, ""); - // InputStreamReader reader = new InputStreamReader( new - // FileReader(object)); - // reader. + String label = path.replaceAll(File.separator, WIKITTYLABEL_SEPARATOR); + WikittyLabelHelper.addLabels(result, label); + + // complete with the correct extension with content if (isMimeWikittyPubText(mimeType)) { result.addExtension(WikittyPubTextImpl.extensionWikittyPubText); @@ -338,7 +350,6 @@ result.addExtension(WikittyPubDataImpl.extensionWikittyPubData); WikittyPubDataHelper.setName(result, name); WikittyPubDataHelper.setMimeType(result, mimeType); - WikittyPubDataHelper.setContent(result, FileUtil.fileToByte(fileToTransform)); } @@ -354,7 +365,16 @@ * @return */ static public String mimeTypeForExtension(String ext) { - return null; + /* + * TODO mfortun-2011-04-08 really implements this method + * + */ + if (ext.equalsIgnoreCase("ws")) { + return "application/javascript"; + } else { + return "image/png"; + } + } /** @@ -364,7 +384,15 @@ * @return */ static public boolean isMimeWikittyPubText(String mime) { - return true; + /* + * TODO mfortun-2011-04-08 really implements this method + * + */ + if (mime.equalsIgnoreCase("application/javascript")) { + return true; + } else { + return false; + } } } Modified: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties =================================================================== --- trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties 2011-04-08 13:49:27 UTC (rev 770) +++ trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-default.properties 2011-04-08 15:35:00 UTC (rev 771) @@ -38,7 +38,9 @@ org.nuiton.wikitty.services.WikittyServiceNotifier,\ org.nuiton.wikitty.services.WikittyServiceCached,\ org.nuiton.wikitty.services.WikittyServiceSecurity,\ -org.nuiton.wikitty.services.WikittyServiceAccessStat +org.nuiton.wikitty.services.WikittyServiceAccessStat,\ +org.nuiton.wikitty.services.WikittyServiceCajoServer +wikitty.service.server.url=http://localhost:1111/wikitty wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\ org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\ org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr Property changes on: trunk/wikitty-publication/src/main/webapp ___________________________________________________________________ Added: svn:ignore + META-INF