r1122 - in trunk/wikitty-publication/src: main/java/org/nuiton/wikitty/publication main/java/org/nuiton/wikitty/publication/action main/java/org/nuiton/wikitty/publication/externalize main/java/org/nuiton/wikitty/publication/synchro main/xmi test/java/org/nuiton/wikitty/publication test/java/org/nuiton/wikitty/publication/externalize test/java/org/nuiton/wikitty/publication/synchro
Author: mfortun Date: 2011-08-11 11:49:59 +0200 (Thu, 11 Aug 2011) New Revision: 1122 Url: http://nuiton.org/repositories/revision/wikitty/1122 Log: *remove attribut file extension for wikittypub, correct mimetypeHandling Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java trunk/wikitty-publication/src/main/xmi/wikitty-publication.zargo trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronizeTest.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -30,7 +30,8 @@ import java.util.Map; import javax.script.ScriptEngineManager; - +import org.apache.commons.collections.BidiMap; +import org.apache.commons.collections.bidimap.DualHashBidiMap; import org.nuiton.wikitty.ScriptEvaluator; /** @@ -46,7 +47,7 @@ /** * Mapping between extention and mime type, key: extension, value: mimeType */ - protected Map<String, String> mapExtensionMime; + protected BidiMap bidiMap; // TODO mfortun-2011-08-05 change this, this is a hack // change this to a handler to have specific langage compiler as jython etc protected List<String> compilable; @@ -59,31 +60,44 @@ public static String DEFAULT_MIME_TYPE = "application/octet-stream"; public MimeTypePubHelper() { - this.mapExtensionMime = new HashMap<String, String>(); decorator = new UiCodeDecorator(); this.compilable = new LinkedList<String>(); + bidiMap = new DualHashBidiMap(); + manager = ScriptEvaluator.getScriptEnginManager(null); - mapExtensionMime.put("wp", "application/javascript"); - mapExtensionMime.put("js", "application/javascript"); - mapExtensionMime.put("htmlp", "htmlp/javascript"); - mapExtensionMime.put("jpg", "image/jpeg"); - mapExtensionMime.put("png", "image/png"); - mapExtensionMime.put("java", "application/java"); + bidiMap.put("wp", "application/javascript"); + bidiMap.put("js", "application/javascript"); + bidiMap.put("htmlp", "htmlp/javascript"); + bidiMap.put("jpg", "image/jpeg"); + bidiMap.put("png", "image/png"); + bidiMap.put("java", "application/java"); compilable.add("application/java"); } - public Map<String, String> getMapExtensionMime() { - return mapExtensionMime; - } - public void setMapExtensionMime(Map<String, String> mapExtensionMime) { - this.mapExtensionMime = mapExtensionMime; + + + /** + * Return the corresponding mime Type for an extension, default if not + * recognized + * + * @param mime + * the extension + * @return the corresponding mimeTypeForExt DEFAULT_MIME_TYPE if ext not + * recognized + */ + public String getExtensionForMime(String mime) { + bidiMap = bidiMap.inverseBidiMap(); + String result = (String) bidiMap.get(mime); + bidiMap = bidiMap.inverseBidiMap(); + return result; } + + - /** * Return the corresponding mime Type for an extension, default if not * recognized @@ -94,7 +108,7 @@ * recognized */ public String getMimeForExtension(String ext) { - String result = mapExtensionMime.get(ext); + String result = (String) bidiMap.get(ext); if (result == null) { result = DEFAULT_MIME_TYPE; @@ -137,7 +151,7 @@ * @param mime */ public void addExtensionMime(String extension, String mime) { - mapExtensionMime.put(extension, mime); + bidiMap.put(extension, mime); } public ScriptEngineManager getManager() { Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -226,14 +226,7 @@ && fieldName .equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) { - if (null == WikittyPubDataHelper - .getFileExtension(wikitty)) { - WikittyPubDataHelper.setFileExtension( - wikitty, - FileUtil.extension(uploadFileName)); - } - if (null == WikittyPubDataHelper .getMimeType(wikitty)) { WikittyPubDataHelper.setMimeType(wikitty, Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -47,7 +47,7 @@ static public String DEFAULT_JAR_NAME = "pub-externalized"; static public String VERSION_SUFFIX = ".version"; - static public String EXTENSION_SUFFIX = ".extension"; + static public String MIME_SUFFIX = ".mime"; static public String SOURCE_EXTENSION = ".java"; static public String COMPILED_EXTENSION = ".class"; @@ -97,6 +97,9 @@ static public void externalize(ApplicationConfig conf, Criteria crit) throws ArgumentsParserException, IOException { + + MimeTypePubHelper mimeHelper = new MimeTypePubHelper(); + File currentFile = new File("."); currentFile = new File(currentFile.getAbsolutePath()).getParentFile(); @@ -163,10 +166,12 @@ String extension; File wikittyFile; String name; + String mimeType; if (wikit.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { name = WikittyPubTextHelper.getName(wikit); - extension = WikittyPubTextHelper.getFileExtension(wikit); + mimeType = WikittyPubTextHelper.getMimeType(wikit); + extension = mimeHelper.getExtensionForMime(mimeType); String content = WikittyPubTextHelper.getContent(wikit); // TODO 2011-07-08 change this later or not, java source will be @@ -196,13 +201,14 @@ // write properties idProperties.put(id, labelPath + name); - metaProperties.put(id + EXTENSION_SUFFIX, - WikittyPubTextHelper.getFileExtension(wikit)); + metaProperties.put(id + MIME_SUFFIX, + mimeType); } if (wikit.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) { byte[] content = WikittyPubDataHelper.getContent(wikit); - extension = WikittyPubDataHelper.getFileExtension(wikit); + mimeType = WikittyPubDataHelper.getMimeType(wikit); + extension = mimeHelper.getExtensionForMime(mimeType); name = WikittyPubDataHelper.getName(wikit); // write file on the temporary directory @@ -212,7 +218,7 @@ FileUtil.byteToFile(content, wikittyFile); // write properties - metaProperties.put(id + EXTENSION_SUFFIX, extension); + metaProperties.put(id + MIME_SUFFIX, mimeType); idProperties.put(id, labelPath + name); } } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -50,6 +50,7 @@ protected Properties wikittyIndex; protected Properties wikittyMetadata; + protected MimeTypePubHelper mimeHelper; /* * static public void main(String[] args) { @@ -94,6 +95,7 @@ wikittyMetadata = new Properties(); wikittyMetadata .load(wikittyJarRepository.getInputStream(metaEntry)); + mimeHelper = new MimeTypePubHelper(); } catch (IOException e) { // TODO mfortun-2011-07-11 realy handle exception @@ -336,9 +338,10 @@ if (!exists(wikittyId)) { return null; } - - String fileExtension = wikittyMetadata.getProperty(wikittyId - + WikittyPublicationExternalize.EXTENSION_SUFFIX); + + String mime = wikittyMetadata.getProperty(wikittyId + + WikittyPublicationExternalize.MIME_SUFFIX); + String fileExtension = mimeHelper.getExtensionForMime(mime); String path = wikittyIndex.getProperty(wikittyId); String version = wikittyMetadata.getProperty(wikittyId + WikittyPublicationExternalize.VERSION_SUFFIX); @@ -346,7 +349,7 @@ JarEntry wikittyJared = wikittyJarRepository.getJarEntry(path + "." + fileExtension); - MimeTypePubHelper mimeHelper = new MimeTypePubHelper(); + wikit = new WikittyImpl(wikittyId); wikit.setVersion(version); @@ -369,15 +372,13 @@ WikittyLabelHelper.addLabels(wikit, label); - if (mimeHelper.isPubTextExtension(fileExtension)) { + if (mimeHelper.isPubTextMime(mime)) { // wikitty pub text compiled wikit.addExtension(WikittyPubTextImpl.extensions); wikit.addExtension(WikittyPubTextCompiledImpl.extensionWikittyPubTextCompiled); // basic field - WikittyPubTextHelper.setFileExtension(wikit, fileExtension); - WikittyPubTextHelper.setMimeType(wikit, - mimeHelper.getMimeForExtension(fileExtension)); + WikittyPubTextHelper.setMimeType(wikit, mime); WikittyPubTextHelper.setName(wikit, wikittyName); // contents fields: @@ -392,12 +393,10 @@ } else { // wikitty pub data wikit.addExtension(WikittyPubDataImpl.extensionWikittyPubData); - WikittyPubDataHelper.setMimeType(wikit, - mimeHelper.getMimeForExtension(fileExtension)); + WikittyPubDataHelper.setMimeType(wikit,mime); WikittyPubDataHelper.setName(wikit, wikittyName); - WikittyPubDataHelper.setFileExtension(wikit, fileExtension); WikittyPubDataHelper.setContent(wikit, JarUtil.getByteContent( wikittyJarRepository, wikittyJared)); } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -430,7 +430,8 @@ // String mime = WikittyPubDataHelper.getMimeType(w); byte[] content = WikittyPubDataHelper.getContent(w); - extension = WikittyPubDataHelper.getFileExtension(w); + String mime = WikittyPubDataHelper.getMimeType(w); + extension = mimeHelper.getExtensionForMime(mime); wikittyFile = new File(path + File.separator + name + "." + extension); @@ -445,8 +446,9 @@ name = WikittyPubTextHelper.getName(w); // String mime = WikittyPubTextHelper.getMimeType(w); String content = WikittyPubTextHelper.getContent(w); + String mime = WikittyPubTextHelper.getMimeType(w); - extension = WikittyPubTextHelper.getFileExtension(w); + extension = mimeHelper.getExtensionForMime(mime); wikittyFile = new File(path + File.separator + name + "." + extension); @@ -892,7 +894,6 @@ WikittyPubTextHelper.setMimeType(result, mimeType); WikittyPubTextHelper.setContent(result, FileUtil.readAsString(fileToTransform)); - WikittyPubTextHelper.setFileExtension(result, extension); } else { log.debug("restore wikitty id:" + id + " file: " + fileId + " pubDataType"); @@ -901,7 +902,6 @@ WikittyPubDataHelper.setMimeType(result, mimeType); WikittyPubDataHelper.setContent(result, FileUtil.fileToByte(fileToTransform)); - WikittyPubDataHelper.setFileExtension(result, extension); } // re set the version (re set the version now allow the version to be Modified: trunk/wikitty-publication/src/main/xmi/wikitty-publication.zargo =================================================================== (Binary files differ) Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java =================================================================== --- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -117,13 +117,13 @@ .addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(pubTextMain, "content_main_" + i); - WikittyPubTextHelper.setFileExtension(pubTextMain, "js"); + WikittyPubTextHelper.setMimeType(pubTextMain, "application/javascript"); WikittyPubTextHelper.setName(pubTextMain, "pubtextOnMain_" + i); WikittyPubTextHelper.setContent(pubTextFall, "content_fall_" + i); - WikittyPubTextHelper.setFileExtension(pubTextFall, "js"); + WikittyPubTextHelper.setMimeType(pubTextFall, "application/javascript"); WikittyPubTextHelper.setName(pubTextFall, "pubtextOnFall_" + i); @@ -147,7 +147,7 @@ .addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(pubTextMain, "content_onBoth_" + i); - WikittyPubTextHelper.setFileExtension(pubTextMain, "js"); + WikittyPubTextHelper.setMimeType(pubTextMain, "application/javascript"); WikittyPubTextHelper.setName(pubTextMain, "pubtextOnboth_" + i); @@ -294,7 +294,7 @@ wikitt.addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(wikitt, "testSaveContent"); - WikittyPubTextHelper.setFileExtension(wikitt, "js"); + WikittyPubTextHelper.setMimeType(wikitt, "application/javascript"); WikittyPubTextHelper.setName(wikitt, "testSave"); Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java =================================================================== --- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -87,13 +87,13 @@ pubText.addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(pubText, "content_" + i); - WikittyPubTextHelper.setFileExtension(pubText, "js"); + WikittyPubTextHelper.setMimeType(pubText, "application/javascript"); WikittyPubTextHelper.setName(pubText, "pubtextnum_" + i); WikittyPubDataHelper.setContent(pubData, ("content data" + i).getBytes()); - WikittyPubDataHelper.setFileExtension(pubData, "jpg"); + WikittyPubDataHelper.setMimeType(pubData, "image/jpg"); WikittyPubDataHelper.setName(pubData, "pubdatanum_" + i); Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java =================================================================== --- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -90,13 +90,11 @@ pubText.addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(pubText, "content_" + i); - WikittyPubTextHelper.setFileExtension(pubText, "js"); WikittyPubTextHelper.setMimeType(pubText, "application/javascript"); WikittyPubTextHelper.setName(pubText, "pubtextnum_" + i); WikittyPubDataHelper.setContent(pubData, ("content data" + i).getBytes()); - WikittyPubDataHelper.setFileExtension(pubData, "jpg"); WikittyPubDataHelper.setMimeType(pubData, "image/jpg"); WikittyPubDataHelper.setName(pubData, "pubdatanum_" + i); Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronizeTest.java =================================================================== --- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronizeTest.java 2011-08-11 08:45:48 UTC (rev 1121) +++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronizeTest.java 2011-08-11 09:49:59 UTC (rev 1122) @@ -114,13 +114,11 @@ .addExtension(WikittyPubTextImpl.extensionWikittyPubText); WikittyPubTextHelper.setContent(pubTextMain, "content_main_" + i); - WikittyPubTextHelper.setFileExtension(pubTextMain, "js"); WikittyPubTextHelper.setMimeType(pubTextMain, "application/javascript"); WikittyPubTextHelper.setName(pubTextMain, "pubtextOnMain_" + i); WikittyPubTextHelper.setContent(pubTextFall, "content_fall_" + i); - WikittyPubTextHelper.setFileExtension(pubTextFall, "js"); WikittyPubTextHelper.setMimeType(pubTextFall, "application/javascript"); WikittyPubTextHelper.setName(pubTextFall, "pubtextOnFall_" + i);
participants (1)
-
mfortun@users.nuiton.org