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
August 2011
- 6 participants
- 125 discussions
r1165 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin
by mfortun@users.nuiton.org 17 Aug '11
by mfortun@users.nuiton.org 17 Aug '11
17 Aug '11
Author: mfortun
Date: 2011-08-17 12:28:39 +0200 (Wed, 17 Aug 2011)
New Revision: 1165
Url: http://nuiton.org/repositories/revision/wikitty/1165
Log:
*reorganise Static values
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConstant.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConstant.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConstant.java 2011-08-17 10:16:12 UTC (rev 1164)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConstant.java 2011-08-17 10:28:39 UTC (rev 1165)
@@ -21,9 +21,9 @@
*/
static final public String WIKITTY_VAR = "wpWikitty";
+ static final public String LABEL_DELIM = "#";
-
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-17 10:16:12 UTC (rev 1164)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-17 10:28:39 UTC (rev 1165)
@@ -424,7 +424,7 @@
for (int i = 0; i < namPath.length - 1; i++) {
label += namPath[i];
if (i < namPath.length - 2) {
- label += WikittyPublicationFileSystem.WIKITTYLABEL_SEPARATOR;
+ label += WikittyFileUtil.WIKITTY_LABEL_SEPARATOR;
}
}
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-17 10:16:12 UTC (rev 1164)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-08-17 10:28:39 UTC (rev 1165)
@@ -37,6 +37,7 @@
import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.entities.WikittyField;
import org.nuiton.wikitty.entities.WikittyImpl;
import org.nuiton.wikitty.entities.WikittyLabel;
import org.nuiton.wikitty.entities.WikittyLabelHelper;
@@ -78,8 +79,8 @@
final static Log log = LogFactory
.getLog(WikittyPublicationFileSystem.class);
- static public String WIKITTYLABEL_SEPARATOR = ".";
+
/**
* The working directory of the wikitty service
*/
@@ -966,7 +967,7 @@
if (child.isDirectory()
&& !child.getName().equals(PROPERTY_DIRECTORY)) {
harvestNewCheckModificationsAndDeleted(child, label
- + WIKITTYLABEL_SEPARATOR + child.getName());
+ + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR + child.getName());
} else if (!child.isDirectory()) {
// list all of the file non dir
listChildFileNonDir.add(child.getName());
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java 2011-08-17 10:28:39 UTC (rev 1165)
@@ -38,7 +38,6 @@
static public String SRC_DIR_NAME = "src";
static public String MAIN_DIR_NAME = "main";
-
/**
* Project.
*
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java 2011-08-17 10:28:39 UTC (rev 1165)
@@ -24,6 +24,8 @@
*/
package org.nuiton.wikitty.plugin;
+import org.nuiton.wikitty.publication.WikittyFileUtil;
+import org.nuiton.wikitty.publication.WikittyPublicationConstant;
import org.nuiton.wikitty.publication.synchro.WikittyPublicationSynchronize;
/**
@@ -39,9 +41,6 @@
*/
public class WPDeployMojo extends AbstractWPMojo {
- static public String LABEL_SEP = ".";
- static public String LABEL_DELIM = "#";
-
@Override
protected void init() throws Exception {
// TODO
@@ -53,12 +52,13 @@
// Use syncrhonise.
String origin = getProject().getBasedir().toURI().toURL()
.toExternalForm();
- origin += LABEL_DELIM + SRC_DIR_NAME + LABEL_SEP + MAIN_DIR_NAME;
+ origin += WikittyPublicationConstant.LABEL_DELIM + SRC_DIR_NAME
+ + WikittyFileUtil.WIKITTY_LABEL_SEPARATOR + MAIN_DIR_NAME;
String target = wikittyServiceUrl;
- target += LABEL_DELIM + applicationName;
+ target += WikittyPublicationConstant.LABEL_DELIM + applicationName;
- WikittyPublicationSynchronize.synchronisationServices(origin, target, true,
- false, false);
+ WikittyPublicationSynchronize.synchronisationServices(origin, target,
+ true, false, false);
}
}
1
0
r1164 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin
by mfortun@users.nuiton.org 17 Aug '11
by mfortun@users.nuiton.org 17 Aug '11
17 Aug '11
Author: mfortun
Date: 2011-08-17 12:16:12 +0200 (Wed, 17 Aug 2011)
New Revision: 1164
Url: http://nuiton.org/repositories/revision/wikitty/1164
Log:
*correct synchronise to allow the use with plugin, still need other correction within the commit-update mechanism
*complete deploy goal
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronize.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPJarMojo.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronize.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronize.java 2011-08-17 08:50:49 UTC (rev 1163)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationSynchronize.java 2011-08-17 10:16:12 UTC (rev 1164)
@@ -117,20 +117,7 @@
static public String HESSIAN_URI_PREFIX = "hessian";
-
- /*
- * Class don't have to be instantiate
- */
- private WikittyPublicationSynchronize() {
-
- }
-
- /**
- * @param args
- * @throws ArgumentsParserException
- */
- static public void main(String[] args) throws Exception {
-
+ static {
applicationConfig = new ApplicationConfig();
/*
@@ -170,14 +157,27 @@
applicationConfig
.addActionAlias("update",
"org.nuiton.wikitty.publication.synchro.WikittyPublication#update");
+ }
+
+
+ /*
+ * Class don't have to be instantiate
+ */
+ private WikittyPublicationSynchronize() {
+
+ }
+
+ /**
+ * @param args
+ * @throws ArgumentsParserException
+ */
+ static public void main(String[] args) throws Exception {
// parsing
applicationConfig.parse(args);
-
// execution
applicationConfig.doAction(0);
-
}
-
+
static public void synchronisation(String origin, String target)
throws URISyntaxException {
@@ -188,6 +188,16 @@
.getOptionAsBoolean(IS_DELETE_OPTION);
boolean isExisting = applicationConfig
.getOptionAsBoolean(IS_EXISTING_OPTION);
+
+ synchronisationServices(origin, target, isRecur, isDelete, isExisting);
+ }
+
+
+ static public void synchronisationServices(String origin, String target,
+ boolean isRecur, boolean isDelete, boolean isExisting)
+ throws URISyntaxException {
+
+
// update operation is the default operation
boolean isUpdate = !isDelete && !isExisting;
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java 2011-08-17 08:50:49 UTC (rev 1163)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/AbstractWPMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
@@ -35,6 +35,10 @@
*/
public abstract class AbstractWPMojo extends AbstractPlugin {
+ static public String SRC_DIR_NAME = "src";
+ static public String MAIN_DIR_NAME = "main";
+
+
/**
* Project.
*
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java 2011-08-17 08:50:49 UTC (rev 1163)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPDeployMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
@@ -24,9 +24,11 @@
*/
package org.nuiton.wikitty.plugin;
+import org.nuiton.wikitty.publication.synchro.WikittyPublicationSynchronize;
+
/**
* To deploy a wikitty publication.
- *
+ *
* @author tchemit <chemit(a)codelutin.com>
* @version $Id$
* @goal deploy
@@ -37,17 +39,26 @@
*/
public class WPDeployMojo extends AbstractWPMojo {
+ static public String LABEL_SEP = ".";
+ static public String LABEL_DELIM = "#";
+
@Override
protected void init() throws Exception {
- //TODO
+ // TODO
}
@Override
protected void doAction() throws Exception {
- //TODO
- getLog().info("TODO");
+ // Use syncrhonise.
+ String origin = getProject().getBasedir().toURI().toURL()
+ .toExternalForm();
+ origin += LABEL_DELIM + SRC_DIR_NAME + LABEL_SEP + MAIN_DIR_NAME;
+ String target = wikittyServiceUrl;
+ target += LABEL_DELIM + applicationName;
+ WikittyPublicationSynchronize.synchronisationServices(origin, target, true,
+ false, false);
}
}
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java 2011-08-17 08:50:49 UTC (rev 1163)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
@@ -40,8 +40,7 @@
*/
public class WPInitMojo extends AbstractWPMojo {
- static public String SRC_DIR_NAME = "src";
- static public String MAIN_DIR_NAME = "main";
+
static public String APPLICATION_DIR_NAME = "wp";
static public String RESSOURCES_DIR_NAME = "ressources";
static public String IMAGES_RESSOURCES_DIR_NAME = "images";
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPJarMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPJarMojo.java 2011-08-17 08:50:49 UTC (rev 1163)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPJarMojo.java 2011-08-17 10:16:12 UTC (rev 1164)
@@ -44,9 +44,11 @@
@Override
protected void doAction() throws Exception {
-
+ // externalise
//TODO
+
+
}
}
1
0
r1163 - trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin
by mfortun@users.nuiton.org 17 Aug '11
by mfortun@users.nuiton.org 17 Aug '11
17 Aug '11
Author: mfortun
Date: 2011-08-17 10:50:49 +0200 (Wed, 17 Aug 2011)
New Revision: 1163
Url: http://nuiton.org/repositories/revision/wikitty/1163
Log:
*init goal for plugin maven
Modified:
trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java
Modified: trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java
===================================================================
--- trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java 2011-08-16 23:13:05 UTC (rev 1162)
+++ trunk/wp-maven-plugin/src/main/java/org/nuiton/wikitty/plugin/WPInitMojo.java 2011-08-17 08:50:49 UTC (rev 1163)
@@ -24,10 +24,13 @@
*/
package org.nuiton.wikitty.plugin;
+import java.io.File;
+
/**
- * To init a wikitty publication project.
- *
- * @author tchemit <chemit(a)codelutin.com>
+ * To init a wikitty publication project. To init directory architecture for
+ * wikitty publication project.
+ *
+ * @author tchemit <chemit(a)codelutin.com>, mfortun <manoel.fortun(a)gmail.com>
* @version $Id$
* @goal init
* @requiresProject true
@@ -37,14 +40,47 @@
*/
public class WPInitMojo extends AbstractWPMojo {
+ static public String SRC_DIR_NAME = "src";
+ static public String MAIN_DIR_NAME = "main";
+ static public String APPLICATION_DIR_NAME = "wp";
+ static public String RESSOURCES_DIR_NAME = "ressources";
+ static public String IMAGES_RESSOURCES_DIR_NAME = "images";
+ static public String JAR_RESSOURCES_DIR_NAME = "jar";
+
@Override
protected void init() throws Exception {
- //TODO
+ // TODO
}
@Override
protected void doAction() throws Exception {
- //TODO
+ File basedir = getProject().getBasedir();
+ /*
+ * Create path for application
+ *
+ * src/main/wp, src/main/ressource/images, src/main/ressource/jar
+ */
+ File srcDir = new File(basedir.getAbsolutePath() + File.separator
+ + SRC_DIR_NAME);
+ File mainDir = new File(srcDir.getAbsolutePath() + File.separator
+ + MAIN_DIR_NAME);
+ File appDir = new File(mainDir.getAbsolutePath() + File.separator
+ + APPLICATION_DIR_NAME);
+ File ressourceDir = new File(mainDir.getAbsolutePath() + File.separator
+ + RESSOURCES_DIR_NAME);
+ File imgDir = new File(ressourceDir.getAbsolutePath() + File.separator
+ + IMAGES_RESSOURCES_DIR_NAME);
+ File jarDir = new File(ressourceDir.getAbsolutePath() + File.separator
+ + JAR_RESSOURCES_DIR_NAME);
+
+ createDirectoryIfNecessary(srcDir);
+ createDirectoryIfNecessary(mainDir);
+ createDirectoryIfNecessary(appDir);
+ createDirectoryIfNecessary(ressourceDir);
+ createDirectoryIfNecessary(imgDir);
+ createDirectoryIfNecessary(jarDir);
+
}
+
}
1
0
Author: tchemit
Date: 2011-08-17 01:13:05 +0200 (Wed, 17 Aug 2011)
New Revision: 1162
Url: http://nuiton.org/repositories/revision/wikitty/1162
Log:
Update mavenpom4redmine to 3.0.1.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-16 18:07:15 UTC (rev 1161)
+++ trunk/pom.xml 2011-08-16 23:13:05 UTC (rev 1162)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.0.1-SNAPSHOT</version>
+ <version>3.0.1</version>
</parent>
<!-- ************************************************************* -->
1
0
r1161 - in trunk/wikitty-api/src/main/java/org/nuiton/wikitty: . search
by bpoussin@users.nuiton.org 16 Aug '11
by bpoussin@users.nuiton.org 16 Aug '11
16 Aug '11
Author: bpoussin
Date: 2011-08-16 20:07:15 +0200 (Tue, 16 Aug 2011)
New Revision: 1161
Url: http://nuiton.org/repositories/revision/wikitty/1161
Log:
add clone method on criteria to simplify copy and modification of criteria restriction with Search object and new criteria.setRestriction(Search)
Use this new feature in WikittyProxy
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-08-16 16:36:23 UTC (rev 1160)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-08-16 18:07:15 UTC (rev 1161)
@@ -595,42 +595,21 @@
// on ajoute la condition sur les extensions dans le critere
// du coup, pour ne pas modifier le critere qui vient en parametre
// il faut creer un nouveau critere ...
- Search search = Search.query(criteria);
- search = search.exteq(extensions);
- Criteria serviceCriteria = search.criteria();
- serviceCriterias.add(serviceCriteria);
-
- // ... et si besoin recopier tout ce qui etait sur l'ancien
+ Criteria serviceCriteria = null;
if (criteria != null) {
- serviceCriteria.setName(criteria.getName());
- serviceCriteria.setFirstIndex(criteria.getFirstIndex());
- serviceCriteria.setEndIndex(criteria.getEndIndex());
+ // creation de la nouvelle contrainte
+ Search search = Search.query(criteria);
+ search = search.exteq(extensions);
- List<String> facetField = criteria.getFacetField();
- if (facetField != null) {
- String[] facetFieldTab = new String[facetField.size()];
- serviceCriteria.setFacetField(facetField.toArray(facetFieldTab));
- }
-
- List<Criteria> facetCriteria = criteria.getFacetCriteria();
- if (facetCriteria != null) {
- Criteria[] facetCriteriaTab = new Criteria[facetCriteria.size()];
- serviceCriteria.setFacetCriteria(facetCriteria.toArray(facetCriteriaTab));
- }
-
- List<String> sortAscending = criteria.getSortAscending();
- if (sortAscending != null) {
- String[] sortAscendingTab = new String[sortAscending.size()];
- serviceCriteria.setSortAscending(sortAscending.toArray(sortAscendingTab));
- }
-
- List<String> sortDescending = criteria.getSortDescending();
- if (sortDescending != null) {
- String[] sortDescendingTab = new String[sortDescending.size()];
- serviceCriteria.setSortDescending(sortDescending.toArray(sortDescendingTab));
- }
+ // utilisation de cette nouvelle contrainte sur le nouvel objet
+ serviceCriteria = criteria.clone();
+ serviceCriteria.setRestriction(search);
}
+
+ // ajout de ce criteria dans la liste de tous les criteres
+ serviceCriterias.add(serviceCriteria);
}
+
List<PagedResult<String>> pagedResult = wikittyService.findAllByCriteria(
securityToken, serviceCriterias);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java 2011-08-16 16:36:23 UTC (rev 1160)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java 2011-08-16 18:07:15 UTC (rev 1161)
@@ -34,6 +34,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.search.operators.Restriction;
@@ -52,7 +53,7 @@
* Last update: $Date$
* by : $Author$
*/
-public class Criteria implements Serializable {
+public class Criteria implements Serializable, Cloneable {
/** serialVersionUID. */
private static final long serialVersionUID = 2590223960861630283L;
@@ -109,7 +110,47 @@
public Criteria() {
}
+
/**
+ * Cree un nouvel objet criteria ou l'objet restriction est pointer par les
+ * deux critere apres le clone. La modification d'une restriction impactera
+ * l'autre critere. (Ce comportement peut-etre modifier si besoin).
+ * Tous les autres champs sont en deepcopy.
+ *
+ * @return
+ * @throws WikittyException
+ */
+ @Override
+ public Criteria clone() {
+ try {
+ Object result = super.clone();
+ Criteria clone = (Criteria) result;
+
+ if (facetField != null) {
+ clone.facetField = new ArrayList<String>(facetField);
+ }
+ if (sortAscending != null) {
+ clone.sortAscending = new ArrayList<String>(sortAscending);
+ }
+
+ if (sortDescending != null) {
+ clone.sortDescending = new ArrayList<String>(sortDescending);
+ }
+
+ if (facetCriteria != null) {
+ clone.facetCriteria = new ArrayList<Criteria>();
+ for (Criteria c : facetCriteria) {
+ clone.facetCriteria.add(c.clone());
+ }
+ }
+
+ return clone;
+ } catch (CloneNotSupportedException eee) {
+ throw new WikittyException("Can't clone criteria", eee);
+ }
+ }
+
+ /**
* Create named criteria.
*
* @param name criteria name
@@ -154,7 +195,15 @@
public void setRestriction(Restriction restriction) {
this.restriction = restriction;
}
-
+
+ /**
+ * Substitue la restriction de ce critere par celui de search
+ * @param search
+ */
+ public void setRestriction(Search search) {
+ this.restriction = search.getRestrictions();
+ }
+
public String getName() {
return name;
}
1
0
r1160 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty/search wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr
by bpoussin@users.nuiton.org 16 Aug '11
by bpoussin@users.nuiton.org 16 Aug '11
16 Aug '11
Author: bpoussin
Date: 2011-08-16 18:36:23 +0200 (Tue, 16 Aug 2011)
New Revision: 1160
Url: http://nuiton.org/repositories/revision/wikitty/1160
Log:
Evolution #1676: Permit to set the maximum number of facet topic returned
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java
trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java 2011-08-16 16:08:41 UTC (rev 1159)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Criteria.java 2011-08-16 16:36:23 UTC (rev 1160)
@@ -87,6 +87,11 @@
* par defaut, il doit y avoir plus que 1 valeur.
*/
protected int facetMinCount = 1;
+ /**
+ * Nombre maximum de facet a retourner apres la requete. Par default on en
+ * retourne 100.
+ */
+ protected int facetLimit = 100;
/** Facet on criteria. */
protected List<Criteria> facetCriteria;
@@ -185,6 +190,15 @@
return this;
}
+ public int getFacetLimit() {
+ return facetLimit;
+ }
+
+ public Criteria setFacetLimit(int facetLimit) {
+ this.facetLimit = facetLimit;
+ return this;
+ }
+
public List<Criteria> getFacetCriteria() {
return facetCriteria;
}
Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
===================================================================
--- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-08-16 16:08:41 UTC (rev 1159)
+++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-08-16 16:36:23 UTC (rev 1160)
@@ -694,7 +694,7 @@
|| (facetCriteria != null && !facetCriteria.isEmpty())) {
query.setFacet(true);
query.setFacetMinCount(criteria.getFacetMinCount());
- // query.setFacetLimit(8); // no limit actualy
+ query.setFacetLimit(criteria.getFacetLimit());
// field facetisation
if (facetField != null) {
1
0
r1159 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action wikitty-publication-ui/src/main/resources
by mfortun@users.nuiton.org 16 Aug '11
by mfortun@users.nuiton.org 16 Aug '11
16 Aug '11
Author: mfortun
Date: 2011-08-16 18:08:41 +0200 (Tue, 16 Aug 2011)
New Revision: 1159
Url: http://nuiton.org/repositories/revision/wikitty/1159
Log:
*change wikittyServiceJarLoader to allow multipleJarHandling, now load a directpry and search for the .jar
* add log propertie for wikitty publication ui
Added:
trunk/wikitty-publication-ui/src/main/resources/log4j.properties
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPropertieIndex.java
Modified:
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
trunk/wikitty-publication-ui/src/main/resources/wikitty-publication-ws-jar.properties
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPropertieIndex.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPropertieIndex.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPropertieIndex.java 2011-08-16 16:08:41 UTC (rev 1159)
@@ -0,0 +1,41 @@
+package org.nuiton.wikitty.publication;
+
+import java.util.Properties;
+import java.util.Set;
+
+public class WikittyPropertieIndex {
+
+ protected Properties wikittyIndex;
+ protected Properties wikittyMetadata;
+
+
+
+
+ public WikittyPropertieIndex(Properties wikittyIndex,
+ Properties wikittyMetadata) {
+ this.wikittyIndex = wikittyIndex;
+ this.wikittyMetadata = wikittyMetadata;
+ }
+ public Properties getWikittyIndex() {
+ return wikittyIndex;
+ }
+ public void setWikittyIndex(Properties wikittyIndex) {
+ this.wikittyIndex = wikittyIndex;
+ }
+ public Properties getWikittyMetadata() {
+ return wikittyMetadata;
+ }
+ public void setWikittyMetadata(Properties wikittyMetadata) {
+ this.wikittyMetadata = wikittyMetadata;
+ }
+
+ public boolean containtId(String id){
+ return wikittyIndex.containsKey(id);
+ }
+
+ public Set<Object> getIds(){
+ return wikittyIndex.keySet();
+ }
+
+
+}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-16 14:26:22 UTC (rev 1158)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-16 16:08:41 UTC (rev 1159)
@@ -1,16 +1,19 @@
package org.nuiton.wikitty.publication.externalize;
import java.io.File;
+import java.io.FileFilter;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
@@ -24,6 +27,7 @@
import org.nuiton.wikitty.publication.AbstractWikittyFileService;
import org.nuiton.wikitty.publication.MimeTypePubHelper;
import org.nuiton.wikitty.publication.WikittyFileUtil;
+import org.nuiton.wikitty.publication.WikittyPropertieIndex;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
import org.nuiton.wikitty.publication.entities.WikittyPubDataImpl;
@@ -48,35 +52,28 @@
public class WikittyServiceJarLoader extends AbstractWikittyFileService {
public static String JAR_LOCATION_KEY = "wikitty.publication.repository.jar";
- public static String JARS_LOCATION_KEY = "wikitty.publication.repository.jars";
/** Class logger. */
private static Log log = LogFactory.getLog(WikittyServiceJarLoader.class);
- protected JarFile wikittyJarRepository;
+ protected String dirLocation;
+ protected String MD5;
+
+ protected FileFilter jarFilter = new FileFilter() {
+ @Override
+ public boolean accept(File pathname) {
+ return (!pathname.isDirectory())&&pathname.getName().endsWith(".jar");
+
+ }
+ };
- protected Properties wikittyIndex;
- protected Properties wikittyMetadata;
+
+ protected Map<JarFile, WikittyPropertieIndex> index;
+
protected MimeTypePubHelper mimeHelper;
/*
- * static public void main(String[] args) {
*
- * ApplicationConfig config = new ApplicationConfig();
- * config.setOption(JAR_LOCATION_KEY,
- * "/home/User/testWP/pub-externalized.jar"); config.setOption(
- * WikittyConfigOption.WIKITTY_WIKITTYSERVICE_COMPONENTS.getKey(),
- * WikittyServiceJarLoader.class.getName()); WikittyProxy proxy = new
- * WikittyProxy( WikittyServiceFactory.buildWikittyService(config));
- *
- * System.out.println(proxy
- * .restore("e443dbbe-b461-41bd-b5b6-b612e964cb0d"));
- *
- * }
- */
-
- /*
- *
* Possible d'uploader un diagramme uml
* le mettre dedans un wikittypubdata
* et généré le jar avec les sources en fonction de ce modèle
@@ -85,31 +82,59 @@
*/
public WikittyServiceJarLoader(ApplicationConfig config) {
+ mimeHelper = new MimeTypePubHelper();
+ dirLocation = config.getOption(JAR_LOCATION_KEY);
+ MD5 = StringUtils.EMPTY;
+ constructIndex();
+ }
+
+ protected void constructIndex() {
try {
+ // initialise location
+ File jarLocation = new File(dirLocation);
+ //found jar
+ File[] jarFiles = jarLocation.listFiles(jarFilter);
+
+ String sumMd5 = StringUtils.EMPTY;
+ for (File jf : jarFiles){
+ sumMd5+=jf.getAbsolutePath();
+ }
+ sumMd5 = StringUtil.encodeMD5(sumMd5);
+ // check if md5 is equal to the last reindaxtion
+ // if not rebuilt the index
+ if (!sumMd5.equals(MD5)){
+ index = new HashMap<JarFile, WikittyPropertieIndex>();
+ // iterate over jar to load ids properties
+ // and meta properties to handle them
+ for (File jf : jarFiles) {
+ JarFile tempJF = new JarFile(jf);
- File jarLocation = new File(config.getOption(JAR_LOCATION_KEY));
+ JarEntry metaEntry = tempJF
+ .getJarEntry(WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
+ JarEntry idEntry = tempJF
+ .getJarEntry(WikittyFileUtil.WIKITTY_ID_PROPERTIES_FILE);
- wikittyJarRepository = new JarFile(jarLocation);
+ Properties wikittyIndex = new Properties();
+ wikittyIndex.load(tempJF.getInputStream(idEntry));
- JarEntry metaEntry = wikittyJarRepository
- .getJarEntry(WikittyFileUtil.WIKITTY_FILE_META_PROPERTIES_FILE);
- JarEntry idEntry = wikittyJarRepository
- .getJarEntry(WikittyFileUtil.WIKITTY_ID_PROPERTIES_FILE);
+ Properties wikittyMetadata = new Properties();
+ wikittyMetadata.load(tempJF.getInputStream(metaEntry));
- wikittyIndex = new Properties();
- wikittyIndex.load(wikittyJarRepository.getInputStream(idEntry));
+ WikittyPropertieIndex indexProps = new WikittyPropertieIndex(
+ wikittyIndex, wikittyMetadata);
- wikittyMetadata = new Properties();
- wikittyMetadata
- .load(wikittyJarRepository.getInputStream(metaEntry));
- mimeHelper = new MimeTypePubHelper();
+ index.put(tempJF, indexProps);
+ }
+ }
+
} catch (IOException e) {
// TODO mfortun-2011-08-12 Exception not really handled
if (log.isErrorEnabled()){
- log.error("Error while reading jar:"+wikittyJarRepository.getName(), e );
+ log.error("Error while loading jars:", e );
}
}
+
}
@Override
@@ -176,7 +201,15 @@
}
protected boolean exists(String wikittyId) {
- return wikittyIndex.containsKey(wikittyId);
+ boolean result = false;
+ for (WikittyPropertieIndex in : index.values()) {
+ result = result || in.containtId(wikittyId);
+ if (result) {
+ break;
+ }
+ }
+
+ return result;
}
@Override
@@ -297,12 +330,17 @@
@Override
protected Map<String, Wikitty> getAllWikitties() {
+ constructIndex();
+
Map<String, Wikitty> result = new HashMap<String, Wikitty>();
- for (Object oId : wikittyIndex.keySet()) {
- String id = oId.toString();
- result.put(id, restore(id));
+ for (WikittyPropertieIndex in : index.values()) {
+ for (Object oId : in.getIds()) {
+ String id = oId.toString();
+ result.put(id, restore(id));
+ }
}
+
return result;
}
@@ -348,6 +386,19 @@
return null;
}
+ Properties wikittyMetadata = null;
+ Properties wikittyIndex = null;
+ JarFile wikittyJarRepository = null;
+
+ for (Entry<JarFile, WikittyPropertieIndex> en :index.entrySet()){
+ if (en.getValue().containtId(wikittyId)){
+ wikittyJarRepository = en.getKey();
+ wikittyIndex = en.getValue().getWikittyIndex();
+ wikittyMetadata = en.getValue().getWikittyMetadata();
+ }
+ }
+
+
String mime = wikittyMetadata.getProperty(wikittyId
+ WikittyPublicationExternalize.MIME_SUFFIX);
String fileExtension = mimeHelper.getExtensionForMime(mime);
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 14:26:22 UTC (rev 1158)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 16:08:41 UTC (rev 1159)
@@ -96,7 +96,7 @@
MimeTypePubHelper.JAR_TYPE);
String jarRepoPath = FileUtils.getTempDirectory().getAbsolutePath()
+ File.separator + JAR_TEMP_DIR_NAME;
- System.out.println(contextApps==null);
+
// initialiser directory etc if context set
if (contextApps != null) {
// if application context is set sub dir
Added: trunk/wikitty-publication-ui/src/main/resources/log4j.properties
===================================================================
--- trunk/wikitty-publication-ui/src/main/resources/log4j.properties (rev 0)
+++ trunk/wikitty-publication-ui/src/main/resources/log4j.properties 2011-08-16 16:08:41 UTC (rev 1159)
@@ -0,0 +1,12 @@
+# Global logging configuration
+log4j.rootLogger=FATAL, stdout
+
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) %M - %m%n
+
+# package level
+log4j.logger.org.nuiton.wikitty.publication=DEBUG
+#log4j.logger.org.nuiton.util.TimeLog=WARN
+log4j.logger.org.apache.struts2.dispatcher.mapper=DEBUG
Modified: trunk/wikitty-publication-ui/src/main/resources/wikitty-publication-ws-jar.properties
===================================================================
--- trunk/wikitty-publication-ui/src/main/resources/wikitty-publication-ws-jar.properties 2011-08-16 14:26:22 UTC (rev 1158)
+++ trunk/wikitty-publication-ui/src/main/resources/wikitty-publication-ws-jar.properties 2011-08-16 16:08:41 UTC (rev 1159)
@@ -25,5 +25,5 @@
wikitty.WikittyService.components=org.nuiton.wikitty.publication.externalize.WikittyServiceJarLoader
-wikitty.publication.repository.jar=/home/Manou/testWP/pub-externalized.jar
+wikitty.publication.repository.jar=/home/Manou/testWP/
1
0
r1158 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action
by mfortun@users.nuiton.org 16 Aug '11
by mfortun@users.nuiton.org 16 Aug '11
16 Aug '11
Author: mfortun
Date: 2011-08-16 16:26:22 +0200 (Tue, 16 Aug 2011)
New Revision: 1158
Url: http://nuiton.org/repositories/revision/wikitty/1158
Log:
*correct java handling for wikittyPubText
*add classLoader handling: search for wikittyPubData that containt jar to add them inside classPath
*correct code decoration for java pubText
*relocate class
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/EvalInterface.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationContext.java
Removed:
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationContext.java
Modified:
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java 2011-08-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -192,7 +192,7 @@
classContent += "import " + AbstractDecoredClass.class.getName() + ";";
classContent += "import org.nuiton.wikitty.entities.*;";
classContent += "import org.nuiton.wikitty.publication.entities.*;";
- classContent += "import org.nuiton.wikitty.publication.action.*;";
+ classContent += "import org.nuiton.wikitty.publication.*;";
classContent += "import java.util.*;";
classContent += "public class " + className + " extends "
@@ -200,18 +200,6 @@
classContent += "public Object eval(Map<String, Object> bindings ) throws Exception {";
- // TODO mfortun-2011-07-08 write a better "filter" must isolate specific
- // mime type that correspond to precompilable langague
- classContent += "Object result = null;";
- classContent += "String content = \""
- + StringEscapeUtils.escapeJava(content) + "\";";
- classContent += "String mimeType = \""
- + StringEscapeUtils.escapeJava(mimeType) + "\";";
- classContent += "String criteriaName= \"" + Element.ELT_ID + ":"
- + wikitty.getId() + "\";";
- classContent += " result = ScriptEvaluator.eval(null, criteriaName, content, mimeType, bindings);";
- classContent += "return result;";
-
if (mimeType.equals(MimeTypePubHelper.JAVA_TYPE)){
/*
@@ -222,27 +210,41 @@
* ?
*/
// contruct variables that can be used inside the java code.
- classContent = "PublicationContext "
+
+
+ classContent += PublicationContext.class.getSimpleName()+" "
+ WikittyPublicationConstant.CONTEXT_VAR
- + " = bindings.get(\""
+ + " = (" +PublicationContext.class.getSimpleName()+ ") bindings.get(\""
+ WikittyPublicationConstant.CONTEXT_VAR + "\");";
- classContent = "WikittyPublicationConstant "
+ classContent += EvalInterface.class.getSimpleName() +" "
+ WikittyPublicationConstant.EVAL_VAR
- + " = bindings.get(\""
+ + " = (" +EvalInterface.class.getSimpleName() + ") bindings.get(\""
+ WikittyPublicationConstant.EVAL_VAR + "\");";
- classContent = "String " + WikittyPublicationConstant.PAGE_NAME_VAR
- + " = bindings.get(\""
+ classContent += "String " + WikittyPublicationConstant.PAGE_NAME_VAR
+ + " = (String) bindings.get(\""
+ WikittyPublicationConstant.PAGE_NAME_VAR + "\");";
- classContent = "List<String> "
+ classContent += "List<String> "
+ WikittyPublicationConstant.SUBCONTEXT_VAR
- + " = bindings.get(\""
+ + " = (List<String>) bindings.get(\""
+ WikittyPublicationConstant.SUBCONTEXT_VAR + "\");";
- classContent = "Wikitty " + WikittyPublicationConstant.WIKITTY_VAR
- + " = bindings.get(\""
+ classContent += "Wikitty " + WikittyPublicationConstant.WIKITTY_VAR
+ + " = (Wikitty) bindings.get(\""
+ WikittyPublicationConstant.WIKITTY_VAR + "\");";
classContent += content;
+ } else {
+ // TODO mfortun-2011-07-08 write a better "filter" must isolate specific
+ // mime type that correspond to precompilable langague
+ classContent += "Object result = null;";
+ classContent += "String content = \""
+ + StringEscapeUtils.escapeJava(content) + "\";";
+ classContent += "String mimeType = \""
+ + StringEscapeUtils.escapeJava(mimeType) + "\";";
+ classContent += "String criteriaName= \"" + Element.ELT_ID + ":"
+ + wikitty.getId() + "\";";
+ classContent += " result = ScriptEvaluator.eval(null, criteriaName, content, mimeType, bindings);";
+ classContent += "return result;";
}
classContent += "\n}\n}\n";
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/EvalInterface.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/EvalInterface.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/EvalInterface.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -0,0 +1,14 @@
+package org.nuiton.wikitty.publication;
+
+import java.util.List;
+
+
+public interface EvalInterface {
+
+ public Object doAction(PublicationContext context, List<String> subContext);
+
+ public Object doAction(PublicationContext context, String subContextAsText);
+
+ public Object doAction(PublicationContext context);
+
+}
\ No newline at end of file
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-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -52,6 +52,7 @@
static private Log log = LogFactory.getLog(MimeTypePubHelper.class);
public static final String JAVA_TYPE = "text/java";
+ public static final String JAR_TYPE = "application/jar";
/**
* Mapping between extention and mime type, key: extension, value: mimeType
*/
Copied: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationContext.java (from rev 1151, trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationContext.java)
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationContext.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationContext.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -0,0 +1,46 @@
+package org.nuiton.wikitty.publication;
+
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Interface for eval action.
+ *
+ * @author mfortun
+ *
+ */
+public interface PublicationContext {
+
+ HttpServletRequest getRequest();
+
+ HttpServletResponse getResponse();
+
+ WikittyProxy getWikittyProxy();
+
+ /**
+ * add context to the url and parameter if necessary
+ * @param url
+ * @return
+ */
+ String makeUrl(String url);
+
+ WikittyService getWikittyService();
+
+ List<String> getMandatoryArguments();
+
+ String getArgument(String name, String defaultValue);
+
+ String getContentType();
+
+ void setContentType(String contentType);
+
+ String toString();
+
+ Map<String,String> getArguments();
+
+}
\ No newline at end of file
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java 2011-08-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -1,15 +1,20 @@
package org.nuiton.wikitty.publication.externalize;
+import java.net.URL;
+import java.net.URLClassLoader;
+
/**
* A simple classloader extension to allow adding java class with bytecode
* @author mfortun
*
*/
-public class WikittyPublicationClassLoader extends ClassLoader {
+public class WikittyPublicationClassLoader extends URLClassLoader {
- public WikittyPublicationClassLoader() {
- super(WikittyPublicationClassLoader.class.getClassLoader());
+ public WikittyPublicationClassLoader(URL[] urls) {
+ super(urls,WikittyPublicationClassLoader.class.getClassLoader());
+
+
}
@@ -27,6 +32,7 @@
}
+
/*
* Réutiliser cette classe pour la création du class loader pour wikitty publication
*
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -3,6 +3,7 @@
import com.opensymphony.xwork2.ActionContext;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
@@ -13,9 +14,12 @@
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyLabel;
import org.nuiton.wikitty.publication.AbstractDecoredClass;
import org.nuiton.wikitty.publication.CodeDecorator;
+import org.nuiton.wikitty.publication.EvalInterface;
import org.nuiton.wikitty.publication.MimeTypePubHelper;
+import org.nuiton.wikitty.publication.PublicationContext;
import org.nuiton.wikitty.publication.WikittyPublicationConstant;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
@@ -27,6 +31,8 @@
import org.nuiton.wikitty.publication.externalize.CompileHelper;
import org.nuiton.wikitty.publication.externalize.WikittyPublicationClassLoader;
import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.Search;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -35,6 +41,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -43,7 +50,8 @@
import java.util.Map;
public class PublicationActionEval extends PublicationBaseAction implements
- ServletResponseAware, ServletRequestAware, PublicationContext {
+ ServletResponseAware, ServletRequestAware, PublicationContext,
+ EvalInterface {
/**
*
@@ -53,13 +61,14 @@
static private Log log = LogFactory.getLog(PublicationActionEval.class);
static protected String JAVA_TEMP_DIR_NAME = "PublicationJavaEvalDir";
- static protected String JAR_TEMP_DIR_NAME= "PublicationJarRepository";
+ static protected String JAR_TEMP_DIR_NAME = "PublicationJarRepository";
static protected String MD5_FILE = "JarMD5";
-
+
protected String contentType;
protected HttpServletResponse response;
protected HttpServletRequest request;
protected InputStream inputStream;
+ protected WikittyPublicationClassLoader classloader;
@Override
public void setServletResponse(HttpServletResponse arg0) {
@@ -74,17 +83,85 @@
@Override
public String execute() throws Exception {
- doAction(this,getMandatoryArguments());
+ // check for temporaryn dir
+ if (!FileUtils.getTempDirectory().exists()) {
+ FileUtils.getTempDirectory().mkdir();
+ }
+ File jarRepo;
+ File md5File;
+ Search wikittyPubDataJarCrit = Search
+ .query()
+ .eq(WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_MIMETYPE,
+ MimeTypePubHelper.JAR_TYPE);
+ String jarRepoPath = FileUtils.getTempDirectory().getAbsolutePath()
+ + File.separator + JAR_TEMP_DIR_NAME;
+ System.out.println(contextApps==null);
+ // initialiser directory etc if context set
+ if (contextApps != null) {
+ // if application context is set sub dir
+ jarRepoPath = jarRepoPath + File.separator + contextApps;
+ // and complete criteria
+ wikittyPubDataJarCrit.exteq(WikittyLabel.EXT_WIKITTYLABEL).sw(
+ WikittyLabel.FQ_FIELD_WIKITTYLABEL_LABELS, contextApps);
+
+ }
+ jarRepo = new File(jarRepoPath + File.separator);
+ md5File = new File(jarRepo.getAbsolutePath() + File.separator
+ + MD5_FILE);
+
+ if (!jarRepo.exists()) {
+ jarRepo.mkdir();
+ }
+ md5File.createNewFile();
+
+ String md5ref = FileUtil.readAsString(md5File);
+
+ PagedResult<Wikitty> jardatas = getWikittyProxy().findAllByCriteria(
+ wikittyPubDataJarCrit.criteria());
+ String sumMd5 = StringUtils.EMPTY;
+ for (Wikitty w : jardatas) {
+ sumMd5 += w.getId();
+ sumMd5 += w.getVersion();
+ }
+ sumMd5 = StringUtil.encodeMD5(sumMd5);
+
+ if (sumMd5.equals(md5ref)) {
+ FileUtil.writeString(md5File, sumMd5);
+ for (Wikitty w : jardatas) {
+ String name = WikittyPubDataHelper.getName(w);
+ byte[] content = WikittyPubDataHelper.getContent(w);
+ File tempJar = new File(jarRepo.getAbsolutePath()
+ + File.separator + name + ".jar");
+ FileUtils.writeByteArrayToFile(tempJar, content);
+ }
+
+ }
+
+ // initialize classLoader
+ URL[] urls = new URL[1];
+ urls[0] = jarRepo.toURI().toURL();
+ classloader = new WikittyPublicationClassLoader(urls);
+
+ doAction(this, getMandatoryArguments());
+
return SUCCESS;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.nuiton.wikitty.publication.ui.action.EvalInterface#doAction(org.nuiton
+ * .wikitty.publication.PublicationContext, java.util.List)
+ */
+ @Override
public Object doAction(PublicationContext context, List<String> subContext) {
log.info("path " + subContext);
Object result;
CodeDecorator decorator = new CodeDecorator();
-
+
Criteria criteria = searchCriteria(subContext);
if (criteria == null) {
@@ -95,39 +172,40 @@
Wikitty w = proxy.findByCriteria(criteria);
if (w == null || !w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
-
- if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)){
-
+
+ if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+
contentType = WikittyPubDataHelper.getMimeType(w);
- System.out.println(contentType);
-
-
-
- inputStream = new ByteArrayInputStream(WikittyPubDataHelper
- .getContent(w));
+
+ inputStream = new ByteArrayInputStream(
+ WikittyPubDataHelper.getContent(w));
return WikittyPubDataHelper.getContent(w);
}
-
+
context.setContentType("text/plain");
result = String.format("no data found for criteria '%s'",
criteria);
} else if (w
- .hasExtension(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED)|| WikittyPubTextHelper.getMimeType(w).equals(MimeTypePubHelper.JAVA_TYPE)) {
+ .hasExtension(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED)
+ || WikittyPubTextHelper.getMimeType(w).equals(
+ MimeTypePubHelper.JAVA_TYPE)) {
- if (WikittyPubTextHelper.getMimeType(w).equals(MimeTypePubHelper.JAVA_TYPE)){
+ if (WikittyPubTextHelper.getMimeType(w).equals(
+ MimeTypePubHelper.JAVA_TYPE)) {
String name = WikittyPubTextHelper.getName(w);
- if (! FileUtils.getTempDirectory().exists()){
+ if (!FileUtils.getTempDirectory().exists()) {
FileUtils.getTempDirectory().mkdir();
}
-
+
File javaWikittyFile = new File(FileUtils
.getTempDirectory().getAbsolutePath()
+ File.separator + JAVA_TEMP_DIR_NAME);
- if ( !javaWikittyFile.exists()){
+ if (!javaWikittyFile.exists()) {
javaWikittyFile.mkdir();
}
-
+
String javaContent = decorator.getCode(w);
+
String content = null;
try {
File javaFile = new File(
@@ -136,7 +214,7 @@
if (javaFile.exists()) {
content = FileUtil.readAsString(javaFile);
- }
+ }
if (content == null
|| !StringUtil.encodeMD5(javaContent).equals(
StringUtil.encodeMD5(content))) {
@@ -148,10 +226,11 @@
CompileHelper.compile(javaWikittyFile, javaFile,
javaWikittyFile, writer);
}
-
-
- File classFile = new File (javaWikittyFile.getAbsolutePath()+File.separator+name+".class");
-
+
+ File classFile = new File(
+ javaWikittyFile.getAbsolutePath()
+ + File.separator + name + ".class");
+
byte[] wikittyByte = FileUtil.fileToByte(classFile);
w.addExtension(WikittyPubTextCompiledImpl.extensionWikittyPubTextCompiled);
@@ -159,23 +238,17 @@
.setByteCode(w, wikittyByte);
} catch (Exception e) {
// TODO mfortun-2011-08-16 really handle exception
- if (log.isErrorEnabled()){
+ if (log.isErrorEnabled()) {
log.error(
"Error while transforming wikittyPubText to wikittyPubTextCompiled wikitty:"
+ w, e);
}
-
+
result = getError(context);
}
}
-
-
-
-
-
-
byte[] content = WikittyPubTextCompiledHelper.getByteCode(w);
if (content == null) {
result = getError(context);
@@ -203,8 +276,6 @@
bindings.put(WikittyPublicationConstant.WIKITTY_VAR, w);
bindings.put(WikittyPublicationConstant.EVAL_VAR, this);
- WikittyPublicationClassLoader classloader = new WikittyPublicationClassLoader();
-
Class<? extends AbstractDecoredClass> clazz = (Class<? extends AbstractDecoredClass>) classloader
.addClass(name, content);
@@ -257,8 +328,8 @@
// TODO mfortun-2011-08-08 construire un class path avec
// des jar et les classes contenu dans wikitty publication
- result = ScriptEvaluator.eval(null, criteria.getName(),
- content, mimetype, bindings);
+ result = ScriptEvaluator.eval(classloader,
+ criteria.getName(), content, mimetype, bindings);
}
}
}
@@ -267,6 +338,14 @@
return result;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.nuiton.wikitty.publication.ui.action.EvalInterface#doAction(org.nuiton
+ * .wikitty.publication.PublicationContext, java.lang.String)
+ */
+ @Override
public Object doAction(PublicationContext context, String subContextAsText) {
Object result;
if (subContextAsText == null || "".equals(subContextAsText)) {
@@ -282,6 +361,14 @@
return result;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.nuiton.wikitty.publication.ui.action.EvalInterface#doAction(org.nuiton
+ * .wikitty.publication.PublicationContext)
+ */
+ @Override
public Object doAction(PublicationContext context) {
Object result;
if (context.getMandatoryArguments().size() <= 0) {
@@ -321,7 +408,6 @@
return request;
}
-
@Override
public String makeUrl(String url) {
String finalUrl = url;
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationBaseAction.java 2011-08-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationBaseAction.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -4,6 +4,7 @@
import org.apache.struts2.interceptor.SessionAware;
import org.nuiton.web.struts2.BaseAction;
import org.nuiton.wikitty.entities.WikittyLabel;
+import org.nuiton.wikitty.publication.PublicationContext;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
import org.nuiton.wikitty.publication.ui.WikittyPublicationProxy;
Deleted: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationContext.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationContext.java 2011-08-16 10:17:42 UTC (rev 1157)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationContext.java 2011-08-16 14:26:22 UTC (rev 1158)
@@ -1,46 +0,0 @@
-package org.nuiton.wikitty.publication.ui.action;
-
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.WikittyService;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Interface for eval action.
- *
- * @author mfortun
- *
- */
-public interface PublicationContext {
-
- HttpServletRequest getRequest();
-
- HttpServletResponse getResponse();
-
- WikittyProxy getWikittyProxy();
-
- /**
- * add context to the url and parameter if necessary
- * @param url
- * @return
- */
- String makeUrl(String url);
-
- WikittyService getWikittyService();
-
- List<String> getMandatoryArguments();
-
- String getArgument(String name, String defaultValue);
-
- String getContentType();
-
- void setContentType(String contentType);
-
- String toString();
-
- Map<String,String> getArguments();
-
-}
\ No newline at end of file
1
0
r1157 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action
by mfortun@users.nuiton.org 16 Aug '11
by mfortun@users.nuiton.org 16 Aug '11
16 Aug '11
Author: mfortun
Date: 2011-08-16 12:17:42 +0200 (Tue, 16 Aug 2011)
New Revision: 1157
Url: http://nuiton.org/repositories/revision/wikitty/1157
Log:
*add log error for exception instead of nothing
Modified:
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionLogin.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRaw.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRegister.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -21,8 +21,7 @@
public class CodeDecorator {
- static private Log log = LogFactory
- .getLog(CodeDecorator.class);
+ static private Log log = LogFactory.getLog(CodeDecorator.class);
/*
* Après le script engine le ui Code décorateur
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-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -26,6 +26,8 @@
import org.apache.commons.collections.BidiMap;
import org.apache.commons.collections.bidimap.DualHashBidiMap;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.ScriptEvaluator;
@@ -47,6 +49,8 @@
*/
public class MimeTypePubHelper {
+ static private Log log = LogFactory.getLog(MimeTypePubHelper.class);
+
public static final String JAVA_TYPE = "text/java";
/**
* Mapping between extention and mime type, key: extension, value: mimeType
@@ -91,8 +95,10 @@
mimeProps.load(input);
} catch (IOException e) {
- // TODO mfortun-2011-08-12 handle exception ?
- e.printStackTrace();
+ // TODO mfortun-2011-08-16 Exception not really handled
+ if (log.isErrorEnabled()){
+ log.error("Error while reading properties Fie that containt mimetype mapping ", e );
+ }
}
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-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/WikittyPublicationFileSystem.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -483,9 +483,11 @@
}
}
- } catch (Exception e) {
- e.printStackTrace();
- // TODO mfortun-2011-04-12 really handle exceptions
+ } catch (IOException e) {
+ // TODO mfortun-2011-08-12 Exception not really handled
+ if (log.isErrorEnabled()){
+ log.error("Error while store wikitty on FS", e );
+ }
}
return result;
@@ -553,7 +555,7 @@
* restore file as wikitty
*/
public List<Wikitty> restore(String securityToken, List<String> id) {
-
+ FileSystemWIkittyId localisation = null;
List<Wikitty> result = new ArrayList<Wikitty>();
log.info("restore wikitty, number: " + id.size());
try {
@@ -571,15 +573,18 @@
Object value = locations.get(wikid);
if (value != null) {
- FileSystemWIkittyId localisation = (FileSystemWIkittyId) value;
+ localisation = (FileSystemWIkittyId) value;
result.add(restore(wikid, localisation));
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
e.printStackTrace();
- // TODO mfortun-2011-01-12 really handle exception
+ // TODO mfortun-2011-08-16 really handle exception
+ if (log.isErrorEnabled()){
+ log.error("Error while restoring wikitty located:"+localisation, e );
+ }
}
return result;
@@ -641,9 +646,11 @@
}
}
- } catch (Exception e) {
- e.printStackTrace();
- // TODO mfortun-2011-04-13 really handle exception
+ } catch (IOException e) {
+ // TODO mfortun-2011-08-16 Exception not really handled
+ if (log.isErrorEnabled()){
+ log.error("Error while deleting wikitty on FS", e );
+ }
}
WikittyEvent result = new WikittyEvent(this);
@@ -678,9 +685,11 @@
}
- } catch (Exception e) {
- // TODO mfortun-2011-04-20 really handle exception
- e.printStackTrace();
+ } catch (IOException e) {
+ // TODO mfortun-2011-08-16 Exception not really handled
+ if (log.isErrorEnabled()){
+ log.error("Error while search forAllWikitty on FS", e );
+ }
}
return wikitties;
}
@@ -752,10 +761,10 @@
* @param starts
* @param recursivly
* @return
- * @throws Exception
+ * @throws IOException
*/
- public BidiMap harvestLocalWikitties(File starts, boolean recursivly)
- throws Exception {
+ public BidiMap harvestLocalWikitties(File starts, boolean recursivly) throws IOException
+ {
BidiMap result = new DualHashBidiMap();
log.info("harvest localWikitty");
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -66,14 +66,10 @@
public String execute() throws Exception {
-
proxy = getWikittyPublicationProxy();
Map<String, Object> param = ActionContext.getContext().getParameters();
formatArgs(param);
-
-
-
isDelete = param.containsKey("delete");
isStore = param.containsKey("store");
@@ -321,8 +317,12 @@
FileUtil.fileToByte(uploadedFile));
uploadedFile.deleteOnExit();
} catch (IOException e) {
- // TODO mfortun-2011-05-24 really handle exception
- e.printStackTrace();
+ // TODO mfortun-2011-08-16 Exception not really handled
+ if (log.isErrorEnabled()){
+ log.error(
+ "Error while reading File uploaded as wikittyPubDataContent ",
+ e);
+ }
}
} else {
wikittyFieldMap.put(en.getKey(), value);
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -158,7 +158,7 @@
WikittyPubTextCompiledHelper
.setByteCode(w, wikittyByte);
} catch (Exception e) {
- // TODO Mfortun-2011-08-16 really handle exception
+ // TODO mfortun-2011-08-16 really handle exception
if (log.isErrorEnabled()){
log.error(
"Error while transforming wikittyPubText to wikittyPubTextCompiled wikitty:"
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionLogin.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionLogin.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionLogin.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -28,7 +28,6 @@
import com.opensymphony.xwork2.ActionContext;
-
/**
* Class used as an action login, call the login method on the proxy with
* login/password pass threw the login form
@@ -44,12 +43,10 @@
protected String error;
protected String success;
-
static public PublicationActionLogin getAction() {
return (PublicationActionLogin) ActionContext.getContext().get(
CONTEXT_ACTION_KEY);
}
-
public String getLogin() {
return login;
@@ -96,15 +93,10 @@
if (password != null) {
String md5 = StringUtil.encodeMD5(password);
- try {
+ getWikittyPublicationSession().login(getContextArgs(), login,
+ md5);
+ result = SUCCESS;
- getWikittyPublicationSession().login(getContextArgs(),login, md5);
- result = SUCCESS;
-
- } catch (Exception e) {
- // TODO mfortun-2011-05-12 handle exception due to wrong
- e.printStackTrace();
- }
}
}
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRaw.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRaw.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRaw.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -50,25 +50,18 @@
Wikitty w = proxy.findByCriteria(criteria);
- try {
+ if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+ mimeType = WikittyPubDataHelper.getMimeType(w);
+ inputStream = new ByteArrayInputStream(
+ WikittyPubDataHelper.getContent(w));
- if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- mimeType = WikittyPubDataHelper.getMimeType(w);
- inputStream = new ByteArrayInputStream(
- WikittyPubDataHelper.getContent(w));
+ } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ mimeType = WikittyPubTextHelper.getMimeType(w);
+ inputStream = new ByteArrayInputStream(WikittyPubTextHelper
+ .getContent(w).getBytes());
+ }
- } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- mimeType = WikittyPubTextHelper.getMimeType(w);
- inputStream = new ByteArrayInputStream(WikittyPubTextHelper
- .getContent(w).getBytes());
- }
- } catch (Exception e) {
- // TODO mfortun-2011-05-09 really handle exception
- e.printStackTrace();
-
- }
-
return SUCCESS;
}
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRegister.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRegister.java 2011-08-16 09:50:46 UTC (rev 1156)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionRegister.java 2011-08-16 10:17:42 UTC (rev 1157)
@@ -69,48 +69,45 @@
public String execute() {
String result = INPUT;
- try {
- if (login != null) {
- login = login.trim();
- if (password != null) {
- if (!password.equals(repeatPassword)) {
- // TODO mfortun-2011-05-13 handle error message in jsp
- } else {
- String md5 = StringUtil.encodeMD5(password);
- // If the email address isn't already used
- if (!alreadyRegistered()) {
- WikittyProxy proxy = getWikittyPublicationProxy();
+ if (login != null) {
+ login = login.trim();
+ if (password != null) {
+ if (!password.equals(repeatPassword)) {
+ // TODO mfortun-2011-05-13 handle error message in jsp
+ } else {
+ String md5 = StringUtil.encodeMD5(password);
- WikittyUser user = new WikittyUserImpl();
- user.setLogin(login);
- user.setPassword(md5);
+ // If the email address isn't already used
+ if (!alreadyRegistered()) {
+ WikittyProxy proxy = getWikittyPublicationProxy();
- WikittyUser userLoged = proxy.store(user);
- // check if wikitty still exist
- if (userLoged == null) {
- // TODO mfortun-2011-05-13 handle error message
- // in jsp
- } else {
- // try to login with information
- proxy.login(login, md5);
- // if logged it works
- if (proxy.getLoggedInUser() != null) {
+ WikittyUser user = new WikittyUserImpl();
+ user.setLogin(login);
+ user.setPassword(md5);
- getWikittyPublicationSession().setUser(
- proxy.getLoggedInUser());
+ WikittyUser userLoged = proxy.store(user);
+ // check if wikitty still exist
+ if (userLoged == null) {
+ // TODO mfortun-2011-05-13 handle error message
+ // in jsp
+ } else {
+ // try to login with information
+ proxy.login(login, md5);
+ // if logged it works
+ if (proxy.getLoggedInUser() != null) {
- result = SUCCESS;
- }
+ getWikittyPublicationSession().setUser(
+ proxy.getLoggedInUser());
+
+ result = SUCCESS;
}
}
}
}
}
- } catch (Exception e) {
- // TODO mfortun-2011-05-13 really handle exception
- e.printStackTrace();
}
+
return result;
}
1
0
r1156 - in trunk: wikitty-publication/src/main/java/org/nuiton/wikitty/publication wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action
by mfortun@users.nuiton.org 16 Aug '11
by mfortun@users.nuiton.org 16 Aug '11
16 Aug '11
Author: mfortun
Date: 2011-08-16 11:50:46 +0200 (Tue, 16 Aug 2011)
New Revision: 1156
Url: http://nuiton.org/repositories/revision/wikitty/1156
Log:
*reorganize packaging
*handling java mime into eval mechanism
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractDecoredClass.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java
Removed:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/AbstractDecoredClass.java
Modified:
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java
trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
Copied: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractDecoredClass.java (from rev 1151, trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/AbstractDecoredClass.java)
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractDecoredClass.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractDecoredClass.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -0,0 +1,23 @@
+package org.nuiton.wikitty.publication;
+
+import java.util.Map;
+
+
+/**
+ * Abstract class for the skeleton and signature for wikittyPubText content
+ * transform and compile as Java class.
+ *
+ * This class allow the evaluator engine to call the eval method to return
+ * the result of the compiled code from the wikitty pub text content.
+ *
+ *
+ * @author mfortun
+ *
+ */
+public abstract class AbstractDecoredClass {
+
+
+ public abstract Object eval(Map<String, Object> bindings) throws Exception ;
+
+
+}
Copied: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java (from rev 1151, trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java)
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeDecorator.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -0,0 +1,254 @@
+package org.nuiton.wikitty.publication;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+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.processor.Processor;
+import org.nuiton.processor.filters.GeneratorTemplatesFilter;
+import org.nuiton.processor.filters.GeneratorTemplatesFilterIn;
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.publication.entities.WikittyPubText;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.search.operators.Element;
+
+public class CodeDecorator {
+
+ static private Log log = LogFactory
+ .getLog(CodeDecorator.class);
+
+ /*
+ * Après le script engine le ui Code décorateur
+ *
+ * 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";
+ protected String MIME_SEP = "/";
+
+ protected Map<String, FilterOption> filtersOptions;
+
+
+ static protected FilterOption defaultFilterOption;
+
+ static {
+ defaultFilterOption = new FilterOption();
+ defaultFilterOption.setOpeningTemplate("var result=\"");
+ defaultFilterOption.setWriteString("result");
+ defaultFilterOption.setStringDelim("\"");
+ defaultFilterOption.setConcatChar("+");
+ defaultFilterOption.setEndingCar(";");
+ defaultFilterOption.setClosingWriterChar("");
+ defaultFilterOption.setOpeningWriterChar("+=");
+ defaultFilterOption.setClosingTemplate("\";");
+ defaultFilterOption.setMimeType("application/javascript");
+
+
+
+ }
+
+ public CodeDecorator() {
+ filtersOptions = new HashMap<String, FilterOption>();
+
+
+ // add basic value js and htmlp
+ filtersOptions.put("html.javascript", defaultFilterOption);
+
+ }
+
+ public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException {
+
+ if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ return wikitty;
+ }
+
+ GeneratorTemplatesFilter filter = new GeneratorTemplatesFilter();
+ GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(
+ filter);
+
+ String mime = WikittyPubTextHelper.getMimeType(wikitty);
+ String initialVersion = wikitty.getVersion();
+
+ /*
+ * changement de mime type changement de
+ */
+ /*
+ * Fonction du mime type
+ */
+
+ String[] mimeTab = StringUtil.split(mime, MIME_SEP);
+
+ FilterOption foption = filtersOptions.get(mimeTab[1]);
+ if (foption == null) {
+ foption = defaultFilterOption;
+ }
+
+ filterIn.setConcacChar(foption.getConcatChar());
+ filterIn.setStringDelim(foption.getStringDelim());
+ filterIn.getParent().setWriteString(foption.getWriteString());
+ filterIn.setEndCar(foption.getEndingCar());
+ filterIn.setOpeningWriterChar(foption.getOpeningWriterChar());
+ filterIn.setClosingWriterChar(foption.getClosingWriterChar());
+
+ String decoringAffect = foption.getOpeningTemplate();
+ // initialize new content
+ 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();
+ 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 += 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) {
+ if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ return false;
+ }
+ String mime = WikittyPubTextHelper.getMimeType(wikitty);
+ return isMimeTypeUi(mime);
+ }
+
+
+ public boolean isTransformationNeeded(WikittyPubText wikitty) {
+ String mime = wikitty.getMimeType();
+ return isMimeTypeUi(mime);
+ }
+
+
+ public boolean isMimeTypeUi(String mime){
+ MimeTypePubHelper helper = new MimeTypePubHelper();
+ String mimeKeyOption = helper.pubUiMimeToConverterOption(mime);
+ return filtersOptions.containsKey(mimeKeyOption);
+ }
+
+ public boolean isDecorated(String string) {
+ return filtersOptions.containsKey(string);
+
+ }
+
+
+ /**
+ * Use to transform wikittyPubText.content into compilable Java
+ * @param wikitty the wikitty pub text
+ * @return the java code
+ */
+ public String getCode(Wikitty wikitty) {
+
+ if (isTransformationNeeded(wikitty)) {
+ try {
+ wikitty = 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>)
+ // wikitty.getField(WikittyLabel.EXT_WIKITTYLABEL,
+ // WikittyLabel.FIELD_WIKITTYLABEL_LABELS);
+ // classContent += "package org.nuiton.wikitty.publication;" ;
+ // classContent += "package "+ labels.toArray()[0].toString() +";";
+ classContent += "import org.apache.commons.logging.Log;";
+ classContent += "import org.apache.commons.logging.LogFactory;";
+ classContent += "import org.nuiton.wikitty.ScriptEvaluator;";
+ classContent += "import " + AbstractDecoredClass.class.getName() + ";";
+ classContent += "import org.nuiton.wikitty.entities.*;";
+ classContent += "import org.nuiton.wikitty.publication.entities.*;";
+ classContent += "import org.nuiton.wikitty.publication.action.*;";
+ classContent += "import java.util.*;";
+
+ classContent += "public class " + className + " extends "
+ + AbstractDecoredClass.class.getSimpleName() + " {";
+
+ classContent += "public Object eval(Map<String, Object> bindings ) throws Exception {";
+
+ // TODO mfortun-2011-07-08 write a better "filter" must isolate specific
+ // mime type that correspond to precompilable langague
+ classContent += "Object result = null;";
+ classContent += "String content = \""
+ + StringEscapeUtils.escapeJava(content) + "\";";
+ classContent += "String mimeType = \""
+ + StringEscapeUtils.escapeJava(mimeType) + "\";";
+ classContent += "String criteriaName= \"" + Element.ELT_ID + ":"
+ + wikitty.getId() + "\";";
+ classContent += " result = ScriptEvaluator.eval(null, criteriaName, content, mimeType, bindings);";
+ classContent += "return result;";
+
+ if (mimeType.equals(MimeTypePubHelper.JAVA_TYPE)){
+
+ /*
+ * Iterate on element that must be in the context and write
+ *
+ * classContent = "+type+" "+name+" = bindings.get(\""+name+"\");";
+ *
+ * ?
+ */
+ // contruct variables that can be used inside the java code.
+ classContent = "PublicationContext "
+ + WikittyPublicationConstant.CONTEXT_VAR
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.CONTEXT_VAR + "\");";
+ classContent = "WikittyPublicationConstant "
+ + WikittyPublicationConstant.EVAL_VAR
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.EVAL_VAR + "\");";
+ classContent = "String " + WikittyPublicationConstant.PAGE_NAME_VAR
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.PAGE_NAME_VAR + "\");";
+ classContent = "List<String> "
+ + WikittyPublicationConstant.SUBCONTEXT_VAR
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.SUBCONTEXT_VAR + "\");";
+ classContent = "Wikitty " + WikittyPublicationConstant.WIKITTY_VAR
+ + " = bindings.get(\""
+ + WikittyPublicationConstant.WIKITTY_VAR + "\");";
+
+ classContent += content;
+
+ }
+
+ classContent += "\n}\n}\n";
+
+ return classContent;
+ }
+
+}
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-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/MimeTypePubHelper.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -56,7 +56,7 @@
// change this to a handler to have specific langage compiler as jython etc
protected List<String> compilable;
protected ScriptEngineManager manager;
- protected UiCodeDecorator decorator;
+ protected CodeDecorator decorator;
static public String COMMON_MIME_SEP ="/";
static public String PUBLICATION_MIME_SEP=".";
@@ -78,7 +78,7 @@
public static String DEFAULT_MIME_TYPE = "application/octet-stream";
public MimeTypePubHelper() {
- decorator = new UiCodeDecorator();
+ decorator = new CodeDecorator();
compilable = new LinkedList<String>();
bidiMap = new DualHashBidiMap();
manager = ScriptEvaluator.getScriptEnginManager(null);
Deleted: 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-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -1,157 +0,0 @@
-package org.nuiton.wikitty.publication;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.lang.StringUtils;
-import org.nuiton.processor.Processor;
-import org.nuiton.processor.filters.GeneratorTemplatesFilter;
-import org.nuiton.processor.filters.GeneratorTemplatesFilterIn;
-import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.publication.entities.WikittyPubText;
-import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
-
-public class UiCodeDecorator {
-
- /*
- * Après le script engine le ui Code décorateur
- *
- * 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";
- protected String MIME_SEP = "/";
-
- protected Map<String, FilterOption> filtersOptions;
-
-
- static protected FilterOption defaultFilterOption;
-
- static {
- defaultFilterOption = new FilterOption();
- defaultFilterOption.setOpeningTemplate("var result=\"");
- defaultFilterOption.setWriteString("result");
- defaultFilterOption.setStringDelim("\"");
- defaultFilterOption.setConcatChar("+");
- defaultFilterOption.setEndingCar(";");
- defaultFilterOption.setClosingWriterChar("");
- defaultFilterOption.setOpeningWriterChar("+=");
- defaultFilterOption.setClosingTemplate("\";");
- defaultFilterOption.setMimeType("application/javascript");
-
-
-
- }
-
- public UiCodeDecorator() {
- filtersOptions = new HashMap<String, FilterOption>();
-
-
- // add basic value js and htmlp
- filtersOptions.put("html.javascript", defaultFilterOption);
-
- }
-
- public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException {
-
- if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- return wikitty;
- }
-
- GeneratorTemplatesFilter filter = new GeneratorTemplatesFilter();
- GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(
- filter);
-
- String mime = WikittyPubTextHelper.getMimeType(wikitty);
- String initialVersion = wikitty.getVersion();
-
- /*
- * changement de mime type changement de
- */
- /*
- * Fonction du mime type
- */
-
- String[] mimeTab = StringUtil.split(mime, MIME_SEP);
-
- FilterOption foption = filtersOptions.get(mimeTab[1]);
- if (foption == null) {
- foption = defaultFilterOption;
- }
-
- filterIn.setConcacChar(foption.getConcatChar());
- filterIn.setStringDelim(foption.getStringDelim());
- filterIn.getParent().setWriteString(foption.getWriteString());
- filterIn.setEndCar(foption.getEndingCar());
- filterIn.setOpeningWriterChar(foption.getOpeningWriterChar());
- filterIn.setClosingWriterChar(foption.getClosingWriterChar());
-
- String decoringAffect = foption.getOpeningTemplate();
- // initialize new content
- 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();
- 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 += 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) {
- if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- return false;
- }
- String mime = WikittyPubTextHelper.getMimeType(wikitty);
- return isMimeTypeUi(mime);
- }
-
-
- public boolean isTransformationNeeded(WikittyPubText wikitty) {
- String mime = wikitty.getMimeType();
- return isMimeTypeUi(mime);
- }
-
-
- public boolean isMimeTypeUi(String mime){
- MimeTypePubHelper helper = new MimeTypePubHelper();
- String mimeKeyOption = helper.pubUiMimeToConverterOption(mime);
- return filtersOptions.containsKey(mimeKeyOption);
- }
-
- public boolean isDecorated(String string) {
- return filtersOptions.containsKey(string);
-
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/AbstractDecoredClass.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/AbstractDecoredClass.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/AbstractDecoredClass.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -1,23 +0,0 @@
-package org.nuiton.wikitty.publication.externalize;
-
-import java.util.Map;
-
-
-/**
- * Abstract class for the skeleton and signature for wikittyPubText content
- * transform and compile as Java class.
- *
- * This class allow the evaluator engine to call the eval method to return
- * the result of the compiled code from the wikitty pub text content.
- *
- *
- * @author mfortun
- *
- */
-public abstract class AbstractDecoredClass {
-
-
- public abstract Object eval(Map<String, Object> bindings) throws Exception ;
-
-
-}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationClassLoader.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -26,4 +26,21 @@
return defineClass(name, b, off, len);
}
+
+ /*
+ * Réutiliser cette classe pour la création du class loader pour wikitty publication
+ *
+ *
+ * Charger tout les jar contenu dans le wikitty publication en fonction du context
+ * et du context apps.
+ *
+ * faire un md5 du contenu de tout les wikittypubcontenant les jar.
+ * et si il est différent de celui qu'on devrait avoir on reload
+ * sinon on réutilise les jar.
+ *
+ * mettre les jar dans un dossier ?
+ *
+ *
+ */
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyPublicationExternalize.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -19,7 +19,7 @@
import org.nuiton.wikitty.entities.WikittyLabelHelper;
import org.nuiton.wikitty.publication.MimeTypePubHelper;
import org.nuiton.wikitty.publication.PropertiesExtended;
-import org.nuiton.wikitty.publication.UiCodeDecorator;
+import org.nuiton.wikitty.publication.CodeDecorator;
import org.nuiton.wikitty.publication.WikittyFileUtil;
import org.nuiton.wikitty.publication.WikittyPublicationConstant;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
@@ -97,7 +97,7 @@
static public void externalize(ApplicationConfig conf, Criteria crit)
throws ArgumentsParserException, IOException {
-
+ CodeDecorator decorator = new CodeDecorator();
MimeTypePubHelper mimeHelper = new MimeTypePubHelper();
File currentFile = new File(".");
@@ -186,7 +186,7 @@
File javaFile = new File(tempDirectory.getAbsolutePath()
+ File.separator + labelPath + name + SOURCE_EXTENSION);
javaFile.createNewFile();
- String codeClass = getCode(wikit);
+ String codeClass = decorator.getCode(wikit);
FileUtil.writeString(javaFile, codeClass);
File classDirectory = new File(tempDirectory.getAbsolutePath()
@@ -259,89 +259,6 @@
* en jar et on va supprimer le dossier tempJar
*/
- public static String getCode(Wikitty wikitty) {
- MimeTypePubHelper mimeHelper = new MimeTypePubHelper();
- 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>)
- // wikitty.getField(WikittyLabel.EXT_WIKITTYLABEL,
- // WikittyLabel.FIELD_WIKITTYLABEL_LABELS);
- // classContent += "package org.nuiton.wikitty.publication;" ;
- // classContent += "package "+ labels.toArray()[0].toString() +";";
- classContent += "import org.apache.commons.logging.Log;";
- classContent += "import org.apache.commons.logging.LogFactory;";
- classContent += "import org.nuiton.wikitty.ScriptEvaluator;";
- classContent += "import " + AbstractDecoredClass.class.getName() + ";";
- classContent += "import org.nuiton.wikitty.entities.*;";
- classContent += "import org.nuiton.wikitty.publication.entities.*;";
- classContent += "import org.nuiton.wikitty.publication.action.*;";
- classContent += "import java.util.*;";
-
- classContent += "public class " + className + " extends "
- + AbstractDecoredClass.class.getSimpleName() + " {";
-
- classContent += "public Object eval(Map<String, Object> bindings ) throws Exception {";
-
- // TODO mfortun-2011-07-08 write a better "filter" must isolate specific
- // mime type that correspond to precompilable langague
- classContent += "Object result = null;";
- classContent += "String content = \""
- + StringEscapeUtils.escapeJava(content) + "\";";
- classContent += "String mimeType = \""
- + StringEscapeUtils.escapeJava(mimeType) + "\";";
- classContent += "String criteriaName= \"" + Element.ELT_ID + ":"
- + wikitty.getId() + "\";";
- classContent += " result = ScriptEvaluator.eval(null, criteriaName, content, mimeType, bindings);";
- classContent += "return result;";
-
- if (mimeType.equals(MimeTypePubHelper.JAVA_TYPE)){
-
- /*
- * Iterate on element that must be in the context and write
- *
- * classContent = "+type+" "+name+" = bindings.get(\""+name+"\");";
- *
- * ?
- */
- // contruct variables that can be used inside the java code.
- classContent = "PublicationContext "
- + WikittyPublicationConstant.CONTEXT_VAR
- + " = bindings.get(\""
- + WikittyPublicationConstant.CONTEXT_VAR + "\");";
- classContent = "WikittyPublicationConstant "
- + WikittyPublicationConstant.EVAL_VAR
- + " = bindings.get(\""
- + WikittyPublicationConstant.EVAL_VAR + "\");";
- classContent = "String " + WikittyPublicationConstant.PAGE_NAME_VAR
- + " = bindings.get(\""
- + WikittyPublicationConstant.PAGE_NAME_VAR + "\");";
- classContent = "List<String> "
- + WikittyPublicationConstant.SUBCONTEXT_VAR
- + " = bindings.get(\""
- + WikittyPublicationConstant.SUBCONTEXT_VAR + "\");";
- classContent = "Wikitty " + WikittyPublicationConstant.WIKITTY_VAR
- + " = bindings.get(\""
- + WikittyPublicationConstant.WIKITTY_VAR + "\");";
-
- classContent += content;
-
- }
-
- classContent += "\n}\n}\n";
-
- return classContent;
- }
-
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/WikittyServiceJarLoader.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -48,6 +48,7 @@
public class WikittyServiceJarLoader extends AbstractWikittyFileService {
public static String JAR_LOCATION_KEY = "wikitty.publication.repository.jar";
+ public static String JARS_LOCATION_KEY = "wikitty.publication.repository.jars";
/** Class logger. */
private static Log log = LogFactory.getLog(WikittyServiceJarLoader.class);
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEdit.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -131,13 +131,13 @@
}
if (wikitty == null) {
- System.out.println("ici");
+
// si le wikitty est null, et qu'on etait pas en edition
// cela signifie qu'on ne retrouve pas le wikitty a editer
// on creer un nouveau wikitty vide que l'on editera
wikitty = new WikittyImpl();
} else {
- System.out.println("on passe en set");
+
// on met a jour le wikitty avec les infos trouvees dans les
// arguments
@@ -249,7 +249,6 @@
}
- System.out.println("tehre" + isStore);
if (isStore) {
log.info("store requested");
log.debug(wikitty);
Modified: trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 09:23:21 UTC (rev 1155)
+++ trunk/wikitty-publication-ui/src/main/java/org/nuiton/wikitty/publication/ui/action/PublicationActionEval.java 2011-08-16 09:50:46 UTC (rev 1156)
@@ -1,32 +1,40 @@
package org.nuiton.wikitty.publication.ui.action;
import com.opensymphony.xwork2.ActionContext;
+
+import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
+import org.nuiton.util.FileUtil;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.ScriptEvaluator;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.publication.UiCodeDecorator;
+import org.nuiton.wikitty.publication.AbstractDecoredClass;
+import org.nuiton.wikitty.publication.CodeDecorator;
+import org.nuiton.wikitty.publication.MimeTypePubHelper;
import org.nuiton.wikitty.publication.WikittyPublicationConstant;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
import org.nuiton.wikitty.publication.entities.WikittyPubTextCompiled;
import org.nuiton.wikitty.publication.entities.WikittyPubTextCompiledHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextCompiledImpl;
import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
-import org.nuiton.wikitty.publication.externalize.AbstractDecoredClass;
+import org.nuiton.wikitty.publication.externalize.CompileHelper;
import org.nuiton.wikitty.publication.externalize.WikittyPublicationClassLoader;
import org.nuiton.wikitty.search.Criteria;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -44,6 +52,10 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(PublicationActionEval.class);
+ static protected String JAVA_TEMP_DIR_NAME = "PublicationJavaEvalDir";
+ static protected String JAR_TEMP_DIR_NAME= "PublicationJarRepository";
+ static protected String MD5_FILE = "JarMD5";
+
protected String contentType;
protected HttpServletResponse response;
protected HttpServletRequest request;
@@ -71,7 +83,8 @@
log.info("path " + subContext);
Object result;
-
+ CodeDecorator decorator = new CodeDecorator();
+
Criteria criteria = searchCriteria(subContext);
if (criteria == null) {
@@ -99,8 +112,70 @@
result = String.format("no data found for criteria '%s'",
criteria);
} else if (w
- .hasExtension(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED)) {
+ .hasExtension(WikittyPubTextCompiled.EXT_WIKITTYPUBTEXTCOMPILED)|| WikittyPubTextHelper.getMimeType(w).equals(MimeTypePubHelper.JAVA_TYPE)) {
+ if (WikittyPubTextHelper.getMimeType(w).equals(MimeTypePubHelper.JAVA_TYPE)){
+ String name = WikittyPubTextHelper.getName(w);
+ if (! FileUtils.getTempDirectory().exists()){
+ FileUtils.getTempDirectory().mkdir();
+ }
+
+ File javaWikittyFile = new File(FileUtils
+ .getTempDirectory().getAbsolutePath()
+ + File.separator + JAVA_TEMP_DIR_NAME);
+ if ( !javaWikittyFile.exists()){
+ javaWikittyFile.mkdir();
+ }
+
+ String javaContent = decorator.getCode(w);
+ String content = null;
+ try {
+ File javaFile = new File(
+ javaWikittyFile.getAbsolutePath()
+ + File.separator + name + ".java");
+
+ if (javaFile.exists()) {
+ content = FileUtil.readAsString(javaFile);
+ }
+ if (content == null
+ || !StringUtil.encodeMD5(javaContent).equals(
+ StringUtil.encodeMD5(content))) {
+ javaFile.createNewFile();
+ FileUtil.writeString(javaFile, javaContent);
+
+ PrintWriter writer = new PrintWriter(System.out);
+ // compile
+ CompileHelper.compile(javaWikittyFile, javaFile,
+ javaWikittyFile, writer);
+ }
+
+
+ File classFile = new File (javaWikittyFile.getAbsolutePath()+File.separator+name+".class");
+
+ byte[] wikittyByte = FileUtil.fileToByte(classFile);
+
+ w.addExtension(WikittyPubTextCompiledImpl.extensionWikittyPubTextCompiled);
+ WikittyPubTextCompiledHelper
+ .setByteCode(w, wikittyByte);
+ } catch (Exception e) {
+ // TODO Mfortun-2011-08-16 really handle exception
+ if (log.isErrorEnabled()){
+ log.error(
+ "Error while transforming wikittyPubText to wikittyPubTextCompiled wikitty:"
+ + w, e);
+ }
+
+ result = getError(context);
+ }
+
+ }
+
+
+
+
+
+
+
byte[] content = WikittyPubTextCompiledHelper.getByteCode(w);
if (content == null) {
result = getError(context);
@@ -143,7 +218,7 @@
}
} else {
- UiCodeDecorator decorator = new UiCodeDecorator();
+
log.debug("Check if transformed needed");
if (decorator.isTransformationNeeded(w)) {
log.debug("transformeneed");
1
0