Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 1653 discussions
r1106 - in trunk/wikitty-publication/src: main/java/org/nuiton/wikitty/publication main/resources test/java/org/nuiton/wikitty/publication test/java/org/nuiton/wikitty/publication/externalize
by mfortun@users.nuiton.org 03 Aug '11
by mfortun@users.nuiton.org 03 Aug '11
03 Aug '11
Author: mfortun
Date: 2011-08-03 16:46:33 +0200 (Wed, 03 Aug 2011)
New Revision: 1106
Url: http://nuiton.org/repositories/revision/wikitty/1106
Log:
*Add tests
*corrections discovered with test
Added:
trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-test.properties
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PropertiesExtended.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
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
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PropertiesExtended.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PropertiesExtended.java 2011-08-02 15:50:31 UTC (rev 1105)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PropertiesExtended.java 2011-08-03 14:46:33 UTC (rev 1106)
@@ -95,7 +95,9 @@
*/
public void load(File file) throws FileNotFoundException, IOException {
this.origin = file;
- this.load(new FileReader(origin));
+ FileReader fr = new FileReader(origin);
+ this.load(fr);
+ fr.close();
}
/**
@@ -109,7 +111,10 @@
* if file not found
*/
public void store() throws IOException {
- this.store(new FileWriter(origin), "");
+ FileWriter fs = new FileWriter(origin);
+ this.store(fs, "");
+ fs.close();
+
}
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java 2011-08-02 15:50:31 UTC (rev 1105)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackService.java 2011-08-03 14:46:33 UTC (rev 1106)
@@ -4,7 +4,8 @@
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
-
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyServiceFactory;
@@ -27,14 +28,18 @@
static public String WIKITTY_FALLBACK_PREFIX_KEY = "wikitty.fallback.prefix";
+ static private Log log = LogFactory.getLog(WikittyPublicationFallbackService.class);
+
protected WikittyService mainService;
protected WikittyService fallbackService;
public WikittyPublicationFallbackService(WikittyService serv,
ApplicationConfig config) {
this.mainService = serv;
+ if(config != null){
fallbackService = WikittyServiceFactory.buildWikittyService(config,
"wikitty." + config.getOption(WIKITTY_FALLBACK_PREFIX_KEY));
+ }
}
public boolean isFallBack() {
@@ -191,7 +196,12 @@
List<Wikitty> result = new LinkedList<Wikitty>();
- result.addAll(mainService.restore(securityToken, id));
+ List<Wikitty> tempListResult = mainService.restore(securityToken, id);
+ for (Wikitty wikitty : tempListResult) {
+ if( wikitty !=null) {
+ result.add(wikitty);
+ }
+ }
// can't trust result's size because result can contain null
if (isFallBack()) {
// prepare a list with wikitty id that have not been retrieve by the
@@ -223,6 +233,8 @@
if (isFallBack()) {
+
+
for (int i = 0; i < result.size(); i++) {
/*
@@ -234,7 +246,9 @@
int resultSizeExpected = currentCrit.getEndIndex()
- currentCrit.getFirstIndex();
- if (currentResult.size() < resultSizeExpected) {
+ log.debug("Size expected"+ resultSizeExpected);
+
+ if ( resultSizeExpected==-1 || currentResult.size() < resultSizeExpected ) {
/*
* if result empty, just put the result of the fallback's
* requestresult
@@ -300,6 +314,8 @@
List<String> allresult = new LinkedList<String>();
allresult.addAll(currentResult.getAll());
allresult.addAll(resultFallback.getAll());
+ System.out.println(allresult.size());
+
int number = currentResult.getNumFound()
+ resultFallback.getNumFound();
@@ -404,4 +420,22 @@
return result;
}
+ public WikittyService getMainService() {
+ return mainService;
+ }
+
+ public void setMainService(WikittyService mainService) {
+ this.mainService = mainService;
+ }
+
+ public WikittyService getFallbackService() {
+ return fallbackService;
+ }
+
+ public void setFallbackService(WikittyService fallbackService) {
+ this.fallbackService = fallbackService;
+ }
+
+
+
}
Added: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-test.properties
===================================================================
--- trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-test.properties (rev 0)
+++ trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-test.properties 2011-08-03 14:46:33 UTC (rev 1106)
@@ -0,0 +1,56 @@
+###
+# #%L
+# Wikitty :: publication
+#
+# $Id: wikitty-publication-ws-default.properties 823 2011-04-20 14:45:47Z mfortun $
+# $HeadURL: http://svn.nuiton.org/svn/wikitty/trunk/wikitty-publication/src/main/resour… $
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+
+
+wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
+wikitty.storage.jdbc.driver=org.h2.Driver
+wikitty.storage.jdbc.host=jdbc:h2:file:${wikitty.data.directory}/data/db
+wikitty.storage.jdbc.login=sa
+wikitty.storage.jdbc.password=
+wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL=${wikitty.storage.jdbc.host}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user=${wikitty.storage.jdbc.login}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password=${wikitty.storage.jdbc.password}
+wikitty.searchengine.solr.directory.data=${wikitty.data.directory}/data/solr
+wikitty.searchengine.solr.directory.factory=solr.StandardDirectoryFactory
+wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\
+org.nuiton.wikitty.services.WikittyServiceNotifier,\
+org.nuiton.wikitty.services.WikittyServiceCached,\
+org.nuiton.wikitty.services.WikittyServiceSecurity,\
+org.nuiton.wikitty.services.WikittyServiceAccessStat
+
+wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
+org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
+org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
+wikitty.service.cache.listenevents=false
+wikitty.service.cache.allwaysRestoreCopies=false
+wikitty.service.event.propagate=false
+wikitty.service.event.listen=false
+wikitty.service.accessstat.extensions=WikittyPubText,WikittyPubData
+wikitty.addon.export.threadnumber=1
+wikitty.addon.export.directory=${wikitty.data.directory}/export
+wikitty.addon.export.publicurl=file://${wikitty.data.directory}/export/
+wikitty.WikittyServiceAccessStat.components=\
+org.nuiton.wikitty.services.WikittyServiceAccessStat$AccessStatStorageLog
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-02 15:50:31 UTC (rev 1105)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java 2011-08-03 14:46:33 UTC (rev 1106)
@@ -1,29 +1,334 @@
package org.nuiton.wikitty.publication;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+import org.nuiton.util.FileUtil;
+import org.nuiton.wikitty.WikittyConfigOption;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyServiceFactory;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyImpl;
+import org.nuiton.wikitty.entities.WikittyLabelHelper;
+import org.nuiton.wikitty.entities.WikittyLabelImpl;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataImpl;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextImpl;
+import org.nuiton.wikitty.publication.synchro.WikittyPublicationFileSystem;
+import org.nuiton.wikitty.publication.synchro.WikittyPublicationSynchronize;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.Search;
+
public class WikittyPublicationFallbackServiceTest {
+ protected File tempHome;
+ protected WikittyProxy proxyOnMain;
+ protected WikittyProxy proxyOnFallBack;
+ protected WikittyProxy proxy;
+ protected Map<String, Wikitty> onMain;
+ protected Map<String, Wikitty> onFallBack;
+ protected Map<String, Wikitty> onBoth;
+ private Criteria allCrit;
+
+ @Before
+ public void init() throws IOException, ArgumentsParserException {
+ allCrit = Search.query().keyword("*").criteria();
+
+ if (!FileUtils.getTempDirectory().exists()) {
+ FileUtils.getTempDirectory().mkdir();
+ }
+
+ tempHome = new File(FileUtils.getTempDirectory().getCanonicalFile()
+ + File.separator + "WikittyPublicationFallbackServiceTest");
+
+ if (tempHome.exists()) {
+ FileUtil.deleteRecursively(tempHome);
+
+ }
+ tempHome.mkdir();
+
+ File starts = new File(tempHome.getAbsolutePath() + File.separator
+ + "sub");
+ if (starts.exists()) {
+ FileUtil.deleteRecursively(starts);
+ }
+ starts.mkdir();
+
+ // then initialise application config for wikitty proxy on service FS
+ ApplicationConfig configFS = new ApplicationConfig();
+ configFS.setOption(WikittyPublicationSynchronize.IS_RECURSION_OPTION,
+ "true");
+ configFS.setOption(
+ WikittyConfigOption.WIKITTY_WIKITTYSERVICE_COMPONENTS.getKey(),
+ WikittyPublicationFileSystem.class.getName());
+
+ String url = "file:///" + tempHome.getAbsolutePath() + "#sub";
+
+ configFS.setOption(WikittyConfigOption.WIKITTY_SERVER_URL.getKey(), url);
+
+ ApplicationConfig configLocal = new ApplicationConfig(
+ "wikitty-publication-ws-test.properties");
+
+ // configLocal = WikittyPublicationConfig.getConfig();
+
+ String bdDir = tempHome + File.separator + "bd";
+
+ configLocal.setOption("wikitty.data.directory", bdDir);
+ configLocal.parse(null);
+ // create two service
+ proxyOnMain = new WikittyProxy(
+ WikittyServiceFactory.buildWikittyService(configLocal));
+
+ proxyOnFallBack = new WikittyProxy(
+ WikittyServiceFactory.buildWikittyService(configFS));
+ // initialize fall back service
+ WikittyPublicationFallbackService fallback = new WikittyPublicationFallbackService(
+ proxyOnMain.getWikittyService(), null);
+ fallback.setFallbackService(proxyOnFallBack.getWikittyService());
+ proxy = new WikittyProxy(fallback);
+
+ onMain = new HashMap<String, Wikitty>();
+ onBoth = new HashMap<String, Wikitty>();
+ onFallBack = new HashMap<String, Wikitty>();
+
+ // create wikitty for the test
+ for (int i = 0; i < 10; i++) {
+
+ Wikitty pubTextMain = new WikittyImpl();
+ Wikitty pubTextFall = new WikittyImpl();
+
+ pubTextMain
+ .addExtension(WikittyPubTextImpl.extensionWikittyPubText);
+ pubTextFall
+ .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);
+
+ pubTextMain.addExtension(WikittyLabelImpl.extensions);
+ pubTextFall.addExtension(WikittyLabelImpl.extensions);
+
+ WikittyLabelHelper.addLabels(pubTextMain, "sub");
+ WikittyLabelHelper.addLabels(pubTextFall, "sub");
+
+ onFallBack.put(pubTextFall.getId(), pubTextFall);
+ onMain.put(pubTextMain.getId(), pubTextMain);
+
+ }
+
+ for (int i = 0; i < 5; i++) {
+
+ Wikitty pubTextMain = new WikittyImpl();
+
+ pubTextMain
+ .addExtension(WikittyPubTextImpl.extensionWikittyPubText);
+
+ WikittyPubTextHelper.setContent(pubTextMain, "content_onBoth_" + i);
+ WikittyPubTextHelper.setFileExtension(pubTextMain, "js");
+ WikittyPubTextHelper.setMimeType(pubTextMain,
+ "application/javascript");
+ WikittyPubTextHelper.setName(pubTextMain, "pubtextOnboth_" + i);
+
+ pubTextMain.addExtension(WikittyLabelImpl.extensions);
+
+ WikittyLabelHelper.addLabels(pubTextMain, "sub");
+
+ onBoth.put(pubTextMain.getId(), pubTextMain);
+
+ }
+
+ }
+
+ /**
+ * delete directory after test
+ */
+ @After
+ public void afterTest() {
+ // remove directory
+ FileUtil.deleteRecursively(tempHome);
+ }
+
+ /**
+ *
+ */
+ @Test
+ public void testServiceCreated() {
+ Assert.assertNotNull(proxyOnFallBack);
+ Assert.assertNotNull(proxyOnMain);
+ Assert.assertNotNull(proxy);
+
+ Assert.assertTrue(((WikittyPublicationFallbackService) proxy
+ .getWikittyService()).isFallBack());
+ }
+
+ public void putAllWikittyOnServices() {
+
+ List<Wikitty> listFall = new LinkedList<Wikitty>();
+ listFall.addAll(onFallBack.values());
+ listFall.addAll(onBoth.values());
+
+ proxyOnFallBack.storeWikitty(listFall);
+
+ List<Wikitty> listmain = new LinkedList<Wikitty>();
+ listmain.addAll(onMain.values());
+ listmain.addAll(onBoth.values());
+
+ proxyOnMain.storeWikitty(listmain);
+
+ }
+
+ @Test
+ public void testSimpleFind() {
+ putAllWikittyOnServices();
+
+ int numfound = proxy.findAllByCriteria(allCrit).getNumFound();
+
+ int totalOnBoth = onBoth.size() + onMain.size() + onFallBack.size();
+
+ Assert.assertEquals(totalOnBoth, numfound);
+ }
+
+ @Test
+ public void testMainServiceIsMoreImportantOne() {
+ putAllWikittyOnServices();
+
+ String id = (String) onBoth.keySet().toArray()[1];
+
+ Assert.assertNotNull(id);
+
+ String originalContent;
+
+ Wikitty wikittFromFall = proxyOnFallBack.restore(id);
+
+ originalContent = WikittyPubTextHelper.getContent(wikittFromFall);
+
+ Wikitty wikitty = proxy.restore(id);
+
+ Assert.assertEquals(originalContent,
+ WikittyPubTextHelper.getContent(wikitty));
+
+ String newContent = "newContentOnlyOnFallBack";
+
+ WikittyPubTextHelper.setContent(wikittFromFall, newContent);
+
+ proxyOnFallBack.store(wikittFromFall);
+
+ wikitty = proxy.restore(id);
+
+ Assert.assertEquals(originalContent,
+ WikittyPubTextHelper.getContent(wikitty));
+ }
+
+ @Test
+ public void testMainServiceIsMoreImportantTwo() {
+ putAllWikittyOnServices();
+
+ String id = (String) onBoth.keySet().toArray()[1];
+
+ Assert.assertNotNull(id);
+
+ String originalContent;
+
+ Wikitty wikittFromFall = proxyOnFallBack.restore(id);
+
+ originalContent = WikittyPubTextHelper.getContent(wikittFromFall);
+
+ // restore on main
+ Wikitty wikitty = proxyOnMain.restore(id);
+
+ // check that content are the same
+ Assert.assertEquals(originalContent,
+ WikittyPubTextHelper.getContent(wikitty));
+
+ // write new content on wikitty
+ String newContent = "newContentOnlyOnFallBack";
+
+ WikittyPubTextHelper.setContent(wikitty, newContent);
+
+ // Save the new version of the wikitty on main
+ proxyOnMain.store(wikitty);
+
+ wikitty = proxy.restore(id);
+ // assert that we have the new content
+ Assert.assertEquals(newContent,
+ WikittyPubTextHelper.getContent(wikitty));
+
+ wikittFromFall = proxyOnFallBack.restore(id);
+
+ // assert that new content is not inside fallback
+ Assert.assertNotSame(newContent,
+ WikittyPubTextHelper.getContent(wikittFromFall));
+ }
+
+ /**
+ * Test the save only appear on main
+ */
+ @Test
+ public void testSave() {
+ putAllWikittyOnServices();
+
+ Wikitty wikitt = new WikittyImpl();
+
+ wikitt.addExtension(WikittyPubTextImpl.extensionWikittyPubText);
+ WikittyPubTextHelper.setContent(wikitt, "testSaveContent");
+ WikittyPubTextHelper.setFileExtension(wikitt, "js");
+ WikittyPubTextHelper.setMimeType(wikitt, "application/javascript");
+ WikittyPubTextHelper.setName(wikitt, "testSave");
+
+ wikitt.addExtension(WikittyLabelImpl.extensions);
+
+ WikittyLabelHelper.addLabels(wikitt, "sub");
+
+ proxy.store(wikitt);
+
+ Assert.assertNull(proxyOnFallBack.restore(wikitt.getId()));
+ Assert.assertNotNull(proxyOnMain.restore(wikitt.getId()));
+
+ }
-
-
- /*
- * Instancier un wikitty service sur FS et un sur cajo
- * mettre des wikitty dans les deux différent 10-10, et 5 de plus en commun
+ /**
+ * Test save a wikitty that can be found on fallback
+ * test that the new version of the wikitty is on main
*
- * 1) test de l'affichage des 15 wikitty
- *
- * 2) test prévalence de ceux sur le premier
- *
- * 3) test de sauvegarde qui se mettent sur le premier
- *
- * 4) test des recherches limités qui se complétent
- *
- * 5) suppression
- *
- * 6) édition/sauvegarde d'un wikitty qui n'est pas sur le "main" au départ
- *
- *
- *
*/
+ @Test
+ public void testSaveWikittyFromFall() {
+ putAllWikittyOnServices();
+
+ String id = (String) onFallBack.keySet().toArray()[1];
+
+ // assert the object is in the right service
+ Assert.assertNotNull(proxyOnFallBack.restore(id));
+ Assert.assertNull(proxyOnMain.restore(id));
+ Assert.assertNotNull(proxy.restore(id));
+ }
+
+
}
+
+
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-02 15:50:31 UTC (rev 1105)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java 2011-08-03 14:46:33 UTC (rev 1106)
@@ -16,5 +16,7 @@
*
*/
+
+
}
1
0
r1105 - in trunk/wikitty-publication/src: main/java/org/nuiton/wikitty/publication/synchro test/java/org/nuiton/wikitty/publication test/java/org/nuiton/wikitty/publication/synchro
by mfortun@users.nuiton.org 02 Aug '11
by mfortun@users.nuiton.org 02 Aug '11
02 Aug '11
Author: mfortun
Date: 2011-08-02 17:50:31 +0200 (Tue, 02 Aug 2011)
New Revision: 1105
Url: http://nuiton.org/repositories/revision/wikitty/1105
Log:
* test for wikittyPublicationFileSystem
* correction for wikittyPublicationFileSystem
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java
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-02 09:13:37 UTC (rev 1104)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-08-02 15:50:31 UTC (rev 1105)
@@ -71,7 +71,6 @@
import org.nuiton.wikitty.services.WikittyEvent;
import org.nuiton.wikitty.services.WikittyListener;
-
public class WikittyPublicationFileSystem extends AbstractWikittyFileService {
/** to use log facility, just put in your code: log.info(\"...\"); */
@@ -80,7 +79,6 @@
static public String WIKITTYLABEL_SEPARATOR = ".";
-
/**
* The working directory of the wikitty service
*/
@@ -125,7 +123,6 @@
*/
static public String META_PREFIX_KEY_ID = "id.";
-
/**
* The file name of the wikitty service property
*/
@@ -197,30 +194,34 @@
homeFile, WIKITTY_FILE_SERVICE);
// the original label use to create if not exist
- if (!propertyWikittyService.containsKey(WikittyPublicationSynchronize.LABEL_KEY)) {
+ if (!propertyWikittyService
+ .containsKey(WikittyPublicationSynchronize.LABEL_KEY)) {
log.debug("Writing home property label"
+ propertyWikittyService.getOrigin());
- propertyWikittyService.setProperty(WikittyPublicationSynchronize.LABEL_KEY,
- this.label);
+ propertyWikittyService.setProperty(
+ WikittyPublicationSynchronize.LABEL_KEY, this.label);
}
// the service use to update or commit
String uriService = app
.getOption(WikittyPublicationSynchronize.WIKITTY_SERVICE_INTERLOCUTEUR);
- if (uriService !=null) {
- log.debug("Writing home property service on:"
- + propertyWikittyService.getOrigin() + " uri" + uriService);
+ if (uriService != null) {
+ log.debug("Writing home property service on:"
+ + propertyWikittyService.getOrigin() + " uri" + uriService);
- propertyWikittyService.setProperty(
- WikittyPublicationSynchronize.WIKITTY_SERVICE_INTERLOCUTEUR, uriService);
+ propertyWikittyService
+ .setProperty(
+ WikittyPublicationSynchronize.WIKITTY_SERVICE_INTERLOCUTEUR,
+ uriService);
}
-
+
propertyWikittyService.store();
recursion = true;
- if (app.getOptions().containsKey(WikittyPublicationSynchronize.IS_RECURSION_OPTION)) {
-
- this.recursion = app
- .getOptionAsBoolean(WikittyPublicationSynchronize.IS_RECURSION_OPTION);
+ if (app.getOptions().containsKey(
+ WikittyPublicationSynchronize.IS_RECURSION_OPTION)) {
+
+ this.recursion = app
+ .getOptionAsBoolean(WikittyPublicationSynchronize.IS_RECURSION_OPTION);
}
// TODO mfotun-2011-04-28 add a support for filtered file with a
// property file
@@ -322,18 +323,13 @@
@Override
public boolean exists(String securityToken, String wikittyId) {
- // TODO mfortun-2011-04-05
- throw new UnsupportedOperationException("not yet implemented");
- // return false;
+ return getAllWikitties().containsKey(wikittyId);
}
@Override
public boolean isDeleted(String securityToken, String wikittyId) {
- // TODO mfortun-2011-04-05
- throw new UnsupportedOperationException("not yet implemented");
- // return false;
-
+ return !exists(securityToken, wikittyId);
}
@Override
@@ -377,7 +373,6 @@
// if label is empty it means that the wikitty have to be remove
// from the FileSystem
if ("".equals(ourDir)) {
-
// remove file if the wikitty already exist
BidiMap location = harvestLocalWikitties(homeFile, true);
@@ -401,7 +396,8 @@
}
// create the directories from the label
- boolean pathFilecreated = WikittyFileUtil.createFilesFromLabelPath(homeFile,ourDir);
+ boolean pathFilecreated = WikittyFileUtil
+ .createFilesFromLabelPath(homeFile, ourDir);
if (pathFilecreated) {
// create the path with the label
@@ -498,10 +494,10 @@
List<String> result = new LinkedList<String>();
result.add(WikittyPubData.EXT_WIKITTYPUBDATA);
result.add(WikittyPubText.EXT_WIKITTYPUBTEXT);
- //result.add(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED);
+ // result.add(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED);
result.add(WikittyLabel.EXT_WIKITTYLABEL);
-
- return result;
+
+ return result;
}
@Override
@@ -554,7 +550,7 @@
* restore file as wikitty
*/
public List<Wikitty> restore(String securityToken, List<String> id) {
-
+
List<Wikitty> result = new ArrayList<Wikitty>();
log.info("restore wikitty, number: " + id.size());
try {
@@ -570,7 +566,6 @@
// register wikitty in the result
for (String wikid : id) {
Object value = locations.get(wikid);
-
if (value != null) {
FileSystemWIkittyId localisation = (FileSystemWIkittyId) value;
@@ -583,7 +578,7 @@
e.printStackTrace();
// TODO mfortun-2011-01-12 really handle exception
}
-
+
return result;
}
@@ -652,8 +647,6 @@
return result;
}
-
-
@Override
protected Map<String, Wikitty> getAllWikitties() {
Map<String, Wikitty> wikitties = new HashMap<String, Wikitty>();
@@ -688,10 +681,7 @@
}
return wikitties;
}
-
-
-
@Override
public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
// TODO mfortun-2011-04-05
@@ -863,7 +853,7 @@
log.debug("restore wikitty id:" + id + " file: " + fileId);
Wikitty result = new WikittyImpl(id);
-
+
result.addExtension(WikittyLabelImpl.extensionWikittyLabel);
// preparation for mime research and file research
@@ -873,6 +863,10 @@
// search for the file
File fileToTransform = new File(path + File.separator + completeName);
+ if (!fileToTransform.exists()) {
+ return null;
+ }
+
String extension = FileUtil.extension(fileToTransform);
String name = FileUtil.basename(completeName, "." + extension);
@@ -882,7 +876,8 @@
// load properties
File wikittyParentDir = new File(path);
PropertiesExtended props = getWikittyPublicationProperties(
- wikittyParentDir, WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
+ wikittyParentDir,
+ WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
// set the current label
WikittyLabelHelper.addLabels(result, props
@@ -1038,7 +1033,8 @@
String localMd5 = StringUtil.asHex(byt);
PropertiesExtended meta = getWikittyPublicationProperties(
- child.getParentFile(),WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
+ child.getParentFile(),
+ WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
String registeredMD5 = meta.getProperty(META_PREFIX_KEY_CHECKSUM
+ child.getName());
@@ -1115,10 +1111,6 @@
}
-
-
-
-
/**
* Use to search and return the home property that containt informations
* about wikitty service use to synchronise a wikitty publication file
Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java 2011-08-02 09:13:37 UTC (rev 1104)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java 2011-08-02 15:50:31 UTC (rev 1105)
@@ -17,16 +17,23 @@
public class PropertiesExtendedTest {
- public File tempHome;
- public Properties props;
- public File propsFile;
+ protected File tempHome;
+ protected Properties props;
+ protected File propsFile;
@Before
public void init() throws IOException{
+
+ if (! FileUtils.getTempDirectory().exists()){
+ FileUtils.getTempDirectory().mkdir();
+ }
+
tempHome = new File(FileUtils.getTempDirectory().getCanonicalFile()
+ File.separator + "wikittyFileUtilTest");
+ System.out.println(tempHome);
+
if (tempHome.exists()){
FileUtil.deleteRecursively(tempHome);
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-02 09:13:37 UTC (rev 1104)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java 2011-08-02 15:50:31 UTC (rev 1105)
@@ -3,6 +3,9 @@
public class WikittyPublicationFallbackServiceTest {
+
+
+
/*
* Instancier un wikitty service sur FS et un sur cajo
* mettre des wikitty dans les deux différent 10-10, et 5 de plus en commun
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-02 09:13:37 UTC (rev 1104)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java 2011-08-02 15:50:31 UTC (rev 1105)
@@ -1,26 +1,327 @@
package org.nuiton.wikitty.publication.synchro;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.WikittyConfigOption;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyServiceFactory;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyImpl;
+import org.nuiton.wikitty.entities.WikittyLabel;
+import org.nuiton.wikitty.entities.WikittyLabelHelper;
+import org.nuiton.wikitty.entities.WikittyLabelImpl;
+import org.nuiton.wikitty.publication.WikittyFileUtil;
+import org.nuiton.wikitty.publication.entities.WikittyPubData;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataImpl;
+import org.nuiton.wikitty.publication.entities.WikittyPubText;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextImpl;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.Search;
+
public class WikittyPublicationFileSystemTest {
+ protected File tempHome;
+ protected List<Wikitty> listWikittyPubData;
+ protected List<Wikitty> listWikittyPubText;
+ protected List<String> labels;
+ protected ApplicationConfig config;
+ protected WikittyProxy proxy;
+ protected Criteria allCrit;
+ protected File starts;
+
+ @Before
+ public void init() throws IOException {
+
+ if (!FileUtils.getTempDirectory().exists()) {
+ FileUtils.getTempDirectory().mkdir();
+ }
+
+ tempHome = new File(FileUtils.getTempDirectory().getCanonicalFile()
+ + File.separator + "WikittyPublicationFileSystemTest");
+
+ if (tempHome.exists()) {
+ FileUtil.deleteRecursively(tempHome);
+
+ }
+ tempHome.mkdir();
+
+ // prepare the wikitties list
+ listWikittyPubData = new LinkedList<Wikitty>();
+ listWikittyPubText = new LinkedList<Wikitty>();
+
+ labels = new ArrayList<String>(6);
+ labels.add(0, "sub");
+ labels.add(1, labels.get(0) + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR
+ + "sub11");
+ labels.add(2, labels.get(1) + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR
+ + "sub12");
+ labels.add(3, labels.get(0) + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR
+ + "sub3");
+ labels.add(4, labels.get(0) + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR
+ + "sub21");
+ labels.add(5, labels.get(4) + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR
+ + "sub21");
+
+ for (int i = 0; i < 6; i++) {
+
+ Wikitty pubText = new WikittyImpl();
+ Wikitty pubData = new WikittyImpl();
+
+ pubData.addExtension(WikittyPubDataImpl.extensionWikittyPubData);
+ 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);
+
+ pubData.addExtension(WikittyLabelImpl.extensions);
+ pubText.addExtension(WikittyLabelImpl.extensions);
+
+ WikittyLabelHelper.addLabels(pubData, labels.get(i));
+ WikittyLabelHelper.addLabels(pubText, labels.get(i));
+
+ listWikittyPubData.add(pubData);
+ listWikittyPubText.add(pubText);
+ }
+
+ // then initialise application config for wikitty proxy on service FS
+ config = new ApplicationConfig();
+ config.setOption(WikittyPublicationSynchronize.IS_RECURSION_OPTION,
+ "true");
+ config.setOption(
+ WikittyConfigOption.WIKITTY_WIKITTYSERVICE_COMPONENTS.getKey(),
+ WikittyPublicationFileSystem.class.getName());
+
+ starts = new File(tempHome.getAbsolutePath() + File.separator + "sub");
+ if (starts.exists()) {
+ FileUtil.deleteRecursively(starts);
+ }
+ starts.mkdir();
+
+ String url = "file:///" + tempHome.getAbsolutePath() + "#sub";
+
+ config.setOption(WikittyConfigOption.WIKITTY_SERVER_URL.getKey(), url);
+
+ proxy = new WikittyProxy(
+ WikittyServiceFactory.buildWikittyService(config));
+
+ allCrit = Search.query().keyword("*").criteria();
+
+ }
+
+ @After
+ public void delete() {
+ FileUtil.deleteRecursively(tempHome);
+ }
+
+ /**
+ * check save wikitty
+ */
+ @Test
+ public void saveWikittyOnFS() {
+
+ Assert.assertEquals(0, proxy.findAllIdByCriteria(allCrit).getNumFound());
+
+ proxy.storeWikitty(listWikittyPubData);
+ proxy.storeWikitty(listWikittyPubText);
+
+ int result = listWikittyPubData.size() + listWikittyPubText.size();
+
+ Assert.assertEquals(result, proxy.findAllIdByCriteria(allCrit)
+ .getNumFound());
+
+ }
+
+ /**
+ * check that the wikitty save are restorable
+ */
+ @Test
+ public void testRestoreFromFS() {
+ saveWikittyOnFS();
+
+ Map<String, Wikitty> mapwikitty = new HashMap<String, Wikitty>();
+
+ for (Wikitty w : listWikittyPubData) {
+ mapwikitty.put(w.getId(), w);
+ }
+
+ for (Wikitty w : listWikittyPubText) {
+ mapwikitty.put(w.getId(), w);
+ }
+
+ // Assert that wikitty are the same after save
+ // wikitty service FS doesn't not alterate version
+ for (Wikitty w : proxy.findAllByCriteria(allCrit)) {
+ Assert.assertEquals(mapwikitty.get(w.getId()), w);
+ }
+ }
+
+ /**
+ * Test that service know if wikitty change
+ * @throws IOException
+ */
+ @Test
+ public void testUpdateFileDirectly() throws IOException {
+ saveWikittyOnFS();
+
+ String label = WikittyFileUtil.labelToPath(labels.get(1));
+
+ File wikittyOnFS = new File(tempHome.getCanonicalPath()
+ + File.separator + label + File.separator + "pubtextnum_1.js");
+ // check file exist
+ Assert.assertTrue(wikittyOnFS.exists());
+
+ WikittyPubTextImpl wik = new WikittyPubTextImpl();
+ wik.setName("pubtextnum_1");
+
+ String newContent = "unNouveauContenu";
+
+ WikittyPubTextImpl result = proxy.findByExample(wik);
+ // check content on actual wikitty
+ Assert.assertNotSame(newContent, result.getContent());
+
+ // update the file
+ FileWriter fw = new FileWriter(wikittyOnFS);
+
+ fw.write(newContent);
+ fw.flush();
+ fw.close();
+
+ // Wikitty
+
+ result = proxy.findByExample(wik);
+ // check that the wikitty is now updated with the new content
+ Assert.assertEquals(newContent, result.getContent());
+
+ }
-/*
- * Liste des tests à faire:
- *
- * 1) Crééer une collection de wikitty et les sauvegarder s'assurer on a les mêmes
- *
- * 2) s'assurer que les labels sont bien mit
- *
- * 3) test avec des wikittys pub data et pub text
- *
- * 4) faire des modifications en dehors du service et voir que le service le voit bien
- * 4-1 suppression
- * 4-2 modification
- *
- * 5) delete par le service
- *
- * 6) update par le service
- *
- *
- */
+ /**
+ * Test that the service know if file are deleted
+ * @throws IOException
+ */
+ @Test
+ public void testDeleteFileDirectly() throws IOException {
+ saveWikittyOnFS();
+
+ String label = WikittyFileUtil.labelToPath(labels.get(1));
+
+ File wikittyOnFS = new File(tempHome.getCanonicalPath()
+ + File.separator + label + File.separator + "pubtextnum_1.js");
+ // check file exist
+ Assert.assertTrue(wikittyOnFS.exists());
+
+ WikittyPubTextImpl wik = new WikittyPubTextImpl();
+ wik.setName("pubtextnum_1");
+
+ WikittyPubTextImpl result = proxy.findByExample(wik);
+ String id = result.getWikittyId();
+ // check that the wikitty exist
+ Assert.assertNotNull(result);
+
+ //delete the file
+ wikittyOnFS.delete();
+
+ // check that the wikitty is now deleted
+ Assert.assertNull(proxy.restore(id));
+
+ }
+
+ /**
+ * Test delete with the service
+ * @throws IOException
+ */
+ @Test
+ public void deleteWithService() throws IOException{
+ saveWikittyOnFS();
+
+ String label = WikittyFileUtil.labelToPath(labels.get(1));
+
+ File wikittyOnFS = new File(tempHome.getCanonicalPath()
+ + File.separator + label + File.separator + "pubtextnum_1.js");
+ // check file exist
+ Assert.assertTrue(wikittyOnFS.exists());
+
+ WikittyPubTextImpl wik = new WikittyPubTextImpl();
+ wik.setName("pubtextnum_1");
+
+ WikittyPubTextImpl result = proxy.findByExample(wik);
+ String id = result.getWikittyId();
+ // delete the wikitt
+ proxy.delete(id);
+ // check that the wikitty and the file are now deleted
+ Assert.assertNull(proxy.restore(id));
+ Assert.assertFalse(wikittyOnFS.exists());
+
+ }
+
+ /**
+ * Test delete a directory, chech if that delete correctly wikitty
+ * under corresponding labels
+ * @throws IOException
+ */
+ @Test
+ public void testDeleteDirectoryDirectly() throws IOException {
+ saveWikittyOnFS();
+
+ String label = WikittyFileUtil.labelToPath(labels.get(1));
+
+ File wikittyOnFS = new File(tempHome.getCanonicalPath()
+ + File.separator + label );
+ // check file exist
+ Assert.assertTrue(wikittyOnFS.exists());
+
+ // Criteria to find wikittypubtext/data with label starts with
+ Search mainRequest = Search.query();
+ Search subRoqu = mainRequest.or();
+
+ // must have the type of wikittypubtext/wikittypubdata
+ subRoqu.exteq(WikittyPubText.EXT_WIKITTYPUBTEXT).exteq(
+ WikittyPubData.EXT_WIKITTYPUBDATA);
+ Criteria criteriaOnLabels = mainRequest.exteq(WikittyLabel.EXT_WIKITTYLABEL)
+ .sw(WikittyLabel.FQ_FIELD_WIKITTYLABEL_LABELS, labels.get(1))
+ .criteria();
+
+ int totalBeforeDelete = proxy.findAllIdByCriteria(allCrit).getNumFound();
+
+ int numConcerned = proxy.findAllIdByCriteria(criteriaOnLabels).getNumFound();
+
+
+ FileUtil.deleteRecursively( wikittyOnFS);
+
+
+ int numAfterDelete=proxy.findAllIdByCriteria(allCrit).getNumFound();
+ // assert all wikitty concerned are deleted
+ Assert.assertNotSame(numAfterDelete, totalBeforeDelete);
+ Assert.assertEquals(numAfterDelete, totalBeforeDelete-numConcerned);
+
+ }
+
+
}
1
0
r1104 - trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 02 Aug '11
by mfortun@users.nuiton.org 02 Aug '11
02 Aug '11
Author: mfortun
Date: 2011-08-02 11:13:37 +0200 (Tue, 02 Aug 2011)
New Revision: 1104
Url: http://nuiton.org/repositories/revision/wikitty/1104
Log:
* add some tests
Modified:
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java
Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java 2011-08-01 16:10:14 UTC (rev 1103)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java 2011-08-02 09:13:37 UTC (rev 1104)
@@ -1,21 +1,104 @@
package org.nuiton.wikitty.publication;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Properties;
+
+import junit.framework.Assert;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.util.FileUtil;
+
public class PropertiesExtendedTest {
-
- /*
- * 1) création d'un properties extended écriture de chose dedans
- * vérification ya tout
- *
- * 2) création fichier de propriété classiquement et vérifier bien loadé
- *
- * 3) test sauvegarde
- *
- * 4) changement de file en passant
- *
- *
- *
- *
+
+ public File tempHome;
+ public Properties props;
+ public File propsFile;
+
+
+ @Before
+ public void init() throws IOException{
+ tempHome = new File(FileUtils.getTempDirectory().getCanonicalFile()
+ + File.separator + "wikittyFileUtilTest");
+
+ if (tempHome.exists()){
+ FileUtil.deleteRecursively(tempHome);
+
+ }
+ tempHome.mkdir();
+
+ propsFile = new File(tempHome.getCanonicalPath()+File.separator+"props.properties");
+
+ if(propsFile.exists()){
+ propsFile.delete();
+ }
+ propsFile.createNewFile();
+
+
+ props = new Properties();
+ props.put("propertie1", "value1");
+ props.put("propertie2", "value2");
+ props.put("propertie3", "value3");
+ props.put("propertie4", "value4");
+ props.put("propertie5", "value5");
+ props.put("propertie6", "value6");
+
+ }
+
+ @After
+ public void delete(){
+ FileUtil.deleteRecursively(tempHome);
+ propsFile.delete();
+ }
+
+ /**
+ * test how to write and store with properties extended
+ * @throws FileNotFoundException
+ * @throws IOException
*/
+ @Test
+ public void testWrite() throws FileNotFoundException, IOException{
+
+ PropertiesExtended propsExtended = new PropertiesExtended(propsFile);
+ // assert empty
+ Assert.assertEquals(0, propsExtended.keySet().size());
+
+ // put in
+ propsExtended.put("propertie1", "value1");
+
+ Properties proper = new Properties();
+
+ proper.load(new FileReader(propsFile));
+
+ Assert.assertNull(proper.get("propertie1"));
+
+ propsExtended.store();
+
+ proper.load(new FileReader(propsFile));
+ // assert after save that propertie have been set
+ Assert.assertEquals("value1", proper.get("propertie1"));
+ }
-
+ @Test
+ public void testLoad() throws FileNotFoundException, IOException {
+ PropertiesExtended propsExtended = new PropertiesExtended(propsFile);
+ // assert empty
+ Assert.assertEquals(0, propsExtended.keySet().size());
+
+ FileWriter fw = new FileWriter(propsFile);
+
+ props.store(fw, "");
+
+ // load properties from file
+ propsExtended.load(propsFile);
+
+ // assert properties are write
+ Assert.assertEquals(props.size(), propsExtended.keySet().size());
+ }
}
Modified: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java 2011-08-01 16:10:14 UTC (rev 1103)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java 2011-08-02 09:13:37 UTC (rev 1104)
@@ -1,12 +1,86 @@
package org.nuiton.wikitty.publication;
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.Test;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.StringUtil;
+
public class WikittyFileUtilTest {
-
-
/*
* 1) test création du path à partir de wikitty
*
* 2) test de la cohérence dans la création des paths à partir de label
*/
+
+ /**
+ * Test the label conversion to path
+ */
+ @Test
+ public void testStringLabelToPath() {
+
+ List<String> listLabel = new LinkedList<String>();
+ listLabel.add("sub1");
+ listLabel.add("sub2");
+ listLabel.add("sub3");
+ // construct label
+ String label = StringUtil.join(listLabel,
+ WikittyFileUtil.WIKITTY_LABEL_SEPARATOR, true);
+ // contruct path
+ String path = StringUtil.join(listLabel, File.separator, true);
+
+ // convert label to path
+ String resultPath = WikittyFileUtil.labelToPath(label);
+
+ Assert.assertEquals(resultPath, path);
+ }
+
+
+ /**
+ * Test the path creation from a label
+ * @throws IOException
+ */
+ @Test
+ public void testDirectoryCreationFromPath() throws IOException {
+
+ List<String> listLabel = new LinkedList<String>();
+ listLabel.add("sub1");
+ listLabel.add("sub2");
+ listLabel.add("sub3");
+ // construct label
+ String label = StringUtil.join(listLabel,
+ WikittyFileUtil.WIKITTY_LABEL_SEPARATOR, true);
+
+ // contruct path
+ String path = StringUtil.join(listLabel, File.separator, true);
+
+ File home = new File(FileUtils.getTempDirectory().getCanonicalFile()
+ + File.separator + "wikittyFileUtilTest");
+
+ // assert the temporary file does not exist
+ if (home.exists()){
+ FileUtil.deleteRecursively(home);
+
+ }
+ home.mkdir();
+
+
+ File resultCreated = new File(home.getCanonicalPath()+File.separator+path);
+ // assert the complete path not exist
+ Assert.assertFalse(resultCreated.exists());
+ // construct the directory
+ WikittyFileUtil.createFilesFromLabelPath(home, label);
+ // assert the diretories exists
+ Assert.assertTrue(resultCreated.exists());
+
+ FileUtil.deleteRecursively(home);
+ }
+
}
1
0
r1103 - in trunk/wikitty-publication/src: main/java/org/nuiton/wikitty/publication test/java/org/nuiton/wikitty/publication test/java/org/nuiton/wikitty/publication/externalize test/java/org/nuiton/wikitty/publication/synchro
by mfortun@users.nuiton.org 01 Aug '11
by mfortun@users.nuiton.org 01 Aug '11
01 Aug '11
Author: mfortun
Date: 2011-08-01 18:10:14 +0200 (Mon, 01 Aug 2011)
New Revision: 1103
Url: http://nuiton.org/repositories/revision/wikitty/1103
Log:
* add class text with algorithm
* correct local value to static
Added:
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/UiCodeDecoratorTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/CodeDecoratorCompilerClassTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoaderTest.java
trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/
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/WikittyFileUtil.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyFileUtil.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyFileUtil.java 2011-08-01 13:25:39 UTC (rev 1102)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyFileUtil.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -7,6 +7,9 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.FileUtil;
import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.WikittyLabel;
+import org.nuiton.wikitty.entities.WikittyLabelAbstract;
/**
*
@@ -22,6 +25,7 @@
*/
static public String WIKITTY_FILE_META_PROPERTIES_FILE = "meta.properties";
+ static public String WIKITTY_LABEL_SEPARATOR=".";
/*
* Need a different file for id and meta information about wikittiesFiles
* because with this solution we can simply read the ids with props.keySet()
@@ -44,7 +48,7 @@
String result = label;
- result = result.replace(".", File.separator);
+ result = result.replace(WIKITTY_LABEL_SEPARATOR, File.separator);
// correct the pb with directory name begin by .
result = result.replace(File.separator + File.separator, File.separator
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/PropertiesExtendedTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,21 @@
+package org.nuiton.wikitty.publication;
+
+public class PropertiesExtendedTest {
+
+ /*
+ * 1) création d'un properties extended écriture de chose dedans
+ * vérification ya tout
+ *
+ * 2) création fichier de propriété classiquement et vérifier bien loadé
+ *
+ * 3) test sauvegarde
+ *
+ * 4) changement de file en passant
+ *
+ *
+ *
+ *
+ */
+
+
+}
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/UiCodeDecoratorTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/UiCodeDecoratorTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/UiCodeDecoratorTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,25 @@
+package org.nuiton.wikitty.publication;
+
+public class UiCodeDecoratorTest {
+
+
+ /*
+ *Test pour différent code.
+ *voir si ça gère quand ya des <%=%>
+ *ou pas
+ *
+ */
+
+ /*
+ * créer du code html avec rien comme code et voir que le code est bien
+ * décoré quand même
+ *
+ * 2) mettre uniquement des <%= %> dedans
+ * 3) mettre uniquement <% %> dedans
+ *
+ * 4) mixer <% et <%=
+ *
+ * 5) balises + html
+ */
+
+}
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyFileUtilTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,12 @@
+package org.nuiton.wikitty.publication;
+
+public class WikittyFileUtilTest {
+
+
+
+ /*
+ * 1) test création du path à partir de wikitty
+ *
+ * 2) test de la cohérence dans la création des paths à partir de label
+ */
+}
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/WikittyPublicationFallbackServiceTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,26 @@
+package org.nuiton.wikitty.publication;
+
+public class WikittyPublicationFallbackServiceTest {
+
+
+ /*
+ * Instancier un wikitty service sur FS et un sur cajo
+ * mettre des wikitty dans les deux différent 10-10, et 5 de plus en commun
+ *
+ * 1) test de l'affichage des 15 wikitty
+ *
+ * 2) test prévalence de ceux sur le premier
+ *
+ * 3) test de sauvegarde qui se mettent sur le premier
+ *
+ * 4) test des recherches limités qui se complétent
+ *
+ * 5) suppression
+ *
+ * 6) édition/sauvegarde d'un wikitty qui n'est pas sur le "main" au départ
+ *
+ *
+ *
+ */
+
+}
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/CodeDecoratorCompilerClassTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/CodeDecoratorCompilerClassTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/CodeDecoratorCompilerClassTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,24 @@
+package org.nuiton.wikitty.publication.externalize;
+
+
+public class CodeDecoratorCompilerClassTest {
+
+
+ /*
+ * Ce test sera pour tester la compilation d'un wikitty pub text
+ * en pub text compiled et son éxécution.
+ *
+ * 1) créer un wikittyPubText avec du javascript, vérifier le code décorer
+ * (externalize partie décoration)
+ *
+ * 2) la même chose avec du code java
+ * (externalize partie décoration)
+ *
+ * 3) faire la compilation du javascript et l'éxécution
+ * (externalize partie décoration+compileHelper+classLoaderHelper)
+ *
+ * 4) faire la compilation du java et l'éxécution
+ * (externalize partie décorations+compileHelper+classLoaderHelper)
+ */
+
+}
Added: 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 (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalizeTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,20 @@
+package org.nuiton.wikitty.publication.externalize;
+
+public class WikittyPublicationExternalizeTest {
+
+
+ /*
+ * 1) créer un repos de wikitty local
+ *
+ * 2) externalizer, véfifier le jar, que le fichier temporaire
+ * n'existe plus.
+ *
+ * 3) vérifier la présence de .java, .class et le fichier correspondant
+ * pour les wikittypubtext
+ *
+ *
+ *
+ */
+
+
+}
Added: trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoaderTest.java
===================================================================
--- trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoaderTest.java (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoaderTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,21 @@
+package org.nuiton.wikitty.publication.externalize;
+
+public class WikittyServiceJarLoaderTest {
+
+
+ /*
+ * Liste des tests à faire:
+ *
+ * 1) S'assurer du nombre de wikitty sauvegardé
+ *
+ * 2) s'assurer que les wikittys sont toujours les mêmes
+ *
+ * 3) s'assurer que les stores ne fonctionnent pas
+ *
+ * 4) la liste des extension disponible
+ *
+ * 5) faire des recherches celon critéria différents
+ *
+ */
+
+}
Added: 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 (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystemTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,26 @@
+package org.nuiton.wikitty.publication.synchro;
+
+public class WikittyPublicationFileSystemTest {
+
+
+/*
+ * Liste des tests à faire:
+ *
+ * 1) Crééer une collection de wikitty et les sauvegarder s'assurer on a les mêmes
+ *
+ * 2) s'assurer que les labels sont bien mit
+ *
+ * 3) test avec des wikittys pub data et pub text
+ *
+ * 4) faire des modifications en dehors du service et voir que le service le voit bien
+ * 4-1 suppression
+ * 4-2 modification
+ *
+ * 5) delete par le service
+ *
+ * 6) update par le service
+ *
+ *
+ */
+
+}
Added: 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 (rev 0)
+++ trunk/wikitty-publication/src/test/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronizeTest.java 2011-08-01 16:10:14 UTC (rev 1103)
@@ -0,0 +1,34 @@
+package org.nuiton.wikitty.publication.synchro;
+
+public class WikittyPublicationSynchronizeTest {
+
+
+ /*
+ * Liste des tests à faire:
+ *
+ * 1) créer un wikitty service file system et un autre sur cajo
+ * créer des wikittys et les mettres dans un puis synchroniser avec l'autre
+ * et voir que tout est envoyé
+ *
+ * 2) créer des nouveau sur l'un wikitty service, modifier des anciens
+ * et voir que seulement les anciens sont mis à jour
+ *
+ * 3) supprimer et modifier, plus nouveau et voir que seulement ceux supprimer
+ * passent
+ *
+ * 4) la même chose avec la gestion de la récursion pour update
+ *
+ * 5) la même chose avec la gestion de la récursion pour existing
+ *
+ * 6) la même chose avec la gestion de la récursion pour delete
+ *
+ * 7) raccourci update
+ *
+ * 8) raccourci existing
+ *
+ * 9) raccourci delete
+ *
+ *
+ */
+
+}
1
0
r1102 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 01 Aug '11
by mfortun@users.nuiton.org 01 Aug '11
01 Aug '11
Author: mfortun
Date: 2011-08-01 15:25:39 +0200 (Mon, 01 Aug 2011)
New Revision: 1102
Url: http://nuiton.org/repositories/revision/wikitty/1102
Log:
* improve mimeType handling
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.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-01 09:17:38 UTC (rev 1101)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-01 13:25:39 UTC (rev 1102)
@@ -24,9 +24,7 @@
*/
package org.nuiton.wikitty.publication;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.script.ScriptEngineManager;
@@ -48,6 +46,7 @@
*/
protected Map<String, String> mapExtensionMime;
protected ScriptEngineManager manager;
+ protected UiCodeDecorator decorator;
/**
* The default mime type
@@ -56,7 +55,7 @@
public MimeTypePubHelper() {
this.mapExtensionMime = new HashMap<String, String>();
-
+ decorator = new UiCodeDecorator();
manager = ScriptEvaluator.getScriptEnginManager(null);
@@ -104,7 +103,10 @@
*/
public boolean isPubTextMime(String mimeType) {
// will check if there is an engine for the mimetype
- return manager.getEngineByMimeType(mimeType)!=null;
+
+ boolean result = manager.getEngineByMimeType(mimeType)!=null;
+ result = result || decorator.isMimeTypeUi(mimeType);
+ return result;
}
/**
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-08-01 09:17:38 UTC (rev 1101)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-08-01 13:25:39 UTC (rev 1102)
@@ -137,22 +137,20 @@
return false;
}
String mime = WikittyPubTextHelper.getMimeType(wikitty);
- String[] mimeParsed = StringUtil.split(mime, MIME_SEP);
- boolean result = firstPartMimeHandled.contains(mimeParsed[0]);
-
- return result;
+ return isMimeTypeUi(mime);
}
public boolean isTransformationNeeded(WikittyPubData wikitty) {
String mime = wikitty.getMimeType();
+ return isMimeTypeUi(mime);
+ }
+
+
+ public boolean isMimeTypeUi(String mime){
String[] mimeParsed = StringUtil.split(mime, MIME_SEP);
boolean result = firstPartMimeHandled.contains(mimeParsed[0]);
-
return result;
}
-
-
-
}
1
0
r1101 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize
by mfortun@users.nuiton.org 01 Aug '11
by mfortun@users.nuiton.org 01 Aug '11
01 Aug '11
Author: mfortun
Date: 2011-08-01 11:17:38 +0200 (Mon, 01 Aug 2011)
New Revision: 1101
Url: http://nuiton.org/repositories/revision/wikitty/1101
Log:
* change com.sun import to javax.tools to obtain java compiler
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java 2011-07-28 16:08:38 UTC (rev 1100)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java 2011-08-01 09:17:38 UTC (rev 1101)
@@ -1,10 +1,7 @@
package org.nuiton.wikitty.publication.externalize;
-
-
import static org.nuiton.i18n.I18n._;
-
import java.io.File;
import java.io.PrintWriter;
@@ -25,34 +22,30 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.FileUtil;
-import com.sun.tools.javac.api.JavacTool;
-
-
/**
* Class reuse from the isis fish project.
*
*
* Compile helper used to compile Java code.
*
- * JDK must be installed to use compilation.
- * (JRE won't work).
+ * JDK must be installed to use compilation. (JRE won't work).
*
* Created: 12 janv. 2006 15:29:53
- *
+ *
* @author poussin
* @version $Revision: 3124 $
- *
- * Last update: $Date: 2010-11-29 19:14:09 +0100 (lun. 29 nov. 2010) $
- * by : $Author: chatellier $
+ *
+ * Last update: $Date: 2010-11-29 19:14:09 +0100 (lun. 29 nov. 2010) $
+ * by : $Author: chatellier $
*/
public class CompileHelper {
/** Logger for this class. */
private static final Log log = LogFactory.getLog(CompileHelper.class);
-
/**
- * Recherche tous les fichiers qui un source plus recent que la version compilé.
+ * Recherche tous les fichiers qui un source plus recent que la version
+ * compilé.
*
* @param srcDir
* @param destDir
@@ -69,25 +62,23 @@
return result;
}
-
-
-
-
-
/**
* Methode permettant de compiler un fichier Java.
*
- * @param rootSrc le répertoire ou se trouve les sources
- * @param src Le fichier source a compiler, il doit etre dans un sous
- * répertoire de rootSrc en fonction du package
- * @param dest le repertoire destination de la compilation
- * @param out l'objet sur lequel on ecrit la sortie (erreur) de la
- * compilation
- * @return un nombre different de 0 s'il y a une erreur
- * <li> -1000 si l'exception vient de la recherche du compilateur par
- * introspection
- * <li> -10000 si une autre exception
- * <li> sinon les valeurs retourné par le compilateur java
+ * @param rootSrc
+ * le répertoire ou se trouve les sources
+ * @param src
+ * Le fichier source a compiler, il doit etre dans un sous
+ * répertoire de rootSrc en fonction du package
+ * @param dest
+ * le repertoire destination de la compilation
+ * @param out
+ * l'objet sur lequel on ecrit la sortie (erreur) de la
+ * compilation
+ * @return un nombre different de 0 s'il y a une erreur <li>-1000 si
+ * l'exception vient de la recherche du compilateur par
+ * introspection <li>-10000 si une autre exception <li>sinon les
+ * valeurs retourné par le compilateur java
*/
public static int compile(File rootSrc, File src, File dest, PrintWriter out) {
int result = compile(rootSrc, Collections.singletonList(src), dest, out);
@@ -97,17 +88,20 @@
/**
* Methode permettant de compiler un ensemble de fichiers Java.
*
- * @param rootSrc le répertoire ou se trouve les sources
- * @param src Le fichier source a compiler, il doit etre dans un sous
- * répertoire de rootSrc en fonction du package
- * @param dest le repertoire destination de la compilation
- * @param out l'objet sur lequel on ecrit la sortie (erreur) de la
- * compilation
- * @return un nombre different de 0 s'il y a une erreur
- * <li> -1000 si l'exception vient de la recherche du compilateur par
- * introspection
- * <li> -10000 si une autre exception
- * <li> sinon les valeurs retourné par le compilateur java
+ * @param rootSrc
+ * le répertoire ou se trouve les sources
+ * @param src
+ * Le fichier source a compiler, il doit etre dans un sous
+ * répertoire de rootSrc en fonction du package
+ * @param dest
+ * le repertoire destination de la compilation
+ * @param out
+ * l'objet sur lequel on ecrit la sortie (erreur) de la
+ * compilation
+ * @return un nombre different de 0 s'il y a une erreur <li>-1000 si
+ * l'exception vient de la recherche du compilateur par
+ * introspection <li>-10000 si une autre exception <li>sinon les
+ * valeurs retourné par le compilateur java
*/
public static int compile(File rootSrc, Collection<File> src, File dest,
PrintWriter out) {
@@ -128,16 +122,19 @@
/**
* Compile un fichier java.
*
- * @param src les fichiers java source
- * @param dest le repertoire destination
+ * @param src
+ * les fichiers java source
+ * @param dest
+ * le repertoire destination
*/
protected static int compile(List<File> classpath, Collection<File> src,
File dest, PrintWriter out) {
dest.mkdirs();
-
+
int result = -1000;
try {
- JavaCompiler compiler = JavacTool.create();
+ JavaCompiler compiler = javax.tools.ToolProvider
+ .getSystemJavaCompiler();
// Use system compiler
// JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler
@@ -149,7 +146,8 @@
String classpathAsString = getClassPathAsString(classpath);
List<String> args = new ArrayList<String>();
args.add("-g");
- // Show a description of each use or override of a deprecated member or class.
+ // Show a description of each use or override of a deprecated member
+ // or class.
args.add("-deprecation");
args.add("-classpath");
args.add(classpathAsString);
@@ -172,15 +170,17 @@
}
/**
- * Return full classpath (for compilation or javadoc) as string.
- * Separated by {@link File#pathSeparator}.
+ * Return full classpath (for compilation or javadoc) as string. Separated
+ * by {@link File#pathSeparator}.
*
* Add :
* <ul>
- * <li>System.getProperty("java.class.path")
- * <li>All first jar dependency (META-INF/MANIFEST.MF)
+ * <li>System.getProperty("java.class.path")
+ * <li>All first jar dependency (META-INF/MANIFEST.MF)
* </ul>
- * @param classpath initial classpath
+ *
+ * @param classpath
+ * initial classpath
* @return classpath as string
* @throws Exception
*/
@@ -193,8 +193,8 @@
// classpath.
// result in duplicated entry or non normalised entry
// en compilation fail some times
- //+ File.pathSeparator + System.getProperty("java.class.path");
-
+ // + File.pathSeparator + System.getProperty("java.class.path");
+
// Ajout des jars
for (Enumeration<?> e = CompileHelper.class.getClassLoader()
.getResources("META-INF/MANIFEST.MF"); e.hasMoreElements();) {
@@ -230,12 +230,4 @@
return result;
}
-
-
-
-
-
-
-
-
}
1
0
r1100 - in trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication: . externalize
by mfortun@users.nuiton.org 28 Jul '11
by mfortun@users.nuiton.org 28 Jul '11
28 Jul '11
Author: mfortun
Date: 2011-07-28 18:08:38 +0200 (Thu, 28 Jul 2011)
New Revision: 1100
Url: http://nuiton.org/repositories/revision/wikitty/1100
Log:
* change how work the mimeType helper
* unused import
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.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-07-28 13:33:54 UTC (rev 1099)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-07-28 16:08:38 UTC (rev 1100)
@@ -29,6 +29,10 @@
import java.util.List;
import java.util.Map;
+import javax.script.ScriptEngineManager;
+
+import org.nuiton.wikitty.ScriptEvaluator;
+
/**
* Class used to determine mimetype for an extension, used to determine type of
* wikittypub (data or text) with the extension and the mime type
@@ -43,25 +47,19 @@
* Mapping between extention and mime type, key: extension, value: mimeType
*/
protected Map<String, String> mapExtensionMime;
+ protected ScriptEngineManager manager;
/**
- * White list of mime type that have to be transform as a wikittyPubText
- */
- protected List<String> mimePubText;
-
- /**
* The default mime type
*/
public static String DEFAULT_MIME_TYPE = "application/octet-stream";
public MimeTypePubHelper() {
this.mapExtensionMime = new HashMap<String, String>();
- this.mimePubText = new ArrayList<String>();
+
- // TODO create a property file to store and handle mimetype for pub
- // text
- mimePubText.add("application/javascript");
-
+ manager = ScriptEvaluator.getScriptEnginManager(null);
+
mapExtensionMime.put("wp", "application/javascript");
mapExtensionMime.put("js", "application/javascript");
mapExtensionMime.put("jpg", "image/jpeg");
@@ -76,13 +74,7 @@
this.mapExtensionMime = mapExtensionMime;
}
- public List<String> getMimePubText() {
- return mimePubText;
- }
- public void setMimePubText(List<String> mimePubText) {
- this.mimePubText = mimePubText;
- }
/**
* Return the corresponding mime Type for an extension, default if not
@@ -111,7 +103,8 @@
* @return if the mimetype of a file correspond to a wikittyPubText
*/
public boolean isPubTextMime(String mimeType) {
- return mimePubText.contains(mimeType);
+ // will check if there is an engine for the mimetype
+ return manager.getEngineByMimeType(mimeType)!=null;
}
/**
@@ -126,15 +119,6 @@
}
/**
- * Add a mimeType corresponding to a WikittyPubText
- *
- * @param mime
- */
- public void addMimeForPubText(String mime) {
- mimePubText.add(mime);
- }
-
- /**
* Add an entry in the map that store mapping between extension and
* mimeType.
*
@@ -144,4 +128,14 @@
public void addExtensionMime(String extension, String mime) {
mapExtensionMime.put(extension, mime);
}
+
+ public ScriptEngineManager getManager() {
+ return manager;
+ }
+
+ public void setManager(ScriptEngineManager manager) {
+ this.manager = manager;
+ }
+
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 13:33:54 UTC (rev 1099)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 16:08:38 UTC (rev 1100)
@@ -14,6 +14,7 @@
import org.nuiton.processor.filters.GeneratorTemplatesFilterIn;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
@@ -24,6 +25,9 @@
*
* décorer à l'inverse en fait transformer du html en js qui contient du
* html par exemple
+ *
+ * regex for html end token need to add /n at the end
+ * "</[\\w\\d]*>"
*/
protected String DEFAULT_MIME_TYPE_RETURN = "text/html";
@@ -48,6 +52,7 @@
+
}
public UiCodeDecorator() {
@@ -138,4 +143,16 @@
return result;
}
+
+ public boolean isTransformationNeeded(WikittyPubData wikitty) {
+ String mime = wikitty.getMimeType();
+ String[] mimeParsed = StringUtil.split(mime, MIME_SEP);
+ boolean result = firstPartMimeHandled.contains(mimeParsed[0]);
+
+ return result;
+ }
+
+
+
+
}
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-07-28 13:33:54 UTC (rev 1099)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-07-28 16:08:38 UTC (rev 1100)
@@ -25,7 +25,6 @@
import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
-import org.nuiton.wikitty.publication.entities.WikittyPubTextImpl;
import org.nuiton.wikitty.publication.synchro.WikittyPublicationSynchronize;
import org.nuiton.wikitty.publication.synchro.WikittyPublicationFileSystem;
import org.nuiton.wikitty.search.Criteria;
1
0
r1099 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize
by mfortun@users.nuiton.org 28 Jul '11
by mfortun@users.nuiton.org 28 Jul '11
28 Jul '11
Author: mfortun
Date: 2011-07-28 15:33:54 +0200 (Thu, 28 Jul 2011)
New Revision: 1099
Url: http://nuiton.org/repositories/revision/wikitty/1099
Log:
* add externalize methods
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java
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-07-28 13:27:31 UTC (rev 1098)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-07-28 13:33:54 UTC (rev 1099)
@@ -41,7 +41,8 @@
*/
public class WikittyPublicationExternalize {
- static private Log log = LogFactory.getLog(WikittyPublicationExternalize.class);
+ static private Log log = LogFactory
+ .getLog(WikittyPublicationExternalize.class);
static public String TEMPORARY_FILE_NAME = "tempBeforeJar";
static public String DEFAULT_JAR_NAME = "pub-externalized";
@@ -81,14 +82,29 @@
appconfig.setOption(WikittyConfigOption.WIKITTY_SERVER_URL.getKey(),
urlFileSystem);
- WikittyProxy proxy = new WikittyProxy(
- WikittyServiceFactory.buildWikittyService(appconfig));
+ externalize(appconfig);
+ }
+
+ static public void externalize(ApplicationConfig conf)
+ throws ArgumentsParserException, IOException {
// Found all wikity on the file System
Criteria findAllCrit = Search.query().keyword("*").criteria();
- PagedResult<Wikitty> allWikittyOnFS = proxy
- .findAllByCriteria(findAllCrit);
+ externalize(conf, findAllCrit);
+ }
+
+ static public void externalize(ApplicationConfig conf, Criteria crit)
+ throws ArgumentsParserException, IOException {
+
+ File currentFile = new File(".");
+ currentFile = new File(currentFile.getAbsolutePath()).getParentFile();
+
+ WikittyProxy proxy = new WikittyProxy(
+ WikittyServiceFactory.buildWikittyService(conf));
+
+ PagedResult<Wikitty> allWikittyOnFS = proxy.findAllByCriteria(crit);
+
// make tempfile
File tempDirectory = new File(currentFile + File.separator
+ TEMPORARY_FILE_NAME);
@@ -162,8 +178,6 @@
wikittyFile.createNewFile();
FileUtil.writeString(wikittyFile, content);
- WikittyPubText currentPubText = new WikittyPubTextImpl(wikit);
-
File javaFile = new File(tempDirectory.getAbsolutePath()
+ File.separator + labelPath + name + SOURCE_EXTENSION);
javaFile.createNewFile();
@@ -213,6 +227,7 @@
// delete tempfile
FileUtil.deleteRecursively(tempDirectory);
+
}
/*
@@ -242,7 +257,7 @@
UiCodeDecorator uidecDecorator = new UiCodeDecorator();
if (uidecDecorator.isTransformationNeeded(wikitty)) {
try {
- wikitty= uidecDecorator.transformPubUIToPubText(wikitty);
+ wikitty = uidecDecorator.transformPubUIToPubText(wikitty);
} catch (IOException e) {
log.debug("Error while transform ui");
}
1
0
r1098 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize
by mfortun@users.nuiton.org 28 Jul '11
by mfortun@users.nuiton.org 28 Jul '11
28 Jul '11
Author: mfortun
Date: 2011-07-28 15:27:31 +0200 (Thu, 28 Jul 2011)
New Revision: 1098
Url: http://nuiton.org/repositories/revision/wikitty/1098
Log:
* integrate UiCodeDecorator inside externalize Mechanism
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java
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-07-28 13:15:33 UTC (rev 1097)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-07-28 13:27:31 UTC (rev 1098)
@@ -6,6 +6,8 @@
import java.util.Set;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ArgumentsParserException;
import org.nuiton.util.FileUtil;
@@ -16,6 +18,7 @@
import org.nuiton.wikitty.entities.WikittyLabel;
import org.nuiton.wikitty.entities.WikittyLabelHelper;
import org.nuiton.wikitty.publication.PropertiesExtended;
+import org.nuiton.wikitty.publication.UiCodeDecorator;
import org.nuiton.wikitty.publication.WikittyFileUtil;
import org.nuiton.wikitty.publication.WikittyPublicationConstant;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
@@ -38,6 +41,7 @@
*/
public class WikittyPublicationExternalize {
+ static private Log log = LogFactory.getLog(WikittyPublicationExternalize.class);
static public String TEMPORARY_FILE_NAME = "tempBeforeJar";
static public String DEFAULT_JAR_NAME = "pub-externalized";
@@ -71,7 +75,8 @@
String Label = currentFile.getName();
// String urlFileSystem = "file:///home/User/testWP#wp";
- String urlFileSystem = currentFile.getParent() + WikittyPublicationSynchronize.LABEL_DELIM + Label;
+ String urlFileSystem = currentFile.getParent()
+ + WikittyPublicationSynchronize.LABEL_DELIM + Label;
appconfig.setOption(WikittyConfigOption.WIKITTY_SERVER_URL.getKey(),
urlFileSystem);
@@ -101,7 +106,8 @@
PropertiesExtended metaProperties = new PropertiesExtended(
filePropertiesMeta);
- metaProperties.setProperty(PATH_SEPARATOR_PROPERTIE_KEY, File.separator);
+ metaProperties
+ .setProperty(PATH_SEPARATOR_PROPERTIE_KEY, File.separator);
// iterate wikitty
// - write file
// - write property
@@ -161,7 +167,7 @@
File javaFile = new File(tempDirectory.getAbsolutePath()
+ File.separator + labelPath + name + SOURCE_EXTENSION);
javaFile.createNewFile();
- String codeClass = getCode(currentPubText);
+ String codeClass = getCode(wikit);
FileUtil.writeString(javaFile, codeClass);
File classDirectory = new File(tempDirectory.getAbsolutePath()
@@ -232,10 +238,19 @@
* en jar et on va supprimer le dossier tempJar
*/
- public static String getCode(WikittyPubText wikitty) {
- String content = wikitty.getContent();
- String mimeType = wikitty.getMimeType();
- String className = wikitty.getName();// +"PublicationClass";
+ public static String getCode(Wikitty wikitty) {
+ UiCodeDecorator uidecDecorator = new UiCodeDecorator();
+ if (uidecDecorator.isTransformationNeeded(wikitty)) {
+ try {
+ wikitty= uidecDecorator.transformPubUIToPubText(wikitty);
+ } catch (IOException e) {
+ log.debug("Error while transform ui");
+ }
+ }
+
+ String content = WikittyPubTextHelper.getContent(wikitty);
+ String mimeType = WikittyPubTextHelper.getMimeType(wikitty);
+ String className = WikittyPubTextHelper.getName(wikitty);// +"PublicationClass";
String classContent = StringUtils.EMPTY;
// Set<String> labels = (Set<String>)
@@ -266,7 +281,7 @@
classContent += "String mimeType = \""
+ StringEscapeUtils.escapeJava(mimeType) + "\";";
classContent += "String criteriaName= \"" + Element.ELT_ID + ":"
- + wikitty.getWikittyId() + "\";";
+ + wikitty.getId() + "\";";
classContent += " result = ScriptEvaluator.eval(null, criteriaName, content, mimeType, bindings);";
classContent += "return result;";
} else {
@@ -280,10 +295,12 @@
*/
// contruct variables that can be used inside the java code.
classContent = "PublicationContext "
- + WikittyPublicationConstant.CONTEXT_VAR + " = bindings.get(\""
+ + WikittyPublicationConstant.CONTEXT_VAR
+ + " = bindings.get(\""
+ WikittyPublicationConstant.CONTEXT_VAR + "\");";
classContent = "WikittyPublicationConstant "
- + WikittyPublicationConstant.EVAL_VAR + " = bindings.get(\""
+ + WikittyPublicationConstant.EVAL_VAR
+ + " = bindings.get(\""
+ WikittyPublicationConstant.EVAL_VAR + "\");";
classContent = "String " + WikittyPublicationConstant.PAGE_NAME_VAR
+ " = bindings.get(\""
@@ -293,8 +310,8 @@
+ " = bindings.get(\""
+ WikittyPublicationConstant.SUBCONTEXT_VAR + "\");";
classContent = "Wikitty " + WikittyPublicationConstant.WIKITTY_VAR
- + " = bindings.get(\"" + WikittyPublicationConstant.WIKITTY_VAR
- + "\");";
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.WIKITTY_VAR + "\");";
classContent += content;
1
0
r1097 - in trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication: . action
by mfortun@users.nuiton.org 28 Jul '11
by mfortun@users.nuiton.org 28 Jul '11
28 Jul '11
Author: mfortun
Date: 2011-07-28 15:15:33 +0200 (Thu, 28 Jul 2011)
New Revision: 1097
Url: http://nuiton.org/repositories/revision/wikitty/1097
Log:
* correct eval action wikitty content where extract before replacement by uiCodeDecorator
* + others correction
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java 2011-07-28 09:39:11 UTC (rev 1096)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java 2011-07-28 13:15:33 UTC (rev 1097)
@@ -6,9 +6,31 @@
protected String stringDelim;
protected String concatChar;
protected String endingCar;
- protected String initializeOutputWriter;
+ protected String openingTemplate;
protected String closingWriterChar;
-
+ protected String closingTemplate;
+ protected String mimeType;
+
+
+
+ public String getMimeType() {
+ return mimeType;
+ }
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+ public String getOpeningTemplate() {
+ return openingTemplate;
+ }
+ public void setOpeningTemplate(String openingTemplate) {
+ this.openingTemplate = openingTemplate;
+ }
+ public String getClosingTemplate() {
+ return closingTemplate;
+ }
+ public void setClosingTemplate(String closingTemplate) {
+ this.closingTemplate = closingTemplate;
+ }
public String getClosingWriterChar() {
return closingWriterChar;
}
@@ -48,14 +70,8 @@
public void setEndingCar(String endingCar) {
this.endingCar = endingCar;
}
- public String getInitializeOutputWriter() {
- return initializeOutputWriter;
- }
- public void setInitializeOutputWriter(String prefixFirstWriteString) {
- this.initializeOutputWriter = prefixFirstWriteString;
- }
+
-
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 09:39:11 UTC (rev 1096)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 13:15:33 UTC (rev 1097)
@@ -4,7 +4,10 @@
import java.io.StringReader;
import java.io.StringWriter;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
+
import org.apache.commons.lang.StringUtils;
import org.nuiton.processor.Processor;
import org.nuiton.processor.filters.GeneratorTemplatesFilter;
@@ -27,35 +30,44 @@
protected String MIME_SEP = "/";
protected Map<String, FilterOption> filtersOptions;
+ protected Set<String> firstPartMimeHandled;
static protected FilterOption defaultFilterOption;
- protected String decoringInit = StringUtils.EMPTY;
- protected String decoringAffect;
- protected String decoringEnd;
-
static {
- defaultFilterOption= new FilterOption();
- defaultFilterOption.setInitializeOutputWriter("var result=\"");
+ defaultFilterOption = new FilterOption();
+ defaultFilterOption.setOpeningTemplate("var result=\"");
defaultFilterOption.setWriteString("result");
defaultFilterOption.setStringDelim("\"");
defaultFilterOption.setConcatChar("+");
- defaultFilterOption.setEndingCar(";");
+ defaultFilterOption.setEndingCar(";");
defaultFilterOption.setClosingWriterChar("");
defaultFilterOption.setOpeningWriterChar("+=");
+ defaultFilterOption.setClosingTemplate("\";");
+ defaultFilterOption.setMimeType("application/javascript");
+
+
+
}
-
-
+
public UiCodeDecorator() {
- filtersOptions= new HashMap<String, FilterOption>();
+ filtersOptions = new HashMap<String, FilterOption>();
+ firstPartMimeHandled = new HashSet<String>();
+
+ // add basic value js and htmlp
+ filtersOptions.put("javascript", defaultFilterOption);
+ firstPartMimeHandled.add("htmlp");
}
- public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException {
+ public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException {
-
-
+ if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ return wikitty;
+ }
+
GeneratorTemplatesFilter filter = new GeneratorTemplatesFilter();
- GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(filter);
+ GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(
+ filter);
String mime = WikittyPubTextHelper.getMimeType(wikitty);
String initialVersion = wikitty.getVersion();
@@ -80,50 +92,50 @@
filterIn.setEndCar(foption.getEndingCar());
filterIn.setOpeningWriterChar(foption.getOpeningWriterChar());
filterIn.setClosingWriterChar(foption.getClosingWriterChar());
- //filter.setPassEmptyLine(false);
-
-
- decoringEnd = foption.getStringDelim() + foption.getEndingCar();
- decoringAffect = foption.getInitializeOutputWriter();
+ String decoringAffect = foption.getOpeningTemplate();
// initialize new content
- String decoredContent = decoringInit;
+ String decoredContent = StringUtils.EMPTY;
// set default content result (override if wikitty content define it)
decoredContent += WikittyPublicationConstant.CONTEXT_VAR
+ ".setContentType(\"" + DEFAULT_MIME_TYPE_RETURN + "\")"
+ foption.getEndingCar();
- Processor proc= new Processor();
+ Processor proc = new Processor();
proc.setInputFilter(filterIn);
-
-
StringWriter writer = new StringWriter();
String content = WikittyPubTextHelper.getContent(wikitty);
StringReader reader = new StringReader(content);
// process string
proc.process(reader, writer);
-
-
-
+
decoredContent += decoringAffect;
// replace element between <% %> and <%= %>
decoredContent += writer.toString();
// end of string
- decoredContent += decoringEnd;
-
- WikittyPubTextHelper.setContent(wikitty,decoredContent);
- WikittyPubTextHelper.setMimeType(wikitty,mime);
+ decoredContent += foption.getClosingTemplate();
+ // set the content
+ WikittyPubTextHelper.setContent(wikitty, decoredContent);
+ // get associated mimeType and set it
+ WikittyPubTextHelper.setMimeType(wikitty, foption.getMimeType());
+ // restore version
wikitty.setVersion(initialVersion);
return wikitty;
}
-
- public boolean isTransformationNeeded(Wikitty wikitty){
- return true;
+
+ public boolean isTransformationNeeded(Wikitty wikitty) {
+ if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ return false;
+ }
+ String mime = WikittyPubTextHelper.getMimeType(wikitty);
+ String[] mimeParsed = StringUtil.split(mime, MIME_SEP);
+ boolean result = firstPartMimeHandled.contains(mimeParsed[0]);
+
+ return result;
}
-
-
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-07-28 09:39:11 UTC (rev 1096)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-07-28 13:15:33 UTC (rev 1097)
@@ -19,7 +19,6 @@
import org.nuiton.wikitty.ScriptEvaluator;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.publication.UiCodeDecorator;
import org.nuiton.wikitty.publication.WikittyPublicationConfig;
@@ -130,14 +129,10 @@
}
} else {
- String content = WikittyPubTextHelper.getContent(w);
-
- UiCodeDecorator decorator= new UiCodeDecorator();
-
-
- if (decorator.isTransformationNeeded(w)){
+ UiCodeDecorator decorator = new UiCodeDecorator();
+ if (decorator.isTransformationNeeded(w)) {
try {
- w=decorator.transformPubUIToPubText(w);
+ w = decorator.transformPubUIToPubText(w);
} catch (IOException e) {
log.debug("Error when processing the wikitty content");
// TODO Mfortun-2011-07-28 really handle exception
@@ -145,7 +140,9 @@
result = getError(context);
}
}
-
+
+ String content = WikittyPubTextHelper.getContent(w);
+
if (content == null) {
result = getError(context);
} else {
@@ -235,8 +232,6 @@
return WikittyPublicationConfig.getConfig();
}
-
-
@Override
public String makeUrl(String url) {
String finalUrl = url;
@@ -289,12 +284,13 @@
@Override
public Map<String, String> getArguments() {
- Map<String,String> result = new HashMap<String, String>();
-
- for( String argElm : ActionContext.getContext().getParameters().keySet()){
+ Map<String, String> result = new HashMap<String, String>();
+
+ for (String argElm : ActionContext.getContext().getParameters()
+ .keySet()) {
result.put(argElm, this.getArgument(argElm, ""));
}
-
+
return result;
}
1
0