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
May 2010
- 4 participants
- 32 discussions
Author: echatellier
Date: 2010-05-17 12:13:56 +0200 (Mon, 17 May 2010)
New Revision: 56
Url: http://nuiton.org/repositories/revision/wikitty/56
Log:
Move jetty to provided scope
Modified:
trunk/wikitty-jdbc-impl/pom.xml
Modified: trunk/wikitty-jdbc-impl/pom.xml
===================================================================
--- trunk/wikitty-jdbc-impl/pom.xml 2010-05-17 10:05:07 UTC (rev 55)
+++ trunk/wikitty-jdbc-impl/pom.xml 2010-05-17 10:13:56 UTC (rev 56)
@@ -60,6 +60,7 @@
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>${jetty.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
1
0
r55 - trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by echatellier@users.nuiton.org 17 May '10
by echatellier@users.nuiton.org 17 May '10
17 May '10
Author: echatellier
Date: 2010-05-17 12:05:07 +0200 (Mon, 17 May 2010)
New Revision: 55
Url: http://nuiton.org/repositories/revision/wikitty/55
Log:
Reset it deprecated
Modified:
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-17 10:05:07 UTC (rev 55)
@@ -24,7 +24,10 @@
* Generate pure Bean Object (no wikitty object internaly stored)
*
* @author poussin
+ *
+ * @deprecated since 2.0 will be removed soon
*/
+@Deprecated
public class BusinessEntityBeanGenerator extends WikengoCommonGenerator {
private static final Log log = LogFactory.getLog(BusinessEntityBeanGenerator.class);
1
0
r54 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by echatellier@users.nuiton.org 17 May '10
by echatellier@users.nuiton.org 17 May '10
17 May '10
Author: echatellier
Date: 2010-05-17 10:38:51 +0200 (Mon, 17 May 2010)
New Revision: 54
Url: http://nuiton.org/repositories/revision/wikitty/54
Log:
Add interface/abstract/impl generation.
Add property change support.
Added:
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityAbstractGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityImplGenerator.java
Removed:
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -17,6 +17,7 @@
package org.nuiton.wikitty;
+import java.beans.PropertyChangeListener;
import java.io.Serializable;
import java.util.Collection;
@@ -77,5 +78,35 @@
* @return
*/
public FieldType getFieldType(String ext, String fieldName);
+
+ /**
+ * Ajoute un listener gloable
+ *
+ * @param listener le listener à ajouter
+ */
+ void addPropertyChangeListener(PropertyChangeListener listener);
+ /**
+ * Supprime un listener globable.
+ *
+ * @param listener le listener à supprimer
+ */
+ void removePropertyChangeListener(PropertyChangeListener listener);
+
+ /**
+ * Ajoute un listener sur la propriété {@code propertyName}
+ *
+ * @param propertyName le nom de la propriété
+ * @param listener le listener à ajouter
+ */
+ void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
+
+ /**
+ * Supprime un listener sur la propriété {@code propertyName}
+ *
+ * @param propertyName le nom de la propriété
+ * @param listener le listener à supprimer
+ */
+ void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
+
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -17,6 +17,8 @@
package org.nuiton.wikitty;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -32,8 +34,11 @@
*/
public class BusinessEntityBean implements BusinessEntity {
- private static final long serialVersionUID = 1L;
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 5245199905431320116L;
+ protected transient PropertyChangeSupport propertyChangeSupport;
+
protected String id;
protected String version;
@@ -89,4 +94,37 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ propertyChangeSupport.addPropertyChangeListener(listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#removePropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+ }
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -17,6 +17,8 @@
package org.nuiton.wikitty;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
import java.util.Collection;
import java.util.Collections;
@@ -32,16 +34,20 @@
*/
public class BusinessEntityWikitty implements BusinessEntity {
- private static final long serialVersionUID = 1L;
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4399752739887114180L;
+ protected transient PropertyChangeSupport propertyChangeSupport;
+
protected Wikitty wikitty;
public BusinessEntityWikitty(Wikitty wi) {
+ propertyChangeSupport = new PropertyChangeSupport(this);
setWikitty(wi);
}
public BusinessEntityWikitty() {
- setWikitty(new Wikitty());
+ this(new Wikitty());
}
public String getWikittyId() {
@@ -98,4 +104,38 @@
public Collection<WikittyExtension> getStaticExtensions() {
return Collections.emptyList();
}
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ propertyChangeSupport.addPropertyChangeListener(listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#removePropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+ }
+
+ /*
+ * @see org.nuiton.wikitty.BusinessEntity#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+ }
}
Added: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityAbstractGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityAbstractGenerator.java (rev 0)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityAbstractGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -0,0 +1,445 @@
+package org.nuiton.wikitty.generator;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+/**
+ * Possible enhancement:
+ * - generateParentMethod can generate attribut method access that call
+ * the same method on parent instance class. For that we must have one attribut
+ * instance by parent. This attribut we must be created in setWikitty method
+ * and used same wikitty object.
+ *
+ * @author poussin
+ */
+public class BusinessEntityAbstractGenerator extends WikengoCommonGenerator {
+
+ private static final Log log = LogFactory.getLog(BusinessEntityAbstractGenerator.class);
+
+ static protected Pattern extractTypeOnCollection = Pattern.compile("\\w*<(\\w+)>");
+
+ protected String EXT_NAME;
+
+ @Override
+ public String getFilenameForClass(ObjectModelClass clazz) {
+ String fqn = clazz.getQualifiedName();
+ log.info( "Filename for " + clazz.getName() + " is " + fqn.replace('.', File.separatorChar) + ".java");
+ return fqn.replace('.', File.separatorChar) + "Abstract.java";
+ }
+
+ public void generateFromClass(Writer output, ObjectModelClass clazz)
+ throws IOException {
+ if (!EugengoUtils.isBusinessEntity(clazz)) {
+ log.info( clazz.getName() + " is not a business entity");
+ return;
+ }
+
+ log.info("Generate Business entity abstract" + clazz.getName() + "... ");
+ generateCopyright(output);
+
+ EXT_NAME = "EXT_" + clazz.getName().toUpperCase();
+
+ String packageName = clazz.getPackageName();
+ String name = clazz.getName() + "Abstract";
+/*{package <%=packageName%>;
+
+}*/
+ ObjectModelClass superClass = findSuperClass(clazz);
+
+ clearImports();
+ addImport(clazz);
+ addImport(superClass);
+ addImport("org.nuiton.wikitty.WikittyUtil");
+ addImport("org.nuiton.wikitty.Wikitty");
+ addImport("org.nuiton.wikitty.BusinessEntityWikitty");
+ addImport("org.nuiton.wikitty.WikittyExtension");
+ addImport(Collection.class);
+ addImport(Collections.class);
+ addImport(List.class);
+ addImport(ArrayList.class);
+ String parentImpl = null;
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ addImport(parent);
+ parentImpl = parent.getQualifiedName() + "Impl";
+ addImport( parentImpl );
+ }
+ }
+ lookForAttributeImports(clazz);
+ generateImports(output, packageName);
+
+ generateClazzDocumentation(output, clazz);
+ String extendsString = " extends " + ( parentImpl != null ? parentImpl : getType("org.nuiton.wikitty.BusinessEntityWikitty") );
+
+ String implementsString = "implements " + getType(clazz.getQualifiedName());
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ implementsString += ", " + getType(parent.getQualifiedName());
+ }
+ }
+
+/*{public abstract class <%=name%><%=extendsString%> <%=implementsString%> {
+
+}*/
+
+ String svUID = GeneratorUtil.computeSerialVersionUID(clazz);
+/*{ private static final long serialVersionUID = <%=svUID%>;
+
+}*/
+
+ generateWikittyExtension(output, clazz);
+
+ generateStaticAttributes(output, clazz);
+
+/*{
+ public <%=name%>() {
+ super();
+ }
+
+ public <%=name%>(BusinessEntityWikitty wi) {
+ super(wi.getWikitty());
+ }
+
+ public <%=name%>(Wikitty wi) {
+ super(wi);
+ }
+
+}*/
+
+ generateAttributeAccessMethod(output, clazz);
+
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ generateParentMethod(output, parent);
+ }
+ }
+
+/*{ @Override
+ public Collection<WikittyExtension> getStaticExtensions() {
+ return extensions;
+ }
+
+
+} //<%=name%>
+}*/
+
+ }
+
+
+
+ // Utilitarian methods
+
+ public void generateAttributeAccessMethod(Writer output, ObjectModelClass clazz) throws IOException {
+ for (ObjectModelAttribute attr : clazz.getAttributes()) {
+ if (attr.isNavigable() && !attr.isStatic()
+ && (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
+ if ((attr.getMaxMultiplicity() != 0 && attr.getMaxMultiplicity() != 1)) {
+ //TODO ymartel 20090812: when dataType "List", "Set" or "Collection" in model, must be here!
+ generateCollectionAttributeAccessors(output, attr);
+ } else {
+ generateWikittyAttributeAccessors(output, attr);
+ }
+ }
+ }
+ }
+
+ private void generateWikittyExtension(Writer output,
+ ObjectModelClass clazz) throws IOException {
+ String version = clazz.getTagValue("version");
+
+ // Since wikitty 1.3, version need to be dotted
+ if ( version == null ) {
+ version = "1.0";
+ }
+
+ // get requires from parent
+ String requires = null;
+ String separator = "";
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ String parentExtName = "EXT_" + parent.getName().toUpperCase();
+
+ if (requires == null) {
+ requires = "";
+ }
+
+ requires += separator + parent.getName() + "." + parentExtName;
+ // dans le cas où on aurait un heritage multiple :)
+ // FIXME EC-20100420 gerer les extensions multiples
+ separator = " + \",\" /* FIXME Multiples extentions are not yet supported */ + ";
+ }
+ }
+
+/*{ static final protected List<WikittyExtension> extensions;
+ static final public WikittyExtension extension<%=clazz.getName()%> =
+ new WikittyExtension(<%=EXT_NAME%>, "<%=version%>", <%=requires%>,
+ WikittyUtil.buildFieldMapExtension(}*/
+
+ separator = "";
+ for (ObjectModelAttribute attr : clazz.getAttributes()) {
+ if (attr.isNavigable() && !attr.isStatic() &&
+ (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
+/*{<%=separator%>
+ }*/
+ generateAttribute(output, attr);
+ separator = ",";
+ }
+ }
+/*{));
+ static {
+ ArrayList<WikittyExtension> exts = new ArrayList<WikittyExtension>();
+}*/
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+/*{
+ exts.addAll(<%=parent.getName()%>Abstract.extensions);
+}*/
+ }
+ }
+/*{
+ // EC-20100420 add current extension after parent ones
+ // if current is loaded before required extension
+ // load failed because required extension is missing
+ exts.add(extension<%=clazz.getName()%>);
+
+ extensions = Collections.unmodifiableList(exts);
+ }
+}*/
+ }
+
+ private void generateAttribute(Writer output, ObjectModelAttribute attr)
+ throws IOException {
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType);
+ } else {
+ return;
+ }
+
+ String attrName = attr.getName();
+ String card = "";
+
+ //TODO ymartel 20090812: a better way to manage those DataTypes in the model?
+ if (attrType.contains("Collection") || attrType.contains("List") || attrType.contains("Set")) {
+ card = "[0-*]";
+ // List<String>
+ Matcher match = extractTypeOnCollection.matcher(attrType);
+ if (match.matches()) {
+ attrType = match.group(1);
+ }
+ }
+
+ if (!commonTypes.contains(attrType)) {
+ attrType = "Wikitty";
+ } else if(commonNumerics.contains(attrType)) {
+ attrType = "Numeric";
+ } else if(commonStrings.contains(attrType)) {
+ attrType = "String";
+ }
+
+
+ int maxMultiplicity = attr.getMaxMultiplicity();
+ if ((maxMultiplicity != 0 && maxMultiplicity != 1)){
+ card = "[" + attr.getMinMultiplicity() + "-";
+ if (maxMultiplicity == -1) {
+ card += "*]";
+ } else {
+ card += maxMultiplicity + "]";
+ }
+ }
+
+ // FIXME EC-20100420 attr.isUnique() always return true for
+ // attributes (maybe use tagValue instead)
+ String unique = attr.isUnique() ? " unique" : "";
+
+ String tagValues = "";
+ if ("designation".equals(attr.getName())) {
+ System.out.println("+++ DEBUG +++ " + attr.getName() + " " + attr.getTagValues());
+ }
+ for (String tag : attr.getTagValues().keySet()) {
+ String value = attr.getTagValue(tag);
+ tagValues += " " + tag + "=" + value;
+ }
+
+/*{"<%=attrType%> <%=attrName%><%=card%><%=unique%><%=tagValues%>"}*/
+ }
+
+ private void generateParentMethod(Writer output,
+ ObjectModelClass clazz) throws IOException {
+
+ // we must generate method for parent of parent
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ generateParentMethod(output, parent);
+ }
+ }
+
+ // generate method acces for parent attribut
+ generateAttributeAccessMethod(output, clazz);
+ }
+
+ protected void generateWikittyAttributeAccessors(Writer output,
+ ObjectModelAttribute attr) throws IOException {
+
+ EXT_NAME = "EXT_" + attr.getDeclaringElement().getName().toUpperCase();
+
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType, true);
+ } else {
+ return;
+ }
+
+ // FIXME EC-20100421 cette methode peut retourner List<String>
+ // et generer la methode getWikitty().getFieldAsList<String>()
+ // qui ne peut pas compiler
+ String methodAccessName = getFieldAccessMethodName(attr);
+
+ String attrName = attr.getName();
+ String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(attrName);
+
+/*{
+ public void set<%=attrNameCapitalized%>(<%=attrType%> <%=attrName%>) {
+ Object oldValue = getField(<%=EXT_NAME%>, "<%=attrName%>");
+ getWikitty().setField(<%=EXT_NAME%>, "<%=attrName%>", <%=attrName%>);
+ propertyChangeSupport.firePropertyChange("<%=attrName%>", oldValue, <%=attrName%>);
+ }
+
+ public <%=attrType%> get<%=attrNameCapitalized%>() {
+ <%=attrType%> result = getWikitty().getFieldAs<%=methodAccessName%>(<%=EXT_NAME%>, "<%=attrName%>");
+ return result;
+ }
+
+}*/
+ }
+
+ /**
+ * Give the string to put after getFieldAs???, only some type is accepted
+ * and we must convert BusinessEntity to Wikitty string
+ * @param type
+ * @return
+ */
+ protected String getFieldAccessMethodName(ObjectModelAttribute attr) {
+ String result = computeType(attr);
+ result = getType(result, true);
+
+ boolean isCollection = (attr.getMaxMultiplicity() != 0
+ && attr.getMaxMultiplicity() != 1);
+ if (isCollection) {
+ if (attr.isUnique()) {
+ result = "Set";
+ } else {
+ result = "List";
+ }
+ } else {
+ // test for Date
+ if ("java.util.Date".equals(result) || "Date".equals(result)) {
+ result = "Date";
+ } else if (getModel().hasClass(result)) { // test for Wikitty object
+ ObjectModelClass fieldClass = getModel().getClass(result);
+ if (EugengoUtils.isBusinessEntity(fieldClass)) {
+ // for wikittyDto we use String for Id
+ result = "Wikitty";
+ }
+ } else if (null != getModel().getEnumeration(result)) {
+ result = "String";
+ }
+ }
+ result = EugengoUtils.toUpperCaseFirstLetter(result);
+
+ return result;
+ }
+
+ protected void generateCollectionAttributeAccessors(Writer output,
+ ObjectModelAttribute attr) throws IOException {
+
+ EXT_NAME = "EXT_" + attr.getDeclaringElement().getName().toUpperCase();
+
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType, true);
+ } else {
+ return;
+ }
+
+ // get collection element type for add and remove method arguement type
+ String elementType = getType(attr.getType(), true);
+
+ String methodAccessName = getFieldAccessMethodName(attr);
+
+ String attrName = attr.getName();
+ String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(attrName);
+/*{ public <%=attrType%> get<%=attrNameCapitalized%>() {
+ <%=attrType%> result = getWikitty().getFieldAs<%=methodAccessName%>(<%=EXT_NAME%>, "<%=attrName%>", <%=getClassAndGeneric(attrType)[1]%>.class);
+ return result;
+ }
+
+ public void add<%=attrNameCapitalized%>(<%=elementType%> element) {
+ getWikitty().addToField(<%=EXT_NAME%>, "<%=attrName%>", element);
+ propertyChangeSupport.firePropertyChange("<%=attrName%>", null, get<%=attrNameCapitalized%>());
+ }
+
+ public void remove<%=attrNameCapitalized%>(<%=elementType%> element) {
+ getWikitty().removeFromField(<%=EXT_NAME%>, "<%=attrName%>", element);
+ propertyChangeSupport.firePropertyChange("<%=attrName%>", null, get<%=attrNameCapitalized%>());
+ }
+
+ public void clear<%=attrNameCapitalized%>() {
+ getWikitty().clearField(<%=EXT_NAME%>, "<%=attrName%>");
+ propertyChangeSupport.firePropertyChange("<%=attrName%>", null, get<%=attrNameCapitalized%>());
+ }
+
+}*/
+ }
+
+ private static Set<String> commonNumerics;
+ static {
+ commonNumerics = new HashSet<String>();
+ commonNumerics.add("byte");
+ commonNumerics.add("Byte");
+ commonNumerics.add("short");
+ commonNumerics.add("Short");
+ commonNumerics.add("int");
+ commonNumerics.add("Integer");
+ commonNumerics.add("long");
+ commonNumerics.add("Long");
+ commonNumerics.add("float");
+ commonNumerics.add("Float");
+ commonNumerics.add("double");
+ commonNumerics.add("Double");
+ }
+
+ private static Set<String> commonStrings;
+ static {
+ commonStrings = new HashSet<String>();
+ commonStrings.add("char");
+ commonStrings.add("Char");
+ commonStrings.add("String");
+ }
+
+ private static Set<String> commonTypes;
+ static {
+ commonTypes = new HashSet<String>();
+ commonTypes.addAll(commonNumerics);
+ commonTypes.addAll(commonStrings);
+ commonTypes.add("boolean");
+ commonTypes.add("Boolean");
+ commonTypes.add("Date");
+ }
+
+}
Property changes on: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityAbstractGenerator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -24,10 +24,7 @@
* Generate pure Bean Object (no wikitty object internaly stored)
*
* @author poussin
- *
- * @deprecated since 2.0 will be removed soon
*/
-@Deprecated
public class BusinessEntityBeanGenerator extends WikengoCommonGenerator {
private static final Log log = LogFactory.getLog(BusinessEntityBeanGenerator.class);
@@ -88,7 +85,9 @@
generateClazzDocumentation(output, clazz);
String extendsString = " extends " + ( parentBean != null ? parentBean : getType("org.nuiton.wikitty.BusinessEntityBean") );
String abstractString = "";
- if (clazz.isAbstract()) {
+
+ // Temp fix, if operation, set it as abstract
+ if (clazz.isAbstract() || !clazz.getOperations().isEmpty()) {
abstractString += "abstract ";
}
@@ -99,11 +98,7 @@
}
}
-/*{/**
- * @deprecated since 2.0 will be removed soon
- *)
-@Deprecated
-public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
+/*{public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
}*/
Deleted: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -1,444 +0,0 @@
-package org.nuiton.wikitty.generator;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.GeneratorUtil;
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-
-/**
- * Possible enhancement:
- * - generateParentMethod can generate attribut method access that call
- * the same method on parent instance class. For that we must have one attribut
- * instance by parent. This attribut we must be created in setWikitty method
- * and used same wikitty object.
- *
- * @author poussin
- */
-public class BusinessEntityGenerator extends WikengoCommonGenerator {
-
- private static final Log log = LogFactory.getLog(BusinessEntityGenerator.class);
-
- static protected Pattern extractTypeOnCollection = Pattern.compile("\\w*<(\\w+)>");
-
- protected String EXT_NAME;
-
- @Override
- public String getFilenameForClass(ObjectModelClass clazz) {
- String fqn = clazz.getQualifiedName();
- log.info( "Filename for " + clazz.getName() + " is " + fqn.replace('.', File.separatorChar) + ".java");
- return fqn.replace('.', File.separatorChar) + "Impl.java";
- }
-
- public void generateFromClass(Writer output, ObjectModelClass clazz)
- throws IOException {
- if (!EugengoUtils.isBusinessEntity(clazz)) {
- log.info( clazz.getName() + " is not a business entity");
- return;
- }
-
- log.info("Generate Business entity " + clazz.getName() + "... ");
- generateCopyright(output);
-
- EXT_NAME = "EXT_" + clazz.getName().toUpperCase();
-
- String packageName = clazz.getPackageName();
- String name = clazz.getName() + "Impl";
-/*{package <%=packageName%>;
-
-}*/
- ObjectModelClass superClass = findSuperClass(clazz);
-
- clearImports();
- addImport(clazz);
- addImport(superClass);
- addImport("org.nuiton.wikitty.WikittyUtil");
- addImport("org.nuiton.wikitty.Wikitty");
- addImport("org.nuiton.wikitty.BusinessEntityWikitty");
- addImport("org.nuiton.wikitty.WikittyExtension");
- addImport(Collection.class);
- addImport(Collections.class);
- addImport(List.class);
- addImport(ArrayList.class);
- String parentImpl = null;
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- addImport(parent);
- parentImpl = parent.getQualifiedName() + "Impl";
- addImport( parentImpl );
- }
- }
- lookForAttributeImports(clazz);
- generateImports(output, packageName);
-
- generateClazzDocumentation(output, clazz);
- String extendsString = " extends " + ( parentImpl != null ? parentImpl : getType("org.nuiton.wikitty.BusinessEntityWikitty") );
- String abstractString = "";
- if (clazz.isAbstract()) {
- abstractString += "abstract ";
- }
-
- String implementsString = "implements " + getType(clazz.getQualifiedName());
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- implementsString += ", " + getType(parent.getQualifiedName());
- }
- }
-
-/*{public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
-
-}*/
-
- String svUID = GeneratorUtil.computeSerialVersionUID(clazz);
-/*{ private static final long serialVersionUID = <%=svUID%>;
-
-}*/
-
- generateWikittyExtension(output, clazz);
-
- generateStaticAttributes(output, clazz);
-
-/*{
- public <%=name%>() {
- super();
- }
-
- public <%=name%>(BusinessEntityWikitty wi) {
- super(wi.getWikitty());
- }
-
- public <%=name%>(Wikitty wi) {
- super(wi);
- }
-
-}*/
-
- generateAttributeAccessMethod(output, clazz);
-
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- generateParentMethod(output, parent);
- }
- }
-
-/*{ @Override
- public Collection<WikittyExtension> getStaticExtensions() {
- return extensions;
- }
-
-
-} //<%=name%>
-}*/
-
- }
-
-
-
- // Utilitarian methods
-
- public void generateAttributeAccessMethod(Writer output, ObjectModelClass clazz) throws IOException {
- for (ObjectModelAttribute attr : clazz.getAttributes()) {
- if (attr.isNavigable() && !attr.isStatic()
- && (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
- if ((attr.getMaxMultiplicity() != 0 && attr.getMaxMultiplicity() != 1)) {
- //TODO ymartel 20090812: when dataType "List", "Set" or "Collection" in model, must be here!
- generateCollectionAttributeAccessors(output, attr);
- } else {
- generateWikittyAttributeAccessors(output, attr);
- }
- }
- }
- }
-
- private void generateWikittyExtension(Writer output,
- ObjectModelClass clazz) throws IOException {
- String version = clazz.getTagValue("version");
-
- // Since wikitty 1.3, version need to be dotted
- if ( version == null ) {
- version = "1.0";
- }
-
- // get requires from parent
- String requires = null;
- String separator = "";
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- String parentExtName = "EXT_" + parent.getName().toUpperCase();
-
- if (requires == null) {
- requires = "";
- }
-
- requires += separator + parent.getName() + "." + parentExtName;
- // dans le cas où on aurait un heritage multiple :)
- // FIXME EC-20100420 gerer les extensions multiples
- separator = " + \",\" /* FIXME Multiples extentions are not yet supported */ + ";
- }
- }
-
-/*{ static final protected List<WikittyExtension> extensions;
- static final public WikittyExtension extension<%=clazz.getName()%> =
- new WikittyExtension(<%=EXT_NAME%>, "<%=version%>", <%=requires%>,
- WikittyUtil.buildFieldMapExtension(}*/
-
- separator = "";
- for (ObjectModelAttribute attr : clazz.getAttributes()) {
- if (attr.isNavigable() && !attr.isStatic() &&
- (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
-/*{<%=separator%>
- }*/
- generateAttribute(output, attr);
- separator = ",";
- }
- }
-/*{));
- static {
- ArrayList<WikittyExtension> exts = new ArrayList<WikittyExtension>();
-}*/
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
-/*{
- exts.addAll(<%=parent.getName()%>Impl.extensions);
-}*/
- }
- }
-/*{
- // EC-20100420 add current extension after parent ones
- // if current is loaded before required extension
- // load failed because required extension is missing
- exts.add(extension<%=clazz.getName()%>);
-
- extensions = Collections.unmodifiableList(exts);
- }
-}*/
- }
-
- private void generateAttribute(Writer output, ObjectModelAttribute attr)
- throws IOException {
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType);
- } else {
- return;
- }
-
- String attrName = attr.getName();
- String card = "";
-
- //TODO ymartel 20090812: a better way to manage those DataTypes in the model?
- if (attrType.contains("Collection") || attrType.contains("List") || attrType.contains("Set")) {
- card = "[0-*]";
- // List<String>
- Matcher match = extractTypeOnCollection.matcher(attrType);
- if (match.matches()) {
- attrType = match.group(1);
- }
- }
-
- if (!commonTypes.contains(attrType)) {
- attrType = "Wikitty";
- } else if(commonNumerics.contains(attrType)) {
- attrType = "Numeric";
- } else if(commonStrings.contains(attrType)) {
- attrType = "String";
- }
-
-
- int maxMultiplicity = attr.getMaxMultiplicity();
- if ((maxMultiplicity != 0 && maxMultiplicity != 1)){
- card = "[" + attr.getMinMultiplicity() + "-";
- if (maxMultiplicity == -1) {
- card += "*]";
- } else {
- card += maxMultiplicity + "]";
- }
- }
-
- // FIXME EC-20100420 attr.isUnique() always return true for
- // attributes (maybe use tagValue instead)
- String unique = attr.isUnique() ? " unique" : "";
-
- String tagValues = "";
- if ("designation".equals(attr.getName())) {
- System.out.println("+++ DEBUG +++ " + attr.getName() + " " + attr.getTagValues());
- }
- for (String tag : attr.getTagValues().keySet()) {
- String value = attr.getTagValue(tag);
- tagValues += " " + tag + "=" + value;
- }
-
-/*{"<%=attrType%> <%=attrName%><%=card%><%=unique%><%=tagValues%>"}*/
- }
-
- private void generateParentMethod(Writer output,
- ObjectModelClass clazz) throws IOException {
-
- // we must generate method for parent of parent
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- generateParentMethod(output, parent);
- }
- }
-
- // generate method acces for parent attribut
- generateAttributeAccessMethod(output, clazz);
- }
-
- protected void generateWikittyAttributeAccessors(Writer output,
- ObjectModelAttribute attr) throws IOException {
-
- EXT_NAME = "EXT_" + attr.getDeclaringElement().getName().toUpperCase();
-
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType, true);
- } else {
- return;
- }
-
- // FIXME EC-20100421 cette methode peut retourner List<String>
- // et generer la methode getWikitty().getFieldAsList<String>()
- // qui ne peut pas compiler
- String methodAccessName = getFieldAccessMethodName(attr);
-
- String attrName = attr.getName();
- String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(attrName);
-
-/*{
- public void set<%=attrNameCapitalized%>(<%=attrType%> <%=attrName%>) {
- getWikitty().setField(<%=EXT_NAME%>, "<%=attrName%>", <%=attrName%>);
- }
-
- public <%=attrType%> get<%=attrNameCapitalized%>() {
- <%=attrType%> result = getWikitty().getFieldAs<%=methodAccessName%>(<%=EXT_NAME%>, "<%=attrName%>");
- return result;
- }
-
-}*/
- }
-
- /**
- * Give the string to put after getFieldAs???, only some type is accepted
- * and we must convert BusinessEntity to Wikitty string
- * @param type
- * @return
- */
- protected String getFieldAccessMethodName(ObjectModelAttribute attr) {
- String result = computeType(attr);
- result = getType(result, true);
-
- boolean isCollection = (attr.getMaxMultiplicity() != 0
- && attr.getMaxMultiplicity() != 1);
- if (isCollection) {
- if (attr.isUnique()) {
- result = "Set";
- } else {
- result = "List";
- }
- } else {
- // test for Date
- if ("java.util.Date".equals(result) || "Date".equals(result)) {
- result = "Date";
- } else if (getModel().hasClass(result)) { // test for Wikitty object
- ObjectModelClass fieldClass = getModel().getClass(result);
- if (EugengoUtils.isBusinessEntity(fieldClass)) {
- // for wikittyDto we use String for Id
- result = "Wikitty";
- }
- } else if (null != getModel().getEnumeration(result)) {
- result = "String";
- }
- }
- result = EugengoUtils.toUpperCaseFirstLetter(result);
-
- return result;
- }
-
- protected void generateCollectionAttributeAccessors(Writer output,
- ObjectModelAttribute attr) throws IOException {
-
- EXT_NAME = "EXT_" + attr.getDeclaringElement().getName().toUpperCase();
-
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType, true);
- } else {
- return;
- }
-
- // get collection element type for add and remove method arguement type
- String elementType = getType(attr.getType(), true);
-
- String methodAccessName = getFieldAccessMethodName(attr);
-
- String attrName = attr.getName();
- String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(attrName);
-/*{ public <%=attrType%> get<%=attrNameCapitalized%>() {
- <%=attrType%> result = getWikitty().getFieldAs<%=methodAccessName%>(<%=EXT_NAME%>, "<%=attrName%>", <%=getClassAndGeneric(attrType)[1]%>.class);
- return result;
- }
-
- public void add<%=attrNameCapitalized%>(<%=elementType%> element) {
- getWikitty().addToField(<%=EXT_NAME%>, "<%=attrName%>", element);
- }
-
- public void remove<%=attrNameCapitalized%>(<%=elementType%> element) {
- getWikitty().removeFromField(<%=EXT_NAME%>, "<%=attrName%>", element);
- }
-
- public void clear<%=attrNameCapitalized%>() {
- getWikitty().clearField(<%=EXT_NAME%>, "<%=attrName%>");
- }
-
-}*/
- }
-
- private static Set<String> commonNumerics;
- static {
- commonNumerics = new HashSet<String>();
- commonNumerics.add("byte");
- commonNumerics.add("Byte");
- commonNumerics.add("short");
- commonNumerics.add("Short");
- commonNumerics.add("int");
- commonNumerics.add("Integer");
- commonNumerics.add("long");
- commonNumerics.add("Long");
- commonNumerics.add("float");
- commonNumerics.add("Float");
- commonNumerics.add("double");
- commonNumerics.add("Double");
- }
-
- private static Set<String> commonStrings;
- static {
- commonStrings = new HashSet<String>();
- commonStrings.add("char");
- commonStrings.add("Char");
- commonStrings.add("String");
- }
-
- private static Set<String> commonTypes;
- static {
- commonTypes = new HashSet<String>();
- commonTypes.addAll(commonNumerics);
- commonTypes.addAll(commonStrings);
- commonTypes.add("boolean");
- commonTypes.add("Boolean");
- commonTypes.add("Date");
- }
-
-}
Added: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityImplGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityImplGenerator.java (rev 0)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityImplGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -0,0 +1,150 @@
+package org.nuiton.wikitty.generator;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+/**
+ * Possible enhancement:
+ * - generateParentMethod can generate attribut method access that call
+ * the same method on parent instance class. For that we must have one attribut
+ * instance by parent. This attribut we must be created in setWikitty method
+ * and used same wikitty object.
+ *
+ * @author poussin
+ */
+public class BusinessEntityImplGenerator extends WikengoCommonGenerator {
+
+ private static final Log log = LogFactory.getLog(BusinessEntityImplGenerator.class);
+
+ @Override
+ public String getFilenameForClass(ObjectModelClass clazz) {
+ String fqn = clazz.getQualifiedName();
+ log.info( "Filename for " + clazz.getName() + " is " + fqn.replace('.', File.separatorChar) + ".java");
+ return fqn.replace('.', File.separatorChar) + "Impl.java";
+ }
+
+ public void generateFromClass(Writer output, ObjectModelClass clazz)
+ throws IOException {
+ if (!EugengoUtils.isBusinessEntity(clazz)) {
+ log.info( clazz.getName() + " is not a business entity");
+ return;
+ }
+
+ // On ne génère pas le impl si l'entité a des opérations
+ if (clazz.getOperations().size() > 0) {
+ return;
+ }
+
+ log.info("Generate Business entity impl" + clazz.getName() + "... ");
+ generateCopyright(output);
+
+ String packageName = clazz.getPackageName();
+ String className = clazz.getName();
+ String name = className + "Impl";
+/*{package <%=packageName%>;
+
+}*/
+ ObjectModelClass superClass = findSuperClass(clazz);
+
+ clearImports();
+ addImport(clazz);
+ addImport(superClass);
+ addImport("org.nuiton.wikitty.WikittyUtil");
+ addImport("org.nuiton.wikitty.Wikitty");
+ addImport("org.nuiton.wikitty.BusinessEntityWikitty");
+ addImport("org.nuiton.wikitty.WikittyExtension");
+ addImport(Collection.class);
+ addImport(Collections.class);
+ addImport(List.class);
+ addImport(ArrayList.class);
+ String parentImpl = null;
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ addImport(parent);
+ parentImpl = parent.getQualifiedName() + "Impl";
+ addImport( parentImpl );
+ }
+ }
+ lookForAttributeImports(clazz);
+ generateImports(output, packageName);
+
+ generateClazzDocumentation(output, clazz);
+ String abstractString = "";
+ if (clazz.isAbstract()) {
+ abstractString += "abstract ";
+ }
+
+/*{public <%=abstractString%>class <%=className%>Impl extends <%=className%>Abstract {
+
+}*/
+
+ String svUID = GeneratorUtil.computeSerialVersionUID(clazz);
+/*{ private static final long serialVersionUID = <%=svUID%>;
+
+ public <%=name%>() {
+ super();
+ }
+
+ public <%=name%>(BusinessEntityWikitty wi) {
+ super(wi.getWikitty());
+ }
+
+ public <%=name%>(Wikitty wi) {
+ super(wi);
+ }
+
+} //<%=name%>
+}*/
+ }
+
+ private static Set<String> commonNumerics;
+ static {
+ commonNumerics = new HashSet<String>();
+ commonNumerics.add("byte");
+ commonNumerics.add("Byte");
+ commonNumerics.add("short");
+ commonNumerics.add("Short");
+ commonNumerics.add("int");
+ commonNumerics.add("Integer");
+ commonNumerics.add("long");
+ commonNumerics.add("Long");
+ commonNumerics.add("float");
+ commonNumerics.add("Float");
+ commonNumerics.add("double");
+ commonNumerics.add("Double");
+ }
+
+ private static Set<String> commonStrings;
+ static {
+ commonStrings = new HashSet<String>();
+ commonStrings.add("char");
+ commonStrings.add("Char");
+ commonStrings.add("String");
+ }
+
+ private static Set<String> commonTypes;
+ static {
+ commonTypes = new HashSet<String>();
+ commonTypes.addAll(commonNumerics);
+ commonTypes.addAll(commonStrings);
+ commonTypes.add("boolean");
+ commonTypes.add("Boolean");
+ commonTypes.add("Date");
+ }
+
+}
Property changes on: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityImplGenerator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -3,11 +3,16 @@
import java.io.File;
import java.io.IOException;
import java.io.Writer;
+import java.util.Collection;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+import org.nuiton.eugene.models.object.ObjectModelParameter;
/**
* Interface for BusinessEntity, interfaces are needed for multiple inheritance
@@ -74,6 +79,8 @@
generateStaticAttributes(output, clazz);
generateAttributeAccessMethod(output, clazz);
+
+ generateInterfaceOperations(output, clazz);
/*{
} //<%=name%>
@@ -149,4 +156,45 @@
}*/
}
+ private void generateInterfaceOperations(Writer output, ObjectModelClassifier classifier) throws IOException {
+ for (ObjectModelOperation op : classifier.getOperations()) {
+ String opName = op.getName();
+/*{ /**
+}*/
+ if (EugengoUtils.hasDocumentation(op)) {
+ String opDocumentation = op.getDocumentation();
+/*{ * <%=opName%> : <%=opDocumentation%>
+}*/
+ }
+ Collection<ObjectModelParameter> params = op.getParameters();
+ for (ObjectModelParameter param : params) {
+ String paramName = param.getName();
+ String paramDocumentation = param.getDocumentation();
+/*{ * @param <%=paramName%> <%=paramDocumentation%>
+ }*/
+ }
+ String opVisibility = op.getVisibility();
+ String opType = op.getReturnType();
+/*{ *)
+ <%=opVisibility%> <%=opType%> <%=opName%>(}*/
+ String comma = "";
+ for (ObjectModelParameter param : params) {
+ String paramName = param.getName();
+ String paramType = param.getType();
+/*{<%=comma%><%=paramType%> <%=paramName%>}*/
+ comma = ", ";
+ }
+/*{)}*/
+ Set<String> exceptions = op.getExceptions();
+ comma = " throws ";
+ for (String exception : exceptions) {
+/*{<%=comma%><%=exception%>}*/
+ comma = ", ";
+ }
+/*{;
+
+}*/
+ }
+ }
+
}
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-05-17 08:38:51 UTC (rev 54)
@@ -31,7 +31,8 @@
// Wikitty (Interface, impl...)
BusinessEntityInterfaceGenerator.class,
- BusinessEntityGenerator.class,
+ BusinessEntityAbstractGenerator.class,
+ BusinessEntityImplGenerator.class,
BusinessEntityBeanGenerator.class
));
2
1
Author: echatellier
Date: 2010-05-12 17:08:48 +0200 (Wed, 12 May 2010)
New Revision: 53
Url: http://nuiton.org/repositories/revision/wikitty/53
Log:
Refactor package name to org.nuiton
Added:
trunk/wikitty-api/src/main/java/org/nuiton/
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/AbstractWikittyService.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Criteria.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/ExtensionFactory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FacetTopic.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldFactory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JobState.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Package.html
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Tree.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/UpdateResponse.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyDAO.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyException.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigration.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionStorage.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyStorage.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyTransaction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/
trunk/wikitty-api/src/main/resources/org/nuiton/
trunk/wikitty-api/src/test/java/org/nuiton/
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/memory/
trunk/wikitty-generators/src/main/java/org/nuiton/
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/
trunk/wikitty-jms-impl/src/main/java/org/nuiton/
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/
trunk/wikitty-jms-impl/src/test/java/org/nuiton/
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/
trunk/wikitty-solr-impl/src/main/java/org/nuiton/
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/
trunk/wikitty-solr-impl/src/test/java/org/nuiton/
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/
Removed:
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntity.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityBean.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityWikitty.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Criteria.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FacetTopic.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldFactory.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldType.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/JobState.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Package.html
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/PagedResult.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Tree.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/UpdateResponse.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Wikitty.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyDAO.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyException.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtension.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigration.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigrationRename.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittySearchEngin.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyService.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyStorage.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyTransaction.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyUtil.java
trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/
trunk/wikitty-api/src/main/resources/org/sharengo/
trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/
trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/
trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/memory/
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/
trunk/wikitty-hbase-impl/src/main/java/org/sharengo/wikitty/hbase/
trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/
trunk/wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/
trunk/wikitty-jdbc-impl/src/test/java/org/sharengo/wikitty/jdbc/test/
trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/
trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/
trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/
trunk/wikitty-jpa-impl/src/test/java/org/sharengo/wikitty/jpa/test/
trunk/wikitty-multistorage-impl/src/main/java/org/sharengo/wikitty/multistorage/
trunk/wikitty-multistorage-impl/src/test/java/org/sharengo/wikitty/multistorage/test/
trunk/wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/
trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/
Modified:
trunk/wikitty-api/pom.xml
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/AssociatedRestriction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Element.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Keyword.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Like.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionHelper.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionName.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SearchOperand.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SubSearch.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Unlike.java
trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-api.uml
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/AbstractTestApi.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/CommonTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/ExtensionFactoryTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/SearchCriteriaTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/WikittyUtilTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/AbstractTestConformance.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/ImportExportTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/PerformanceTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/SearchTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/StorageTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/memory/InMemoryStorageTest.java
trunk/wikitty-api/src/test/resources/META-INF/spring/wikitty-test.xml
trunk/wikitty-api/src/test/resources/log4j.properties
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EnumGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoConstants.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoUtils.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/InterfaceGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikengoCommonGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyExtensionStorageHBase.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyHBaseUtil.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyServiceHBase.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/AbstractTestHbase.java
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/HBaseConnectorTest.java
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/ServiceFactory.java
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StandAloneServer.java
trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StorageHbaseTest.java
trunk/wikitty-hbase-impl/src/test/resources/META-INF/spring/wikitty-test.xml
trunk/wikitty-hbase-impl/src/test/resources/log4j.properties
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyServiceJDBC.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java
trunk/wikitty-jdbc-impl/src/test/resources/META-INF/spring/wikitty-test.xml
trunk/wikitty-jdbc-impl/src/test/resources/log4j.properties
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyActionMessage.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyBrokerFactory.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionStorageJMS.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionSubscriberJMS.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyJMSUtil.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageJMS.java
trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageSubscriberJMS.java
trunk/wikitty-jms-impl/src/main/resources/META-INF/services/org/apache/activemq/broker/wikitty
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTCPTest.java
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveVMTest.java
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyExtensionStorageAdapter.java
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyStorageAdapter.java
trunk/wikitty-jms-impl/src/test/resources/log4j.properties
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossTMFactoryBean.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossUTFactoryBean.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JtaPersistenceUnitPostProcessor.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/TransactionManagerLookup.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyExtensionStorageJPA.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyJPAUtil.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyServiceJPA.java
trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyStorageJPA.java
trunk/wikitty-jpa-impl/src/main/resources/META-INF/orm.xml
trunk/wikitty-jpa-impl/src/main/resources/META-INF/persistence.xml
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/StorageJPATest.java
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java
trunk/wikitty-jpa-impl/src/test/resources/META-INF/spring/wikitty-test.xml
trunk/wikitty-jpa-impl/src/test/resources/log4j.properties
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/MultiStorageConfiguration.java
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyExtensionMultiStorage.java
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyMultiStorage.java
trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyServiceMultiStorage.java
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java
trunk/wikitty-multistorage-impl/src/test/resources/log4j.properties
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/Restriction2Solr.java
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittyQueryParser.java
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java
trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/AbstractTestSolr.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrServerTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/WikittyServiceSolr.java
trunk/wikitty-solr-impl/src/test/resources/META-INF/spring/wikitty-test.xml
trunk/wikitty-solr-impl/src/test/resources/log4j.properties
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/pom.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -174,10 +174,10 @@
<phase>generate-sources</phase>
<!--<configuration>
<inputs>src/main/uml/wikitty-api:**\/*.uml</inputs>
- <fullPackagePath>org.sharengo.wikitty</fullPackagePath>
- <defaultPackage>org.sharengo.wikitty</defaultPackage>
- <extractedPackages>org.sharengo.wikitty</extractedPackages>
- <templates>org.sharengo.wikitty.generator.WikittyMetaGenerator</templates>
+ <fullPackagePath>org.nuiton.wikitty</fullPackagePath>
+ <defaultPackage>org.nuiton.wikitty</defaultPackage>
+ <extractedPackages>org.nuiton.wikitty</extractedPackages>
+ <templates>org.nuiton.wikitty.generator.WikittyMetaGenerator</templates>
</configuration>
<goals>
<goal>smart-generate</goal>
@@ -188,10 +188,10 @@
<input>${maven.src.dir}/main/uml/wikitty-api</input>
</zargoResources>
<includes>**/*.objectmodel</includes>
- <templates>org.sharengo.wikitty.generator.WikittyMetaGenerator</templates>
- <defaultPackage>org.sharengo.wikitty</defaultPackage>
- <extractedPackages>org.sharengo.wikitty</extractedPackages>
- <generatedPackages>org.sharengo.wikitty</generatedPackages>
+ <templates>org.nuiton.wikitty.generator.WikittyMetaGenerator</templates>
+ <defaultPackage>org.nuiton.wikitty</defaultPackage>
+ <extractedPackages>org.nuiton.wikitty</extractedPackages>
+ <generatedPackages>org.nuiton.wikitty</generatedPackages>
</configuration>
<goals>
<goal>zargo2xmi</goal>
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/AbstractWikittyService.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/AbstractWikittyService.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/AbstractWikittyService.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,1233 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.AbstractMap.SimpleEntry;
+import java.util.Map.Entry;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.FutureTask;
+
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.LabelImpl;
+import org.nuiton.wikitty.TreeNode;
+import org.nuiton.wikitty.TreeNodeBean;
+import org.nuiton.wikitty.TreeNodeImpl;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+/**
+ * Abstract class that new implementation must extends.
+ * New implementation only have three method to implement:
+ * <li>getSearchEngin
+ * <li>getExtensionStorage
+ * <li>getWikittyStorage
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public abstract class AbstractWikittyService implements WikittyService {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(AbstractWikittyService.class);
+
+ // FIXME poussin 20090902 next 3 variables must be read from configuration file
+ /** number of thread used to import/export task */
+ protected int MAX_IMPORT_EXPORT_THREAD = 1;
+ /** directory path where export asynchronous file are stored */
+ protected String EXPORT_DIRECTORY = "/tmp/";
+ /** url used by client to retrieve export file when job is ended */
+ protected String EXPORT_URL = "file:///tmp/";
+
+ /** Executor that do import export task */
+ protected ExecutorService importExportExecutor =
+ // TODO poussin 20090902 do thread number configurable
+ Executors.newFixedThreadPool(MAX_IMPORT_EXPORT_THREAD);
+ /** contains all import or export task, key is job id send to client */
+ protected Map<String, Future<String>> importExportTask =
+ new HashMap<String, Future<String>>();
+
+ /** Default migration use to migrate a wikitty in last extension version */
+ protected WikittyExtensionMigration defaultExtensionMigration =
+ new WikittyExtensionMigrationRename();
+
+ abstract protected WikittySearchEngin getSearchEngin();
+ abstract protected WikittyExtensionStorage getExtensionStorage();
+ abstract protected WikittyStorage getWikittyStorage();
+
+ protected UpdateResponse store(WikittyTransaction transaction,
+ Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
+ // update/store extension if necessary
+ Set<WikittyExtension> allExtensions = new HashSet<WikittyExtension>();
+ for (Wikitty w : wikitties) {
+ // collect all extensions used by all wikitties
+ allExtensions.addAll(w.getExtensions());
+ }
+
+ // try to commit command
+ UpdateResponse extUpdate = getExtensionStorage().store(transaction, allExtensions);
+ UpdateResponse wikUpdate = getWikittyStorage().store(transaction, wikitties, disableAutoVersionIncrement);
+ UpdateResponse indexUpdate = getSearchEngin().store(transaction, wikitties);
+
+ UpdateResponse result = new UpdateResponse();
+ // prepare update client response
+ result.add(extUpdate);
+ result.add(wikUpdate);
+ result.add(indexUpdate);
+
+ return result;
+ }
+
+ /**
+ * Store and index wikitty object
+ * @param wikitty
+ */
+ @Override
+ public UpdateResponse store(Wikitty wikitty) {
+ if (wikitty != null) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ List<Wikitty> wikitties = Arrays.asList(wikitty);
+ UpdateResponse result = store(transaction, wikitties, false);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ } else {
+ throw new WikittyException("You can't store null wikitty object");
+ }
+ }
+
+ /**
+ * Store and index wikitties object
+ * @param wikitty
+ */
+ @Override
+ public UpdateResponse store(Collection<Wikitty> wikitties) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ UpdateResponse result = store(transaction, wikitties, false);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Store and index wikitties object
+ * @param wikitty
+ */
+ @Override
+ public UpdateResponse store(Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ UpdateResponse result = store(transaction, wikitties, disableAutoVersionIncrement);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public List<String> getAllExtensionIds() {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ List<String> result = getExtensionStorage().getAllExtensionIds(transaction);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public List<String> getAllExtensionsRequires(String extensionName) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ List<String> result = getExtensionStorage()
+ .getAllExtensionsRequires(transaction, extensionName);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ protected UpdateResponse storeExtension(WikittyTransaction transaction, Collection<WikittyExtension> exts) {
+ UpdateResponse result = getExtensionStorage().store(transaction, exts);
+ return result;
+ }
+
+ /**
+ * Save just one extension
+ * @param ext
+ * @throws java.io.IOException
+ */
+ @Override
+ public UpdateResponse storeExtension(Collection<WikittyExtension> exts) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ UpdateResponse result = storeExtension(transaction, exts);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public UpdateResponse storeExtension(WikittyExtension ext) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ UpdateResponse result = storeExtension(transaction, Arrays.asList(ext));
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ protected WikittyExtension restoreExtension(WikittyTransaction transaction, String id) {
+ //split the id to ensure that version is normalized
+ String name = WikittyExtension.computeName(id);
+ String version = WikittyExtension.computeVersion(id);
+
+ WikittyExtension result = getExtensionStorage().restore(transaction, name, version);
+ return result;
+ }
+ /**
+ * Load extension from id. Id is 'name[version]'
+ * @param id
+ * @return
+ */
+ @Override
+ public WikittyExtension restoreExtension(String id) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ WikittyExtension result = restoreExtension(transaction, id);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+
+ }
+
+ protected WikittyExtension restoreExtensionLastVersion(WikittyTransaction transaction, String name) {
+ String version = getExtensionStorage().getLastVersion(transaction, name);
+ if(version == null) {
+ return null;
+ }
+
+ WikittyExtension result = getExtensionStorage().restore(transaction, name, version);
+ return result;
+ }
+
+ @Override
+ public WikittyExtension restoreExtensionLastVersion(String name) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ WikittyExtension result = restoreExtensionLastVersion(transaction, name);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ protected Wikitty restore(WikittyTransaction transaction, String id) {
+ if (!getWikittyStorage().exists(transaction, id)) {
+ // object doesn't exist, we return null
+ return null;
+ }
+
+ if (getWikittyStorage().isDeleted(transaction, id)) {
+ // object deleted, we return null
+ return null;
+ }
+ Wikitty result = getWikittyStorage().restore(transaction, id);
+ if(result != null) {
+ result = upgradeData(transaction, result);
+ }
+ return result;
+ }
+
+ protected List<Wikitty> restore(WikittyTransaction transaction, List<String> ids) {
+ List<Wikitty> result = new ArrayList<Wikitty>();
+ for(String id : ids) {
+ Wikitty w = restore(transaction, id);
+ if (w != null) {
+ result.add(w);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public List<Wikitty> restore(List<String> ids) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ List<Wikitty> result = restore(transaction, ids);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public Wikitty restore(String id) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty result = restore(transaction, id);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ protected Wikitty upgradeData(WikittyTransaction transaction, Wikitty wikitty) {
+ Wikitty result = wikitty;
+
+ Collection<WikittyExtension> extensions = wikitty.getExtensions();
+ for (WikittyExtension extension : extensions) {
+ String extensionName = extension.getName();
+ log.debug("extensionName=" + extensionName);
+
+ WikittyExtension currentExtension = extension;
+ String currentExtensionVersion = currentExtension.getVersion();
+
+ WikittyExtension lastExtension = restoreExtensionLastVersion(transaction, extensionName);
+ String lastExtensionVersion = lastExtension.getVersion();
+ log.debug("lastExtensionVersion=" + lastExtensionVersion);
+
+ WikittyExtensionMigration migration = WikittyExtensionMigration.migrationRegistry.get(extensionName);
+ if (migration == null) {
+ migration = defaultExtensionMigration;
+ }
+
+ // Loop on between extension in wikitty and last version
+ while(WikittyUtil.versionGreaterThan(lastExtensionVersion, currentExtensionVersion)) {
+
+ // Get extension after the current version
+ String nextExtensionVersion = WikittyUtil.incrementMajorRevision(currentExtensionVersion);
+ String nextExtensionId = WikittyExtension.computeId(extensionName, nextExtensionVersion);
+ WikittyExtension nextExtension = restoreExtension(transaction, nextExtensionId);
+
+ log.debug("currentExtensionVersion=" + currentExtensionVersion);
+ log.debug("nextExtensionVersion=" + nextExtensionVersion);
+
+ // Test if extension is never use in this version
+ if(nextExtension != null) {
+ result = migration.migrate(this, transaction, result, currentExtension, nextExtension);
+ currentExtension = nextExtension;
+ }
+
+ // Follow
+ currentExtensionVersion = nextExtensionVersion;
+ }
+ }
+
+ return result;
+ }
+
+ protected void delete(WikittyTransaction transaction, Collection<String> ids) throws WikittyException {
+ // work only on valid id
+ Collection<Wikitty> storedWikitties = new ArrayList<Wikitty>();
+ List<String> idList = new LinkedList<String>(ids);
+ for (Iterator<String> i = idList.iterator(); i.hasNext();) {
+ String id = i.next();
+ // test if wikitty exists
+ if (!getWikittyStorage().exists(transaction, id)) {
+ // don't exist, remove this id in id list
+ i.remove();
+ }
+ if (getWikittyStorage().isDeleted(transaction, id)) {
+ // already deleted, remove this id in id list
+ i.remove();
+ }
+
+ // Store node with have deleted node as parent
+ Criteria criteria = Search.query().eq(TreeNode.FQ_FIELD_PARENT, id).criteria();
+ List<Wikitty> wikittyNodes = findAllByCriteria(transaction, criteria).getAll();
+ for (Wikitty wikittyNode : wikittyNodes) {
+ String wikittyNodeId = wikittyNode.getId();
+ if(!ids.contains(wikittyNodeId)) {
+ TreeNode treeNode = new TreeNodeImpl(wikittyNode);
+ treeNode.setParent(null);
+ storedWikitties.add(wikittyNode);
+ }
+ }
+
+ // Store node with have deleted child
+ criteria = Search.query().eq(TreeNode.FQ_FIELD_CHILDREN, id).criteria();
+ wikittyNodes = findAllByCriteria(transaction, criteria).getAll();
+ for (Wikitty wikittyNode : wikittyNodes) {
+ String wikittyNodeId = wikittyNode.getId();
+ if(!ids.contains(wikittyNodeId)) {
+ TreeNode treeNode = new TreeNodeImpl(wikittyNode);
+ treeNode.removeChildren(id);
+ storedWikitties.add(wikittyNode);
+ }
+ }
+ }
+
+ getWikittyStorage().delete(transaction, ids);
+ getSearchEngin().delete(transaction, ids);
+
+ store(transaction, storedWikitties, false);
+ }
+
+ @Override
+ public void delete(String id) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ List<String> ids = Arrays.asList(id);
+ delete(transaction, ids);
+
+ transaction.commit();
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public void delete(Collection<String> ids){
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ delete(transaction, ids);
+
+ transaction.commit();
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Use with caution : It will delete ALL indexes from search engine !
+ * This operation should be disabled in production environment.
+ */
+ @Override
+ public void clear() {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ getSearchEngin().clear(transaction);
+ getWikittyStorage().clear(transaction);
+ getExtensionStorage().clear(transaction);
+
+ transaction.commit();
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Assume that this PagedResult contains wikitty id as result and
+ * return new PagedResult with Wikitty instance
+ */
+ protected PagedResult<Wikitty> findAllByCriteria(WikittyTransaction transaction, Criteria criteria) {
+ PagedResult<String> resultIds = getSearchEngin().findAllByCriteria(transaction, criteria);
+ List<String> ids = resultIds.getAll();
+ List<Wikitty> wikitties = restore(transaction, ids);
+ PagedResult<Wikitty> result = new PagedResult<Wikitty>(
+ resultIds.getFirstIndice(),
+ resultIds.getNumFound(),
+ resultIds.getQueryString(),
+ resultIds.getFacets(),
+ wikitties);
+ return result;
+ }
+
+ @Override
+ public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ protected Wikitty findByCriteria(WikittyTransaction transaction, Criteria criteria) {
+ criteria.setFirstIndex(0).setEndIndex(1);
+ PagedResult<Wikitty> pages = findAllByCriteria(transaction, criteria);
+
+ Wikitty result = null;
+ if (pages.size() > 0) {
+ result = pages.getFirst();
+ }
+
+ return result;
+ }
+
+ @Override
+ public Wikitty findByCriteria(Criteria criteria) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty result = findByCriteria(transaction, criteria);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public void addLabel(String wikittyId, String label) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty w = restore(transaction, wikittyId);
+ w.addExtension(LabelImpl.extensions);
+ LabelImpl l = new LabelImpl(w);
+ l.addLabels(label);
+ store(transaction, Arrays.asList(w), false);
+
+ transaction.commit();
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ LabelImpl l = new LabelImpl();
+ l.addLabels(label);
+ Criteria criteria = Search.query(l.getWikitty()).criteria()
+ .setFirstIndex(firstIndex).setEndIndex(endIndex);
+ PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public Wikitty findByLabel(String label) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ LabelImpl l = new LabelImpl();
+ l.addLabels(label);
+ Criteria criteria = Search.query(l.getWikitty()).criteria();
+ Wikitty result = findByCriteria(transaction, criteria);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public Set<String> findAllAppliedLabels(String wikittyId) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty w = restore(transaction, wikittyId);
+ LabelImpl l = new LabelImpl(w);
+ Set<String> result = l.getLabels();
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ protected Tree restoreTree(WikittyTransaction transaction, String wikittyId) {
+ Wikitty w = restore(transaction, wikittyId);
+ if(w == null) {
+ return null;
+ }
+
+ if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
+ throw new WikittyException(String.format(
+ "Wikitty '%s' do not handle extension %s",
+ wikittyId, TreeNode.EXT_TREENODE ));
+ }
+ Tree tree = new Tree();
+ TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(w));
+ tree.setNode(node);
+
+ TreeNodeImpl exempleNode = new TreeNodeImpl();
+ exempleNode.setParent(wikittyId);
+
+ Criteria criteria = Search.query(exempleNode.getWikitty()).criteria()
+ .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS);
+ PagedResult<Wikitty> childNodes = findAllByCriteria(transaction, criteria);
+ for( Wikitty childNode : childNodes.getAll() ) {
+ tree.addChild(restoreTree(transaction, childNode.getId()));
+ }
+
+ return tree;
+ }
+
+ @Override
+ public Tree restoreTree(String wikittyId) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Tree tree = restoreTree(transaction, wikittyId);
+
+ transaction.commit();
+ return tree;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty w = restore(transaction, wikittyId);
+ if(w == null) {
+ transaction.commit();
+ return null;
+ }
+
+ if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
+ throw new WikittyException(String.format(
+ "Wikitty '%s' do not handle extension %s",
+ wikittyId, TreeNode.EXT_TREENODE ));
+ }
+
+ TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(w));
+ Integer count = getSearchEngin().findNodeCount(transaction, w, filter);
+
+ HashMap.SimpleEntry<TreeNode, Integer> result =
+ new SimpleEntry<TreeNode, Integer>(node, count);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter) {
+ WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ transaction.begin();
+
+ Wikitty w = restore(transaction, wikittyId);
+ if(w == null) {
+ transaction.commit();
+ return null;
+ }
+
+ if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
+ throw new WikittyException(String.format(
+ "Wikitty '%s' do not handle extension %s",
+ wikittyId, TreeNode.EXT_TREENODE ));
+ }
+
+ Map<TreeNode, Integer> result = new LinkedHashMap<TreeNode, Integer>();
+
+ Map<String, Integer> search = getSearchEngin().findAllChildrenCount(transaction, w, filter);
+ Set<Entry<String, Integer>> children = search.entrySet();
+ for (Entry<String, Integer> child : children) {
+ Integer count = child.getValue();
+
+ String id = child.getKey();
+ Wikitty wikitty = restore(transaction, id);
+ TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(wikitty));
+
+ result.put(node, count);
+ }
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ @Override
+ public Wikitty restoreVersion(String wikittyId, String version) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public UpdateResponse syncEngin() {
+ final WikittyTransaction transaction = new WikittyTransaction();
+ try {
+ final int numberForCommit = 1000;
+ final WikittySearchEngin searchEngin = getSearchEngin();
+ final UpdateResponse result = new UpdateResponse();
+ final List<Wikitty> wikitties = new ArrayList<Wikitty>(numberForCommit);
+
+ transaction.begin();
+ searchEngin.clear(transaction);
+ transaction.commit();
+ transaction.begin();
+
+ getWikittyStorage().scanWikitties(transaction, new WikittyStorage.Scanner() {
+ int count = 0;
+
+ @Override
+ public void scan(Wikitty wikitty) {
+ Date deleteDate = wikitty.getDeleteDate();
+ if(deleteDate == null) {
+ count ++;
+ wikitties.add(wikitty);
+
+ if(count == numberForCommit) {
+ // Reindex
+ UpdateResponse response = searchEngin.store(transaction, wikitties);
+ result.add(response);
+ transaction.commit();
+ // Reinit
+ count = 0;
+ wikitties.clear();
+ transaction.begin();
+ }
+ }
+ }
+ });
+
+ // Last wikitties
+ UpdateResponse response = searchEngin.store(transaction, wikitties);
+ result.add(response);
+
+ transaction.commit();
+ return result;
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Class used for import process, this class retain numberForCommit object
+ * before to send it to storage.
+ */
+ static protected class WikittyBatchUpdate {
+ // TODO poussin 20090902 do configurable numberForCommit
+ protected int numberForCommit = 1000;
+ protected int currentAdded = 0;
+ protected Map<String, WikittyExtension> exts = new HashMap<String, WikittyExtension>();
+ protected List<Wikitty> wikitties = new LinkedList<Wikitty>();
+
+ protected AbstractWikittyService ws;
+ protected WikittyTransaction transaction;
+
+ public WikittyBatchUpdate(AbstractWikittyService ws, WikittyTransaction transaction) {
+ this.ws = ws;
+ this.transaction = transaction;
+ }
+
+ public void addExtension(WikittyExtension ext) {
+ exts.put(ext.getId(), ext);
+ inc();
+ }
+
+ public void addWikitty(Wikitty w) {
+ wikitties.add(w);
+ inc();
+ }
+
+ /**
+ * search extension in local extension list and if missed restore
+ * extension from internal WikittyService
+ * @param id
+ * @return
+ */
+ public WikittyExtension getExtension(WikittyTransaction transaction, String id) {
+ WikittyExtension result = exts.get(id);
+ if (result == null) {
+ result = ws.restoreExtension(transaction, id);
+ }
+ return result;
+ }
+
+ public void flush() {
+ ws.storeExtension(transaction, exts.values());
+ ws.store(transaction, wikitties, true);
+
+ exts.clear();
+ wikitties.clear();
+ currentAdded = 0;
+ }
+
+ protected void inc() {
+ currentAdded++;
+ if (currentAdded >= numberForCommit) {
+ flush();
+ }
+ }
+ }
+
+
+ @Override
+ public void syncImportFromXml(String xml) {
+ Reader reader = new StringReader(xml);
+ ImportTask task = new ImportTask(this, reader);
+ task.run();
+ }
+
+
+ @Override
+ public void syncImportFromUri(String uri) {
+ try {
+ URL url = new URL(uri);
+ Reader reader = new InputStreamReader(url.openStream());
+ ImportTask task = new ImportTask(this, reader);
+ task.run();
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public String asyncImportFromUri(String uri) {
+ try {
+ URL url = new URL(uri);
+ Reader reader = new InputStreamReader(url.openStream());
+ ImportTask task = new ImportTask(this, reader);
+ FutureTask<String> future = new FutureTask<String>(task, null);
+ importExportExecutor.submit(future);
+
+ String jobId = UUID.randomUUID().toString();
+ importExportTask.put(jobId, future);
+ return jobId;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ static public class ImportTask implements Runnable {
+ protected AbstractWikittyService ws;
+ protected WikittyTransaction transaction;
+ protected Reader reader;
+
+ public ImportTask(AbstractWikittyService ws, Reader reader) {
+ this.ws = ws;
+ this.reader = reader;
+ this.transaction = new WikittyTransaction();
+ }
+
+ @Override
+ public void run() {
+ try {
+ transaction.begin();
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(
+ System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
+ factory.setNamespaceAware(true);
+ XmlPullParser xpp = factory.newPullParser();
+ xpp.setInput(reader);
+
+ WikittyExtension ext = null;
+ Wikitty w = null;
+ String CDATA = null;
+
+ WikittyBatchUpdate batchUpdate = new WikittyBatchUpdate(ws, transaction);
+
+ long time = System.currentTimeMillis();
+
+ int eventType = xpp.getEventType();
+ do {
+ String objectVersion = null;
+ if (eventType == xpp.START_DOCUMENT) {
+ log.info("start XML import at " + new Date());
+ } else if (eventType == xpp.END_DOCUMENT) {
+ time = System.currentTimeMillis() - time;
+ log.info("XML import in (ms)" + time);
+ } else if (eventType == xpp.START_TAG) {
+ String name = xpp.getName();
+ if ("extension".equals(name)) {
+ String extName = xpp.getAttributeValue(null, "name");
+ String version = xpp.getAttributeValue(null, "version");
+ String requires = xpp.getAttributeValue(null, "requires");
+ ext = new WikittyExtension(extName, version, requires, new LinkedHashMap<String, FieldType>());
+ } else if ("object".equals(name)) {
+ String id = xpp.getAttributeValue(null, "id");
+ objectVersion = xpp.getAttributeValue(null, "version");
+ String extensions = xpp.getAttributeValue(null, "extensions");
+ w = new Wikitty(id);
+ String[] extensionList = extensions.split(",");
+ for (String extId : extensionList) {
+ String extName = WikittyExtension.computeName(extId);
+ String extVersion = WikittyExtension.computeVersion(extId);
+ extId = WikittyExtension.computeId(extName, extVersion);
+ WikittyExtension e = batchUpdate.getExtension(transaction, extId);
+ if(e == null) {
+ throw new WikittyException("Extension not found : " + extId);
+ }
+ w.addExtension(e);
+ }
+ }
+ } else if (eventType == xpp.END_TAG) {
+ String name = xpp.getName();
+ if ("extension".equals(name)) {
+ batchUpdate.addExtension(ext);
+ ext = null;
+ } else if ("object".equals(name)) {
+ w.setVersion(objectVersion);
+ batchUpdate.addWikitty(w);
+ w = null;
+ } else if (ext != null && "field".equals(name)) {
+ FieldType type = new FieldType();
+ String fieldName = WikittyUtil.parseField(CDATA, type);
+ ext.addField(fieldName, type);
+ } else if (ext != null && "tagvalues".equals(name)) {
+ Map<String, String> tagValues = WikittyUtil.tagValuesToMap(CDATA);
+ ext.setTagValues(tagValues);
+ } else if (w != null) {
+ String[] fq = name.split("\\.");
+ String extensionName = fq[0];
+ String fieldName = fq[1];
+ FieldType fieldType = w.getFieldType(name);
+ if(fieldType.isCollection()) {
+ w.addToField(extensionName, fieldName, CDATA);
+ } else {
+ w.setField(extensionName, fieldName, CDATA);
+ }
+ }
+ } else if (eventType == xpp.TEXT) {
+ CDATA = xpp.getText();
+ }
+ eventType = xpp.next();
+ } while (eventType != xpp.END_DOCUMENT);
+
+ // don't forget to flush batchUpdate :)
+ batchUpdate.flush();
+ transaction.commit();
+ } catch (Exception eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+ } // end ImportTask
+
+ @Override
+ public String asyncExportAllByCriteria(Criteria criteria) {
+ try {
+ String jobId = UUID.randomUUID().toString();
+
+ File file = new File(EXPORT_DIRECTORY, jobId);
+ String url = EXPORT_URL + jobId;
+ Writer result = new FileWriter(file);
+ ExportTask task = new ExportTask(this, criteria, result);
+ FutureTask<String> future = new FutureTask<String>(task, url);
+ importExportExecutor.submit(future);
+
+ importExportTask.put(jobId, future);
+ return jobId;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public String syncExportAllByCriteria(Criteria criteria) {
+ StringWriter result = new StringWriter();
+ ExportTask task = new ExportTask(this, criteria, result);
+ task.run();
+ return result.toString();
+ }
+
+
+ static public class ExportTask implements Runnable {
+ protected AbstractWikittyService ws;
+ protected WikittyTransaction transaction;
+
+ protected Criteria criteria;
+ protected Writer result;
+
+ public ExportTask(AbstractWikittyService ws, Criteria criteria, Writer result) {
+ this.ws = ws;
+ this.transaction = new WikittyTransaction();
+ this.criteria = criteria;
+ this.result = result;
+ }
+
+ @Override
+ public void run() {
+ try {
+ transaction.begin();
+ PagedResult<Wikitty> pageResult = ws.findAllByCriteria(transaction, criteria);
+
+ // keep extension already done
+ Set<String> extDone = new HashSet<String>();
+ result.write("<wikengo>\n");
+ for (Wikitty w : pageResult.getAll()) {
+ String extensionList = "";
+ for (WikittyExtension ext : w.getExtensions()) {
+ String id = ext.getId();
+ extensionList += "," + id;
+ if (!extDone.contains(id)) {
+ extDone.add(id);
+ result.write(" <extension name='" + ext.getName()
+ + "' version='" + ext.getVersion()
+ + (ext.getRequires() != null ? "' requires='" + ext.getRequires() : "")
+ + "'>\n");
+ Map<String, String> tagValues = ext.getTagValues();
+ result.write(" <tagvalues>" + WikittyUtil.tagValuesToString(tagValues) + "</tagvalues>\n");
+ for (String fieldName : ext.getFieldNames()) {
+ String def = ext.getFieldType(fieldName).toDefinition(fieldName);
+ result.write(" <field>" + def + "</field>\n");
+ }
+ result.write(" </extension>\n");
+ }
+ }
+ if (!"".equals(extensionList)) {
+ // delete first ','
+ extensionList = extensionList.substring(1);
+ }
+ result.write(" <object id='" + w.getId() + "' version='" + w.getVersion() + "' extensions='" + extensionList + "'>\n");
+ for (String fieldName : w.fieldNames()) {
+ FieldType type = w.getFieldType(fieldName);
+ if (type.isCollection()) {
+ Object fqField = w.getFqField(fieldName);
+ if (fqField != null) {
+ for (Object o : (Collection) fqField) {
+ String fqFieldValue = WikittyUtil.toString(type, o);
+ if (fqFieldValue != null) {
+ fqFieldValue = StringEscapeUtils.escapeXml(fqFieldValue);
+ result.write(" <" + fieldName + ">" + fqFieldValue + "</" + fieldName + ">\n");
+ }
+ }
+ }
+ } else {
+ String fqFieldValue = WikittyUtil.toString(type, w.getFqField(fieldName));
+ if (fqFieldValue != null) {
+ fqFieldValue = StringEscapeUtils.escapeXml(fqFieldValue);
+ result.write(" <" + fieldName + ">" + fqFieldValue + "</" + fieldName + ">\n");
+ }
+ }
+ }
+ result.write(" </object>\n");
+ }
+ result.write("</wikengo>\n");
+ transaction.commit();
+ } catch (IOException eee) {
+ transaction.rollback();
+ throw new WikittyException(eee);
+ }
+ }
+ } // end ExportTask
+
+
+ @Override
+ public JobState infoJob(String jobId) {
+ try {
+ Future<String> future = importExportTask.get(jobId);
+ JobState result = new JobState();
+ if (future.isDone()) {
+ result.status = "done";
+ result.resourceUri = future.get();
+ } else if (future.isCancelled()) {
+ result.status = "cancelled";
+ } else {
+ result.status = "inProgress";
+ }
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+
+ @Override
+ public void cancelJob(String jobId) {
+ Future future = importExportTask.get(jobId);
+ future.cancel(true); // true to kill process, perhaps to strong ?
+ }
+
+
+ @Override
+ public void freeJobResource(String jobId) {
+ Future<String> future = importExportTask.remove(jobId);
+ if (future != null) {
+ File file = new File(EXPORT_DIRECTORY, jobId);
+ file.delete();
+ }
+ }
+
+ /**
+ * Method copied from eugengo-0.7 generators
+ *
+ * @param bean
+ * @return
+ */
+ /*public static TreeNodeImpl toImpl(TreeNode bean) {
+ if (bean == null) return null;
+ TreeNodeImpl impl = new TreeNodeImpl(bean);
+ return impl;
+ }*/
+
+ /**
+ * Method copied from eugengo-0.7 generators
+ *
+ * @param bean
+ * @return
+ */
+ protected static void fillBeanAttributes(TreeNode fromBean, TreeNodeBean toBean) {
+ String beanId = fromBean.getWikittyId();
+ toBean.id = beanId;
+
+ String beanVersion = fromBean.getWikittyVersion();
+ toBean.setWikittyVersion(beanVersion);
+
+ toBean.setName(fromBean.getName());
+ toBean.setParent(fromBean.getParent());
+ // WARNING: Copy collection to other collection to not manipulate storage collection directly
+ Collection<String> treeNodeChildren = fromBean.getChildren();
+ if(treeNodeChildren != null) {
+ toBean.TreeNode$children = new HashSet<String>(treeNodeChildren);
+ }
+ }
+
+ /**
+ * Method copied from eugengo-0.7 generators
+ *
+ * @param impl
+ * @return
+ */
+ public static TreeNode toBean(TreeNodeImpl impl) {
+ if (impl == null) return null;
+ TreeNodeBean bean = new TreeNodeBean();
+ AbstractWikittyService.fillBeanAttributes(impl, bean);
+ return bean;
+ }
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntity.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntity.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,81 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
+ * Used as parent interface to all Business class
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface BusinessEntity extends Serializable, Cloneable {
+
+ public String getWikittyId();
+ public String getWikittyVersion();
+ /**
+ * Only framework can use this method
+ * @param version
+ */
+ public void setWikittyVersion(String version);
+
+ /**
+ * Return list of all extension for this object
+ * @return
+ */
+ public Collection<String> getExtensionNames();
+
+ /**
+ * Return list of all field for this object
+ * @param ext
+ * @return
+ */
+ public Collection<String> getExtensionFields(String ext);
+
+ /**
+ * Return field value for the specifique extension and field
+ * @param ext
+ * @param fieldName
+ * @return
+ */
+ public Object getField(String ext, String fieldName);
+
+ /**
+ * set field value for the specifique extension and field.
+ * This method don't check the type of value for this field.
+ * @param ext
+ * @param fieldName
+ * @param value
+ * @return
+ */
+ public void setField(String ext, String fieldName, Object value);
+
+ /**
+ * Return the field type
+ * @param ext
+ * @param fieldName
+ * @return
+ */
+ public FieldType getFieldType(String ext, String fieldName);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityBean.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityBean.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,92 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class BusinessEntityBean implements BusinessEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String id;
+ protected String version;
+
+ /**
+ * Map is LinkedHashMap to maintains order like user want
+ * key: extension name
+ * value: extension definition
+ */
+ protected Map<String, WikittyExtension> extensions =
+ new LinkedHashMap<String, WikittyExtension>();
+ /**
+ * key: field name prefixed by extension name (dot separator)
+ * value: value of field
+ */
+ protected Map<String, Object> fieldValue = new HashMap<String, Object>();
+
+ public String getWikittyId() {
+ return id;
+ }
+
+ public String getWikittyVersion() {
+ return version;
+ }
+
+ public void setWikittyVersion(String version) {
+ this.version = version;
+ }
+
+
+ public Collection<String> getExtensionNames() {
+ Collection<String> result = extensions.keySet();
+ return result;
+ }
+
+ public Collection<String> getExtensionFields(String ext) {
+ WikittyExtension extension = extensions.get(ext);
+ Collection<String> result = extension.getFieldNames();
+ return result;
+ }
+
+ public Object getField(String ext, String fieldName) {
+ String key = ext + "$" + fieldName;
+ Object result = fieldValue.get(key);
+ return result;
+ }
+
+ public void setField(String ext, String fieldName, Object value) {
+ String key = ext + "$" + fieldName;
+ fieldValue.put(key, value);
+ }
+
+ public FieldType getFieldType(String ext, String fieldName) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityWikitty.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,101 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Each business object will inherit of this class.
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class BusinessEntityWikitty implements BusinessEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Wikitty wikitty;
+
+ public BusinessEntityWikitty(Wikitty wi) {
+ setWikitty(wi);
+ }
+
+ public BusinessEntityWikitty() {
+ setWikitty(new Wikitty());
+ }
+
+ public String getWikittyId() {
+ String result = getWikitty().getId();
+ return result;
+ }
+
+ public String getWikittyVersion() {
+ String result = getWikitty().getVersion();
+ return result;
+ }
+
+ public void setWikittyVersion(String version) {
+ getWikitty().setVersion(version);
+ }
+
+ public void setWikitty(Wikitty wikitty) {
+ if(wikitty != null) {
+ for (WikittyExtension ext : getStaticExtensions()) {
+ wikitty.addExtension(ext);
+ }
+ }
+ this.wikitty = wikitty;
+ }
+
+ public Wikitty getWikitty() {
+ return wikitty;
+ }
+
+ public Collection<String> getExtensionNames() {
+ Collection<String> result = getWikitty().getExtensionNames();
+ return result;
+ }
+
+ public Collection<String> getExtensionFields(String ext) {
+ Collection<String> result = getWikitty().getExtension(ext).getFieldNames();
+ return result;
+ }
+
+ public FieldType getFieldType(String ext, String fieldName) {
+ FieldType result = getWikitty().getExtension(ext).getFieldType(fieldName);
+ return result;
+ }
+
+ public Object getField(String ext, String fieldName) {
+ Object result = getWikitty().getFieldAsObject(ext, fieldName);
+ return result;
+ }
+
+ public void setField(String ext, String fieldName, Object value) {
+ getWikitty().setField(ext, fieldName, value);
+ }
+
+ public Collection<WikittyExtension> getStaticExtensions() {
+ return Collections.emptyList();
+ }
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Criteria.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Criteria.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Criteria.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Criteria.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,236 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.beans.XMLDecoder;
+import java.beans.XMLEncoder;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.search.Restriction;
+
+/**
+ * Criteria represent the search on the wikitty with restriction on field and
+ * informations on facet, paggination and sortting.
+ *<p>
+ * For search multiple extension use ALL_EXTENSIONS as extension name and
+ * specify field type.
+ * <p>
+ * Example : Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR + <fieldName> + Criteria.SEPARATOR + FieldType.TYPE.<fieldType>
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class Criteria implements Serializable {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 2590223960861630283L;
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(Criteria.class);
+
+ /** Use to not limit result */
+ static public int ALL_ELEMENTS = -1;
+
+ /** Search on all extension */
+ static public String ALL_EXTENSIONS = "*";
+
+ /** Search on all values */
+ static public String ALL_VALUES = "*";
+
+ /** Separator between extension name, field name and type */
+ static public String SEPARATOR = ".";
+
+ /**
+ * Criteria can have name this help for presentation and is very
+ * useful for facet created by criteria
+ */
+ protected String name;
+
+ /** All restriction on fields */
+ private Restriction restriction;
+
+ /** First index to get result */
+ private int firstIndex = 0;
+ /** Last index to get result */
+ private int endIndex = ALL_ELEMENTS;
+
+ /** Facet on criteria */
+ private List<Criteria> facetCriteria;
+ /** Facet on field */
+ private List<String> facetField;
+
+ /** Sort ascending on fields */
+ private List<String> sortAscending;
+ /** Sort descending on fields */
+ private List<String> sortDescending;
+
+ /**
+ * Default constuctor
+ */
+ public Criteria() {
+ }
+
+ /**
+ * Create named criteria
+ * @param name
+ */
+ public Criteria(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Deserialize xml to criteria
+ * @param xml
+ * @return criteria
+ */
+ public static Criteria fromXML(String xml) {
+ InputStream inputStream = new ByteArrayInputStream(xml.getBytes());
+ XMLDecoder decoder = new XMLDecoder(inputStream);
+ Criteria criteria = (Criteria) decoder.readObject();
+ return criteria;
+ }
+
+ /**
+ * Serialize criteria to xml
+ * @param criteria
+ * @return xml string
+ */
+ public static String toXML(Criteria criteria) {
+ OutputStream outputStream = new ByteArrayOutputStream();
+ XMLEncoder encoder = new XMLEncoder(outputStream);
+ encoder.writeObject(criteria);
+ encoder.close();
+ String result = outputStream.toString();
+ return result;
+ }
+
+ public Restriction getRestriction() {
+ return restriction;
+ }
+
+ public void setRestriction(Restriction restriction) {
+ this.restriction = restriction;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getFirstIndex() {
+ return firstIndex;
+ }
+
+ public Criteria setFirstIndex(int firstIndex) {
+ this.firstIndex = firstIndex;
+ return this;
+ }
+
+ public int getEndIndex() {
+ return endIndex;
+ }
+
+ public Criteria setEndIndex(int endIndex) {
+ this.endIndex = endIndex;
+ return this;
+ }
+
+ public List<Criteria> getFacetCriteria() {
+ return facetCriteria;
+ }
+
+ public Criteria addFacetCriteria(Criteria criteria) {
+ if (facetCriteria == null) {
+ facetCriteria = new ArrayList<Criteria>();
+ }
+ facetCriteria.add(criteria);
+ return this;
+ }
+
+ public Criteria setFacetCriteria(Criteria[] facetCriteria) {
+ this.facetCriteria = Arrays.asList(facetCriteria);
+ return this;
+ }
+
+ public List<String> getFacetField() {
+ return facetField;
+ }
+
+ public Criteria addFacetField(String field) {
+ if (facetField == null) {
+ facetField = new ArrayList<String>();
+ }
+ facetField.add(field);
+ return this;
+ }
+
+ public Criteria setFacetField(String[] facetField) {
+ this.facetField = Arrays.asList(facetField);
+ return this;
+ }
+
+ public List<String> getSortAscending() {
+ return sortAscending;
+ }
+
+ public Criteria addSortAscending(String field) {
+ if(sortAscending == null) {
+ sortAscending = new ArrayList<String>();
+ }
+ sortAscending.add(field);
+ return this;
+ }
+
+ public Criteria setSortAscending(String[] sortAscending) {
+ this.sortAscending = Arrays.asList(sortAscending);
+ return this;
+ }
+
+ public List<String> getSortDescending() {
+ return sortDescending;
+ }
+
+ public Criteria addSortDescending(String field) {
+ if(sortDescending == null) {
+ sortDescending = new ArrayList<String>();
+ }
+ sortDescending.add(field);
+ return this;
+ }
+
+ public Criteria setSortDescending(String[] sortDescending) {
+ this.sortDescending = Arrays.asList(sortDescending);
+ return this;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/ExtensionFactory.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/ExtensionFactory.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/ExtensionFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,38 @@
+package org.nuiton.wikitty;
+
+import java.util.LinkedHashMap;
+
+import org.nuiton.wikitty.FieldType.TYPE;
+
+public class ExtensionFactory {
+
+ private String name;
+ private String version;
+ private String requiredExtension;
+
+ private LinkedHashMap<String, FieldType> fields;
+
+ private ExtensionFactory(String name, String version) {
+ this.name = name;
+ this.version = version;
+ this.fields = new LinkedHashMap<String, FieldType>();
+ }
+
+ public static ExtensionFactory create(String name, String version) {
+ return new ExtensionFactory(name, version);
+ }
+
+ public FieldFactory addField(String name, TYPE fieldType) {
+ return new FieldFactory(this, name, fieldType);
+ }
+
+ public WikittyExtension extension() {
+ WikittyExtension ext = new WikittyExtension(name, version, requiredExtension, fields);
+ return ext;
+ }
+
+ protected void add(String fieldName, FieldType fieldType) {
+ fields.put(fieldName, fieldType);
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FacetTopic.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FacetTopic.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FacetTopic.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FacetTopic.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,62 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+
+import java.io.Serializable;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class FacetTopic implements Serializable {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(FacetTopic.class);
+
+ private static final long serialVersionUID = 1L;
+
+ protected String facetName;
+ protected String topicName;
+ protected int count;
+
+ public FacetTopic(String facetName, String topicName, int count) {
+ this.facetName = facetName;
+ this.topicName = topicName;
+ this.count = count;
+ }
+
+ public String getFacetName() {
+ return facetName;
+ }
+
+ public String getTopicName() {
+ return topicName;
+ }
+
+ public int getCount() {
+ return count;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldFactory.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldFactory.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldFactory.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,63 @@
+package org.nuiton.wikitty;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.nuiton.wikitty.FieldType.TYPE;
+
+public class FieldFactory {
+
+ private ExtensionFactory parentFactory;
+ private String fieldName;
+ private TYPE type;
+ private int minOccur = 0, maxOccur = 1;
+ private boolean unique = false;
+ private Map<String, String> tagValues = new HashMap<String, String>();
+
+ public FieldFactory(ExtensionFactory parentFactory, String fieldName, TYPE type) {
+ this.parentFactory = parentFactory;
+ this.fieldName = fieldName;
+ this.type = type;
+ }
+
+ public FieldFactory addField(String name, TYPE type) {
+ append();
+ return parentFactory.addField(name, type);
+ }
+
+ public WikittyExtension extension() {
+ append();
+ return parentFactory.extension();
+ }
+
+ private void append() {
+ FieldType fieldType = new FieldType(type, minOccur, maxOccur, unique, minOccur > 0);
+ for (Map.Entry<String, String> entry : tagValues.entrySet()) {
+ String tag = entry.getKey();
+ String value = entry.getValue();
+ fieldType.addTagValue(tag, value);
+ }
+ parentFactory.add(fieldName, fieldType);
+ }
+
+ public FieldFactory maxOccur(int max) {
+ maxOccur = max;
+ return this;
+ }
+
+ public FieldFactory minOccur(int min) {
+ minOccur = min;
+ return this;
+ }
+
+ public FieldFactory unique() {
+ unique = true;
+ return this;
+ }
+
+ public FieldFactory addTagValue(String tag, String value) {
+ tagValues.put(tag, value);
+ return this;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldType.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,234 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class FieldType implements Serializable {
+
+ static public enum TYPE {
+ BOOLEAN, DATE, NUMERIC, STRING, WIKITTY;
+
+ /**
+ * convert string to TYPE, this methode accept not trimed and not well
+ * cased string (difference with valueOf)
+ * @param name
+ * @return TYPE else exception is throw
+ */
+ public static TYPE parse(String name) {
+ TYPE result = valueOf(name.trim().toUpperCase());
+ return result;
+ }
+ }
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(FieldType.class);
+
+ private static final long serialVersionUID = 1L;
+
+ public static final int NOLIMIT = Integer.MAX_VALUE;
+
+ TYPE type;
+ int lowerBound;
+ int upperBound;
+ boolean unique = false;
+ boolean notNull = false;
+
+ /** used to store tag/value used by client side ex: editor=xhtml */
+ Map<String, String> tagValues = new HashMap<String, String>();
+
+ public FieldType() {
+ }
+
+ public FieldType(TYPE type, int lowerBound, int upperBound) {
+ this.type = type;
+ this.lowerBound = lowerBound;
+ this.upperBound = upperBound;
+ }
+
+ public FieldType(TYPE type, int lowerBound, int upperBound, boolean unique, boolean notNull) {
+ this.type = type;
+ this.lowerBound = lowerBound;
+ this.upperBound = upperBound;
+ this.unique = unique;
+ this.notNull = notNull;
+ }
+
+ public void addTagValue(String tag, String value) {
+ tagValues.put(tag, value);
+ }
+
+ public String getTagValue(String tag) {
+ String result = tagValues.get(tag);
+ return result;
+ }
+
+ public Set<String> getTagNames() {
+ return tagValues.keySet();
+ }
+
+ public Map<String, String> getTagValues() {
+ return tagValues;
+ }
+
+ public void setTagValues(Map<String, String> tagValues) {
+ this.tagValues = tagValues;
+ }
+
+ /**
+ * Return true if this field have upperBound > 1
+ * @return
+ */
+ public boolean isCollection() {
+ return upperBound > 1;
+ }
+
+ /**
+ * Return string definition for this field
+ * @param name field name used for definition
+ * @return
+ */
+ public String toDefinition(String name) {
+ String result = type + " " + name;
+ if (lowerBound != 0 || upperBound != 0) {
+ if (upperBound != NOLIMIT) {
+ result += "[" + lowerBound + "-" + upperBound + "]";
+ } else {
+ result += "[" + lowerBound + "-*]";
+ }
+ }
+ if (isUnique()) {
+ result += " unique";
+ }
+ if (isNotNull()) {
+ result += " not null";
+ }
+ result += WikittyUtil.tagValuesToString(tagValues);
+ return result;
+ }
+
+ /**
+ * Convert value in argument in right type for this FieldType. Don't support
+ * collection
+ *
+ * @param value value to convert
+ * @return object in type of this FieldType
+ */
+ protected Object getContainedValidObject( Object value ) {
+ Object result = null;
+ switch (type) {
+ case DATE:
+ result = WikittyUtil.toDate(value); break;
+ case NUMERIC:
+ result = WikittyUtil.toBigDecimal(value); break;
+ case BOOLEAN:
+ result = WikittyUtil.toBoolean(value); break;
+ case STRING:
+ result = WikittyUtil.toString(value); break;
+ default:
+ // if type is not found then type is business type
+ // and is wikity object
+ result = WikittyUtil.toWikitty(value); break;
+ }
+ return result;
+ }
+
+ /**
+ * Return a valid value for this field.
+ * @param value is casted if possible to an actual correct value.
+ * @return
+ */
+ public Object getValidValue( Object value ) throws WikittyException {
+ if (value == null && isNotNull()) {
+ throw new WikittyException("Value can't be null for this field");
+ }
+
+ Object result;
+ if (value == null) {
+ result = null;
+ } else if (isCollection()) {
+ if ( !(value instanceof Collection) ) {
+ throw new WikittyException( "A collection is expected for type "
+ + type.name() + "[" + lowerBound + " - " + upperBound + "]" );
+ }
+ Collection<Object> col;
+ if (isUnique()) {
+ col = new LinkedHashSet<Object>();
+ } else {
+ col = new ArrayList<Object>();
+ }
+
+ // copy all value in new collections
+ for ( Object o : (Collection) value ) {
+ col.add( getContainedValidObject(o) );
+ }
+ result = col;
+ } else {
+ result = getContainedValidObject(value);
+ }
+ return result;
+ }
+
+ /**
+ * test if value in argument is valide for this field type
+ * @param value to test
+ * @return true if value is valid
+ */
+ public boolean isValidValue(Object value) {
+ return getValidValue(value) != null;
+ }
+
+ public TYPE getType() {
+ return type;
+ }
+
+ public int getLowerBound() {
+ return lowerBound;
+ }
+
+ public int getUpperBound() {
+ return upperBound;
+ }
+
+ public boolean isUnique() {
+ return unique;
+ }
+
+ public boolean isNotNull() {
+ return notNull;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JobState.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/JobState.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JobState.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JobState.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,41 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class JobState {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(JobState.class);
+
+ String status; // or enum
+ /** if is an export, resourceUri is not null when job is ended */
+ String resourceUri; // generated resource URI on that job
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Package.html (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Package.html)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Package.html (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Package.html 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,203 @@
+<h1>Wikitty API documentation</h1>
+
+<h2>Extensions version management</h2>
+
+The extension version number have to be managed by the developer who writes or
+modify the extension.
+
+When we modify an extension in a model, a developer have to remember to update
+the version tag/value.
+
+<h2>Objects deletion management</h2>
+
+The objects deleted are only marked as deleted, like that it will be possible to
+restore a deleted object in future implementations.
+
+The deleted objects are not indexed anymore (and so do not appear in search
+results).
+
+If we try to get a deleted object by its id, null is returned.
+
+We cannot save a deleted object until we do a undelete on it.
+
+<h2>Wikitties attributes</h2>
+
+It is possible to define several things for a wikitty field :
+
+<ul>
+ <li>its type (String)</li>
+ <li>its name (String)</li>
+ <li>its cardinality ([1-n])</li>
+ <li>if it is unique (unique), for the lists it will be reprensted by a Set, for
+ not-list objects it means that two objects cannot have the same value for
+ this field (constraint not implemented for now).
+ </li>
+ <li>if it has to be not null, there is no mean, in the modeler to indicate it,
+ and so it is not possible to generate it.
+ </li>
+ <li>Tag/values (tag=value). It is possible to create as many tag/values as we
+ want. You can then get them by FieldType.getTagValue(tagName). This can be
+ useful to put a tag 'editor' used by UI and that allows to put a specific
+ editor for a field (e.g. a html editor for a String field)
+ </li>
+</ul>
+
+<h2>PropertyChangeListener</h2>
+
+The field modification listeners management is diretly done by the wikitty
+object. The name of the field is the concatenation of the extension name and the
+field name ([extName].[fieldName]).
+
+<h2>Search API</h2>
+
+<h3>General points</h3>
+
+The search are made by example (a model dto), or from a search 'Criteria' object.
+
+This criteria contains restrictions that will be turned into searhc request.
+
+The criteria can be built from the utility class 'Search' that allows to express,
+via instructions, all the restrictions.
+
+The Search operations return a reference to an object of the same type allowing
+to continue expressing other criteria.
+
+This allows to write quickly and easily search expressions with the Search API's
+help (and auto-completion will help even more).
+
+The Search operations names are really short and syntaxically close to bash
+conditional expressions...
+
+<h3>List of criteria operations</h3>
+We will find : <ul>
+ <li> eq : to express equality</li>
+ <li> neq : to express difference (not equals)</li>
+ <li> le, lt : respectively for inclusive and exclusive inferiority operations
+ (less than, less or equals)</li>
+ <li> ge, gt : respectively for inclusive and exclusive superiority operations
+ (greater than, greater or equals)</li>
+ <li> sw : to express an expression beginning (start with)</li>
+ <li> ew : to express an expression ending (end with)</li>
+ <li> in : to express a list of possible values</li>
+</ul>
+
+<h3>Disjunction operation, disjunction group</h3>
+By default, each restrictions express by the above expressions are added to a
+list of conjunctions (logical AND).
+
+It is possible to express disjunctions (logical OR) using the or operation.
+
+The restriction following the or is then in disjunction with the one preceding
+it.
+
+If other restrictions are added after that, they are attached to the previous
+conjunction.
+
+To express a group of disjunction, we can call the or operation between each
+restriction or call the group operation with the 'OR' type.
+
+In this last case, you will need to close the groupe by calling the end operation.
+
+<h3>Associative search</h3>
+It is possible to express associative search, i.e. search for which some criteria
+are based on objects linked by a reference (link or foreign key notion).
+
+Then, the associated (fieldName) operation allows to
+Il est possible d'exprimer des recherches associatives, c'est à dire des recherches pour lesquelles certains critères portent sur un objet lié par une référence (notion de lien, ou de clé étrangère).<br>
+Ainsi, l'opération associated( fieldName ) permet de faire porter les critères suivant cette opération sur les objets lié via ce champ.<br>
+Le résultat sera une conjonction (ET) entre les critères exprimés avant l'opération associated sur l'objet 'principal' (il peut ne pas y en avoir), et dont la ou les références associée répondent aux critères exprimés après le associated.<br>
+Tout cela est beaucoup plus clair par l'exemple ;-)<br>
+
+I want to find all paints between 15 and 25 euros in the Hardware section.
+
+This search can be expressed ina more concrete way using API via :
+
+"I search all products wich price is between 15 and 25 euros, which name starts
+by 'Paint', and which associated section, using the 'section' field, have the
+name 'Hardware'".
+
+It is built using the following operations :
+
+<pre>
+ RestrictionDto dto = Search.query()
+ .bw( "Product.selling_price", "15", "25")
+ .sw( "Produit.article_name", "Paint")
+ .associated( "Product.section" )
+ .eq( "Section.name", "Hardware" )
+ .criteria();
+</pre>
+
+
+<h2>Data migration</h2>
+
+When the list of wikitty extensions is modified, either:
+<ul>
+ <li>we deleted an extension, the data stays in the wikitty</li>
+ <li>we added an extension, nothing is done but we can add data for the new
+ fields</li>
+ <li>we modified an extension
+ <li>deleted an extension field : the data stays but are no more
+ accessible</li>
+ <li>added a field to the extension : nothing is done but we can add data
+ for the new field</li>
+ <li>modified a field type:
+ <ul>
+ <li>API knows how to convert it, nothing to do (e.g. int->String)</li>
+ <li>The type has been deeply modified (e.g. String->List<int<):
+ you have to implement an extension migration sub-class
+ (WikittyExtensionMigration) and save it so that it is used when
+ necessary.</li>
+ </ul>
+ </li>
+</ul>
+
+<p>An object is converted when it is loaded in its BusinessEntity, but is is not
+ automatically save, it is saved only if a store is called on the client side.
+</p>
+
+<p>It is also possible to force the migration searching all the objects with the
+modified extension, load them in WikittyDtos and save them.</p>
+<pre>
+Wikitty w = new Wikitty();
+w.addExtension(myModifiedExtension);
+WikittyDto dto = new WikittyDto(w);
+PagedResult<WikittyDto> result = proxy.findAllByExample(dto, 0, Proxy.ALL_ELEMENTS);
+proxy.store(result.getAll());
+</pre>
+
+<h2>Import Wikitties</h2>
+
+When importing XML file, if an object has a version nmber, then if in the
+database there is no object or if the object has a version number less or equal
+than the imported version number, the xml file data overwrite the database data.
+
+If the database version number is greater than the imported version number, the
+imported object is rejected and an exception is thrown.
+
+If the imported object had no version number, in all cases, it overwrite the
+database data and the object version number is incremented if it was present in
+database.
+
+Modifications to do on implementation :
+<ul>
+ <li>During xml file reading and loading into wikitty object, if there is no
+ version number in xml flux, the version number is null instead of
+ defaultversion.</li>
+ <li>Take into account that during wikitty save, the version number can be
+ null, do the appropriate treatment</li>
+</ul>
+
+If an object in database was deleted and we try to import it, we throw an
+exception.
+
+<h2>TODO</h2>
+<ul>
+<li>while generating BusinessEntity, if 2 extensions have the same method,
+ suffix the next ones with xxxxxxForExtensionName</li>
+<li>Think about object search problem if its extensions have been modified.
+ If you do a search by example, we add the extension list in the request, the
+ new BusinessEntity has more extensions, we do not find the old objects. If
+ we do a search by criteria/example, the criterie field cannot exist in the
+ index and so the object is not returned in results even if we put '*' as
+ field value.</li>
+</ul>
\ No newline at end of file
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/PagedResult.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/PagedResult.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,189 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class PagedResult<T> implements Serializable {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(PagedResult.class);
+
+ private static final long serialVersionUID = 1L;
+
+ /** indice element in global search result */
+ protected int firstIndice;
+ /** total number of result if we call the query for all possible result */
+ protected int numFound;
+ /** query really executed */
+ protected String queryString;
+ /** list of result in the wanted interval */
+ protected List<T> results;
+ /** facet asked or null if no facet */
+ protected Map<String, List<FacetTopic>> facets;
+
+ public PagedResult(int FirstIndice, int numFound, String queryString,
+ Map<String, List<FacetTopic>> facets, List<T> results) {
+ this.firstIndice = FirstIndice;
+ this.numFound = numFound;
+ this.queryString = queryString;
+ this.facets = facets;
+ this.results = Collections.unmodifiableList(results);
+ }
+
+ /**
+ * Converte all result to the wanted type and return new PagedResult with
+ * this new result list. If some result don't have the right extension (clazz)
+ * this extension is automatically added if autoconvert is true. Else
+ * an exception is throwed when result without extension is found.
+ *
+ * When you used autoconvert = false, you have a potentialy probleme when
+ * you have modified a BusinessEntity to have new extension and all your
+ * wikitty object are not uptodate in database.
+ *
+ * @param clazz
+ * @param autoconvert
+ * @return
+ */
+ public <E extends BusinessEntityWikitty> PagedResult<E> cast(
+ WikittyService wikittyService, Class<E> clazz, boolean autoconvert) {
+ List<E> castedResult = new ArrayList<E>(results.size());
+ E sample = WikittyUtil.newInstance(clazz);
+ Collection<WikittyExtension> wantedExtension = sample.getStaticExtensions();
+ for (T t : results) {
+ if (t == null) {
+ castedResult.add(null);
+ } else {
+ Wikitty w = null;
+ if (t instanceof Wikitty) {
+ w = (Wikitty)t;
+ } else if (t instanceof BusinessEntityWikitty) {
+ w = ((BusinessEntityWikitty) t).getWikitty();
+ } else {
+ throw new WikittyException(String.format(
+ "Illegal object result class '%s' can't convert it to wikitty",
+ t.getClass().getName(), clazz.getName()));
+ }
+
+ Collection<WikittyExtension> wikittyExtension = w.getExtensions();
+ if (autoconvert || wikittyExtension.containsAll(wantedExtension)) {
+ E e = WikittyUtil.newInstance(wikittyService, clazz, (Wikitty) t);
+ castedResult.add(e);
+ } else {
+ throw new WikittyException(String.format(
+ "Illegal object result class '%s' can't convert it to '%s'" +
+ "there is no same extension %s != %s",
+ t.getClass().getName(), clazz.getName(),
+ wikittyExtension, wantedExtension));
+ }
+ }
+ }
+ PagedResult<E> result = new PagedResult<E>(
+ firstIndice, numFound, queryString, facets, castedResult);
+ return result;
+ }
+
+ public int getFirstIndice() {
+ return firstIndice;
+ }
+
+ public int getNumFound() {
+ return numFound;
+ }
+
+ public String getQueryString() {
+ return queryString;
+ }
+
+ /**
+ * Return name of all facet used in query
+ * @return
+ */
+ public Collection<String> getFacetNames() {
+ Collection<String> result = facets.keySet();
+ return result;
+ }
+
+ /**
+ * Return all topic for the specified facet
+ * @param facetName name of the wanted facet
+ * @return
+ */
+ public List<FacetTopic> getTopic(String facetName) {
+ List<FacetTopic> result = facets.get(facetName);
+ return result;
+ }
+
+ /**
+ * Get map represent facets
+ * @return
+ */
+ public Map<String, List<FacetTopic>> getFacets() {
+ return facets;
+ }
+
+ /**
+ * Return the firstIndice element in result or throw an exception if no element
+ * available
+ * @return
+ */
+ public T getFirst() {
+ T result = get(0);
+ return result;
+ }
+
+ public T get(int i) {
+ T result = results.get(i);
+ return result;
+ }
+
+ /**
+ * Return unmodifiable list of all result
+ * @return
+ */
+ public List<T> getAll() {
+ return results;
+ }
+
+ /**
+ * Return the number of result in this object
+ * @return
+ */
+ public int size() {
+ int result = results.size();
+ return result;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Tree.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Tree.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Tree.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Tree.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,32 @@
+package org.nuiton.wikitty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.nuiton.wikitty.TreeNode;
+
+public class Tree {
+
+ TreeNode node;
+ List<Tree> children;
+
+ public void setNode(TreeNode node) {
+ this.node = node;
+ }
+
+ public void addChild(Tree tree) {
+ getChildren().add( tree );
+ }
+
+ public List<Tree> getChildren() {
+ if ( children == null ) {
+ children = new ArrayList<Tree>();
+ }
+ return children;
+ }
+
+ public String getName() {
+ return node.getName();
+ }
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/UpdateResponse.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/UpdateResponse.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/UpdateResponse.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/UpdateResponse.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,75 @@
+package org.nuiton.wikitty;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+public class UpdateResponse {
+
+ protected Map<String, String> idVersionMap = new HashMap<String, String>();
+ protected Map<String, Date> idDeletionDateMap = new HashMap<String, Date>();
+
+ public UpdateResponse() {
+ super();
+ idVersionMap = new HashMap<String, String>();
+ }
+
+ /**
+ * Merge all update passed in argument in local update list
+ * @param update
+ */
+ public void add(UpdateResponse update) {
+ idVersionMap.putAll(update.idVersionMap);
+ idDeletionDateMap.putAll(update.idDeletionDateMap);
+ }
+
+ public void addVersionUpdate( String id, String version ) {
+ idVersionMap.put(id, version);
+ }
+
+ public void addDeletionDateUpdate(String id, Date date) {
+ idDeletionDateMap.put(id, date);
+ }
+
+ public void update(BusinessEntity e) {
+ if (e instanceof BusinessEntityWikitty) {
+ update((BusinessEntityWikitty) e);
+ } else if (e instanceof BusinessEntityBean) {
+ update((BusinessEntityBean) e);
+ }
+ }
+
+ public void update(BusinessEntityBean e) {
+ // update version
+ String id = e.getWikittyId();
+ String version = idVersionMap.get(id);
+ if (version != null) {
+ e.setWikittyVersion(version);
+ }
+ }
+
+ public void update(BusinessEntityWikitty e) {
+ update(e.getWikitty());
+ }
+
+ /**
+ * Update data directly in object passed in argument.
+ * Actualy only version and deletion date are updated.
+ * And internaly wikitty object is marked clean (not dirty)
+ * @param e
+ */
+ public void update(Wikitty e) {
+ // update version
+ String id = e.getId();
+ String version = idVersionMap.get(id);
+ if (version != null) {
+ e.setVersion(version);
+ }
+ Date date = idDeletionDateMap.get(id);
+ if (date != null) {
+ e.setDeleteDate(date);
+ }
+ e.clearDirty();
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Wikitty.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,636 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.AbstractList;
+import java.util.AbstractSet;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class Wikitty implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * technical id for this wikitty object. id must be never null
+ */
+ protected String id;
+ /** current version of this wikitty object */
+ protected String version = WikittyUtil.DEFAULT_VERSION;
+ /** if not null, date of deletion, if date this object is marked as deleted */
+ protected Date deleteDate = null;
+
+ /** used to add property change support to wikitty object */
+ protected transient PropertyChangeSupport propertyChange = new PropertyChangeSupport(this);
+
+ /**
+ * key: field name prefixed by extension name (dot separator)
+ * value: value of field
+ */
+ protected HashMap<String, Object> fieldValue = new HashMap<String, Object>();
+ /**
+ * all field name currently modified (field name = extension . fieldname)
+ */
+ protected Set<String> fieldDirty = new HashSet<String>();
+ /**
+ * Map is LinkedHashMap to maintains order like user want
+ * key: extension name
+ * value: extension definition
+ */
+ protected Map<String, WikittyExtension> extensions =
+ new LinkedHashMap<String, WikittyExtension>();
+
+
+ public Wikitty() {
+ this(null);
+ }
+
+ public Wikitty(String id){
+ if(id == null) {
+ this.id = WikittyUtil.genUID();
+ } else {
+ this.id = id;
+ }
+ }
+
+ public synchronized void addPropertyChangeListener(
+ PropertyChangeListener listener) {
+ propertyChange.addPropertyChangeListener(listener);
+ }
+
+
+ public synchronized void removePropertyChangeListener(
+ PropertyChangeListener listener) {
+ propertyChange.removePropertyChangeListener(listener);
+ }
+
+
+ public synchronized void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChange.addPropertyChangeListener(propertyName, listener);
+ }
+
+
+ public synchronized void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ propertyChange.removePropertyChangeListener(propertyName, listener);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public boolean isDeleted() {
+ boolean result = deleteDate != null;
+ return result;
+ }
+
+ public Date getDeleteDate() {
+ return deleteDate;
+ }
+
+ /**
+ * Server only used
+ * @param delete
+ */
+ public void setDeleteDate(Date delete) {
+ this.deleteDate = delete;
+ }
+
+ /**
+ * mark field as dirty
+ * @param ext
+ * @param fieldName
+ */
+ protected void setFieldDirty(String ext, String fieldName,
+ Object oldValue, Object newValue) {
+ String key = ext + "." + fieldName;
+ fieldDirty.add(key);
+ version = WikittyUtil.incrementMinorRevision(version);
+ propertyChange.firePropertyChange(key, oldValue, newValue);
+ }
+
+ public void addExtension(WikittyExtension ext) {
+ String required = ext.getRequires();
+ if (required != null && !required.isEmpty() &&
+ !extensions.containsKey(required)) {
+ throw new WikittyException(String.format(
+ "You try to add extension '%s' that" +
+ " required not available extension '%s' in this wikitty",
+ ext.getName(), required));
+ }
+ extensions.put(ext.name, ext);
+ }
+
+ public void addExtension(List<WikittyExtension> exts) {
+ for (WikittyExtension ext : exts) {
+ extensions.put(ext.name, ext);
+ }
+ }
+
+ public boolean hasExtension(String extName) {
+ return extensions.containsKey(extName);
+ }
+
+ public boolean hasField(String extName, String fieldName) {
+ boolean result = false;
+ WikittyExtension ext = extensions.get(extName);
+ if (ext != null) {
+ result = ext.getFieldType(fieldName) != null;
+ }
+ return result;
+ }
+
+ public WikittyExtension getExtension(String ext) {
+ WikittyExtension result = extensions.get(ext);
+ return result;
+ }
+
+ public Collection<String> getExtensionNames() {
+ Collection<String> result = extensions.keySet();
+ return result;
+ }
+
+ public Collection<WikittyExtension> getExtensions() {
+ Collection<WikittyExtension> result = extensions.values();
+ return result;
+ }
+
+ public Collection<WikittyExtension> getExtensionDependencies(String ext, boolean recursively) {
+ Collection<WikittyExtension> result = new HashSet<WikittyExtension>();
+ Collection<WikittyExtension> all = extensions.values();
+ for (WikittyExtension dependency : all) {
+ String requires = dependency.getRequires();
+ if(requires != null && !requires.isEmpty() && requires.equals(ext)) {
+ result.add(dependency);
+ if(recursively) {
+ String dependencyName = dependency.getName();
+ Collection<WikittyExtension> dependencies = getExtensionDependencies(dependencyName, recursively);
+ result.addAll(dependencies);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * return field type for the given fieldName.
+ * @param fieldName fully qualified fieldName extension.fieldname
+ * @return field type
+ */
+ public FieldType getFieldType(String fqfieldName) {
+ try {
+ String[] field = fqfieldName.split("\\.");
+ WikittyExtension ext = getExtension(field[0]);
+ if (ext == null) {
+ throw new WikittyException(String.format(
+ "extension '%s' doesn't exists", field[0]));
+ } else {
+ String fieldName = field[1];
+ int crochet = fieldName.indexOf("[");
+ if (crochet != -1) {
+ fieldName = fieldName.substring(0, crochet);
+ }
+ FieldType result = ext.getFieldType(fieldName);
+ if (result == null) {
+ throw new WikittyException(String.format(
+ "field '%s' doesn't exists on extension '%s'", fieldName, field[0]));
+
+ }
+ return result;
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(
+ String.format("Field %s is not a fully qualified field name", fqfieldName),
+ eee
+ );
+ }
+ }
+
+ public void setField(String ext, String fieldName, Object value) {
+ if (! hasField(ext, fieldName)) {
+ String def = "";
+ for ( WikittyExtension extension : extensions.values() ) {
+ def += extension.toDefinition() + "\n";
+ }
+ throw new WikittyException(String.format(
+ "field '%s' is not valid, extensions definition : %s", ext + "." + fieldName, def));
+ }
+ String key = ext + "." + fieldName;
+
+ // take old value if needed
+ Object oldValue = null;
+ if (propertyChange.hasListeners(key)) {
+ oldValue = fieldValue.get(key);
+ }
+
+ // put new value
+ FieldType fieldType = getExtension(ext).getFieldType(fieldName);
+ Object validValue = fieldType.getValidValue(value);
+ fieldValue.put(key, validValue);
+
+ // mark field dirty and call listener
+ setFieldDirty(ext, fieldName, oldValue, validValue);
+ }
+
+ public Object getFieldAsObject(String ext, String fieldName) {
+ if (!hasField(ext, fieldName)) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid field",
+ ext + "." + fieldName));
+ }
+ String key = ext + "." + fieldName;
+ Object result = fieldValue.get(key);
+ return result;
+ }
+
+ public boolean getFieldAsBoolean(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ boolean result = WikittyUtil.toBoolean(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid boolean",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public BigDecimal getFieldAsBigDecimal(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ BigDecimal result = WikittyUtil.toBigDecimal(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid numeric",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public int getFieldAsInt(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ int result = value.intValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid int",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public long getFieldAsLong(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ long result = value.longValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid int",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public float getFieldAsFloat(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ float result = value.floatValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid float",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public double getFieldAsDouble(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ double result = value.doubleValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid float",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public String getFieldAsString(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ String result = WikittyUtil.toString(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid String",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public Date getFieldAsDate(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ Date result = WikittyUtil.toDate(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid Date",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /**
+ * return wikitty id and not wikitty objet because this method can be call
+ * on server or client side and it's better to keep conversion between id
+ * and objet to the caller
+ * @param ext extension name where this field must to be
+ * @param fieldName the field name
+ * @return id of wikitty object or null
+ * @throws org.nuiton.wikitty.WikittyException
+ */
+ public String getFieldAsWikitty(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ String result = WikittyUtil.toWikitty(value);
+ return result;
+ }
+
+ /**
+ * If object is a set, it is automatically transform to list.
+ * @param <E>
+ * @param clazz
+ * @return unmodifiable list
+ */
+ public <E> List<E> getFieldAsList(String ext, String fieldName, final Class<E> clazz) {
+ try {
+ final Collection<E> collection = (Collection<E>) getFieldAsObject(ext, fieldName);
+ if (collection != null) {
+ // return unmodiable collection that check type of element
+ return new AbstractList<E>() {
+ List<E> contained = new ArrayList<E>(collection);
+ @Override public E get(int index) {
+ return WikittyUtil.cast( contained.get(index), clazz );
+ }
+ @Override public int size() {
+ return contained.size();
+ }
+ };
+ }
+ return null;
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /**
+ *
+ * @param <E>
+ * @param clazz
+ * @return unmodifiable list
+ */
+ public <E> Set<E> getFieldAsSet(String ext, String fieldName, final Class<E> clazz) {
+ try {
+ final Set<E> result = (Set<E>) getFieldAsObject(ext, fieldName);
+ if (result != null) {
+ // return unmodifable Set
+ return new AbstractSet<E>() {
+ Set<E> contained = result;
+ @Override public int size() {
+ return contained.size();
+ }
+ @Override
+ public Iterator<E> iterator() {
+ return new Iterator<E>() {
+ Iterator containedIterator = contained.iterator();
+ public boolean hasNext() {
+ return containedIterator.hasNext();
+ }
+
+ public E next() {
+ Object o = containedIterator.next();
+ return WikittyUtil.cast(o, clazz);
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException("Not supported operation");
+ }
+ };
+
+ }
+ };
+ }
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public void addToField(String ext, String fieldName, Object value) {
+ try {
+ FieldType fieldType = getExtension(ext).getFieldType(fieldName);
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col == null) {
+ if (fieldType.isUnique()) {
+ col = new HashSet();
+ } else {
+ col = new ArrayList();
+ }
+ col.add(value);
+ setField(ext, fieldName, col);
+ // no call dirty, because already done in setField
+ } else {
+ // check upper bound only if col exists,
+ // because ask upper bound == 0 is ridiculous
+
+ if (fieldType.isUnique()) {
+ if (!col.contains(value)) {
+ // only add if not already in collection (unique)
+ if (col.size() + 1 > fieldType.getUpperBound()) {
+ // if upper bound reached, throw an exception
+ throw new WikittyException(String.format(
+ "Can't add value for field '%s', upper bound is reached",
+ ext + "." + fieldName));
+ }
+ col.add(value);
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ } else {
+ if (col.size() + 1 > fieldType.getUpperBound()) {
+ throw new WikittyException(String.format(
+ "Can't add value for field '%s', upper bound is reached",
+ ext + "." + fieldName));
+ }
+ col.add(value);
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public void removeFromField(String ext, String fieldName, Object value) {
+ try {
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col != null) {
+ FieldType type = getExtension(ext).getFieldType(fieldName);
+ if (col.contains(value)) {
+ if (col.size() - 1 < type.getLowerBound()) {
+ throw new WikittyException(String.format(
+ "Can't remove value for field '%s', lower bound is reached",
+ ext + "." + fieldName));
+ } else {
+ if (col.remove(value)) {
+ // field is dirty only if remove is done
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ }
+ }
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't remove value for field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ public void clearField(String ext, String fieldName) {
+ FieldType type = getExtension(ext).getFieldType(fieldName);
+ if (type.getLowerBound() > 0) {
+ throw new WikittyException(String.format(
+ "Can't clear values for field '%s', lower bound is > 0",
+ ext + "." + fieldName));
+ }
+ try {
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col != null) {
+ col.clear();
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't clear value for field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean result = false;
+ if (obj instanceof Wikitty) {
+ Wikitty other = (Wikitty) obj;
+ result = id.equals(other.id);
+ }
+ return result;
+ }
+
+ @Override
+ public int hashCode() {
+ if (id == null) {
+ return super.hashCode();
+ } else {
+ return id.hashCode();
+ }
+ }
+
+ public Set<String> fieldNames() {
+ return fieldValue.keySet();
+ }
+
+ public Object getFqField(String fqFieldName) {
+ return fieldValue.get(fqFieldName);
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Server only used
+ * @param version
+ */
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ /**
+ * Server only used
+ * @param version
+ */
+ public void clearDirty() {
+ fieldDirty.clear();
+ }
+
+ /**
+ * Server only used
+ * @param fieldName fqn (ex: extensionName.fieldName)
+ * @param value new value
+ */
+ public void setFqField(String fieldName, Object value) {
+ FieldType fieldType = getFieldType(fieldName);
+ Object validValue = fieldType.getValidValue(value);
+ fieldValue.put(fieldName, validValue);
+ }
+
+ public boolean isEmpty() {
+ return fieldValue.isEmpty();
+ }
+
+ @Override
+ public String toString() {
+ boolean cr = true;
+ String str = "[" + getId() + ":" + getVersion() + "] {";
+ for ( String extName : getExtensionNames() ) {
+ WikittyExtension ext = getExtension(extName);
+ str += (cr ? "\n" : "") + "\t<" + extName + ">\n";
+ cr = false;
+ for ( String fieldName : ext.getFieldNames() ) {
+ str += "\t\t" + fieldName + " = " + getFieldAsString(extName, fieldName) + "\n";
+ }
+ }
+ str += "}";
+ return str;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyDAO.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyDAO.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyDAO.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyDAO.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,189 @@
+package org.nuiton.wikitty;
+
+import java.lang.reflect.ParameterizedType;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class WikittyDAO<E extends BusinessEntityWikitty> {
+
+ protected static Log log = LogFactory.getLog( WikittyDAO.class );
+
+ private WikittyProxy proxy;
+ private Class<E> clazz;
+
+ public WikittyDAO() {
+ clazz = getActualClassType();
+ }
+
+ private Class<E> getActualClassType() {
+ ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
+ Class<E> clazz = (Class<E>)type.getActualTypeArguments()[0];
+ return clazz;
+ }
+
+ public void addLabel(String wikittyId, String label) {
+ proxy.addLabel(wikittyId, label);
+ }
+
+ public String asyncExportAllByCriteria(Criteria criteria) {
+ return proxy.asyncExportAllByCriteria(criteria);
+ }
+
+ public String asyncExportAllByExample(E e) {
+ return proxy.asyncExportAllByExample(e);
+ }
+
+ public String asyncImportFromUri(String uri) {
+ return proxy.asyncImportFromUri(uri);
+ }
+
+ public void cancelJob(String jobId) {
+ proxy.cancelJob(jobId);
+ }
+
+ public void delete(Collection<String> ids) {
+ proxy.delete(ids);
+ }
+
+ public void delete(String id) {
+ proxy.delete(id);
+ }
+
+ public boolean equals(Object obj) {
+ return proxy.equals(obj);
+ }
+
+ public Set<String> findAllAppliedLabels(String wikittyId) {
+ return proxy.findAllAppliedLabels(wikittyId);
+ }
+
+ public PagedResult<E> findAll() {
+ return proxy.findAllByCriteria(clazz, null);
+ }
+
+ public PagedResult<E> findAllByCriteria(Criteria criteria) {
+ return proxy.findAllByCriteria(clazz, criteria);
+ }
+
+ public PagedResult<E> findAllByExample(E e, int firstIndex, int endIndex, String... fieldFacet) {
+ return proxy.findAllByExample(e, firstIndex, endIndex, fieldFacet);
+ }
+
+ public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
+ return proxy.findAllByLabel(label, firstIndex, endIndex);
+ }
+
+ public E findByCriteria(Criteria criteria) {
+ return proxy.findByCriteria(clazz, criteria);
+ }
+
+ public E findByExample(E e) {
+ return proxy.findByExample(e);
+ }
+
+ public Wikitty findByLabel(String label) {
+ return proxy.findByLabel(label);
+ }
+
+ public void freeJobResource(String jobId) {
+ proxy.freeJobResource(jobId);
+ }
+
+ public WikittyService getWikittyService() {
+ return proxy.getWikittyService();
+ }
+
+ public int hashCode() {
+ return proxy.hashCode();
+ }
+
+ public JobState infoJob(String jobId) {
+ return proxy.infoJob(jobId);
+ }
+
+ public List<E> restore(List<String> id) {
+ return proxy.restore(clazz, id, true);
+ }
+
+ public E restore(String id) {
+ return proxy.restore(clazz, id, true);
+ }
+
+ public <E extends BusinessEntity> E restore(String id,Class<E> clazz ) {
+ return proxy.restore(clazz, id);
+ }
+
+ public Tree restoreTree(String wikittyId) {
+ return proxy.restoreTree(wikittyId);
+ }
+
+ public Map.Entry<E, Integer> restoreNode(String wikittyId) {
+ return restoreNode(wikittyId, null);
+ }
+
+ public Map.Entry<E, Integer> restoreNode(String wikittyId, Criteria filter) {
+ Class<E> clazz = getActualClassType();
+ return proxy.restoreNode(clazz, wikittyId, filter, true);
+ }
+
+ public Map<E, Integer> restoreChildren(String wikittyId) {
+ return restoreChildren(wikittyId, null);
+ }
+
+ public Map<E, Integer> restoreChildren(String wikittyId, Criteria filter) {
+ Class<E> clazz = getActualClassType();
+ return proxy.restoreChildren(clazz, wikittyId, filter, true);
+ }
+
+ public Wikitty restoreVersion(String wikittyId, String version) {
+ return proxy.restoreVersion(wikittyId, version);
+ }
+
+ public boolean hasType(String wikittyId) {
+ Class<E> clazz = getActualClassType();
+ return proxy.hasType(clazz, wikittyId);
+ }
+
+ public void setWikittyService(WikittyService wikittyService) {
+ proxy.setWikittyService(wikittyService);
+ }
+
+ public E store(E e) {
+ return proxy.store(e);
+ }
+
+ public List<E> store(List<E> objets) {
+ return proxy.store(objets);
+ }
+
+ public String syncExportAllByCriteria(Criteria criteria) {
+ return proxy.syncExportAllByCriteria(criteria);
+ }
+
+ public String syncExportAllByExample(E e) {
+ return proxy.syncExportAllByExample(e);
+ }
+
+ public void syncImportFromUri(String uri) {
+ proxy.syncImportFromUri(uri);
+ }
+
+ public void syncImportFromXml(String xml) {
+ proxy.syncImportFromXml(xml);
+ }
+
+ public String toString() {
+ return proxy.toString();
+ }
+
+ public void setProxy(WikittyProxy proxy) {
+ this.proxy = proxy;
+ }
+
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyException.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyException.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyException.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyException.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,44 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public WikittyException(String message) {
+ super(message);
+ }
+
+ public WikittyException(Exception eee) {
+ super(eee);
+ }
+
+ public WikittyException(String message, Exception eee) {
+ super(message, eee);
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtension.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,242 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyExtension implements Serializable {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(WikittyExtension.class);
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Name of this extension.
+ */
+ protected String name;
+
+ /**
+ * Name of other extension needed to put this extension to object.
+ *
+ * Warning : Multiples extensions are not supported yet.
+ *
+ * FIXME EC-20100420 multiples extensions need to work
+ */
+ protected String requires;
+
+ /**
+ * use to know version objet, when you change field number, type or other
+ * you must change version number.
+ */
+ protected String version = WikittyUtil.DEFAULT_VERSION;
+
+ /** used to store tag/value used by client side ex: updatedDate=101212 */
+ Map<String, String> tagValues = new HashMap<String, String>();
+
+ /**
+ * fields use ordered map, to keep order insertion of field
+ * key: field name
+ * value: field type
+ */
+ protected LinkedHashMap<String, FieldType> fields = new LinkedHashMap<String, FieldType>();
+
+ protected WikittyExtension() {
+ }
+
+ public WikittyExtension(String name) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name must not be null");
+ }
+ this.name = name;
+ }
+
+ public WikittyExtension(String name, String version,
+ String requires, LinkedHashMap<String, FieldType> fields) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name must not be null");
+ }
+ if (version == null) {
+ throw new IllegalArgumentException("Version must not be null");
+ }
+ this.name = name;
+ this.version = WikittyUtil.normalizeVersion(version);
+ this.requires = requires;
+ if (fields != null) {
+ this.fields = fields;
+ }
+ }
+
+ public WikittyExtension cloneForUpgrade() {
+ String nextRevision = WikittyUtil.incrementMajorRevision(getVersion());
+
+ LinkedHashMap<String, FieldType> nextFields = null;
+ if (fields != null) {
+ nextFields = new LinkedHashMap<String, FieldType>();
+ for (Map.Entry<String, FieldType> entry : fields.entrySet()) {
+ FieldType type = entry.getValue();
+ FieldType nextType = new FieldType(type.getType(), type.getLowerBound(), type.getUpperBound(), type.isUnique(), type.isNotNull());
+ Set<String> tagNames = type.getTagNames();
+ if (tagNames != null) {
+ for (String tagName : tagNames) {
+ String tagValue = type.getTagValue(tagName);
+ nextType.addTagValue(tagName, tagValue);
+ }
+ }
+ nextFields.put(entry.getKey(), nextType);
+ }
+ }
+
+ WikittyExtension result = new WikittyExtension(name, nextRevision, requires, nextFields);
+ return result;
+ }
+
+ /**
+ * compute id for extension name and version in argument
+ * @param name
+ * @param version
+ * @return
+ */
+ static public String computeId(String name, String version) {
+ String result = name + "[" + version + "]";
+ return result;
+ }
+
+ static public String computeName(String id) {
+ int i = id.lastIndexOf("[");
+ String result = id;
+ if (i != -1) {
+ result = id.substring(0, i);
+ }
+ return result;
+ }
+
+ static public String computeVersion(String id) {
+ int b = id.lastIndexOf("[");
+ int e = id.lastIndexOf("]");
+ String result = null;
+ if (b != -1 && e != -1) {
+ result = id.substring(b+1, e);
+ }
+ result = WikittyUtil.normalizeVersion(result);
+ return result;
+ }
+
+ public String getId() {
+ String result = computeId(getName(), getVersion());
+ return result;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public String getRequires() {
+ return requires;
+ }
+
+ public FieldType getFieldType(String fieldName) {
+ return fields.get(fieldName);
+ }
+
+ public Collection<String> getFieldNames() {
+ Collection<String> result = fields.keySet();
+ return result;
+ }
+
+ public void addField(String fieldName, FieldType type) {
+ fields.put(fieldName, type);
+ }
+
+ public void removeField(String fieldName) {
+ fields.remove(fieldName);
+ }
+
+ @Override
+ public int hashCode() {
+ return getId().hashCode();
+ }
+
+ public void addTagValue(String tag, String value) {
+ tagValues.put(tag, value);
+ }
+
+ public String getTagValue(String tag) {
+ String result = tagValues.get(tag);
+ return result;
+ }
+
+ public Set<String> getTagNames() {
+ return tagValues.keySet();
+ }
+
+ public Map<String, String> getTagValues() {
+ return tagValues;
+ }
+
+ public void setTagValues(Map<String, String> tagValues) {
+ this.tagValues = tagValues;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean result = false;
+ if (obj instanceof WikittyExtension) {
+ WikittyExtension other = (WikittyExtension)obj;
+ result = this.getId().equals(other.getId());
+ }
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getId();
+ }
+
+ public String toDefinition() {
+ String result = "Extension " + getId();
+ result += WikittyUtil.tagValuesToString(tagValues);
+ result += " {\n";
+ for (String fieldName : fields.keySet()) {
+ result += fields.get(fieldName).toDefinition(fieldName) + "\n";
+ }
+ result += "}";
+ return result;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigration.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigration.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigration.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigration.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,59 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Interface used to migrate Wikitty data from one WikittyExtension version
+ * to another version
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface WikittyExtensionMigration {
+
+ // TODO poussin 20090902 permit configuration of migrationRegistry by spring
+ /**
+ * use to put migration class for extension.
+ * key: extensionName, value: migration class
+ */
+ static public Map<String, WikittyExtensionMigration> migrationRegistry =
+ new HashMap<String, WikittyExtensionMigration>();
+
+ /**
+ * Migrate wikitty data from oldExt version to newExt.
+ *
+ * @param service Wikitty service that do migration
+ * @param transaction current transaction to use
+ * @param wikitty Wikitty object that contains data in old version
+ * extension format
+ * @param oldExt old extension definition
+ * @param newExt new extension definition
+ * @return same wikitty as argument if nothing to do, or new wikitty
+ * if some modification is done
+ */
+ public Wikitty migrate(AbstractWikittyService service, WikittyTransaction transaction,
+ Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigrationRename.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,123 @@
+/* *##%
+ * Copyright (c) 2009 ruchaud. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Basic extension migration use to manage rename field name. Order to detect a
+ * rename, not creation a new field, you should use tag value "renameFrom" with
+ * name of use in before extension.
+ *
+ * Since 1.5, this class also take care about extension order.
+ *
+ * @author ruchaud
+ */
+public class WikittyExtensionMigrationRename implements WikittyExtensionMigration {
+
+ static private Log log = LogFactory.getLog(WikittyExtensionMigrationRename.class);
+
+ public static String TAG_RENAME = "renameFrom";
+
+ /**
+ * Recursively add extension with requires ones (orderer).
+ *
+ * @param service service
+ * @param transaction current transaction to use
+ * @param wikitty wikitty to add extension to
+ * @param newExt extension to add
+ */
+ protected void addExtension(AbstractWikittyService service, WikittyTransaction transaction, Wikitty wikitty, WikittyExtension newExt) {
+
+ // manage requires before current
+ String requires = newExt.getRequires();
+ if (StringUtils.isNotEmpty(requires)) {
+ for (String require : requires.split(",")) {
+ WikittyExtension newRequireExt = service.restoreExtensionLastVersion(transaction, require);
+ addExtension(service, transaction, wikitty, newRequireExt);
+ }
+ }
+
+ // add current extension
+ wikitty.addExtension(newExt);
+ }
+
+ @Override
+ public Wikitty migrate(AbstractWikittyService service, WikittyTransaction transaction, Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt) {
+
+ String wikittyId = wikitty.getId();
+ String wikittyVersion = wikitty.getVersion();
+
+ Wikitty result = new Wikitty(wikittyId);
+ result.setVersion(wikittyVersion);
+
+ // Add all extension and replace old by the new
+ for (WikittyExtension extension : wikitty.getExtensions()) {
+ // add one by one to manage require
+
+ // during loop add new when old one is found
+ if (extension.equals(oldExt)) {
+ addExtension(service, transaction, result, newExt);
+ }
+ else {
+ addExtension(service, transaction, result, extension);
+ }
+ }
+
+ // Copy other values
+ Set<String> fqFieldNames = wikitty.fieldNames();
+ String extName = newExt.getName();
+ for (String fieldName : fqFieldNames) {
+ if(!fieldName.startsWith(extName + ".")) {
+ Object value = wikitty.getFqField(fieldName);
+ log.debug("Value " + fieldName + "=" + value);
+ result.setFqField(fieldName, value);
+ }
+ }
+
+ // Migrate field name
+ Collection<String> oldFieldNames = oldExt.getFieldNames();
+ Collection<String> newFieldNames = newExt.getFieldNames();
+ for (String fieldName : newFieldNames) {
+ FieldType fieldType = newExt.getFieldType(fieldName);
+
+ String renameFrom = fieldType.getTagValue(TAG_RENAME);
+ log.debug("Scan rename migration on " + extName + "." + fieldName + ":" + TAG_RENAME + "=" + renameFrom);
+
+ if(renameFrom != null && !renameFrom.isEmpty()) {
+ Object value = wikitty.getFieldAsObject(extName, renameFrom);
+ log.debug("Rename " + extName + "." + fieldName + "=" + value);
+ result.setField(extName, fieldName, value);
+ } else {
+ if(oldFieldNames.contains(fieldName)) {
+ Object value = wikitty.getFieldAsObject(extName, fieldName);
+ log.debug("Copy " + extName + "." + fieldName + "=" + value);
+ result.setField(extName, fieldName, value);
+ }
+ }
+ }
+
+ return result;
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionStorage.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionStorage.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,95 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface WikittyExtensionStorage {
+
+ /**
+ * Store extension in storage.
+ *
+ * @param transaction the current transaction
+ * @param extensions the extensions to store
+ * @return information usefull for client side update data
+ */
+ UpdateResponse store(WikittyTransaction transaction, Collection<WikittyExtension> extensions);
+
+ /**
+ * Return true if id exists in storage.
+ *
+ * @param transaction the current transaction
+ * @param id an extension id
+ * @return true if the extension exists
+ */
+ boolean exists(WikittyTransaction transaction, String id);
+
+ /**
+ * Return all extension ids.
+ *
+ * @param transaction the current transaction
+ * @return a list of extension ids
+ */
+ List<String> getAllExtensionIds(WikittyTransaction transaction);
+
+ /**
+ * Return all extension ids where the specified extensionName is required.
+ *
+ * @param transaction the current transaction
+ * @param extensionName the extension required
+ * @return a list of extension ids
+ */
+ List<String> getAllExtensionsRequires(WikittyTransaction transaction,
+ String extensionName);
+
+ /**
+ * return last version available for specified extension name.
+ *
+ * @param transaction the current transaction
+ * @param extName name of extension
+ * @return last version availble for this version, or null if extension
+ * doesn't exist
+ */
+ String getLastVersion(WikittyTransaction transaction, String extName);
+
+ /**
+ * Restore one extension from storage, if not found an exception is thrown.
+ *
+ * @param transaction the current transaction
+ * @param name extension name to restore
+ * @param version extension version to restore
+ * @return an extension
+ */
+ WikittyExtension restore(WikittyTransaction transaction, String name, String version)
+ throws WikittyException;
+
+ /**
+ * Remove all extensions
+ */
+ public void clear(WikittyTransaction transaction);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyProxy.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,516 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.TreeNode;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyProxy {
+
+ protected WikittyService wikittyService;
+
+ public WikittyService getWikittyService() {
+ return wikittyService;
+ }
+
+ public void setWikittyService(WikittyService wikittyService) {
+ this.wikittyService = wikittyService;
+ }
+
+ public <E extends BusinessEntity> E store(E e) {
+ Wikitty w = WikittyUtil.beanToWikitty(e);
+ UpdateResponse resp = wikittyService.store(w);
+ resp.update(e);
+ return e;
+ }
+
+ /**
+ * Store to WikittyService objects.
+ * @param objets list of BeanDto
+ * @return
+ */
+ public <E extends BusinessEntity> List<E> store(List<E> objets) {
+ // prepare data to send to service
+ List<Wikitty> wikitties = new ArrayList<Wikitty>(objets.size());
+ for (E e : objets) {
+ Wikitty w = WikittyUtil.beanToWikitty(e);
+ wikitties.add(w);
+ }
+
+ // call the service with Wikitty
+ UpdateResponse resp = wikittyService.store(wikitties);
+
+ // update object
+ for (E e : objets) {
+ resp.update(e);
+ }
+ return objets;
+ }
+
+ /**
+ * Restore wikitty entity with specified id or {@code null} if entity can't be found.
+ *
+ * @param clazz entity class
+ * @param id entity id
+ * @param checkExtension if true check that Wikitty result has all extension
+ * declared in clazz
+ * @return wikitty entity with specified id or {@code null} if entity can't be found
+ */
+ public <E extends BusinessEntity> E restore(Class<E> clazz, String id, boolean checkExtension) {
+ E result = null;
+ HashSet extNames = null;
+ try {
+ Wikitty wikitty = wikittyService.restore(id);
+ if(wikitty == null) {
+ return null;
+ }
+
+ if (checkExtension) {
+ extNames = new HashSet<String>(wikitty.getExtensionNames());
+ }
+ result = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ if (checkExtension) {
+ // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
+ BusinessEntityWikitty b = (BusinessEntityWikitty)result;
+ Collection<WikittyExtension> BusinessEntityStaticExtensions = b.getStaticExtensions();
+ for (WikittyExtension ext : BusinessEntityStaticExtensions) {
+ String extensionName = ext.getName();
+ if (!extNames.contains(extensionName)) {
+ // extension wanted by BusinessEntity (clazz)
+ // is not in wikitty, then wikitty is not good type
+ // for business
+ return null;
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Restore wikitty entity with specified id or {@code null} if entity can't be found.
+ *
+ * @param clazz entity class
+ * @param id entity id
+ * @return wikitty entity with specified id or {@code null} if entity can't be found
+ */
+ public <E extends BusinessEntity> E restore(Class<E> clazz, String id) {
+ E result = restore(clazz, id, false);
+ return result;
+ }
+
+ /**
+ *
+ * @param clazz
+ * @param id
+ * @param checkExtension if true check that Wikitty result has all extension
+ * @return
+ */
+ public <E extends BusinessEntity> List<E> restore(
+ Class<E> clazz, List<String> id, boolean checkExtension) {
+
+ List<Wikitty> wikitties = wikittyService.restore(id);
+ List<E> result = new ArrayList<E>();
+ for (Wikitty w : wikitties) {
+ HashSet extNames = null;
+ if (checkExtension) {
+ extNames = new HashSet<String>(w.getExtensionNames());
+ }
+
+ E dto = WikittyUtil.newInstance(wikittyService, clazz, w);
+ if (checkExtension) {
+ // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
+ BusinessEntityWikitty b = (BusinessEntityWikitty) dto;
+ for (WikittyExtension ext : b.getStaticExtensions()) {
+ if (!extNames.contains(ext.getName())) {
+ // extension wanted by BusinessEntity (clazz)
+ // is not in wikitty, then wikitty is not good type
+ // for business
+ return null;
+ }
+ }
+ }
+ result.add(dto);
+ }
+ return result;
+ }
+
+ public <E extends BusinessEntity> List<E> restore(Class<E> clazz, List<String> id) {
+ List<E> result = restore(clazz, id, false);
+ return result;
+ }
+
+ public void delete(String id) {
+ wikittyService.delete(id);
+ }
+
+ public void delete(Collection<String> ids) {
+ wikittyService.delete(ids);
+ }
+
+ public <E extends BusinessEntityWikitty> PagedResult<E> findAllByExample(E e,
+ int firstIndex, int endIndex, String ... fieldFacet ) {
+
+ Criteria criteria = Search.query(e.getWikitty()).criteria()
+ .setFirstIndex(firstIndex).setEndIndex(endIndex)
+ .setFacetField(fieldFacet);
+
+ PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(criteria);
+ // we can use autoconvert = true because search by example add automaticaly
+ // restriction on extension
+ PagedResult<E> result = (PagedResult<E>)pagedResult.cast(wikittyService, e.getClass(), true);
+ return result;
+ }
+
+ public <E extends BusinessEntityWikitty> E findByExample(E e) {
+ Criteria criteria = Search.query(e.getWikitty()).criteria();
+
+ Wikitty w = wikittyService.findByCriteria(criteria);
+ E result = (E)WikittyUtil.newInstance(wikittyService, e.getClass(), w);
+ return result;
+ }
+
+ /**
+ * Search object that correspond to criteria and that have all extension
+ * needed by BusinessEntity (clazz). If criteria is null, find all extensions
+ * else if crtiteria is empty return nothing.
+ * @param clazz
+ * @param criteria
+ * @param firstIndex
+ * @param endIndex
+ * @return
+ */
+ public <E extends BusinessEntity> PagedResult<E> findAllByCriteria(
+ Class<E> clazz, Criteria criteria) {
+
+ // newInstance only return BusinessEntityWikittyImpl
+ BusinessEntityWikitty sample =
+ (BusinessEntityWikitty)WikittyUtil.newInstance(clazz);
+
+ Wikitty wikitty = sample.getWikitty();
+ Collection<String> extensions = wikitty.getExtensionNames();
+
+ Criteria serviceCriteria;
+ if(criteria == null) {
+ Search search = Search.query();
+ search = search.eq(Element.ELT_EXTENSION, extensions);
+
+ serviceCriteria = search.criteria();
+ } else {
+ Search search = Search.query(criteria);
+ search = search.eq(Element.ELT_EXTENSION, extensions);
+
+ serviceCriteria = search.criteria(criteria.getName());
+ serviceCriteria.setFirstIndex(criteria.getFirstIndex());
+ serviceCriteria.setEndIndex(criteria.getEndIndex());
+
+ 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));
+ }
+ }
+
+ PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(serviceCriteria);
+
+ // we can cast with autoconvert true because we have add restriction
+ // on extension
+ PagedResult<E> result = (PagedResult<E>)pagedResult.cast(wikittyService, sample.getClass(), true);
+ return result;
+ }
+
+ public <E extends BusinessEntity> E findByCriteria(Class<E> clazz, Criteria criteria) {
+ BusinessEntityWikitty sample =
+ (BusinessEntityWikitty)WikittyUtil.newInstance(clazz);
+
+ Wikitty wikitty = sample.getWikitty();
+ Collection<String> extensions = wikitty.getExtensionNames();
+ Search search = Search.query(criteria);
+ search = search.eq(Element.ELT_EXTENSION, extensions);
+
+ criteria = search.criteria(criteria.getName());
+
+ Wikitty w = wikittyService.findByCriteria(criteria);
+ E result = WikittyUtil.newInstance(wikittyService, clazz, w);
+ return result;
+ }
+
+ public void addLabel(String wikittyId, String label) {
+ wikittyService.addLabel(wikittyId, label);
+ }
+
+ public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
+ PagedResult<Wikitty> result = wikittyService.findAllByLabel(
+ label, firstIndex, endIndex);
+ return result;
+ }
+
+ public Wikitty findByLabel(String label) {
+ Wikitty result = wikittyService.findByLabel(label);
+ return result;
+ }
+
+ public Set<String> findAllAppliedLabels(String wikittyId) {
+ Set<String> result = wikittyService.findAllAppliedLabels(wikittyId);
+ return result;
+ }
+
+ public Tree restoreTree(String wikittyId) {
+ Tree result = wikittyService.restoreTree(wikittyId);
+ return result;
+ }
+
+ public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter) {
+ Entry<E, Integer> result = restoreNode(clazz, wikittyId, filter, false);
+ return result;
+ }
+
+ public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) {
+ Map.Entry<TreeNode, Integer> node = wikittyService.restoreNode(wikittyId, filter);
+ if(node == null) {
+ return null;
+ }
+
+ E bean = restore(clazz, wikittyId, checkExtension);
+ if(bean == null) {
+ return null;
+ }
+
+ Map.Entry<E, Integer> result =
+ new HashMap.SimpleEntry<E, Integer>(bean, node.getValue());
+ return result;
+ }
+
+ public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter) {
+ Map<E, Integer> result = restoreChildren(clazz, wikittyId, filter, false);
+ return result;
+ }
+
+ public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) {
+
+ Map<TreeNode, Integer> result = wikittyService.restoreChildren(wikittyId, filter);
+ if(result == null) {
+ return null;
+ }
+
+ Map<E, Integer> convertedResult = new LinkedHashMap<E, Integer>();
+ Set<Entry<TreeNode, Integer>> entries = result.entrySet();
+ for (Entry<TreeNode, Integer> entry : entries) {
+
+ TreeNode node = entry.getKey();
+
+ //TODO EC-20100420 was : String nodeId = node.getId();
+ String nodeId = node.getWikittyId();
+
+ E businessEntity = null;
+ HashSet<String> extNames = null;
+ try {
+ Wikitty wikitty = wikittyService.restore(nodeId);
+ if(checkExtension) {
+ extNames = new HashSet<String>(wikitty.getExtensionNames());
+ }
+ businessEntity = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+
+ boolean goodType = true;
+ if(checkExtension) {
+ // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
+ BusinessEntityWikitty businessEntityImpl = (BusinessEntityWikitty) businessEntity;
+ Collection<WikittyExtension> staticExtensions = businessEntityImpl.getStaticExtensions();
+
+ for (Iterator<WikittyExtension> iterator = staticExtensions.iterator(); iterator.hasNext() && goodType;) {
+ WikittyExtension ext = iterator.next();
+ if (!extNames.contains(ext.getName())) {
+ // extension wanted by BusinessEntity (clazz)
+ // is not in wikitty, then wikitty is not good type
+ // for business
+ goodType = false;
+ }
+ }
+ }
+
+ if(goodType) {
+ Integer nodeCount = entry.getValue();
+ convertedResult.put(businessEntity, nodeCount);
+ }
+ }
+ return convertedResult;
+ }
+
+ public Wikitty restoreVersion(String wikittyId, String version) {
+ Wikitty result = wikittyService.restoreVersion(wikittyId, version);
+ return result;
+ }
+
+ public <E extends BusinessEntity> boolean hasType(Class<E> clazz, String wikittyId) {
+ E result = null;
+ HashSet<String> extNames = null;
+ try {
+ Wikitty wikitty = wikittyService.restore(wikittyId);
+ if(wikitty == null) {
+ return false;
+ }
+ extNames = new HashSet<String>(wikitty.getExtensionNames());
+ result = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
+ BusinessEntityWikitty b = (BusinessEntityWikitty)result;
+ for (WikittyExtension ext : b.getStaticExtensions()) {
+ if (!extNames.contains(ext.getName())) {
+ // extension wanted by BusinessEntity (clazz)
+ // is not in wikitty, then wikitty is not good type
+ // for business
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void syncImportFromXml(String xml) {
+ wikittyService.syncImportFromXml(xml);
+ }
+
+ public void syncImportFromUri(String uri) {
+ wikittyService.syncImportFromUri(uri);
+ }
+
+ /**
+ *
+ * @param uri
+ * @return job id
+ */
+ public String asyncImportFromUri(String uri) {
+ String result = wikittyService.asyncImportFromUri(uri);
+ return result;
+ }
+
+ /**
+ *
+ * @param e
+ * @return job id
+ */
+ public <E extends BusinessEntityWikitty> String asyncExportAllByExample(E e) {
+ Criteria criteria = Search.query(e.getWikitty()).criteria();
+ String result = wikittyService.asyncExportAllByCriteria(criteria);
+ return result;
+ }
+
+ /**
+ *
+ * @param e
+ * @return xml string
+ */
+ public <E extends BusinessEntityWikitty> String syncExportAllByExample(E e) {
+ Criteria criteria = Search.query(e.getWikitty()).criteria();
+ String result = wikittyService.syncExportAllByCriteria(criteria);
+ return result;
+ }
+
+ /**
+ *
+ * @param criteria
+ * @return job id
+ */
+ public String asyncExportAllByCriteria(Criteria criteria) {
+ String result = wikittyService.asyncExportAllByCriteria(criteria);
+ return result;
+ }
+
+ /**
+ *
+ * @param criteria
+ * @return xml string
+ */
+ public String syncExportAllByCriteria(Criteria criteria) {
+ String result = wikittyService.syncExportAllByCriteria(criteria);
+ return result;
+ }
+
+ /**
+ * give the job state
+ * @param jobId
+ * @return
+ */
+ public JobState infoJob(String jobId) {
+ JobState result = wikittyService.infoJob(jobId);
+ return result;
+ }
+
+ /**
+ * cancel job you must call freeJobResource
+ * @param jobId
+ */
+ public void cancelJob(String jobId) {
+ wikittyService.cancelJob(jobId);
+ }
+
+ /**
+ * This method must be call when your job is done and you have result, or
+ * when you call cancelJob
+ * @param jobId
+ */
+ public void freeJobResource(String jobId) {
+ wikittyService.freeJobResource(jobId);
+ }
+
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittySearchEngin.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,83 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * WikittySearchEngin is used to abstract search engin used in WikittyService.
+ *
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface WikittySearchEngin {
+
+ /**
+ * Remove all data in index
+ */
+ public void clear(WikittyTransaction transaction);
+
+ /**
+ * Store wikitty in storage
+ * @return information usefull for client side update data
+ */
+ public UpdateResponse store(WikittyTransaction transaction,
+ Collection<Wikitty> wikitties);
+
+ /**
+ * Delete all object with idList argument. If id is not valid or don't exist.
+ *
+ * @param idList list of ids to delete
+ * @return <code>UpdateResponse</code>>
+ * @throws WikittyException
+ */
+ public UpdateResponse delete(WikittyTransaction transaction,
+ Collection<String> idList) throws WikittyException;
+
+ /**
+ * Delete all object with idList argument. idList is directly passed to search engine
+ * and is processed without any other kind of treatment.
+ *
+ * @param idList list of ids to delete
+ * @return <code>UpdateResponse</code>>
+ * @throws WikittyException
+ */
+ public void delete(Collection<String> idList) throws WikittyException;
+
+ public PagedResult<String> findAllByCriteria(WikittyTransaction transaction, Criteria criteria);
+
+ /**
+ * Find count of child for a node
+ * @param w
+ * @return
+ */
+ public Integer findNodeCount(WikittyTransaction transaction, Wikitty w, Criteria filter);
+
+ /**
+ * Find all children ids with count for a node wikitty.
+ * @param w
+ * @return
+ */
+ public Map<String, Integer> findAllChildrenCount(WikittyTransaction transaction, Wikitty w, Criteria filter);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyService.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,306 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.nuiton.wikitty.TreeNode;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface WikittyService {
+
+ /**
+ * Use {@link Criteria.ALL_ELEMENTS}
+ */
+ @Deprecated
+ public static final int ALL_ELEMENTS = -1;
+
+ /*
+ * Storage
+ */
+
+ /**
+ * Use with caution : It will delete ALL indexes from search engine !
+ * This operation should be disabled in production environment.
+ */
+ public void clear();
+
+ /**
+ * Manage Update and creation.
+ *
+ * @param wikitty contains an id all the time.
+ */
+ UpdateResponse store(Wikitty wikitty);
+
+ /**
+ * Manage Update and creation.
+ *
+ * @param wikitties list of wikitty to be persisted
+ */
+ UpdateResponse store(Collection<Wikitty> wikitties);
+
+ /**
+ * Manage Update and creation.
+ *
+ * @param wikitties list of wikitty to be persisted
+ * @param disableAutoVersionIncrement boolean to disable version increment
+ * on saved wikitty
+ */
+ UpdateResponse store(Collection<Wikitty> wikitties,
+ boolean disableAutoVersionIncrement);
+
+ /**
+ * Return all extension id (ex: "extName[version])")
+ * @return
+ */
+ List<String> getAllExtensionIds();
+
+ /**
+ * Return all extension id (ex: "extName[version])") where extensionName is required.
+ * @return
+ */
+ List<String> getAllExtensionsRequires(String extensionName);
+
+ /**
+ * Manage Update and creation.
+ *
+ * @param wikitty extension to be persisted
+ */
+ UpdateResponse storeExtension(WikittyExtension ext);
+
+ /**
+ * Manage Update and creation.
+ *
+ * @param exts list of wikitty extension to be persisted
+ */
+ UpdateResponse storeExtension(Collection<WikittyExtension> exts);
+
+ /**
+ *
+ * @param id
+ * @return the corresponding object, exception if no such object found.
+ */
+ public WikittyExtension restoreExtension(String id);
+
+ /**
+ * Search extension with name in last version
+ * @param name
+ * @return the corresponding object, exception if no such object found.
+ */
+ public WikittyExtension restoreExtensionLastVersion(String name);
+
+ /**
+ *
+ * @param id object id to restore
+ * @return the corresponding object, or null if object doesn't exist or is
+ * deleted
+ */
+ Wikitty restore( String id );
+
+ /**
+ *
+ * @param id list of wikitty ids to restore
+ * @return list of corresponding wikitty, if one id is not valid (no object
+ * or deleted) this id is skip and result list have less elements than
+ * collection argument
+ */
+ List<Wikitty> restore( List<String> id );
+
+ /**
+ * delete object if id exists
+ * @param id object's id to remove
+ */
+ void delete(String id);
+
+ /**
+ * delete all object if id exists
+ * @param ids object's ids to remove
+ */
+ void delete(Collection<String> ids);
+
+ /**
+ *
+ * @param criteria
+ * @return
+ */
+ public PagedResult<Wikitty> findAllByCriteria(Criteria criteria);
+
+ /**
+ * Fist lonely (or first one) wikitty object that match criteria, if no wikitty found return null
+ * @param criteria
+ * @return
+ */
+ public Wikitty findByCriteria(Criteria criteria);
+
+ /*
+ * Labelisation
+ */
+
+ /**
+ * add new lable to the wikitty object
+ * @param wikittyId id of wikitty object to add label
+ * @param label label to add
+ */
+ void addLabel(String wikittyId, String label);
+
+ /**
+ *
+ * @param label
+ * @return
+ */
+ PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex);
+
+ /**
+ *
+ * @param addLabel
+ * @return
+ */
+ Wikitty findByLabel(String label);
+
+ /**
+ * retrieve all labels applied on a wikitty object
+ * @param wikittyId
+ * @return
+ */
+ Set<String> findAllAppliedLabels(String wikittyId);
+
+
+ /*
+ * Classification
+ * Most of classification purpose is handle by extension mechanisms
+ */
+
+ /**
+ * Retrieve all wikitties children (recursively) of an other one
+ * Wikitty reference by wikittyId MUST include the 'Node' extension
+ *
+ * @param wikittyId
+ * @return
+ */
+ Tree restoreTree(String wikittyId);
+
+ /**
+ * Retrieve wikitty node with count. Wikitty reference by wikittyId MUST
+ * include the 'Node' extension
+ * @param wikittyId
+ * @return
+ */
+ Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter);
+
+ /**
+ * Retrieve all wikitties children with count (no recursively) of an other one
+ * Wikitty reference by wikittyId MUST include the 'Node' extension
+ *
+ * @param wikittyId
+ * @return
+ */
+ Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter);
+
+
+ /*
+ * history
+ */
+
+ /**
+ *
+ */
+ Wikitty restoreVersion(String wikittyId, String version);
+
+ /*
+ * admin
+ */
+
+ /**
+ * Synchronise search engine with wikitty strorage engine, i.e. clear and
+ * reindex all wikitties.
+ * @return
+ */
+ UpdateResponse syncEngin();
+
+ /*
+ * Import / Export
+ */
+
+
+ /**
+ * synchonous or not ?
+ *
+ * @param xmlData data to import
+ */
+ void syncImportFromXml(String xml);
+
+ /**
+ *
+ * @param uri
+ */
+ void syncImportFromUri(String uri);
+
+ /**
+ *
+ * @param uri
+ * @return a jobID
+ */
+ String asyncImportFromUri(String uri);
+
+ /**
+ *
+ * @param criteria
+ * @return
+ */
+ String asyncExportAllByCriteria(Criteria criteria);
+
+ /**
+ *
+ * @param criteria
+ * @return
+ */
+ String syncExportAllByCriteria(Criteria criteria);
+
+ /*
+ * Job Management
+ */
+
+ /**
+ *
+ * @param jobId
+ * @return
+ */
+ JobState infoJob(String jobId);
+
+ /**
+ *
+ * @param jobId
+ */
+ void cancelJob(String jobId);
+
+ /**
+ * delete job info and all resources associated to that job (files or other ...)
+ */
+ void freeJobResource(String jobId);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,418 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.And;
+import org.nuiton.wikitty.search.BinaryOperator;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Restriction;
+
+/**
+ * In memory implementation of WikittyService, currently used for test only
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyServiceInMemory extends AbstractWikittyService {
+
+ //FIXME InMemory implementation is not usable for production. Must be reviewed.
+ //FIXME The version increment must be done in 'prepare' method
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(WikittyServiceInMemory.class);
+
+ public static class WikittyStorageInMemory implements WikittyStorage {
+ protected Map<String, Wikitty> wikitties = new LinkedHashMap<String, Wikitty>();
+
+ @Override
+ public UpdateResponse store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
+ UpdateResponse result = new UpdateResponse();
+ for (Wikitty wikitty : wikitties) {
+ wikitty.version = WikittyUtil.incrementMajorRevision(wikitty.version);
+ wikitty.fieldDirty.clear();
+ this.wikitties.put(wikitty.id, wikitty);
+ result.addVersionUpdate(wikitty.id, wikitty.version);
+ }
+ return result;
+ }
+
+ @Override
+ public UpdateResponse delete(WikittyTransaction transaction, Collection<String> idList) throws WikittyException {
+ UpdateResponse result = new UpdateResponse();
+ Date now = new Date();
+ for (String id : idList) {
+ Wikitty w = restore(transaction, id);
+ w.setDeleteDate(now);
+ result.addDeletionDateUpdate(id, now);
+ }
+ return result;
+ }
+
+ @Override
+ public boolean exists(WikittyTransaction transaction, String id) {
+ boolean result = wikitties.containsKey(id);
+ return result;
+ }
+
+ @Override
+ public boolean isDeleted(WikittyTransaction transaction, String id) {
+ boolean result = false;
+ Wikitty w = wikitties.get(id);
+ if (w == null) {
+ throw new WikittyException(String.format("No wikitty with id '%s'", id));
+ } else {
+ result = w.isDeleted();
+ }
+ return result;
+ }
+
+ @Override
+ public Wikitty restore(WikittyTransaction transaction, String id, String ... fqFieldName) throws WikittyException {
+ Wikitty result = wikitties.get(id);
+ if (result.isDeleted()) {
+ result = null;
+ }
+ if (result == null) {
+ throw new WikittyException(String.format("No wikitty with id '%s'", id));
+ }
+ return result;
+ }
+
+ @Override
+ public void scanWikitties(WikittyTransaction transaction, Scanner scanner) {
+ Collection<Wikitty> all = wikitties.values();
+ for (Wikitty wikitty : all) {
+ scanner.scan(wikitty);
+ }
+ }
+
+ @Override
+ public void clear(WikittyTransaction transaction) {
+ wikitties = new LinkedHashMap<String, Wikitty>();
+ }
+ }
+
+ public static class WikittyExtensionStorageInMemory implements WikittyExtensionStorage {
+ protected Map<String, WikittyExtension> extensions;
+
+ public WikittyExtensionStorageInMemory() {
+ this.extensions = new HashMap<String, WikittyExtension>();
+ }
+
+ @Override
+ public UpdateResponse store(WikittyTransaction transaction,
+ Collection<WikittyExtension> exts) throws WikittyException {
+ for (WikittyExtension ext : exts) {
+ extensions.put(ext.getId(), ext);
+ }
+ // nothing to do in UpdateResponse
+ UpdateResponse result = new UpdateResponse();
+ return result;
+ }
+
+ @Override
+ public boolean exists(WikittyTransaction transaction, String id) {
+ boolean result = extensions.containsKey(id);
+ return result;
+ }
+
+ @Override
+ public List<String> getAllExtensionIds(WikittyTransaction transaction) {
+ List<String> result = new ArrayList<String>(extensions.keySet());
+ return result;
+ }
+
+ @Override
+ public List<String> getAllExtensionsRequires(WikittyTransaction transaction,
+ String extensionName) {
+ ArrayList<String> ids = new ArrayList<String>();
+
+ Collection<WikittyExtension> values = extensions.values();
+ if (values != null) {
+ for (WikittyExtension extension : values) {
+ if (extensionName.equals(extension.getRequires())) {
+ ids.add(extension.getId());
+ }
+ }
+ }
+
+ return ids;
+ }
+
+ @Override
+ public String getLastVersion(WikittyTransaction transaction, String extName) {
+ String result = null;
+ Set<String> extensionIds = extensions.keySet();
+ for (String extensionId : extensionIds) {
+ String extensionVersion = WikittyExtension.computeVersion(extensionId);
+ if(extensionId.startsWith(extName) && (result == null ||
+ WikittyUtil.versionGreaterThan(extensionVersion, result))) {
+ result = extensionVersion;
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public WikittyExtension restore(WikittyTransaction transaction, String name, String version)
+ throws WikittyException {
+ String id = WikittyExtension.computeId(name, version);
+ WikittyExtension result = extensions.get(id);
+ if (result == null) {
+ throw new WikittyException(String.format("No extension with id '%s'", id));
+ }
+ return result;
+ }
+
+ @Override
+ public void clear(WikittyTransaction transaction) {
+ extensions = new HashMap<String, WikittyExtension>();
+ }
+ }
+
+ public static class WikittySearchEnginInMemory implements WikittySearchEngin {
+
+ WikittyStorageInMemory wikittyStorage;
+
+ public WikittySearchEnginInMemory(WikittyStorageInMemory wikittyStorage) {
+ this.wikittyStorage = wikittyStorage;
+ }
+
+ @Override
+ public void clear(WikittyTransaction transaction) {
+ // do nothing
+ }
+
+ @Override
+ public UpdateResponse store(WikittyTransaction transaction,
+ Collection<Wikitty> wikitties) {
+ // do nothing
+ return new UpdateResponse();
+ }
+
+ @Override
+ public UpdateResponse delete(WikittyTransaction transaction,
+ Collection<String> idList) throws WikittyException {
+ // do nothing
+ return new UpdateResponse();
+ }
+
+
+ @Override
+ public void delete(Collection<String> idList) throws WikittyException {
+ }
+
+ public boolean checkRestriction( Restriction restriction, Wikitty w ) {
+ if ( restriction instanceof BinaryOperator ) {
+ BinaryOperator binOp = (BinaryOperator) restriction;
+
+ if ( binOp.getElement().equals(Element.ELT_EXTENSION) ) {
+ return w.hasExtension(binOp.getValue());
+ }
+
+ String fqfieldName = binOp.getElement().getName();
+ if(Element.ELT_EXTENSION.equals(fqfieldName) ||
+ Element.ELT_ID.equals(fqfieldName)) {
+ return true; // FIXME: 20091104 jru manage search on extension and id
+ }
+ Object o = w.getFqField( fqfieldName );
+ FieldType t = w.getFieldType(fqfieldName);
+ Object value = t.getValidValue( binOp.getValue() );
+ boolean checked = false;
+ switch( restriction.getName() ) {
+ case EQUALS:
+ checked = value.equals(o);
+ break;
+ case LESS:
+ checked = ((Comparable)o).compareTo( value ) < 0;
+ break;
+ case LESS_OR_EQUAL:
+ checked = ((Comparable)o).compareTo( value ) <= 0;
+ break;
+ case GREATER:
+ checked = ((Comparable)o).compareTo( value ) > 0;
+ break;
+ case GREATER_OR_EQUAL:
+ checked = ((Comparable)o).compareTo( value ) >= 0;
+ break;
+ case NOT_EQUALS:
+ checked = !value.equals(o);
+ break;
+ case ENDS_WITH:
+ if (t.getType() != TYPE.STRING) {
+ throw new WikittyException("Can't search for contents that 'ends with' on attribute type different of String. " +
+ "Attribute " + fqfieldName + " is " + t.getType().name() );
+ }
+ checked = ((String) o).endsWith( (String) value );
+ break;
+ case STARTS_WITH:
+ if (t.getType() != TYPE.STRING) {
+ throw new WikittyException("Can't search for contents that 'starts with' on attribute type different of String. " +
+ "Attribute " + fqfieldName + " is " + t.getType().name() );
+ }
+ checked = ((String) o).startsWith( (String) value );
+ break;
+ }
+ return checked;
+ } else if ( restriction instanceof And ) {
+ And and = (And) restriction;
+ for ( Restriction sub : and.getRestrictions() ) {
+ if (!checkRestriction(sub, w)) {
+ return false;
+ }
+ }
+ return true;
+ } else {
+ throw new UnsupportedOperationException( restriction.getName() + " Search Not yet implemented");
+ }
+ }
+
+ @Override
+ public PagedResult<String> findAllByCriteria(WikittyTransaction transaction,
+ Criteria criteria) {
+ // throw new UnsupportedOperationException("Not supported yet.");
+
+ int firstIndex = criteria.getFirstIndex();
+ int endIndex = criteria.getEndIndex();
+
+ List<String> ids = new LinkedList<String>();
+ int currentIndex = 0;
+
+ for( Entry<String, Wikitty> entry : wikittyStorage.wikitties.entrySet() ) {
+ Wikitty w = entry.getValue();
+ String id = entry.getKey();
+ Restriction dto = criteria.getRestriction();
+
+ if ( checkRestriction(dto, w) ) {
+ currentIndex++;
+ if (currentIndex > firstIndex) {
+ ids.add(id);
+ }
+ if (endIndex >= 0 && currentIndex >= endIndex) {
+ break;
+ }
+ }
+
+ }
+ return new PagedResult<String>(firstIndex, endIndex, criteria.getRestriction().toString(), null, ids );
+ }
+
+ @Override
+ public Integer findNodeCount(WikittyTransaction transaction, Wikitty w, Criteria filter) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public Map<String, Integer> findAllChildrenCount(WikittyTransaction transaction, Wikitty w, Criteria filter) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ }
+
+ /**
+ * if persitenceFile is not null, serialize all data to disk during store
+ * operation and the file is reloaded during init
+ */
+ protected File persitenceFile = null;
+
+ protected WikittyStorage wikittyStorage;
+ protected WikittyExtensionStorage extensionStorage;
+ protected WikittySearchEngin searchEngin;
+
+ public WikittyServiceInMemory() {
+ extensionStorage = new WikittyExtensionStorageInMemory();
+ wikittyStorage = new WikittyStorageInMemory();
+ searchEngin = new WikittySearchEnginInMemory((WikittyStorageInMemory)wikittyStorage);
+ }
+
+ public WikittyServiceInMemory(File persitenceFile) {
+ this();
+ this.persitenceFile = persitenceFile;
+ if (persitenceFile != null && persitenceFile.exists()) {
+ try {
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(
+ persitenceFile));
+ ((WikittyExtensionStorageInMemory)extensionStorage).extensions = (Map) in.readObject();
+ ((WikittyStorageInMemory)wikittyStorage).wikitties = (Map) in.readObject();
+ in.close();
+ } catch (Exception eee) {
+ log.error("Can't read data file " + persitenceFile, eee);
+ }
+ }
+ }
+
+ @Override
+ protected WikittyStorage getWikittyStorage() {
+ return wikittyStorage;
+ }
+
+ @Override
+ protected WikittyExtensionStorage getExtensionStorage() {
+ return extensionStorage;
+ }
+
+ @Override
+ protected WikittySearchEngin getSearchEngin() {
+ return searchEngin;
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ saveToPersistenceFile();
+
+ super.finalize();
+ }
+
+ public void saveToPersistenceFile() {
+ if (persitenceFile != null) {
+ try {
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
+ persitenceFile));
+ out.writeObject(((WikittyExtensionStorageInMemory)extensionStorage).extensions);
+ out.writeObject(((WikittyStorageInMemory)wikittyStorage).wikitties);
+ out.close();
+ } catch (IOException eee) {
+ log.error("Can't write data file " + persitenceFile, eee);
+ }
+ }
+ }
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyStorage.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyStorage.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyStorage.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,90 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * WikittyStorage is used to abstract data and extension storage in WikittyService.
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public interface WikittyStorage {
+
+ /**
+ * Store wikitty in storage
+ * @return information usefull for client side update data
+ */
+ public UpdateResponse store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement);
+
+ /**
+ * Return true if id exists in storage
+ * @param id
+ * @return
+ */
+ public boolean exists(WikittyTransaction transaction, String id);
+
+ /**
+ * Return true if wikitty object with this id are marked deleted
+ * @param id
+ * @return
+ */
+ public boolean isDeleted(WikittyTransaction transaction, String id);
+
+ /**
+ * Restore list of wikitty object, if wikitty not found an exception is throw
+ * @param id list of wikitty id
+ * @param fqFieldName list of field that must be loaded, other fields
+ * can be not loaded
+ * @return
+ */
+ public Wikitty restore(WikittyTransaction transaction, String id,
+ String ... fqFieldName) throws WikittyException;
+
+ /**
+ * Delete all object with id argument. If id is not valid or don't exist
+ * throw an exception
+ * @param idList
+ * @return
+ */
+ public UpdateResponse delete(WikittyTransaction transaction, Collection<String> idList) throws WikittyException;
+
+ /**
+ * Scan all wikitties with specific scanner, even if the wikitty is deleted
+ * @param scanner scanner
+ */
+ void scanWikitties(WikittyTransaction transaction, Scanner scanner);
+
+ /**
+ * Call each time wikitty is scan
+ */
+ public static interface Scanner {
+ void scan(Wikitty wikitty);
+ }
+
+ /**
+ * Remove all wikitty
+ */
+ public void clear(WikittyTransaction transaction);
+
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyTransaction.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyTransaction.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyTransaction.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyTransaction.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,75 @@
+package org.nuiton.wikitty;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.transaction.Status;
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/***
+ * Manage JTA transaction. You can store some information during execution.
+ */
+public class WikittyTransaction {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(AbstractWikittyService.class);
+
+ protected Map<Object, Object> tagValues;
+
+ public WikittyTransaction() {
+ tagValues = new HashMap<Object, Object>();
+ }
+
+ public Object getTagValue(Object tag) {
+ return tagValues.get(tag);
+ }
+
+ public void setTagValue(Object tag, Object value) {
+ tagValues.put(tag, value);
+ }
+
+ public UserTransaction getUserTransaction() {
+ return com.arjuna.ats.jta.UserTransaction.userTransaction();
+ }
+
+ public TransactionManager getTransactionManager() {
+ return com.arjuna.ats.jta.TransactionManager.transactionManager();
+ }
+
+ public void begin() {
+ UserTransaction userTransaction = getUserTransaction();
+ try {
+ log.debug("Begin transaction");
+ userTransaction.setTransactionTimeout(3600); // FIXME: jru 20100115 error in service if call during lot of times
+ userTransaction.begin();
+ } catch (Exception eee) {
+ throw new WikittyException("Error on begin JTA transaction", eee);
+ }
+ }
+
+ public void commit() {
+
+ UserTransaction userTransaction = getUserTransaction();
+ try {
+ log.debug("Commit transaction");
+ userTransaction.commit();
+ } catch (Exception eee) {
+ throw new WikittyException("Error on commit JTA transaction", eee);
+ }
+ }
+
+ public void rollback() {
+ UserTransaction userTransaction = getUserTransaction();
+ try {
+ if(userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION
+ && userTransaction.getStatus() != Status.STATUS_UNKNOWN) {
+ log.debug("Rollback transaction");
+ userTransaction.rollback();
+ }
+ } catch (Exception eee) {
+ throw new WikittyException("Error on roolback JTA transaction", eee);
+ }
+ }
+}
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java (from rev 49, trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyUtil.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,897 @@
+/* *##%
+ * Copyright (c) 2009 poussin. All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.text.CharacterIterator;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.text.StringCharacterIterator;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TimeZone;
+import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * Util static method for wikitty
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$ by : $Author$
+ */
+public class WikittyUtil {
+
+ public static final String DEFAULT_VERSION = "0.0";
+
+ public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(WikittyUtil.class);
+
+ /** used to format date for solr */
+ protected static TimeZone CANONICAL_TZ = TimeZone.getTimeZone("UTC");
+ protected static final Locale CANONICAL_LOCALE = Locale.US;
+
+ static final public SimpleDateFormat solrDateFormat = new SolrDateFormat();
+
+ public static class SolrDateFormat extends SimpleDateFormat {
+ public SolrDateFormat() {
+ super(DATE_FORMAT, CANONICAL_LOCALE);
+ setTimeZone(CANONICAL_TZ);
+ }
+ }
+
+ /** All date format parser used to convert string to date */
+ static final protected DateFormat[] parserDateFormats = new DateFormat[] {
+ solrDateFormat, DateFormat.getInstance(),
+ // TODO poussin 20090813: add other date syntax
+ };
+
+ // TODO poussin 20090902 use spring configuration to add mapping in this
+ // variable
+ /** contains mapping between interface and concret class that must be used */
+ static public Map<Class, Class> interfaceToClass = new HashMap<Class, Class>();
+
+ /**
+ * Pattern for tag value: tag="value" or tag=value. value can contains '"'
+ */
+ static protected String tagValuesPatternString = "(\\w*)=(\".*?(?<!\\\\)\"|[^(\\p{Space})]+)";
+ static protected Pattern tagValuesPattern = Pattern.compile(
+ tagValuesPatternString, Pattern.DOTALL);
+ /**
+ * Field pattern parser <li>group 1: type (string) <li>group 2: name
+ * (string) <li>group 3: lower bound (number) can be null <li>group 4: upper
+ * bound (number) can be null, mutualy exclusif with group 5 <li>group 5:
+ * upper bound (n or *) can be null <li>group 6: unique can be null <li>
+ * group 7: not null can be null <li>group 8: all tag/value (toto=titi
+ * tutu=tata;lala tata="truc bidulle")
+ */
+ static protected Pattern fieldPattern = Pattern
+ .compile(
+ "\\s*(\\w+)\\s+(\\w+)(?:\\s*\\[(\\d+)-(?:(\\d+)|([\\*n]))\\])?(?:\\s+(unique))?(?:\\s+(not null))?((?:\\s+"
+ + tagValuesPatternString + ")*)", Pattern.DOTALL);
+
+ /**
+ * parse FieldType definition and return field name. All field information
+ * are stored in fieldType object passed in argument
+ *
+ * @param def
+ * string field definition
+ * @param fieldType
+ * object used to put parsed information
+ * @return field name parsed in definition
+ */
+ static public String parseField(String def, FieldType fieldType) {
+ Matcher match = fieldPattern.matcher(def);
+ if (match.matches()) {
+ fieldType.type = FieldType.TYPE.parse(match.group(1));
+ String name = match.group(2);
+ String lower = match.group(3);
+ if (lower != null) {
+ fieldType.lowerBound = Integer.parseInt(lower);
+ }
+
+ String upper = match.group(4);
+ if (upper != null) {
+ fieldType.upperBound = Integer.parseInt(upper);
+ }
+ String noupper = match.group(5);
+ if (noupper != null) {
+ fieldType.upperBound = FieldType.NOLIMIT;
+ }
+ String uniqueString = match.group(6);
+ fieldType.unique = uniqueString != null;
+
+ String notNullString = match.group(7);
+ fieldType.notNull = notNullString != null;
+
+ String tagValues = match.group(8);
+ Map<String, String> tagValuesMap = tagValuesToMap(tagValues);
+ fieldType.setTagValues(tagValuesMap);
+
+ return name;
+ } else {
+ throw new WikittyException(String.format(
+ "Bad FieldType definition '%s'", def));
+ }
+ }
+
+
+ /**
+ * Serialize tagValues to string
+ *
+ * @param tagValues tagValues as map
+ * @return string represent tagValues
+ */
+ public static String tagValuesToString(Map<String, String> tagValues) {
+ String result = "";
+ if(tagValues != null) {
+ for (String tag : tagValues.keySet()) {
+ String value = tagValues.get(tag);
+ // replace " in string with \"
+ value = value.replaceAll("\"", "\\\\\"");
+ // quote value with "..."
+ result += " " + tag + "=\"" + tagValues.get(tag) +"\"";
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Deserialize tagValues to map
+ *
+ * @param tagValues tagValues as string
+ * @return map represent tagValues
+ */
+ public static Map<String, String> tagValuesToMap(String tagValues) {
+ Map<String, String> result = new HashMap<String, String>();
+ if (tagValues != null) {
+ Matcher matchTagValues = tagValuesPattern.matcher(tagValues);
+ while (matchTagValues.find()) {
+ String tag = matchTagValues.group(1);
+ String value = matchTagValues.group(2);
+ if (value.startsWith("\"") && value.endsWith("\"")) {
+ // delete start and end "
+ value = value.substring(1, value.length() - 1);
+ // if value is between ", then inners " are quoted
+ value = value.replaceAll("\\\\\"", "\"");
+ }
+ result.put(tag, value);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Create map from string representation
+ *
+ * ex: "String name", "Wikitty children[0-*]"
+ *
+ * @param definitions
+ * @return
+ */
+ public static LinkedHashMap<String, FieldType> buildFieldMapExtension(
+ String... definitions) {
+ LinkedHashMap<String, FieldType> result = new LinkedHashMap<String, FieldType>();
+ for (String def : definitions) {
+ FieldType fieldType = new FieldType();
+ String name = WikittyUtil.parseField(def, fieldType);
+ log.debug("parse " + def + " => " + fieldType.toDefinition(name));
+ result.put(name, fieldType);
+ }
+ return result;
+ }
+
+ /**
+ * if version if null return 0 else version If version is not in format
+ * <major>.<minor>, ".0" is added to the version
+ *
+ * @param version
+ * @return the normalized version
+ */
+ public static String normalizeVersion(String version) {
+ if (version == null || "".equals(version)) {
+ version = "0";
+ }
+ if (version.indexOf(".") == -1) {
+ version += ".0";
+ }
+ return version;
+ }
+
+ /**
+ * return true if v1 and v2 are egals 1.2.0 et 1.2 ne sont pas egaux
+ */
+ public static boolean versionEquals(String v1, String v2) {
+ if (v1 == null || v2 == null) {
+ return false;
+ }
+ return normalizeVersion(v1).equals(normalizeVersion(v2));
+ }
+
+ /**
+ * return true if v1 greater than v2
+ *
+ * @param v1
+ * @param v2
+ * @return
+ */
+ public static boolean versionGreaterThan(String v1, String v2) {
+ if (v1 != null && v2 == null) {
+ return true;
+ }
+ if (v1 == null) {
+ return false;
+ }
+ String[] v1s = normalizeVersion(v1).split("\\.");
+ String[] v2s = normalizeVersion(v2).split("\\.");
+ int minlen = Math.min(v1s.length, v2s.length);
+ for (int i = 0; i < minlen; i++) {
+ if (!v1s[i].equals(v2s[i])) {
+ return Integer.parseInt(v1s[i]) > Integer.parseInt(v2s[i]);
+ }
+ }
+ // si on est ici c que tout les nombres sont v1[i] = v2[i]
+ return v1s.length > v2s.length;
+ }
+
+ /**
+ * increment minor version.
+ *
+ * @param version
+ * version as 3.1 where 1 is minor and 3 major
+ * @return incremented minor number (3.1 -> 3.2)
+ */
+ static public String incrementMinorRevision(String v) {
+ String result;
+
+ if (v == null || "".equals(v)) {
+ result = "0.1";
+ } else {
+ v = v.trim();
+ String[] mm = v.split("\\.");
+ if (mm.length == 1) {
+ result = v + ".1";
+ } else {
+ int i = Integer.parseInt(mm[1]) + 1;
+ result = mm[0] + "." + i;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * increment major version.
+ *
+ * @param version
+ * version as 3.2 where 2 is minor and 3 major
+ * @return incremented major number and reset minor number (3.2 -> 4.0)
+ */
+ static public String incrementMajorRevision(String v) {
+ String result;
+
+ if (v == null || "".equals(v)) {
+ result = "1.0";
+ } else {
+ v = v.trim();
+ String[] mm = v.split("\\.");
+ int i = Integer.parseInt(mm[0]) + 1;
+ result = i + ".0";
+ }
+ return result;
+ }
+
+ // /**
+ // *
+ // * @param value null and empty string are casted to '0' int value.
+ // * @throws WikittyException on NumberFormatException or if value object
+ // can't be casted to int.
+ // */
+ // static public int toInt(Object value) throws WikittyException {
+ // int result = 0;
+ // if (value == null || value.equals("") ) {
+ // result = 0; // default to 0
+ // } else if (value instanceof Number) {
+ // result = ((Number) value).intValue();
+ // } else {
+ // // try to convert to int
+ // try {
+ // result = Integer.parseInt(value.toString());
+ // } catch (NumberFormatException eee) {
+ // throw new WikittyException(String.format(
+ // "Can't convert value '%s' to int", getClass(value)), eee);
+ // }
+ // }
+ // return result;
+ // }
+ //
+ // static public float toFloat(Object value) throws WikittyException {
+ // float result = 0;
+ // if (value == null) {
+ // result = 0; // default to 0
+ // } else if (value instanceof Number) {
+ // result = ((Number) value).floatValue();
+ // } else {
+ // // try to convert to float
+ // try {
+ // result = Float.parseFloat(value.toString());
+ // } catch (NumberFormatException eee) {
+ // throw new WikittyException(String.format(
+ // "Can't convert value '%s' to float", getClass(value)), eee);
+ // }
+ // }
+ // return result;
+ // }
+
+ /**
+ *
+ * @param value
+ * null and empty string are casted to '0' value.
+ * @throws WikittyException
+ * on NumberFormatException or if value object can't be casted
+ * to number.
+ */
+ static public BigDecimal toBigDecimal(Object value) {
+ BigDecimal result = null;
+ if (value == null) {
+ result = new BigDecimal(0); // default to 0
+ } else if (value instanceof BigDecimal) {
+ result = (BigDecimal) value;
+ } else {
+ try {
+ result = new BigDecimal(value.toString());
+ } catch (NumberFormatException eee) {
+ throw new WikittyException(
+ String.format("Can't convert value '%s' to numeric",
+ getClass(value)), eee);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Convert object to boolean: - null => false - 0 => false - numeric => true
+ * - object.toString() == false => false - other => true
+ *
+ * @param value
+ * @return
+ */
+ static public boolean toBoolean(Object value) {
+ boolean result = false;
+ if (value != null) {
+ if (value instanceof Boolean) {
+ result = (Boolean) value;
+ } else if (value instanceof Number) {
+ result = !((Number) value).equals(0);
+ } else {
+ // try to convert to Boolean
+ result = !"false".equalsIgnoreCase(value.toString());
+ }
+ }
+ return result;
+ }
+
+ static public String toString(Object value) {
+ String result = null;
+ if (value != null) {
+ if (value instanceof String) {
+ result = (String) value;
+ } else if (value instanceof Wikitty) {
+ result = ((Wikitty) value).getId();
+ } else if (value instanceof BusinessEntity) {
+ result = ((BusinessEntity) value).getWikittyId();
+ } else if (value instanceof Date) {
+ result = solrDateFormat.format((Date) value);
+ } else {
+ // try to convert to String
+ result = value.toString();
+ }
+ }
+ return result;
+ }
+
+ static public Date toDate(Object value) {
+ Date result = null;
+ if (value != null) {
+ if (value instanceof Date) {
+ result = (Date) value;
+ } else {
+ // try to convert to Date
+ try {
+ result = solrDateFormat.parse(value.toString());
+ } catch (ParseException eee) {
+ log.debug("Can't parse date, i try with next parser", eee);
+ }
+
+ if (result == null) {
+ throw new WikittyException(String.format(
+ "Can't convert value '%s' of type '%s' to Date",
+ value, getClass(value)));
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * return wikitty id and not wikitty objet because this method can be call
+ * on server or client side and it's better to keep conversion between id
+ * and objet to the caller
+ *
+ * @param value
+ * @return id of wikitty object or null
+ * @throws org.nuiton.wikitty.WikittyException
+ */
+ static public String toWikitty(Object value) {
+ String result = null;
+ if (value != null) {
+ if (value instanceof String) {
+ result = (String) value;
+ } else if (value instanceof Wikitty) {
+ result = ((Wikitty) value).getId();
+ } else if (value instanceof BusinessEntity) {
+ result = ((BusinessEntity) value).getWikittyId();
+ } else {
+ // try to convert to String
+ result = value.toString();
+ }
+ }
+ return result;
+ }
+
+ /**
+ *
+ * @param <E>
+ * @param clazz
+ * @return unmodifiable list
+ */
+ static public <E> List<E> toList(Object value, Class<E> clazz) {
+ try {
+ List<E> result = (List<E>) value;
+ if (result != null) {
+ result = Collections.unmodifiableList(result);
+ }
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't convert value '%s' to list", getClass(value)), eee);
+ }
+ }
+
+ /**
+ * Convert object o for indexation
+ *
+ * @param field
+ * field description
+ * @param o
+ * field value
+ * @return solr representation
+ */
+ static public String toString(FieldType field, Object o) {
+ String result = null;
+ if (o != null) {
+ switch (field.getType()) {
+ case DATE:
+ // Date date = (Date)o;
+ result = (o instanceof String) ? (String) o
+ : WikittyUtil.solrDateFormat.format((Date) o);
+ break;
+ default:
+ result = WikittyUtil.toString(o);
+ break;
+ }
+ }
+ return result;
+ }
+
+
+ /**
+ * convert string field representation to correct value type
+ *
+ * @param field
+ * field description
+ * @param s
+ * string value
+ * @return object in type of field
+ */
+ static public Object fromString(FieldType field, String s) {
+ Object result = null;
+ switch (field.getType()) {
+ case BOOLEAN:
+ result = WikittyUtil.toBoolean(s);
+ break;
+ case DATE:
+ result = WikittyUtil.toDate(s);
+ break;
+ case NUMERIC:
+ result = WikittyUtil.toBigDecimal(s);
+ break;
+ default:
+ result = s;
+ break;
+ }
+ return result;
+ }
+
+ /**
+ * return class of argument, if argument is null, return null
+ *
+ * @param value
+ * @return class of value or null
+ */
+ static public Class getClass(Object value) {
+ Class result = null;
+ if (value != null) {
+ result = value.getClass();
+ }
+ return result;
+ }
+
+ /**
+ * Create new instance of WikittyDto without Wikitty object passed in
+ * argument. If arguement is Interface try to add 'Impl' to find
+ * instanciable class.
+ * <p>
+ * clazz parameter must be child of WikittyDto or business interface
+ *
+ * @param clazz
+ * class of the new instance
+ * @return
+ */
+ static public <E extends BusinessEntity> E newInstance(Class<E> clazz) {
+ try {
+ Class clazzInstanciable = clazz;
+ if (clazzInstanciable.isInterface()) {
+ log
+ .debug(String
+ .format(
+ "Argument '%s' is interface looking for implementation",
+ clazzInstanciable.getName()));
+ // looking for implementation of this interface
+ if (interfaceToClass.containsKey(clazz)) {
+ clazzInstanciable = interfaceToClass.get(clazz);
+ } else {
+ // default use xxxImpl.class
+ clazzInstanciable = clazz.forName(clazz.getName() + "Impl");
+ }
+ }
+
+ if (!BusinessEntityWikitty.class
+ .isAssignableFrom(clazzInstanciable)) {
+ throw new WikittyException(String.format(
+ "Your class '%s' don't extends WikittyDto", clazz
+ .getName()));
+ }
+
+ E result = (E) clazzInstanciable.newInstance();
+ return result;
+
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Create new instance of WikittyDto with Wikitty object passed in argument.
+ * If arguement is Interface try to add 'Impl' to find instanciable class.
+ * <p>
+ * clazz parameter must be child of WikittyDto or business interface
+ *
+ * @param clazz
+ * class of the new instance
+ * @param w
+ * wikitty object to use internaly for in new instance
+ * @return
+ */
+ // E extends BeanDto to permit business interface as parameter
+ static public <E extends BusinessEntity> E newInstance(
+ WikittyService wikittyService, Class<E> clazz, Wikitty w) {
+ try {
+ Class clazzInstanciable = clazz;
+ if (clazzInstanciable.isInterface()) {
+ log
+ .debug(String
+ .format(
+ "Argument '%s' is interface looking for implementation",
+ clazzInstanciable.getName()));
+ // looking for implementation of this interface
+ if (interfaceToClass.containsKey(clazz)) {
+ clazzInstanciable = interfaceToClass.get(clazz);
+ } else {
+ // default use xxxImpl.class
+ clazzInstanciable = clazz.forName(clazz.getName() + "Impl");
+ }
+ }
+
+ if (!BusinessEntityWikitty.class
+ .isAssignableFrom(clazzInstanciable)) {
+ throw new WikittyException(String.format(
+ "Your class '%s' don't extends WikittyDto", clazz
+ .getName()));
+ }
+
+ E result = null;
+ if (w != null) {
+ try {
+ // try to find constructor with wikitty argument
+ Constructor cons = clazzInstanciable
+ .getConstructor(Wikitty.class);
+ Object[] parms = { null };
+ result = (E) cons.newInstance(parms);
+
+ BusinessEntityWikitty bean = (BusinessEntityWikitty) result;
+ checkExtensionVersion(wikittyService, w, bean);
+ bean.setWikitty(w);
+
+ } catch (NoSuchMethodException noerror) {
+ log.debug(String.format(
+ "Can't find constructor with wikitty arguement in '%s',"
+ + "we try with setWikitty method",
+ clazzInstanciable.getName()), noerror);
+ }
+ }
+
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+ /**
+ * Check extension default, i.e. if bean contain a extension with a great
+ * version as in wikitty. In this case the extension is stored in last
+ * version and wikitty it is restored again. The upgrade data is during the
+ * restoration.
+ *
+ * @param wikittyService
+ * @param wikitty
+ * @param entity
+ * @return
+ */
+ static public Wikitty checkExtensionVersion(WikittyService wikittyService,
+ Wikitty wikitty, BusinessEntityWikitty entity) {
+
+ Wikitty result = wikitty;
+ boolean upgradeData = false;
+
+ Collection<WikittyExtension> extensions = entity.getStaticExtensions();
+ for (WikittyExtension ext : extensions) {
+
+ String extName = ext.getName();
+ if (wikitty.hasExtension(extName)) {
+
+ WikittyExtension oldExt = wikitty.getExtension(extName);
+ String newVersion = ext.getVersion();
+ String oldVersion = oldExt.getVersion();
+
+ if (WikittyUtil.versionGreaterThan(newVersion, oldVersion)) {
+ wikittyService.storeExtension(Arrays.asList(ext));
+ upgradeData = true;
+ }
+ }
+ }
+
+ if (upgradeData) {
+ String wikittyId = wikitty.getId();
+ result = wikittyService.restore(wikittyId);
+ }
+
+ return result;
+ }
+
+ /**
+ * Try to cast obj to class passed in arguement
+ *
+ * @param obj
+ * object to cast
+ * @param clazz
+ * new type of object
+ * @return the same object but casted to class wanted, except for primitif
+ * where is new object if obj BigDecimal
+ */
+ public static <E> E cast(Object obj, Class<E> clazz) {
+ E result = null;
+ if (obj != null) {
+ if (clazz.isAssignableFrom(obj.getClass())) {
+ result = clazz.cast(obj);
+ } else if (obj instanceof BigDecimal) {
+ BigDecimal bd = (BigDecimal) obj;
+ if (clazz == int.class || clazz == Integer.class) {
+ result = clazz.cast(bd.intValue());
+ } else if (clazz == float.class || clazz == Float.class) {
+ result = clazz.cast(bd.floatValue());
+ }
+ }
+ if (result == null) {
+ throw new WikittyException("Unable to cast from '"
+ + obj.getClass().getName() + "' to " + clazz.getName());
+ }
+ }
+ return result;
+ }
+
+ public static Wikitty beanToWikitty(BusinessEntity bean) {
+ Wikitty result;
+ if (bean instanceof BusinessEntityWikitty) {
+ BusinessEntityWikitty b = (BusinessEntityWikitty) bean;
+ result = b.getWikitty();
+ } else if (bean instanceof BusinessEntityBean) {
+ BusinessEntityBean b = (BusinessEntityBean) bean;
+ result = WikittyUtil.beanToWikitty(b);
+ } else {
+ throw new IllegalArgumentException(String.format(
+ "This BusinessEntity implementation is not supported: %s",
+ bean.getClass().getName()));
+ }
+ return result;
+ }
+
+ public static Wikitty beanToWikitty(BusinessEntityBean bean) {
+ try {
+ // TODO poussin 20090910 for now, we force version change, but it's
+ // better if we modify version in bean we field is set
+ Wikitty result = new Wikitty(bean.getWikittyId());
+ // prevent BusinessEntity with null id (during store call for
+ // creation)
+ bean.id = result.id;
+ result.version = bean.getWikittyVersion();
+
+ // add execution defined extension in wikitty
+ for (String extName : bean.getExtensionNames()) {
+ for (String fieldName : bean.getExtensionFields(extName)) {
+ Object value = bean.getField(extName, fieldName);
+ result.setField(extName, fieldName, value);
+ }
+ }
+
+ // add development time defined extension in wikitty
+ Field[] fields = bean.getClass().getFields();
+ for (Field field : fields) {
+ Object value = field.get(bean);
+ String fqfieldName = field.getName();
+ // fieldName use $ as separator between extension name and field
+ // name
+ fqfieldName = fqfieldName.replace('$', '.');
+ result.setFqField(fqfieldName, value);
+ }
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+ public static <E extends BusinessEntityBean, F extends BusinessEntityWikitty> E wikittyToBean(
+ Class<E> clazz, F dto) {
+ E result = wikittyToBean(clazz, dto.getWikitty());
+ return result;
+ }
+
+ /**
+ * Convert WikittyDto (dto that encapsulate Wikitty) to BeanDto (dto without
+ * internaly wikitty)
+ *
+ * @param clazz
+ * target object clazz
+ * @param w
+ * source object
+ * @return
+ */
+ public static <E extends BusinessEntityBean> E wikittyToBean(
+ Class<E> clazz, Wikitty w) {
+ try {
+ E result = clazz.newInstance();
+ result.id = w.id;
+ result.version = w.version;
+ result.extensions = new LinkedHashMap<String, WikittyExtension>(
+ w.extensions);
+
+ Field[] fields = clazz.getFields();
+ Map<String, Field> allFields = new HashMap<String, Field>();
+ for (Field field : fields) {
+ allFields.put(field.getName(), field);
+ }
+
+ for (String extName : result.extensions.keySet()) {
+ WikittyExtension ext = result.extensions.get(extName);
+ for (String fieldName : ext.getFieldNames()) {
+ String key = extName + "$" + fieldName;
+ Field field = allFields.get(key);
+ if (field != null) {
+ Class type = field.getType();
+ if (Integer.TYPE.isAssignableFrom(type)) {
+ int value = w.getFieldAsInt(extName, fieldName);
+ field.setInt(result, value);
+ } else if (Boolean.TYPE.isAssignableFrom(type)) {
+ boolean value = w.getFieldAsBoolean(extName,
+ fieldName);
+ field.setBoolean(result, value);
+ } else if (Date.class.isAssignableFrom(type)) {
+ Date value = w.getFieldAsDate(extName, fieldName);
+ field.set(result, value);
+ } else if (Double.TYPE.isAssignableFrom(type)) {
+ double value = w.getFieldAsDouble(extName,
+ fieldName);
+ field.setDouble(result, value);
+ } else if (Float.TYPE.isAssignableFrom(type)) {
+ float value = w.getFieldAsFloat(extName, fieldName);
+ field.setFloat(result, value);
+ } else if (List.class.isAssignableFrom(type)) {
+ List value = w.getFieldAsList(extName, fieldName,
+ clazz);
+ field.set(result, value);
+ } else if (Long.TYPE.isAssignableFrom(type)) {
+ long value = w.getFieldAsLong(extName, fieldName);
+ field.setLong(result, value);
+ } else if (Set.class.isAssignableFrom(type)) {
+ Set value = w.getFieldAsSet(extName, fieldName,
+ clazz);
+ field.set(result, value);
+ } else if (String.class.isAssignableFrom(type)) {
+ String value = w.getFieldAsString(extName,
+ fieldName);
+ field.set(result, value);
+ } else {
+ throw new WikittyException(String.format(
+ "Can't convert field for '%s' because"
+ + " unkonw field type '%s'", clazz,
+ field));
+ }
+ } else {
+ Object value = w.getFieldAsObject(extName, fieldName);
+ result.setField(extName, fieldName, value);
+ }
+ }
+ }
+
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(eee);
+ }
+ }
+
+ // private static BASE64Encoder enc = new BASE64Encoder();
+ public static String genUID() {
+ return UUID.randomUUID().toString();
+ /*
+ * we can gain 10 chars per ID on applying a base64 on the UID. long
+ * mostSignificant = uid.getMostSignificantBits(); long leastSignificant
+ * = uid.getLeastSignificantBits(); long current = mostSignificant;
+ * byte[] b = new byte[16]; for ( int i = 0; i < 16; i++ ) { b[i] =
+ * (byte) (current & 0xff); current = current >> 8; if ( i == 7 )
+ * current = leastSignificant; } return enc.encode(b);
+ */
+ }
+}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/And.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/AssociatedRestriction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/AssociatedRestriction.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/AssociatedRestriction.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
public class AssociatedRestriction extends Restriction {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Between.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/BinaryOperator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Contains.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Element.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Element.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Element.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
import java.io.Serializable;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/EndsWith.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Equals.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Greater.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/GreaterOrEqual.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/In.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Keyword.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Keyword.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Keyword.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
/**
* Search keyword in all wikitty
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Less.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/LessOrEqual.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Like.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Like.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Like.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
import java.io.Serializable;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Not.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/NotEquals.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Or.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Restriction.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionHelper.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/RestrictionHelper.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionHelper.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
import java.text.SimpleDateFormat;
import java.util.LinkedList;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionName.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/RestrictionName.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/RestrictionName.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
/**
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Search.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,13 +1,13 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyUtil;
/**
* Helper to create a criteria with a restriction
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SearchOperand.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/SearchOperand.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SearchOperand.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/StartsWith.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
// Start of user code for import
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SubSearch.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/SubSearch.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/SubSearch.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
public class SubSearch extends Search {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Unlike.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/search/Unlike.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Unlike.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,11 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.search;
+package org.nuiton.wikitty.search;
import java.io.Serializable;
-import org.sharengo.wikitty.search.Like.SearchAs;
+import org.nuiton.wikitty.search.Like.SearchAs;
/**
* UnLike is use on String field type, to precise some particularity on search
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/AbstractWikittyService.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,1231 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.AbstractMap.SimpleEntry;
-import java.util.Map.Entry;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.FutureTask;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.LabelImpl;
-import org.sharengo.wikitty.TreeNodeImpl;
-import org.sharengo.wikitty.search.Search;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserFactory;
-
-/**
- * Abstract class that new implementation must extends.
- * New implementation only have three method to implement:
- * <li>getSearchEngin
- * <li>getExtensionStorage
- * <li>getWikittyStorage
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public abstract class AbstractWikittyService implements WikittyService {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(AbstractWikittyService.class);
-
- // FIXME poussin 20090902 next 3 variables must be read from configuration file
- /** number of thread used to import/export task */
- protected int MAX_IMPORT_EXPORT_THREAD = 1;
- /** directory path where export asynchronous file are stored */
- protected String EXPORT_DIRECTORY = "/tmp/";
- /** url used by client to retrieve export file when job is ended */
- protected String EXPORT_URL = "file:///tmp/";
-
- /** Executor that do import export task */
- protected ExecutorService importExportExecutor =
- // TODO poussin 20090902 do thread number configurable
- Executors.newFixedThreadPool(MAX_IMPORT_EXPORT_THREAD);
- /** contains all import or export task, key is job id send to client */
- protected Map<String, Future<String>> importExportTask =
- new HashMap<String, Future<String>>();
-
- /** Default migration use to migrate a wikitty in last extension version */
- protected WikittyExtensionMigration defaultExtensionMigration =
- new WikittyExtensionMigrationRename();
-
- abstract protected WikittySearchEngin getSearchEngin();
- abstract protected WikittyExtensionStorage getExtensionStorage();
- abstract protected WikittyStorage getWikittyStorage();
-
- protected UpdateResponse store(WikittyTransaction transaction,
- Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
- // update/store extension if necessary
- Set<WikittyExtension> allExtensions = new HashSet<WikittyExtension>();
- for (Wikitty w : wikitties) {
- // collect all extensions used by all wikitties
- allExtensions.addAll(w.getExtensions());
- }
-
- // try to commit command
- UpdateResponse extUpdate = getExtensionStorage().store(transaction, allExtensions);
- UpdateResponse wikUpdate = getWikittyStorage().store(transaction, wikitties, disableAutoVersionIncrement);
- UpdateResponse indexUpdate = getSearchEngin().store(transaction, wikitties);
-
- UpdateResponse result = new UpdateResponse();
- // prepare update client response
- result.add(extUpdate);
- result.add(wikUpdate);
- result.add(indexUpdate);
-
- return result;
- }
-
- /**
- * Store and index wikitty object
- * @param wikitty
- */
- @Override
- public UpdateResponse store(Wikitty wikitty) {
- if (wikitty != null) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- List<Wikitty> wikitties = Arrays.asList(wikitty);
- UpdateResponse result = store(transaction, wikitties, false);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- } else {
- throw new WikittyException("You can't store null wikitty object");
- }
- }
-
- /**
- * Store and index wikitties object
- * @param wikitty
- */
- @Override
- public UpdateResponse store(Collection<Wikitty> wikitties) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- UpdateResponse result = store(transaction, wikitties, false);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Store and index wikitties object
- * @param wikitty
- */
- @Override
- public UpdateResponse store(Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- UpdateResponse result = store(transaction, wikitties, disableAutoVersionIncrement);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public List<String> getAllExtensionIds() {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- List<String> result = getExtensionStorage().getAllExtensionIds(transaction);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public List<String> getAllExtensionsRequires(String extensionName) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- List<String> result = getExtensionStorage()
- .getAllExtensionsRequires(transaction, extensionName);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- protected UpdateResponse storeExtension(WikittyTransaction transaction, Collection<WikittyExtension> exts) {
- UpdateResponse result = getExtensionStorage().store(transaction, exts);
- return result;
- }
-
- /**
- * Save just one extension
- * @param ext
- * @throws java.io.IOException
- */
- @Override
- public UpdateResponse storeExtension(Collection<WikittyExtension> exts) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- UpdateResponse result = storeExtension(transaction, exts);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public UpdateResponse storeExtension(WikittyExtension ext) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- UpdateResponse result = storeExtension(transaction, Arrays.asList(ext));
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- protected WikittyExtension restoreExtension(WikittyTransaction transaction, String id) {
- //split the id to ensure that version is normalized
- String name = WikittyExtension.computeName(id);
- String version = WikittyExtension.computeVersion(id);
-
- WikittyExtension result = getExtensionStorage().restore(transaction, name, version);
- return result;
- }
- /**
- * Load extension from id. Id is 'name[version]'
- * @param id
- * @return
- */
- @Override
- public WikittyExtension restoreExtension(String id) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- WikittyExtension result = restoreExtension(transaction, id);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
-
- }
-
- protected WikittyExtension restoreExtensionLastVersion(WikittyTransaction transaction, String name) {
- String version = getExtensionStorage().getLastVersion(transaction, name);
- if(version == null) {
- return null;
- }
-
- WikittyExtension result = getExtensionStorage().restore(transaction, name, version);
- return result;
- }
-
- @Override
- public WikittyExtension restoreExtensionLastVersion(String name) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- WikittyExtension result = restoreExtensionLastVersion(transaction, name);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- protected Wikitty restore(WikittyTransaction transaction, String id) {
- if (!getWikittyStorage().exists(transaction, id)) {
- // object doesn't exist, we return null
- return null;
- }
-
- if (getWikittyStorage().isDeleted(transaction, id)) {
- // object deleted, we return null
- return null;
- }
- Wikitty result = getWikittyStorage().restore(transaction, id);
- if(result != null) {
- result = upgradeData(transaction, result);
- }
- return result;
- }
-
- protected List<Wikitty> restore(WikittyTransaction transaction, List<String> ids) {
- List<Wikitty> result = new ArrayList<Wikitty>();
- for(String id : ids) {
- Wikitty w = restore(transaction, id);
- if (w != null) {
- result.add(w);
- }
- }
- return result;
- }
-
- @Override
- public List<Wikitty> restore(List<String> ids) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- List<Wikitty> result = restore(transaction, ids);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public Wikitty restore(String id) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty result = restore(transaction, id);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- protected Wikitty upgradeData(WikittyTransaction transaction, Wikitty wikitty) {
- Wikitty result = wikitty;
-
- Collection<WikittyExtension> extensions = wikitty.getExtensions();
- for (WikittyExtension extension : extensions) {
- String extensionName = extension.getName();
- log.debug("extensionName=" + extensionName);
-
- WikittyExtension currentExtension = extension;
- String currentExtensionVersion = currentExtension.getVersion();
-
- WikittyExtension lastExtension = restoreExtensionLastVersion(transaction, extensionName);
- String lastExtensionVersion = lastExtension.getVersion();
- log.debug("lastExtensionVersion=" + lastExtensionVersion);
-
- WikittyExtensionMigration migration = WikittyExtensionMigration.migrationRegistry.get(extensionName);
- if (migration == null) {
- migration = defaultExtensionMigration;
- }
-
- // Loop on between extension in wikitty and last version
- while(WikittyUtil.versionGreaterThan(lastExtensionVersion, currentExtensionVersion)) {
-
- // Get extension after the current version
- String nextExtensionVersion = WikittyUtil.incrementMajorRevision(currentExtensionVersion);
- String nextExtensionId = WikittyExtension.computeId(extensionName, nextExtensionVersion);
- WikittyExtension nextExtension = restoreExtension(transaction, nextExtensionId);
-
- log.debug("currentExtensionVersion=" + currentExtensionVersion);
- log.debug("nextExtensionVersion=" + nextExtensionVersion);
-
- // Test if extension is never use in this version
- if(nextExtension != null) {
- result = migration.migrate(this, transaction, result, currentExtension, nextExtension);
- currentExtension = nextExtension;
- }
-
- // Follow
- currentExtensionVersion = nextExtensionVersion;
- }
- }
-
- return result;
- }
-
- protected void delete(WikittyTransaction transaction, Collection<String> ids) throws WikittyException {
- // work only on valid id
- Collection<Wikitty> storedWikitties = new ArrayList<Wikitty>();
- List<String> idList = new LinkedList<String>(ids);
- for (Iterator<String> i = idList.iterator(); i.hasNext();) {
- String id = i.next();
- // test if wikitty exists
- if (!getWikittyStorage().exists(transaction, id)) {
- // don't exist, remove this id in id list
- i.remove();
- }
- if (getWikittyStorage().isDeleted(transaction, id)) {
- // already deleted, remove this id in id list
- i.remove();
- }
-
- // Store node with have deleted node as parent
- Criteria criteria = Search.query().eq(TreeNode.FQ_FIELD_PARENT, id).criteria();
- List<Wikitty> wikittyNodes = findAllByCriteria(transaction, criteria).getAll();
- for (Wikitty wikittyNode : wikittyNodes) {
- String wikittyNodeId = wikittyNode.getId();
- if(!ids.contains(wikittyNodeId)) {
- TreeNode treeNode = new TreeNodeImpl(wikittyNode);
- treeNode.setParent(null);
- storedWikitties.add(wikittyNode);
- }
- }
-
- // Store node with have deleted child
- criteria = Search.query().eq(TreeNode.FQ_FIELD_CHILDREN, id).criteria();
- wikittyNodes = findAllByCriteria(transaction, criteria).getAll();
- for (Wikitty wikittyNode : wikittyNodes) {
- String wikittyNodeId = wikittyNode.getId();
- if(!ids.contains(wikittyNodeId)) {
- TreeNode treeNode = new TreeNodeImpl(wikittyNode);
- treeNode.removeChildren(id);
- storedWikitties.add(wikittyNode);
- }
- }
- }
-
- getWikittyStorage().delete(transaction, ids);
- getSearchEngin().delete(transaction, ids);
-
- store(transaction, storedWikitties, false);
- }
-
- @Override
- public void delete(String id) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- List<String> ids = Arrays.asList(id);
- delete(transaction, ids);
-
- transaction.commit();
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public void delete(Collection<String> ids){
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- delete(transaction, ids);
-
- transaction.commit();
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Use with caution : It will delete ALL indexes from search engine !
- * This operation should be disabled in production environment.
- */
- @Override
- public void clear() {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- getSearchEngin().clear(transaction);
- getWikittyStorage().clear(transaction);
- getExtensionStorage().clear(transaction);
-
- transaction.commit();
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Assume that this PagedResult contains wikitty id as result and
- * return new PagedResult with Wikitty instance
- */
- protected PagedResult<Wikitty> findAllByCriteria(WikittyTransaction transaction, Criteria criteria) {
- PagedResult<String> resultIds = getSearchEngin().findAllByCriteria(transaction, criteria);
- List<String> ids = resultIds.getAll();
- List<Wikitty> wikitties = restore(transaction, ids);
- PagedResult<Wikitty> result = new PagedResult<Wikitty>(
- resultIds.getFirstIndice(),
- resultIds.getNumFound(),
- resultIds.getQueryString(),
- resultIds.getFacets(),
- wikitties);
- return result;
- }
-
- @Override
- public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- protected Wikitty findByCriteria(WikittyTransaction transaction, Criteria criteria) {
- criteria.setFirstIndex(0).setEndIndex(1);
- PagedResult<Wikitty> pages = findAllByCriteria(transaction, criteria);
-
- Wikitty result = null;
- if (pages.size() > 0) {
- result = pages.getFirst();
- }
-
- return result;
- }
-
- @Override
- public Wikitty findByCriteria(Criteria criteria) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty result = findByCriteria(transaction, criteria);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public void addLabel(String wikittyId, String label) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty w = restore(transaction, wikittyId);
- w.addExtension(LabelImpl.extensions);
- LabelImpl l = new LabelImpl(w);
- l.addLabels(label);
- store(transaction, Arrays.asList(w), false);
-
- transaction.commit();
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- LabelImpl l = new LabelImpl();
- l.addLabels(label);
- Criteria criteria = Search.query(l.getWikitty()).criteria()
- .setFirstIndex(firstIndex).setEndIndex(endIndex);
- PagedResult<Wikitty> result = findAllByCriteria(transaction, criteria);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public Wikitty findByLabel(String label) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- LabelImpl l = new LabelImpl();
- l.addLabels(label);
- Criteria criteria = Search.query(l.getWikitty()).criteria();
- Wikitty result = findByCriteria(transaction, criteria);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public Set<String> findAllAppliedLabels(String wikittyId) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty w = restore(transaction, wikittyId);
- LabelImpl l = new LabelImpl(w);
- Set<String> result = l.getLabels();
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
-
- protected Tree restoreTree(WikittyTransaction transaction, String wikittyId) {
- Wikitty w = restore(transaction, wikittyId);
- if(w == null) {
- return null;
- }
-
- if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
- throw new WikittyException(String.format(
- "Wikitty '%s' do not handle extension %s",
- wikittyId, TreeNode.EXT_TREENODE ));
- }
- Tree tree = new Tree();
- TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(w));
- tree.setNode(node);
-
- TreeNodeImpl exempleNode = new TreeNodeImpl();
- exempleNode.setParent(wikittyId);
-
- Criteria criteria = Search.query(exempleNode.getWikitty()).criteria()
- .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS);
- PagedResult<Wikitty> childNodes = findAllByCriteria(transaction, criteria);
- for( Wikitty childNode : childNodes.getAll() ) {
- tree.addChild(restoreTree(transaction, childNode.getId()));
- }
-
- return tree;
- }
-
- @Override
- public Tree restoreTree(String wikittyId) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Tree tree = restoreTree(transaction, wikittyId);
-
- transaction.commit();
- return tree;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty w = restore(transaction, wikittyId);
- if(w == null) {
- transaction.commit();
- return null;
- }
-
- if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
- throw new WikittyException(String.format(
- "Wikitty '%s' do not handle extension %s",
- wikittyId, TreeNode.EXT_TREENODE ));
- }
-
- TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(w));
- Integer count = getSearchEngin().findNodeCount(transaction, w, filter);
-
- HashMap.SimpleEntry<TreeNode, Integer> result =
- new SimpleEntry<TreeNode, Integer>(node, count);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter) {
- WikittyTransaction transaction = new WikittyTransaction();
- try {
- transaction.begin();
-
- Wikitty w = restore(transaction, wikittyId);
- if(w == null) {
- transaction.commit();
- return null;
- }
-
- if ( !w.hasExtension(TreeNode.EXT_TREENODE) ) {
- throw new WikittyException(String.format(
- "Wikitty '%s' do not handle extension %s",
- wikittyId, TreeNode.EXT_TREENODE ));
- }
-
- Map<TreeNode, Integer> result = new LinkedHashMap<TreeNode, Integer>();
-
- Map<String, Integer> search = getSearchEngin().findAllChildrenCount(transaction, w, filter);
- Set<Entry<String, Integer>> children = search.entrySet();
- for (Entry<String, Integer> child : children) {
- Integer count = child.getValue();
-
- String id = child.getKey();
- Wikitty wikitty = restore(transaction, id);
- TreeNode node = AbstractWikittyService.toBean(new TreeNodeImpl(wikitty));
-
- result.put(node, count);
- }
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- @Override
- public Wikitty restoreVersion(String wikittyId, String version) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public UpdateResponse syncEngin() {
- final WikittyTransaction transaction = new WikittyTransaction();
- try {
- final int numberForCommit = 1000;
- final WikittySearchEngin searchEngin = getSearchEngin();
- final UpdateResponse result = new UpdateResponse();
- final List<Wikitty> wikitties = new ArrayList<Wikitty>(numberForCommit);
-
- transaction.begin();
- searchEngin.clear(transaction);
- transaction.commit();
- transaction.begin();
-
- getWikittyStorage().scanWikitties(transaction, new WikittyStorage.Scanner() {
- int count = 0;
-
- @Override
- public void scan(Wikitty wikitty) {
- Date deleteDate = wikitty.getDeleteDate();
- if(deleteDate == null) {
- count ++;
- wikitties.add(wikitty);
-
- if(count == numberForCommit) {
- // Reindex
- UpdateResponse response = searchEngin.store(transaction, wikitties);
- result.add(response);
- transaction.commit();
- // Reinit
- count = 0;
- wikitties.clear();
- transaction.begin();
- }
- }
- }
- });
-
- // Last wikitties
- UpdateResponse response = searchEngin.store(transaction, wikitties);
- result.add(response);
-
- transaction.commit();
- return result;
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Class used for import process, this class retain numberForCommit object
- * before to send it to storage.
- */
- static protected class WikittyBatchUpdate {
- // TODO poussin 20090902 do configurable numberForCommit
- protected int numberForCommit = 1000;
- protected int currentAdded = 0;
- protected Map<String, WikittyExtension> exts = new HashMap<String, WikittyExtension>();
- protected List<Wikitty> wikitties = new LinkedList<Wikitty>();
-
- protected AbstractWikittyService ws;
- protected WikittyTransaction transaction;
-
- public WikittyBatchUpdate(AbstractWikittyService ws, WikittyTransaction transaction) {
- this.ws = ws;
- this.transaction = transaction;
- }
-
- public void addExtension(WikittyExtension ext) {
- exts.put(ext.getId(), ext);
- inc();
- }
-
- public void addWikitty(Wikitty w) {
- wikitties.add(w);
- inc();
- }
-
- /**
- * search extension in local extension list and if missed restore
- * extension from internal WikittyService
- * @param id
- * @return
- */
- public WikittyExtension getExtension(WikittyTransaction transaction, String id) {
- WikittyExtension result = exts.get(id);
- if (result == null) {
- result = ws.restoreExtension(transaction, id);
- }
- return result;
- }
-
- public void flush() {
- ws.storeExtension(transaction, exts.values());
- ws.store(transaction, wikitties, true);
-
- exts.clear();
- wikitties.clear();
- currentAdded = 0;
- }
-
- protected void inc() {
- currentAdded++;
- if (currentAdded >= numberForCommit) {
- flush();
- }
- }
- }
-
-
- @Override
- public void syncImportFromXml(String xml) {
- Reader reader = new StringReader(xml);
- ImportTask task = new ImportTask(this, reader);
- task.run();
- }
-
-
- @Override
- public void syncImportFromUri(String uri) {
- try {
- URL url = new URL(uri);
- Reader reader = new InputStreamReader(url.openStream());
- ImportTask task = new ImportTask(this, reader);
- task.run();
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public String asyncImportFromUri(String uri) {
- try {
- URL url = new URL(uri);
- Reader reader = new InputStreamReader(url.openStream());
- ImportTask task = new ImportTask(this, reader);
- FutureTask<String> future = new FutureTask<String>(task, null);
- importExportExecutor.submit(future);
-
- String jobId = UUID.randomUUID().toString();
- importExportTask.put(jobId, future);
- return jobId;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
-
- static public class ImportTask implements Runnable {
- protected AbstractWikittyService ws;
- protected WikittyTransaction transaction;
- protected Reader reader;
-
- public ImportTask(AbstractWikittyService ws, Reader reader) {
- this.ws = ws;
- this.reader = reader;
- this.transaction = new WikittyTransaction();
- }
-
- @Override
- public void run() {
- try {
- transaction.begin();
- XmlPullParserFactory factory = XmlPullParserFactory.newInstance(
- System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
- factory.setNamespaceAware(true);
- XmlPullParser xpp = factory.newPullParser();
- xpp.setInput(reader);
-
- WikittyExtension ext = null;
- Wikitty w = null;
- String CDATA = null;
-
- WikittyBatchUpdate batchUpdate = new WikittyBatchUpdate(ws, transaction);
-
- long time = System.currentTimeMillis();
-
- int eventType = xpp.getEventType();
- do {
- String objectVersion = null;
- if (eventType == xpp.START_DOCUMENT) {
- log.info("start XML import at " + new Date());
- } else if (eventType == xpp.END_DOCUMENT) {
- time = System.currentTimeMillis() - time;
- log.info("XML import in (ms)" + time);
- } else if (eventType == xpp.START_TAG) {
- String name = xpp.getName();
- if ("extension".equals(name)) {
- String extName = xpp.getAttributeValue(null, "name");
- String version = xpp.getAttributeValue(null, "version");
- String requires = xpp.getAttributeValue(null, "requires");
- ext = new WikittyExtension(extName, version, requires, new LinkedHashMap<String, FieldType>());
- } else if ("object".equals(name)) {
- String id = xpp.getAttributeValue(null, "id");
- objectVersion = xpp.getAttributeValue(null, "version");
- String extensions = xpp.getAttributeValue(null, "extensions");
- w = new Wikitty(id);
- String[] extensionList = extensions.split(",");
- for (String extId : extensionList) {
- String extName = WikittyExtension.computeName(extId);
- String extVersion = WikittyExtension.computeVersion(extId);
- extId = WikittyExtension.computeId(extName, extVersion);
- WikittyExtension e = batchUpdate.getExtension(transaction, extId);
- if(e == null) {
- throw new WikittyException("Extension not found : " + extId);
- }
- w.addExtension(e);
- }
- }
- } else if (eventType == xpp.END_TAG) {
- String name = xpp.getName();
- if ("extension".equals(name)) {
- batchUpdate.addExtension(ext);
- ext = null;
- } else if ("object".equals(name)) {
- w.setVersion(objectVersion);
- batchUpdate.addWikitty(w);
- w = null;
- } else if (ext != null && "field".equals(name)) {
- FieldType type = new FieldType();
- String fieldName = WikittyUtil.parseField(CDATA, type);
- ext.addField(fieldName, type);
- } else if (ext != null && "tagvalues".equals(name)) {
- Map<String, String> tagValues = WikittyUtil.tagValuesToMap(CDATA);
- ext.setTagValues(tagValues);
- } else if (w != null) {
- String[] fq = name.split("\\.");
- String extensionName = fq[0];
- String fieldName = fq[1];
- FieldType fieldType = w.getFieldType(name);
- if(fieldType.isCollection()) {
- w.addToField(extensionName, fieldName, CDATA);
- } else {
- w.setField(extensionName, fieldName, CDATA);
- }
- }
- } else if (eventType == xpp.TEXT) {
- CDATA = xpp.getText();
- }
- eventType = xpp.next();
- } while (eventType != xpp.END_DOCUMENT);
-
- // don't forget to flush batchUpdate :)
- batchUpdate.flush();
- transaction.commit();
- } catch (Exception eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
- } // end ImportTask
-
- @Override
- public String asyncExportAllByCriteria(Criteria criteria) {
- try {
- String jobId = UUID.randomUUID().toString();
-
- File file = new File(EXPORT_DIRECTORY, jobId);
- String url = EXPORT_URL + jobId;
- Writer result = new FileWriter(file);
- ExportTask task = new ExportTask(this, criteria, result);
- FutureTask<String> future = new FutureTask<String>(task, url);
- importExportExecutor.submit(future);
-
- importExportTask.put(jobId, future);
- return jobId;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public String syncExportAllByCriteria(Criteria criteria) {
- StringWriter result = new StringWriter();
- ExportTask task = new ExportTask(this, criteria, result);
- task.run();
- return result.toString();
- }
-
-
- static public class ExportTask implements Runnable {
- protected AbstractWikittyService ws;
- protected WikittyTransaction transaction;
-
- protected Criteria criteria;
- protected Writer result;
-
- public ExportTask(AbstractWikittyService ws, Criteria criteria, Writer result) {
- this.ws = ws;
- this.transaction = new WikittyTransaction();
- this.criteria = criteria;
- this.result = result;
- }
-
- @Override
- public void run() {
- try {
- transaction.begin();
- PagedResult<Wikitty> pageResult = ws.findAllByCriteria(transaction, criteria);
-
- // keep extension already done
- Set<String> extDone = new HashSet<String>();
- result.write("<wikengo>\n");
- for (Wikitty w : pageResult.getAll()) {
- String extensionList = "";
- for (WikittyExtension ext : w.getExtensions()) {
- String id = ext.getId();
- extensionList += "," + id;
- if (!extDone.contains(id)) {
- extDone.add(id);
- result.write(" <extension name='" + ext.getName()
- + "' version='" + ext.getVersion()
- + (ext.getRequires() != null ? "' requires='" + ext.getRequires() : "")
- + "'>\n");
- Map<String, String> tagValues = ext.getTagValues();
- result.write(" <tagvalues>" + WikittyUtil.tagValuesToString(tagValues) + "</tagvalues>\n");
- for (String fieldName : ext.getFieldNames()) {
- String def = ext.getFieldType(fieldName).toDefinition(fieldName);
- result.write(" <field>" + def + "</field>\n");
- }
- result.write(" </extension>\n");
- }
- }
- if (!"".equals(extensionList)) {
- // delete first ','
- extensionList = extensionList.substring(1);
- }
- result.write(" <object id='" + w.getId() + "' version='" + w.getVersion() + "' extensions='" + extensionList + "'>\n");
- for (String fieldName : w.fieldNames()) {
- FieldType type = w.getFieldType(fieldName);
- if (type.isCollection()) {
- Object fqField = w.getFqField(fieldName);
- if (fqField != null) {
- for (Object o : (Collection) fqField) {
- String fqFieldValue = WikittyUtil.toString(type, o);
- if (fqFieldValue != null) {
- fqFieldValue = StringEscapeUtils.escapeXml(fqFieldValue);
- result.write(" <" + fieldName + ">" + fqFieldValue + "</" + fieldName + ">\n");
- }
- }
- }
- } else {
- String fqFieldValue = WikittyUtil.toString(type, w.getFqField(fieldName));
- if (fqFieldValue != null) {
- fqFieldValue = StringEscapeUtils.escapeXml(fqFieldValue);
- result.write(" <" + fieldName + ">" + fqFieldValue + "</" + fieldName + ">\n");
- }
- }
- }
- result.write(" </object>\n");
- }
- result.write("</wikengo>\n");
- transaction.commit();
- } catch (IOException eee) {
- transaction.rollback();
- throw new WikittyException(eee);
- }
- }
- } // end ExportTask
-
-
- @Override
- public JobState infoJob(String jobId) {
- try {
- Future<String> future = importExportTask.get(jobId);
- JobState result = new JobState();
- if (future.isDone()) {
- result.status = "done";
- result.resourceUri = future.get();
- } else if (future.isCancelled()) {
- result.status = "cancelled";
- } else {
- result.status = "inProgress";
- }
- return result;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
-
- @Override
- public void cancelJob(String jobId) {
- Future future = importExportTask.get(jobId);
- future.cancel(true); // true to kill process, perhaps to strong ?
- }
-
-
- @Override
- public void freeJobResource(String jobId) {
- Future<String> future = importExportTask.remove(jobId);
- if (future != null) {
- File file = new File(EXPORT_DIRECTORY, jobId);
- file.delete();
- }
- }
-
- /**
- * Method copied from eugengo-0.7 generators
- *
- * @param bean
- * @return
- */
- /*public static TreeNodeImpl toImpl(TreeNode bean) {
- if (bean == null) return null;
- TreeNodeImpl impl = new TreeNodeImpl(bean);
- return impl;
- }*/
-
- /**
- * Method copied from eugengo-0.7 generators
- *
- * @param bean
- * @return
- */
- protected static void fillBeanAttributes(TreeNode fromBean, TreeNodeBean toBean) {
- String beanId = fromBean.getWikittyId();
- toBean.id = beanId;
-
- String beanVersion = fromBean.getWikittyVersion();
- toBean.setWikittyVersion(beanVersion);
-
- toBean.setName(fromBean.getName());
- toBean.setParent(fromBean.getParent());
- // WARNING: Copy collection to other collection to not manipulate storage collection directly
- Collection<String> treeNodeChildren = fromBean.getChildren();
- if(treeNodeChildren != null) {
- toBean.TreeNode$children = new HashSet<String>(treeNodeChildren);
- }
- }
-
- /**
- * Method copied from eugengo-0.7 generators
- *
- * @param impl
- * @return
- */
- public static TreeNode toBean(TreeNodeImpl impl) {
- if (impl == null) return null;
- TreeNodeBean bean = new TreeNodeBean();
- AbstractWikittyService.fillBeanAttributes(impl, bean);
- return bean;
- }
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntity.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntity.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,81 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.io.Serializable;
-import java.util.Collection;
-
-/**
- * Used as parent interface to all Business class
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface BusinessEntity extends Serializable, Cloneable {
-
- public String getWikittyId();
- public String getWikittyVersion();
- /**
- * Only framework can use this method
- * @param version
- */
- public void setWikittyVersion(String version);
-
- /**
- * Return list of all extension for this object
- * @return
- */
- public Collection<String> getExtensionNames();
-
- /**
- * Return list of all field for this object
- * @param ext
- * @return
- */
- public Collection<String> getExtensionFields(String ext);
-
- /**
- * Return field value for the specifique extension and field
- * @param ext
- * @param fieldName
- * @return
- */
- public Object getField(String ext, String fieldName);
-
- /**
- * set field value for the specifique extension and field.
- * This method don't check the type of value for this field.
- * @param ext
- * @param fieldName
- * @param value
- * @return
- */
- public void setField(String ext, String fieldName, Object value);
-
- /**
- * Return the field type
- * @param ext
- * @param fieldName
- * @return
- */
- public FieldType getFieldType(String ext, String fieldName);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityBean.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityBean.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityBean.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,92 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class BusinessEntityBean implements BusinessEntity {
-
- private static final long serialVersionUID = 1L;
-
- protected String id;
- protected String version;
-
- /**
- * Map is LinkedHashMap to maintains order like user want
- * key: extension name
- * value: extension definition
- */
- protected Map<String, WikittyExtension> extensions =
- new LinkedHashMap<String, WikittyExtension>();
- /**
- * key: field name prefixed by extension name (dot separator)
- * value: value of field
- */
- protected Map<String, Object> fieldValue = new HashMap<String, Object>();
-
- public String getWikittyId() {
- return id;
- }
-
- public String getWikittyVersion() {
- return version;
- }
-
- public void setWikittyVersion(String version) {
- this.version = version;
- }
-
-
- public Collection<String> getExtensionNames() {
- Collection<String> result = extensions.keySet();
- return result;
- }
-
- public Collection<String> getExtensionFields(String ext) {
- WikittyExtension extension = extensions.get(ext);
- Collection<String> result = extension.getFieldNames();
- return result;
- }
-
- public Object getField(String ext, String fieldName) {
- String key = ext + "$" + fieldName;
- Object result = fieldValue.get(key);
- return result;
- }
-
- public void setField(String ext, String fieldName, Object value) {
- String key = ext + "$" + fieldName;
- fieldValue.put(key, value);
- }
-
- public FieldType getFieldType(String ext, String fieldName) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityWikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityWikitty.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/BusinessEntityWikitty.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,101 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Each business object will inherit of this class.
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class BusinessEntityWikitty implements BusinessEntity {
-
- private static final long serialVersionUID = 1L;
-
- protected Wikitty wikitty;
-
- public BusinessEntityWikitty(Wikitty wi) {
- setWikitty(wi);
- }
-
- public BusinessEntityWikitty() {
- setWikitty(new Wikitty());
- }
-
- public String getWikittyId() {
- String result = getWikitty().getId();
- return result;
- }
-
- public String getWikittyVersion() {
- String result = getWikitty().getVersion();
- return result;
- }
-
- public void setWikittyVersion(String version) {
- getWikitty().setVersion(version);
- }
-
- public void setWikitty(Wikitty wikitty) {
- if(wikitty != null) {
- for (WikittyExtension ext : getStaticExtensions()) {
- wikitty.addExtension(ext);
- }
- }
- this.wikitty = wikitty;
- }
-
- public Wikitty getWikitty() {
- return wikitty;
- }
-
- public Collection<String> getExtensionNames() {
- Collection<String> result = getWikitty().getExtensionNames();
- return result;
- }
-
- public Collection<String> getExtensionFields(String ext) {
- Collection<String> result = getWikitty().getExtension(ext).getFieldNames();
- return result;
- }
-
- public FieldType getFieldType(String ext, String fieldName) {
- FieldType result = getWikitty().getExtension(ext).getFieldType(fieldName);
- return result;
- }
-
- public Object getField(String ext, String fieldName) {
- Object result = getWikitty().getFieldAsObject(ext, fieldName);
- return result;
- }
-
- public void setField(String ext, String fieldName, Object value) {
- getWikitty().setField(ext, fieldName, value);
- }
-
- public Collection<WikittyExtension> getStaticExtensions() {
- return Collections.emptyList();
- }
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Criteria.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Criteria.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Criteria.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,236 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.beans.XMLDecoder;
-import java.beans.XMLEncoder;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.search.Restriction;
-
-/**
- * Criteria represent the search on the wikitty with restriction on field and
- * informations on facet, paggination and sortting.
- *<p>
- * For search multiple extension use ALL_EXTENSIONS as extension name and
- * specify field type.
- * <p>
- * Example : Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR + <fieldName> + Criteria.SEPARATOR + FieldType.TYPE.<fieldType>
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class Criteria implements Serializable {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = 2590223960861630283L;
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(Criteria.class);
-
- /** Use to not limit result */
- static public int ALL_ELEMENTS = -1;
-
- /** Search on all extension */
- static public String ALL_EXTENSIONS = "*";
-
- /** Search on all values */
- static public String ALL_VALUES = "*";
-
- /** Separator between extension name, field name and type */
- static public String SEPARATOR = ".";
-
- /**
- * Criteria can have name this help for presentation and is very
- * useful for facet created by criteria
- */
- protected String name;
-
- /** All restriction on fields */
- private Restriction restriction;
-
- /** First index to get result */
- private int firstIndex = 0;
- /** Last index to get result */
- private int endIndex = ALL_ELEMENTS;
-
- /** Facet on criteria */
- private List<Criteria> facetCriteria;
- /** Facet on field */
- private List<String> facetField;
-
- /** Sort ascending on fields */
- private List<String> sortAscending;
- /** Sort descending on fields */
- private List<String> sortDescending;
-
- /**
- * Default constuctor
- */
- public Criteria() {
- }
-
- /**
- * Create named criteria
- * @param name
- */
- public Criteria(String name) {
- this.name = name;
- }
-
- /**
- * Deserialize xml to criteria
- * @param xml
- * @return criteria
- */
- public static Criteria fromXML(String xml) {
- InputStream inputStream = new ByteArrayInputStream(xml.getBytes());
- XMLDecoder decoder = new XMLDecoder(inputStream);
- Criteria criteria = (Criteria) decoder.readObject();
- return criteria;
- }
-
- /**
- * Serialize criteria to xml
- * @param criteria
- * @return xml string
- */
- public static String toXML(Criteria criteria) {
- OutputStream outputStream = new ByteArrayOutputStream();
- XMLEncoder encoder = new XMLEncoder(outputStream);
- encoder.writeObject(criteria);
- encoder.close();
- String result = outputStream.toString();
- return result;
- }
-
- public Restriction getRestriction() {
- return restriction;
- }
-
- public void setRestriction(Restriction restriction) {
- this.restriction = restriction;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getFirstIndex() {
- return firstIndex;
- }
-
- public Criteria setFirstIndex(int firstIndex) {
- this.firstIndex = firstIndex;
- return this;
- }
-
- public int getEndIndex() {
- return endIndex;
- }
-
- public Criteria setEndIndex(int endIndex) {
- this.endIndex = endIndex;
- return this;
- }
-
- public List<Criteria> getFacetCriteria() {
- return facetCriteria;
- }
-
- public Criteria addFacetCriteria(Criteria criteria) {
- if (facetCriteria == null) {
- facetCriteria = new ArrayList<Criteria>();
- }
- facetCriteria.add(criteria);
- return this;
- }
-
- public Criteria setFacetCriteria(Criteria[] facetCriteria) {
- this.facetCriteria = Arrays.asList(facetCriteria);
- return this;
- }
-
- public List<String> getFacetField() {
- return facetField;
- }
-
- public Criteria addFacetField(String field) {
- if (facetField == null) {
- facetField = new ArrayList<String>();
- }
- facetField.add(field);
- return this;
- }
-
- public Criteria setFacetField(String[] facetField) {
- this.facetField = Arrays.asList(facetField);
- return this;
- }
-
- public List<String> getSortAscending() {
- return sortAscending;
- }
-
- public Criteria addSortAscending(String field) {
- if(sortAscending == null) {
- sortAscending = new ArrayList<String>();
- }
- sortAscending.add(field);
- return this;
- }
-
- public Criteria setSortAscending(String[] sortAscending) {
- this.sortAscending = Arrays.asList(sortAscending);
- return this;
- }
-
- public List<String> getSortDescending() {
- return sortDescending;
- }
-
- public Criteria addSortDescending(String field) {
- if(sortDescending == null) {
- sortDescending = new ArrayList<String>();
- }
- sortDescending.add(field);
- return this;
- }
-
- public Criteria setSortDescending(String[] sortDescending) {
- this.sortDescending = Arrays.asList(sortDescending);
- return this;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/ExtensionFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,38 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.util.LinkedHashMap;
-
-import org.sharengo.wikitty.FieldType.TYPE;
-
-public class ExtensionFactory {
-
- private String name;
- private String version;
- private String requiredExtension;
-
- private LinkedHashMap<String, FieldType> fields;
-
- private ExtensionFactory(String name, String version) {
- this.name = name;
- this.version = version;
- this.fields = new LinkedHashMap<String, FieldType>();
- }
-
- public static ExtensionFactory create(String name, String version) {
- return new ExtensionFactory(name, version);
- }
-
- public FieldFactory addField(String name, TYPE fieldType) {
- return new FieldFactory(this, name, fieldType);
- }
-
- public WikittyExtension extension() {
- WikittyExtension ext = new WikittyExtension(name, version, requiredExtension, fields);
- return ext;
- }
-
- protected void add(String fieldName, FieldType fieldType) {
- fields.put(fieldName, fieldType);
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FacetTopic.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FacetTopic.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FacetTopic.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,62 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-
-import java.io.Serializable;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class FacetTopic implements Serializable {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(FacetTopic.class);
-
- private static final long serialVersionUID = 1L;
-
- protected String facetName;
- protected String topicName;
- protected int count;
-
- public FacetTopic(String facetName, String topicName, int count) {
- this.facetName = facetName;
- this.topicName = topicName;
- this.count = count;
- }
-
- public String getFacetName() {
- return facetName;
- }
-
- public String getTopicName() {
- return topicName;
- }
-
- public int getCount() {
- return count;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldFactory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldFactory.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,62 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.sharengo.wikitty.FieldType.TYPE;
-
-public class FieldFactory {
-
- private ExtensionFactory parentFactory;
- private String fieldName;
- private TYPE type;
- private int minOccur = 0, maxOccur = 1;
- private boolean unique = false;
- private Map<String, String> tagValues = new HashMap<String, String>();
-
- public FieldFactory(ExtensionFactory parentFactory, String fieldName, TYPE type) {
- this.parentFactory = parentFactory;
- this.fieldName = fieldName;
- this.type = type;
- }
-
- public FieldFactory addField(String name, TYPE type) {
- append();
- return parentFactory.addField(name, type);
- }
-
- public WikittyExtension extension() {
- append();
- return parentFactory.extension();
- }
-
- private void append() {
- FieldType fieldType = new FieldType(type, minOccur, maxOccur, unique, minOccur > 0);
- for (Map.Entry<String, String> entry : tagValues.entrySet()) {
- String tag = entry.getKey();
- String value = entry.getValue();
- fieldType.addTagValue(tag, value);
- }
- parentFactory.add(fieldName, fieldType);
- }
-
- public FieldFactory maxOccur(int max) {
- maxOccur = max;
- return this;
- }
-
- public FieldFactory minOccur(int min) {
- minOccur = min;
- return this;
- }
-
- public FieldFactory unique() {
- unique = true;
- return this;
- }
-
- public FieldFactory addTagValue(String tag, String value) {
- tagValues.put(tag, value);
- return this;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldType.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldType.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/FieldType.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,234 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class FieldType implements Serializable {
-
- static public enum TYPE {
- BOOLEAN, DATE, NUMERIC, STRING, WIKITTY;
-
- /**
- * convert string to TYPE, this methode accept not trimed and not well
- * cased string (difference with valueOf)
- * @param name
- * @return TYPE else exception is throw
- */
- public static TYPE parse(String name) {
- TYPE result = valueOf(name.trim().toUpperCase());
- return result;
- }
- }
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(FieldType.class);
-
- private static final long serialVersionUID = 1L;
-
- public static final int NOLIMIT = Integer.MAX_VALUE;
-
- TYPE type;
- int lowerBound;
- int upperBound;
- boolean unique = false;
- boolean notNull = false;
-
- /** used to store tag/value used by client side ex: editor=xhtml */
- Map<String, String> tagValues = new HashMap<String, String>();
-
- public FieldType() {
- }
-
- public FieldType(TYPE type, int lowerBound, int upperBound) {
- this.type = type;
- this.lowerBound = lowerBound;
- this.upperBound = upperBound;
- }
-
- public FieldType(TYPE type, int lowerBound, int upperBound, boolean unique, boolean notNull) {
- this.type = type;
- this.lowerBound = lowerBound;
- this.upperBound = upperBound;
- this.unique = unique;
- this.notNull = notNull;
- }
-
- public void addTagValue(String tag, String value) {
- tagValues.put(tag, value);
- }
-
- public String getTagValue(String tag) {
- String result = tagValues.get(tag);
- return result;
- }
-
- public Set<String> getTagNames() {
- return tagValues.keySet();
- }
-
- public Map<String, String> getTagValues() {
- return tagValues;
- }
-
- public void setTagValues(Map<String, String> tagValues) {
- this.tagValues = tagValues;
- }
-
- /**
- * Return true if this field have upperBound > 1
- * @return
- */
- public boolean isCollection() {
- return upperBound > 1;
- }
-
- /**
- * Return string definition for this field
- * @param name field name used for definition
- * @return
- */
- public String toDefinition(String name) {
- String result = type + " " + name;
- if (lowerBound != 0 || upperBound != 0) {
- if (upperBound != NOLIMIT) {
- result += "[" + lowerBound + "-" + upperBound + "]";
- } else {
- result += "[" + lowerBound + "-*]";
- }
- }
- if (isUnique()) {
- result += " unique";
- }
- if (isNotNull()) {
- result += " not null";
- }
- result += WikittyUtil.tagValuesToString(tagValues);
- return result;
- }
-
- /**
- * Convert value in argument in right type for this FieldType. Don't support
- * collection
- *
- * @param value value to convert
- * @return object in type of this FieldType
- */
- protected Object getContainedValidObject( Object value ) {
- Object result = null;
- switch (type) {
- case DATE:
- result = WikittyUtil.toDate(value); break;
- case NUMERIC:
- result = WikittyUtil.toBigDecimal(value); break;
- case BOOLEAN:
- result = WikittyUtil.toBoolean(value); break;
- case STRING:
- result = WikittyUtil.toString(value); break;
- default:
- // if type is not found then type is business type
- // and is wikity object
- result = WikittyUtil.toWikitty(value); break;
- }
- return result;
- }
-
- /**
- * Return a valid value for this field.
- * @param value is casted if possible to an actual correct value.
- * @return
- */
- public Object getValidValue( Object value ) throws WikittyException {
- if (value == null && isNotNull()) {
- throw new WikittyException("Value can't be null for this field");
- }
-
- Object result;
- if (value == null) {
- result = null;
- } else if (isCollection()) {
- if ( !(value instanceof Collection) ) {
- throw new WikittyException( "A collection is expected for type "
- + type.name() + "[" + lowerBound + " - " + upperBound + "]" );
- }
- Collection<Object> col;
- if (isUnique()) {
- col = new LinkedHashSet<Object>();
- } else {
- col = new ArrayList<Object>();
- }
-
- // copy all value in new collections
- for ( Object o : (Collection) value ) {
- col.add( getContainedValidObject(o) );
- }
- result = col;
- } else {
- result = getContainedValidObject(value);
- }
- return result;
- }
-
- /**
- * test if value in argument is valide for this field type
- * @param value to test
- * @return true if value is valid
- */
- public boolean isValidValue(Object value) {
- return getValidValue(value) != null;
- }
-
- public TYPE getType() {
- return type;
- }
-
- public int getLowerBound() {
- return lowerBound;
- }
-
- public int getUpperBound() {
- return upperBound;
- }
-
- public boolean isUnique() {
- return unique;
- }
-
- public boolean isNotNull() {
- return notNull;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/JobState.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/JobState.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/JobState.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,41 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class JobState {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(JobState.class);
-
- String status; // or enum
- /** if is an export, resourceUri is not null when job is ended */
- String resourceUri; // generated resource URI on that job
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Package.html
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Package.html 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Package.html 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,203 +0,0 @@
-<h1>Wikitty API documentation</h1>
-
-<h2>Extensions version management</h2>
-
-The extension version number have to be managed by the developer who writes or
-modify the extension.
-
-When we modify an extension in a model, a developer have to remember to update
-the version tag/value.
-
-<h2>Objects deletion management</h2>
-
-The objects deleted are only marked as deleted, like that it will be possible to
-restore a deleted object in future implementations.
-
-The deleted objects are not indexed anymore (and so do not appear in search
-results).
-
-If we try to get a deleted object by its id, null is returned.
-
-We cannot save a deleted object until we do a undelete on it.
-
-<h2>Wikitties attributes</h2>
-
-It is possible to define several things for a wikitty field :
-
-<ul>
- <li>its type (String)</li>
- <li>its name (String)</li>
- <li>its cardinality ([1-n])</li>
- <li>if it is unique (unique), for the lists it will be reprensted by a Set, for
- not-list objects it means that two objects cannot have the same value for
- this field (constraint not implemented for now).
- </li>
- <li>if it has to be not null, there is no mean, in the modeler to indicate it,
- and so it is not possible to generate it.
- </li>
- <li>Tag/values (tag=value). It is possible to create as many tag/values as we
- want. You can then get them by FieldType.getTagValue(tagName). This can be
- useful to put a tag 'editor' used by UI and that allows to put a specific
- editor for a field (e.g. a html editor for a String field)
- </li>
-</ul>
-
-<h2>PropertyChangeListener</h2>
-
-The field modification listeners management is diretly done by the wikitty
-object. The name of the field is the concatenation of the extension name and the
-field name ([extName].[fieldName]).
-
-<h2>Search API</h2>
-
-<h3>General points</h3>
-
-The search are made by example (a model dto), or from a search 'Criteria' object.
-
-This criteria contains restrictions that will be turned into searhc request.
-
-The criteria can be built from the utility class 'Search' that allows to express,
-via instructions, all the restrictions.
-
-The Search operations return a reference to an object of the same type allowing
-to continue expressing other criteria.
-
-This allows to write quickly and easily search expressions with the Search API's
-help (and auto-completion will help even more).
-
-The Search operations names are really short and syntaxically close to bash
-conditional expressions...
-
-<h3>List of criteria operations</h3>
-We will find : <ul>
- <li> eq : to express equality</li>
- <li> neq : to express difference (not equals)</li>
- <li> le, lt : respectively for inclusive and exclusive inferiority operations
- (less than, less or equals)</li>
- <li> ge, gt : respectively for inclusive and exclusive superiority operations
- (greater than, greater or equals)</li>
- <li> sw : to express an expression beginning (start with)</li>
- <li> ew : to express an expression ending (end with)</li>
- <li> in : to express a list of possible values</li>
-</ul>
-
-<h3>Disjunction operation, disjunction group</h3>
-By default, each restrictions express by the above expressions are added to a
-list of conjunctions (logical AND).
-
-It is possible to express disjunctions (logical OR) using the or operation.
-
-The restriction following the or is then in disjunction with the one preceding
-it.
-
-If other restrictions are added after that, they are attached to the previous
-conjunction.
-
-To express a group of disjunction, we can call the or operation between each
-restriction or call the group operation with the 'OR' type.
-
-In this last case, you will need to close the groupe by calling the end operation.
-
-<h3>Associative search</h3>
-It is possible to express associative search, i.e. search for which some criteria
-are based on objects linked by a reference (link or foreign key notion).
-
-Then, the associated (fieldName) operation allows to
-Il est possible d'exprimer des recherches associatives, c'est à dire des recherches pour lesquelles certains critères portent sur un objet lié par une référence (notion de lien, ou de clé étrangère).<br>
-Ainsi, l'opération associated( fieldName ) permet de faire porter les critères suivant cette opération sur les objets lié via ce champ.<br>
-Le résultat sera une conjonction (ET) entre les critères exprimés avant l'opération associated sur l'objet 'principal' (il peut ne pas y en avoir), et dont la ou les références associée répondent aux critères exprimés après le associated.<br>
-Tout cela est beaucoup plus clair par l'exemple ;-)<br>
-
-I want to find all paints between 15 and 25 euros in the Hardware section.
-
-This search can be expressed ina more concrete way using API via :
-
-"I search all products wich price is between 15 and 25 euros, which name starts
-by 'Paint', and which associated section, using the 'section' field, have the
-name 'Hardware'".
-
-It is built using the following operations :
-
-<pre>
- RestrictionDto dto = Search.query()
- .bw( "Product.selling_price", "15", "25")
- .sw( "Produit.article_name", "Paint")
- .associated( "Product.section" )
- .eq( "Section.name", "Hardware" )
- .criteria();
-</pre>
-
-
-<h2>Data migration</h2>
-
-When the list of wikitty extensions is modified, either:
-<ul>
- <li>we deleted an extension, the data stays in the wikitty</li>
- <li>we added an extension, nothing is done but we can add data for the new
- fields</li>
- <li>we modified an extension
- <li>deleted an extension field : the data stays but are no more
- accessible</li>
- <li>added a field to the extension : nothing is done but we can add data
- for the new field</li>
- <li>modified a field type:
- <ul>
- <li>API knows how to convert it, nothing to do (e.g. int->String)</li>
- <li>The type has been deeply modified (e.g. String->List<int<):
- you have to implement an extension migration sub-class
- (WikittyExtensionMigration) and save it so that it is used when
- necessary.</li>
- </ul>
- </li>
-</ul>
-
-<p>An object is converted when it is loaded in its BusinessEntity, but is is not
- automatically save, it is saved only if a store is called on the client side.
-</p>
-
-<p>It is also possible to force the migration searching all the objects with the
-modified extension, load them in WikittyDtos and save them.</p>
-<pre>
-Wikitty w = new Wikitty();
-w.addExtension(myModifiedExtension);
-WikittyDto dto = new WikittyDto(w);
-PagedResult<WikittyDto> result = proxy.findAllByExample(dto, 0, Proxy.ALL_ELEMENTS);
-proxy.store(result.getAll());
-</pre>
-
-<h2>Import Wikitties</h2>
-
-When importing XML file, if an object has a version nmber, then if in the
-database there is no object or if the object has a version number less or equal
-than the imported version number, the xml file data overwrite the database data.
-
-If the database version number is greater than the imported version number, the
-imported object is rejected and an exception is thrown.
-
-If the imported object had no version number, in all cases, it overwrite the
-database data and the object version number is incremented if it was present in
-database.
-
-Modifications to do on implementation :
-<ul>
- <li>During xml file reading and loading into wikitty object, if there is no
- version number in xml flux, the version number is null instead of
- defaultversion.</li>
- <li>Take into account that during wikitty save, the version number can be
- null, do the appropriate treatment</li>
-</ul>
-
-If an object in database was deleted and we try to import it, we throw an
-exception.
-
-<h2>TODO</h2>
-<ul>
-<li>while generating BusinessEntity, if 2 extensions have the same method,
- suffix the next ones with xxxxxxForExtensionName</li>
-<li>Think about object search problem if its extensions have been modified.
- If you do a search by example, we add the extension list in the request, the
- new BusinessEntity has more extensions, we do not find the old objects. If
- we do a search by criteria/example, the criterie field cannot exist in the
- index and so the object is not returned in results even if we put '*' as
- field value.</li>
-</ul>
\ No newline at end of file
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/PagedResult.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/PagedResult.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/PagedResult.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,189 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class PagedResult<T> implements Serializable {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(PagedResult.class);
-
- private static final long serialVersionUID = 1L;
-
- /** indice element in global search result */
- protected int firstIndice;
- /** total number of result if we call the query for all possible result */
- protected int numFound;
- /** query really executed */
- protected String queryString;
- /** list of result in the wanted interval */
- protected List<T> results;
- /** facet asked or null if no facet */
- protected Map<String, List<FacetTopic>> facets;
-
- public PagedResult(int FirstIndice, int numFound, String queryString,
- Map<String, List<FacetTopic>> facets, List<T> results) {
- this.firstIndice = FirstIndice;
- this.numFound = numFound;
- this.queryString = queryString;
- this.facets = facets;
- this.results = Collections.unmodifiableList(results);
- }
-
- /**
- * Converte all result to the wanted type and return new PagedResult with
- * this new result list. If some result don't have the right extension (clazz)
- * this extension is automatically added if autoconvert is true. Else
- * an exception is throwed when result without extension is found.
- *
- * When you used autoconvert = false, you have a potentialy probleme when
- * you have modified a BusinessEntity to have new extension and all your
- * wikitty object are not uptodate in database.
- *
- * @param clazz
- * @param autoconvert
- * @return
- */
- public <E extends BusinessEntityWikitty> PagedResult<E> cast(
- WikittyService wikittyService, Class<E> clazz, boolean autoconvert) {
- List<E> castedResult = new ArrayList<E>(results.size());
- E sample = WikittyUtil.newInstance(clazz);
- Collection<WikittyExtension> wantedExtension = sample.getStaticExtensions();
- for (T t : results) {
- if (t == null) {
- castedResult.add(null);
- } else {
- Wikitty w = null;
- if (t instanceof Wikitty) {
- w = (Wikitty)t;
- } else if (t instanceof BusinessEntityWikitty) {
- w = ((BusinessEntityWikitty) t).getWikitty();
- } else {
- throw new WikittyException(String.format(
- "Illegal object result class '%s' can't convert it to wikitty",
- t.getClass().getName(), clazz.getName()));
- }
-
- Collection<WikittyExtension> wikittyExtension = w.getExtensions();
- if (autoconvert || wikittyExtension.containsAll(wantedExtension)) {
- E e = WikittyUtil.newInstance(wikittyService, clazz, (Wikitty) t);
- castedResult.add(e);
- } else {
- throw new WikittyException(String.format(
- "Illegal object result class '%s' can't convert it to '%s'" +
- "there is no same extension %s != %s",
- t.getClass().getName(), clazz.getName(),
- wikittyExtension, wantedExtension));
- }
- }
- }
- PagedResult<E> result = new PagedResult<E>(
- firstIndice, numFound, queryString, facets, castedResult);
- return result;
- }
-
- public int getFirstIndice() {
- return firstIndice;
- }
-
- public int getNumFound() {
- return numFound;
- }
-
- public String getQueryString() {
- return queryString;
- }
-
- /**
- * Return name of all facet used in query
- * @return
- */
- public Collection<String> getFacetNames() {
- Collection<String> result = facets.keySet();
- return result;
- }
-
- /**
- * Return all topic for the specified facet
- * @param facetName name of the wanted facet
- * @return
- */
- public List<FacetTopic> getTopic(String facetName) {
- List<FacetTopic> result = facets.get(facetName);
- return result;
- }
-
- /**
- * Get map represent facets
- * @return
- */
- public Map<String, List<FacetTopic>> getFacets() {
- return facets;
- }
-
- /**
- * Return the firstIndice element in result or throw an exception if no element
- * available
- * @return
- */
- public T getFirst() {
- T result = get(0);
- return result;
- }
-
- public T get(int i) {
- T result = results.get(i);
- return result;
- }
-
- /**
- * Return unmodifiable list of all result
- * @return
- */
- public List<T> getAll() {
- return results;
- }
-
- /**
- * Return the number of result in this object
- * @return
- */
- public int size() {
- int result = results.size();
- return result;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Tree.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Tree.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Tree.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,30 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-public class Tree {
-
- TreeNode node;
- List<Tree> children;
-
- public void setNode(TreeNode node) {
- this.node = node;
- }
-
- public void addChild(Tree tree) {
- getChildren().add( tree );
- }
-
- public List<Tree> getChildren() {
- if ( children == null ) {
- children = new ArrayList<Tree>();
- }
- return children;
- }
-
- public String getName() {
- return node.getName();
- }
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/UpdateResponse.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/UpdateResponse.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/UpdateResponse.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,75 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-public class UpdateResponse {
-
- protected Map<String, String> idVersionMap = new HashMap<String, String>();
- protected Map<String, Date> idDeletionDateMap = new HashMap<String, Date>();
-
- public UpdateResponse() {
- super();
- idVersionMap = new HashMap<String, String>();
- }
-
- /**
- * Merge all update passed in argument in local update list
- * @param update
- */
- public void add(UpdateResponse update) {
- idVersionMap.putAll(update.idVersionMap);
- idDeletionDateMap.putAll(update.idDeletionDateMap);
- }
-
- public void addVersionUpdate( String id, String version ) {
- idVersionMap.put(id, version);
- }
-
- public void addDeletionDateUpdate(String id, Date date) {
- idDeletionDateMap.put(id, date);
- }
-
- public void update(BusinessEntity e) {
- if (e instanceof BusinessEntityWikitty) {
- update((BusinessEntityWikitty) e);
- } else if (e instanceof BusinessEntityBean) {
- update((BusinessEntityBean) e);
- }
- }
-
- public void update(BusinessEntityBean e) {
- // update version
- String id = e.getWikittyId();
- String version = idVersionMap.get(id);
- if (version != null) {
- e.setWikittyVersion(version);
- }
- }
-
- public void update(BusinessEntityWikitty e) {
- update(e.getWikitty());
- }
-
- /**
- * Update data directly in object passed in argument.
- * Actualy only version and deletion date are updated.
- * And internaly wikitty object is marked clean (not dirty)
- * @param e
- */
- public void update(Wikitty e) {
- // update version
- String id = e.getId();
- String version = idVersionMap.get(id);
- if (version != null) {
- e.setVersion(version);
- }
- Date date = idDeletionDateMap.get(id);
- if (date != null) {
- e.setDeleteDate(date);
- }
- e.clearDirty();
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Wikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Wikitty.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/Wikitty.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,636 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.AbstractList;
-import java.util.AbstractSet;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class Wikitty implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * technical id for this wikitty object. id must be never null
- */
- protected String id;
- /** current version of this wikitty object */
- protected String version = WikittyUtil.DEFAULT_VERSION;
- /** if not null, date of deletion, if date this object is marked as deleted */
- protected Date deleteDate = null;
-
- /** used to add property change support to wikitty object */
- protected transient PropertyChangeSupport propertyChange = new PropertyChangeSupport(this);
-
- /**
- * key: field name prefixed by extension name (dot separator)
- * value: value of field
- */
- protected HashMap<String, Object> fieldValue = new HashMap<String, Object>();
- /**
- * all field name currently modified (field name = extension . fieldname)
- */
- protected Set<String> fieldDirty = new HashSet<String>();
- /**
- * Map is LinkedHashMap to maintains order like user want
- * key: extension name
- * value: extension definition
- */
- protected Map<String, WikittyExtension> extensions =
- new LinkedHashMap<String, WikittyExtension>();
-
-
- public Wikitty() {
- this(null);
- }
-
- public Wikitty(String id){
- if(id == null) {
- this.id = WikittyUtil.genUID();
- } else {
- this.id = id;
- }
- }
-
- public synchronized void addPropertyChangeListener(
- PropertyChangeListener listener) {
- propertyChange.addPropertyChangeListener(listener);
- }
-
-
- public synchronized void removePropertyChangeListener(
- PropertyChangeListener listener) {
- propertyChange.removePropertyChangeListener(listener);
- }
-
-
- public synchronized void addPropertyChangeListener(String propertyName,
- PropertyChangeListener listener) {
- propertyChange.addPropertyChangeListener(propertyName, listener);
- }
-
-
- public synchronized void removePropertyChangeListener(String propertyName,
- PropertyChangeListener listener) {
- propertyChange.removePropertyChangeListener(propertyName, listener);
- }
-
- public String getId() {
- return id;
- }
-
- public boolean isDeleted() {
- boolean result = deleteDate != null;
- return result;
- }
-
- public Date getDeleteDate() {
- return deleteDate;
- }
-
- /**
- * Server only used
- * @param delete
- */
- public void setDeleteDate(Date delete) {
- this.deleteDate = delete;
- }
-
- /**
- * mark field as dirty
- * @param ext
- * @param fieldName
- */
- protected void setFieldDirty(String ext, String fieldName,
- Object oldValue, Object newValue) {
- String key = ext + "." + fieldName;
- fieldDirty.add(key);
- version = WikittyUtil.incrementMinorRevision(version);
- propertyChange.firePropertyChange(key, oldValue, newValue);
- }
-
- public void addExtension(WikittyExtension ext) {
- String required = ext.getRequires();
- if (required != null && !required.isEmpty() &&
- !extensions.containsKey(required)) {
- throw new WikittyException(String.format(
- "You try to add extension '%s' that" +
- " required not available extension '%s' in this wikitty",
- ext.getName(), required));
- }
- extensions.put(ext.name, ext);
- }
-
- public void addExtension(List<WikittyExtension> exts) {
- for (WikittyExtension ext : exts) {
- extensions.put(ext.name, ext);
- }
- }
-
- public boolean hasExtension(String extName) {
- return extensions.containsKey(extName);
- }
-
- public boolean hasField(String extName, String fieldName) {
- boolean result = false;
- WikittyExtension ext = extensions.get(extName);
- if (ext != null) {
- result = ext.getFieldType(fieldName) != null;
- }
- return result;
- }
-
- public WikittyExtension getExtension(String ext) {
- WikittyExtension result = extensions.get(ext);
- return result;
- }
-
- public Collection<String> getExtensionNames() {
- Collection<String> result = extensions.keySet();
- return result;
- }
-
- public Collection<WikittyExtension> getExtensions() {
- Collection<WikittyExtension> result = extensions.values();
- return result;
- }
-
- public Collection<WikittyExtension> getExtensionDependencies(String ext, boolean recursively) {
- Collection<WikittyExtension> result = new HashSet<WikittyExtension>();
- Collection<WikittyExtension> all = extensions.values();
- for (WikittyExtension dependency : all) {
- String requires = dependency.getRequires();
- if(requires != null && !requires.isEmpty() && requires.equals(ext)) {
- result.add(dependency);
- if(recursively) {
- String dependencyName = dependency.getName();
- Collection<WikittyExtension> dependencies = getExtensionDependencies(dependencyName, recursively);
- result.addAll(dependencies);
- }
- }
- }
- return result;
- }
-
- /**
- * return field type for the given fieldName.
- * @param fieldName fully qualified fieldName extension.fieldname
- * @return field type
- */
- public FieldType getFieldType(String fqfieldName) {
- try {
- String[] field = fqfieldName.split("\\.");
- WikittyExtension ext = getExtension(field[0]);
- if (ext == null) {
- throw new WikittyException(String.format(
- "extension '%s' doesn't exists", field[0]));
- } else {
- String fieldName = field[1];
- int crochet = fieldName.indexOf("[");
- if (crochet != -1) {
- fieldName = fieldName.substring(0, crochet);
- }
- FieldType result = ext.getFieldType(fieldName);
- if (result == null) {
- throw new WikittyException(String.format(
- "field '%s' doesn't exists on extension '%s'", fieldName, field[0]));
-
- }
- return result;
- }
- } catch (Exception eee) {
- throw new WikittyException(
- String.format("Field %s is not a fully qualified field name", fqfieldName),
- eee
- );
- }
- }
-
- public void setField(String ext, String fieldName, Object value) {
- if (! hasField(ext, fieldName)) {
- String def = "";
- for ( WikittyExtension extension : extensions.values() ) {
- def += extension.toDefinition() + "\n";
- }
- throw new WikittyException(String.format(
- "field '%s' is not valid, extensions definition : %s", ext + "." + fieldName, def));
- }
- String key = ext + "." + fieldName;
-
- // take old value if needed
- Object oldValue = null;
- if (propertyChange.hasListeners(key)) {
- oldValue = fieldValue.get(key);
- }
-
- // put new value
- FieldType fieldType = getExtension(ext).getFieldType(fieldName);
- Object validValue = fieldType.getValidValue(value);
- fieldValue.put(key, validValue);
-
- // mark field dirty and call listener
- setFieldDirty(ext, fieldName, oldValue, validValue);
- }
-
- public Object getFieldAsObject(String ext, String fieldName) {
- if (!hasField(ext, fieldName)) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid field",
- ext + "." + fieldName));
- }
- String key = ext + "." + fieldName;
- Object result = fieldValue.get(key);
- return result;
- }
-
- public boolean getFieldAsBoolean(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- boolean result = WikittyUtil.toBoolean(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid boolean",
- ext + "." + fieldName), eee);
- }
- }
-
- public BigDecimal getFieldAsBigDecimal(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- BigDecimal result = WikittyUtil.toBigDecimal(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid numeric",
- ext + "." + fieldName), eee);
- }
- }
-
- public int getFieldAsInt(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- int result = value.intValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid int",
- ext + "." + fieldName), eee);
- }
- }
-
- public long getFieldAsLong(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- long result = value.longValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid int",
- ext + "." + fieldName), eee);
- }
- }
-
- public float getFieldAsFloat(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- float result = value.floatValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid float",
- ext + "." + fieldName), eee);
- }
- }
-
- public double getFieldAsDouble(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- double result = value.doubleValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid float",
- ext + "." + fieldName), eee);
- }
- }
-
- public String getFieldAsString(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- String result = WikittyUtil.toString(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid String",
- ext + "." + fieldName), eee);
- }
- }
-
- public Date getFieldAsDate(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- Date result = WikittyUtil.toDate(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid Date",
- ext + "." + fieldName), eee);
- }
- }
-
- /**
- * return wikitty id and not wikitty objet because this method can be call
- * on server or client side and it's better to keep conversion between id
- * and objet to the caller
- * @param ext extension name where this field must to be
- * @param fieldName the field name
- * @return id of wikitty object or null
- * @throws org.sharengo.wikitty.WikittyException
- */
- public String getFieldAsWikitty(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- String result = WikittyUtil.toWikitty(value);
- return result;
- }
-
- /**
- * If object is a set, it is automatically transform to list.
- * @param <E>
- * @param clazz
- * @return unmodifiable list
- */
- public <E> List<E> getFieldAsList(String ext, String fieldName, final Class<E> clazz) {
- try {
- final Collection<E> collection = (Collection<E>) getFieldAsObject(ext, fieldName);
- if (collection != null) {
- // return unmodiable collection that check type of element
- return new AbstractList<E>() {
- List<E> contained = new ArrayList<E>(collection);
- @Override public E get(int index) {
- return WikittyUtil.cast( contained.get(index), clazz );
- }
- @Override public int size() {
- return contained.size();
- }
- };
- }
- return null;
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- /**
- *
- * @param <E>
- * @param clazz
- * @return unmodifiable list
- */
- public <E> Set<E> getFieldAsSet(String ext, String fieldName, final Class<E> clazz) {
- try {
- final Set<E> result = (Set<E>) getFieldAsObject(ext, fieldName);
- if (result != null) {
- // return unmodifable Set
- return new AbstractSet<E>() {
- Set<E> contained = result;
- @Override public int size() {
- return contained.size();
- }
- @Override
- public Iterator<E> iterator() {
- return new Iterator<E>() {
- Iterator containedIterator = contained.iterator();
- public boolean hasNext() {
- return containedIterator.hasNext();
- }
-
- public E next() {
- Object o = containedIterator.next();
- return WikittyUtil.cast(o, clazz);
- }
-
- public void remove() {
- throw new UnsupportedOperationException("Not supported operation");
- }
- };
-
- }
- };
- }
- return result;
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- public void addToField(String ext, String fieldName, Object value) {
- try {
- FieldType fieldType = getExtension(ext).getFieldType(fieldName);
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col == null) {
- if (fieldType.isUnique()) {
- col = new HashSet();
- } else {
- col = new ArrayList();
- }
- col.add(value);
- setField(ext, fieldName, col);
- // no call dirty, because already done in setField
- } else {
- // check upper bound only if col exists,
- // because ask upper bound == 0 is ridiculous
-
- if (fieldType.isUnique()) {
- if (!col.contains(value)) {
- // only add if not already in collection (unique)
- if (col.size() + 1 > fieldType.getUpperBound()) {
- // if upper bound reached, throw an exception
- throw new WikittyException(String.format(
- "Can't add value for field '%s', upper bound is reached",
- ext + "." + fieldName));
- }
- col.add(value);
- setFieldDirty(ext, fieldName, null, col);
- }
- } else {
- if (col.size() + 1 > fieldType.getUpperBound()) {
- throw new WikittyException(String.format(
- "Can't add value for field '%s', upper bound is reached",
- ext + "." + fieldName));
- }
- col.add(value);
- setFieldDirty(ext, fieldName, null, col);
- }
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- public void removeFromField(String ext, String fieldName, Object value) {
- try {
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col != null) {
- FieldType type = getExtension(ext).getFieldType(fieldName);
- if (col.contains(value)) {
- if (col.size() - 1 < type.getLowerBound()) {
- throw new WikittyException(String.format(
- "Can't remove value for field '%s', lower bound is reached",
- ext + "." + fieldName));
- } else {
- if (col.remove(value)) {
- // field is dirty only if remove is done
- setFieldDirty(ext, fieldName, null, col);
- }
- }
- }
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't remove value for field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- public void clearField(String ext, String fieldName) {
- FieldType type = getExtension(ext).getFieldType(fieldName);
- if (type.getLowerBound() > 0) {
- throw new WikittyException(String.format(
- "Can't clear values for field '%s', lower bound is > 0",
- ext + "." + fieldName));
- }
- try {
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col != null) {
- col.clear();
- setFieldDirty(ext, fieldName, null, col);
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't clear value for field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- @Override
- public boolean equals(Object obj) {
- boolean result = false;
- if (obj instanceof Wikitty) {
- Wikitty other = (Wikitty) obj;
- result = id.equals(other.id);
- }
- return result;
- }
-
- @Override
- public int hashCode() {
- if (id == null) {
- return super.hashCode();
- } else {
- return id.hashCode();
- }
- }
-
- public Set<String> fieldNames() {
- return fieldValue.keySet();
- }
-
- public Object getFqField(String fqFieldName) {
- return fieldValue.get(fqFieldName);
- }
-
- public String getVersion() {
- return version;
- }
-
- /**
- * Server only used
- * @param version
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- /**
- * Server only used
- * @param version
- */
- public void clearDirty() {
- fieldDirty.clear();
- }
-
- /**
- * Server only used
- * @param fieldName fqn (ex: extensionName.fieldName)
- * @param value new value
- */
- public void setFqField(String fieldName, Object value) {
- FieldType fieldType = getFieldType(fieldName);
- Object validValue = fieldType.getValidValue(value);
- fieldValue.put(fieldName, validValue);
- }
-
- public boolean isEmpty() {
- return fieldValue.isEmpty();
- }
-
- @Override
- public String toString() {
- boolean cr = true;
- String str = "[" + getId() + ":" + getVersion() + "] {";
- for ( String extName : getExtensionNames() ) {
- WikittyExtension ext = getExtension(extName);
- str += (cr ? "\n" : "") + "\t<" + extName + ">\n";
- cr = false;
- for ( String fieldName : ext.getFieldNames() ) {
- str += "\t\t" + fieldName + " = " + getFieldAsString(extName, fieldName) + "\n";
- }
- }
- str += "}";
- return str;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyDAO.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyDAO.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyDAO.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,189 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.lang.reflect.ParameterizedType;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class WikittyDAO<E extends BusinessEntityWikitty> {
-
- protected static Log log = LogFactory.getLog( WikittyDAO.class );
-
- private WikittyProxy proxy;
- private Class<E> clazz;
-
- public WikittyDAO() {
- clazz = getActualClassType();
- }
-
- private Class<E> getActualClassType() {
- ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
- Class<E> clazz = (Class<E>)type.getActualTypeArguments()[0];
- return clazz;
- }
-
- public void addLabel(String wikittyId, String label) {
- proxy.addLabel(wikittyId, label);
- }
-
- public String asyncExportAllByCriteria(Criteria criteria) {
- return proxy.asyncExportAllByCriteria(criteria);
- }
-
- public String asyncExportAllByExample(E e) {
- return proxy.asyncExportAllByExample(e);
- }
-
- public String asyncImportFromUri(String uri) {
- return proxy.asyncImportFromUri(uri);
- }
-
- public void cancelJob(String jobId) {
- proxy.cancelJob(jobId);
- }
-
- public void delete(Collection<String> ids) {
- proxy.delete(ids);
- }
-
- public void delete(String id) {
- proxy.delete(id);
- }
-
- public boolean equals(Object obj) {
- return proxy.equals(obj);
- }
-
- public Set<String> findAllAppliedLabels(String wikittyId) {
- return proxy.findAllAppliedLabels(wikittyId);
- }
-
- public PagedResult<E> findAll() {
- return proxy.findAllByCriteria(clazz, null);
- }
-
- public PagedResult<E> findAllByCriteria(Criteria criteria) {
- return proxy.findAllByCriteria(clazz, criteria);
- }
-
- public PagedResult<E> findAllByExample(E e, int firstIndex, int endIndex, String... fieldFacet) {
- return proxy.findAllByExample(e, firstIndex, endIndex, fieldFacet);
- }
-
- public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
- return proxy.findAllByLabel(label, firstIndex, endIndex);
- }
-
- public E findByCriteria(Criteria criteria) {
- return proxy.findByCriteria(clazz, criteria);
- }
-
- public E findByExample(E e) {
- return proxy.findByExample(e);
- }
-
- public Wikitty findByLabel(String label) {
- return proxy.findByLabel(label);
- }
-
- public void freeJobResource(String jobId) {
- proxy.freeJobResource(jobId);
- }
-
- public WikittyService getWikittyService() {
- return proxy.getWikittyService();
- }
-
- public int hashCode() {
- return proxy.hashCode();
- }
-
- public JobState infoJob(String jobId) {
- return proxy.infoJob(jobId);
- }
-
- public List<E> restore(List<String> id) {
- return proxy.restore(clazz, id, true);
- }
-
- public E restore(String id) {
- return proxy.restore(clazz, id, true);
- }
-
- public <E extends BusinessEntity> E restore(String id,Class<E> clazz ) {
- return proxy.restore(clazz, id);
- }
-
- public Tree restoreTree(String wikittyId) {
- return proxy.restoreTree(wikittyId);
- }
-
- public Map.Entry<E, Integer> restoreNode(String wikittyId) {
- return restoreNode(wikittyId, null);
- }
-
- public Map.Entry<E, Integer> restoreNode(String wikittyId, Criteria filter) {
- Class<E> clazz = getActualClassType();
- return proxy.restoreNode(clazz, wikittyId, filter, true);
- }
-
- public Map<E, Integer> restoreChildren(String wikittyId) {
- return restoreChildren(wikittyId, null);
- }
-
- public Map<E, Integer> restoreChildren(String wikittyId, Criteria filter) {
- Class<E> clazz = getActualClassType();
- return proxy.restoreChildren(clazz, wikittyId, filter, true);
- }
-
- public Wikitty restoreVersion(String wikittyId, String version) {
- return proxy.restoreVersion(wikittyId, version);
- }
-
- public boolean hasType(String wikittyId) {
- Class<E> clazz = getActualClassType();
- return proxy.hasType(clazz, wikittyId);
- }
-
- public void setWikittyService(WikittyService wikittyService) {
- proxy.setWikittyService(wikittyService);
- }
-
- public E store(E e) {
- return proxy.store(e);
- }
-
- public List<E> store(List<E> objets) {
- return proxy.store(objets);
- }
-
- public String syncExportAllByCriteria(Criteria criteria) {
- return proxy.syncExportAllByCriteria(criteria);
- }
-
- public String syncExportAllByExample(E e) {
- return proxy.syncExportAllByExample(e);
- }
-
- public void syncImportFromUri(String uri) {
- proxy.syncImportFromUri(uri);
- }
-
- public void syncImportFromXml(String xml) {
- proxy.syncImportFromXml(xml);
- }
-
- public String toString() {
- return proxy.toString();
- }
-
- public void setProxy(WikittyProxy proxy) {
- this.proxy = proxy;
- }
-
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyException.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyException.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyException.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,44 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyException extends RuntimeException {
-
- private static final long serialVersionUID = 1L;
-
- public WikittyException(String message) {
- super(message);
- }
-
- public WikittyException(Exception eee) {
- super(eee);
- }
-
- public WikittyException(String message, Exception eee) {
- super(message, eee);
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtension.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtension.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtension.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,242 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyExtension implements Serializable {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(WikittyExtension.class);
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Name of this extension.
- */
- protected String name;
-
- /**
- * Name of other extension needed to put this extension to object.
- *
- * Warning : Multiples extensions are not supported yet.
- *
- * FIXME EC-20100420 multiples extensions need to work
- */
- protected String requires;
-
- /**
- * use to know version objet, when you change field number, type or other
- * you must change version number.
- */
- protected String version = WikittyUtil.DEFAULT_VERSION;
-
- /** used to store tag/value used by client side ex: updatedDate=101212 */
- Map<String, String> tagValues = new HashMap<String, String>();
-
- /**
- * fields use ordered map, to keep order insertion of field
- * key: field name
- * value: field type
- */
- protected LinkedHashMap<String, FieldType> fields = new LinkedHashMap<String, FieldType>();
-
- protected WikittyExtension() {
- }
-
- public WikittyExtension(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Name must not be null");
- }
- this.name = name;
- }
-
- public WikittyExtension(String name, String version,
- String requires, LinkedHashMap<String, FieldType> fields) {
- if (name == null) {
- throw new IllegalArgumentException("Name must not be null");
- }
- if (version == null) {
- throw new IllegalArgumentException("Version must not be null");
- }
- this.name = name;
- this.version = WikittyUtil.normalizeVersion(version);
- this.requires = requires;
- if (fields != null) {
- this.fields = fields;
- }
- }
-
- public WikittyExtension cloneForUpgrade() {
- String nextRevision = WikittyUtil.incrementMajorRevision(getVersion());
-
- LinkedHashMap<String, FieldType> nextFields = null;
- if (fields != null) {
- nextFields = new LinkedHashMap<String, FieldType>();
- for (Map.Entry<String, FieldType> entry : fields.entrySet()) {
- FieldType type = entry.getValue();
- FieldType nextType = new FieldType(type.getType(), type.getLowerBound(), type.getUpperBound(), type.isUnique(), type.isNotNull());
- Set<String> tagNames = type.getTagNames();
- if (tagNames != null) {
- for (String tagName : tagNames) {
- String tagValue = type.getTagValue(tagName);
- nextType.addTagValue(tagName, tagValue);
- }
- }
- nextFields.put(entry.getKey(), nextType);
- }
- }
-
- WikittyExtension result = new WikittyExtension(name, nextRevision, requires, nextFields);
- return result;
- }
-
- /**
- * compute id for extension name and version in argument
- * @param name
- * @param version
- * @return
- */
- static public String computeId(String name, String version) {
- String result = name + "[" + version + "]";
- return result;
- }
-
- static public String computeName(String id) {
- int i = id.lastIndexOf("[");
- String result = id;
- if (i != -1) {
- result = id.substring(0, i);
- }
- return result;
- }
-
- static public String computeVersion(String id) {
- int b = id.lastIndexOf("[");
- int e = id.lastIndexOf("]");
- String result = null;
- if (b != -1 && e != -1) {
- result = id.substring(b+1, e);
- }
- result = WikittyUtil.normalizeVersion(result);
- return result;
- }
-
- public String getId() {
- String result = computeId(getName(), getVersion());
- return result;
- }
-
- public String getName() {
- return name;
- }
-
- public String getVersion() {
- return version;
- }
-
- public String getRequires() {
- return requires;
- }
-
- public FieldType getFieldType(String fieldName) {
- return fields.get(fieldName);
- }
-
- public Collection<String> getFieldNames() {
- Collection<String> result = fields.keySet();
- return result;
- }
-
- public void addField(String fieldName, FieldType type) {
- fields.put(fieldName, type);
- }
-
- public void removeField(String fieldName) {
- fields.remove(fieldName);
- }
-
- @Override
- public int hashCode() {
- return getId().hashCode();
- }
-
- public void addTagValue(String tag, String value) {
- tagValues.put(tag, value);
- }
-
- public String getTagValue(String tag) {
- String result = tagValues.get(tag);
- return result;
- }
-
- public Set<String> getTagNames() {
- return tagValues.keySet();
- }
-
- public Map<String, String> getTagValues() {
- return tagValues;
- }
-
- public void setTagValues(Map<String, String> tagValues) {
- this.tagValues = tagValues;
- }
-
- @Override
- public boolean equals(Object obj) {
- boolean result = false;
- if (obj instanceof WikittyExtension) {
- WikittyExtension other = (WikittyExtension)obj;
- result = this.getId().equals(other.getId());
- }
- return result;
- }
-
- @Override
- public String toString() {
- return getId();
- }
-
- public String toDefinition() {
- String result = "Extension " + getId();
- result += WikittyUtil.tagValuesToString(tagValues);
- result += " {\n";
- for (String fieldName : fields.keySet()) {
- result += fields.get(fieldName).toDefinition(fieldName) + "\n";
- }
- result += "}";
- return result;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigration.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigration.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigration.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,59 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Interface used to migrate Wikitty data from one WikittyExtension version
- * to another version
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittyExtensionMigration {
-
- // TODO poussin 20090902 permit configuration of migrationRegistry by spring
- /**
- * use to put migration class for extension.
- * key: extensionName, value: migration class
- */
- static public Map<String, WikittyExtensionMigration> migrationRegistry =
- new HashMap<String, WikittyExtensionMigration>();
-
- /**
- * Migrate wikitty data from oldExt version to newExt.
- *
- * @param service Wikitty service that do migration
- * @param transaction current transaction to use
- * @param wikitty Wikitty object that contains data in old version
- * extension format
- * @param oldExt old extension definition
- * @param newExt new extension definition
- * @return same wikitty as argument if nothing to do, or new wikitty
- * if some modification is done
- */
- public Wikitty migrate(AbstractWikittyService service, WikittyTransaction transaction,
- Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigrationRename.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigrationRename.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionMigrationRename.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,123 +0,0 @@
-/* *##%
- * Copyright (c) 2009 ruchaud. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Basic extension migration use to manage rename field name. Order to detect a
- * rename, not creation a new field, you should use tag value "renameFrom" with
- * name of use in before extension.
- *
- * Since 1.5, this class also take care about extension order.
- *
- * @author ruchaud
- */
-public class WikittyExtensionMigrationRename implements WikittyExtensionMigration {
-
- static private Log log = LogFactory.getLog(WikittyExtensionMigrationRename.class);
-
- public static String TAG_RENAME = "renameFrom";
-
- /**
- * Recursively add extension with requires ones (orderer).
- *
- * @param service service
- * @param transaction current transaction to use
- * @param wikitty wikitty to add extension to
- * @param newExt extension to add
- */
- protected void addExtension(AbstractWikittyService service, WikittyTransaction transaction, Wikitty wikitty, WikittyExtension newExt) {
-
- // manage requires before current
- String requires = newExt.getRequires();
- if (StringUtils.isNotEmpty(requires)) {
- for (String require : requires.split(",")) {
- WikittyExtension newRequireExt = service.restoreExtensionLastVersion(transaction, require);
- addExtension(service, transaction, wikitty, newRequireExt);
- }
- }
-
- // add current extension
- wikitty.addExtension(newExt);
- }
-
- @Override
- public Wikitty migrate(AbstractWikittyService service, WikittyTransaction transaction, Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt) {
-
- String wikittyId = wikitty.getId();
- String wikittyVersion = wikitty.getVersion();
-
- Wikitty result = new Wikitty(wikittyId);
- result.setVersion(wikittyVersion);
-
- // Add all extension and replace old by the new
- for (WikittyExtension extension : wikitty.getExtensions()) {
- // add one by one to manage require
-
- // during loop add new when old one is found
- if (extension.equals(oldExt)) {
- addExtension(service, transaction, result, newExt);
- }
- else {
- addExtension(service, transaction, result, extension);
- }
- }
-
- // Copy other values
- Set<String> fqFieldNames = wikitty.fieldNames();
- String extName = newExt.getName();
- for (String fieldName : fqFieldNames) {
- if(!fieldName.startsWith(extName + ".")) {
- Object value = wikitty.getFqField(fieldName);
- log.debug("Value " + fieldName + "=" + value);
- result.setFqField(fieldName, value);
- }
- }
-
- // Migrate field name
- Collection<String> oldFieldNames = oldExt.getFieldNames();
- Collection<String> newFieldNames = newExt.getFieldNames();
- for (String fieldName : newFieldNames) {
- FieldType fieldType = newExt.getFieldType(fieldName);
-
- String renameFrom = fieldType.getTagValue(TAG_RENAME);
- log.debug("Scan rename migration on " + extName + "." + fieldName + ":" + TAG_RENAME + "=" + renameFrom);
-
- if(renameFrom != null && !renameFrom.isEmpty()) {
- Object value = wikitty.getFieldAsObject(extName, renameFrom);
- log.debug("Rename " + extName + "." + fieldName + "=" + value);
- result.setField(extName, fieldName, value);
- } else {
- if(oldFieldNames.contains(fieldName)) {
- Object value = wikitty.getFieldAsObject(extName, fieldName);
- log.debug("Copy " + extName + "." + fieldName + "=" + value);
- result.setField(extName, fieldName, value);
- }
- }
- }
-
- return result;
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyExtensionStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,95 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittyExtensionStorage {
-
- /**
- * Store extension in storage.
- *
- * @param transaction the current transaction
- * @param extensions the extensions to store
- * @return information usefull for client side update data
- */
- UpdateResponse store(WikittyTransaction transaction, Collection<WikittyExtension> extensions);
-
- /**
- * Return true if id exists in storage.
- *
- * @param transaction the current transaction
- * @param id an extension id
- * @return true if the extension exists
- */
- boolean exists(WikittyTransaction transaction, String id);
-
- /**
- * Return all extension ids.
- *
- * @param transaction the current transaction
- * @return a list of extension ids
- */
- List<String> getAllExtensionIds(WikittyTransaction transaction);
-
- /**
- * Return all extension ids where the specified extensionName is required.
- *
- * @param transaction the current transaction
- * @param extensionName the extension required
- * @return a list of extension ids
- */
- List<String> getAllExtensionsRequires(WikittyTransaction transaction,
- String extensionName);
-
- /**
- * return last version available for specified extension name.
- *
- * @param transaction the current transaction
- * @param extName name of extension
- * @return last version availble for this version, or null if extension
- * doesn't exist
- */
- String getLastVersion(WikittyTransaction transaction, String extName);
-
- /**
- * Restore one extension from storage, if not found an exception is thrown.
- *
- * @param transaction the current transaction
- * @param name extension name to restore
- * @param version extension version to restore
- * @return an extension
- */
- WikittyExtension restore(WikittyTransaction transaction, String name, String version)
- throws WikittyException;
-
- /**
- * Remove all extensions
- */
- public void clear(WikittyTransaction transaction);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyProxy.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyProxy.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,514 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.Search;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyProxy {
-
- protected WikittyService wikittyService;
-
- public WikittyService getWikittyService() {
- return wikittyService;
- }
-
- public void setWikittyService(WikittyService wikittyService) {
- this.wikittyService = wikittyService;
- }
-
- public <E extends BusinessEntity> E store(E e) {
- Wikitty w = WikittyUtil.beanToWikitty(e);
- UpdateResponse resp = wikittyService.store(w);
- resp.update(e);
- return e;
- }
-
- /**
- * Store to WikittyService objects.
- * @param objets list of BeanDto
- * @return
- */
- public <E extends BusinessEntity> List<E> store(List<E> objets) {
- // prepare data to send to service
- List<Wikitty> wikitties = new ArrayList<Wikitty>(objets.size());
- for (E e : objets) {
- Wikitty w = WikittyUtil.beanToWikitty(e);
- wikitties.add(w);
- }
-
- // call the service with Wikitty
- UpdateResponse resp = wikittyService.store(wikitties);
-
- // update object
- for (E e : objets) {
- resp.update(e);
- }
- return objets;
- }
-
- /**
- * Restore wikitty entity with specified id or {@code null} if entity can't be found.
- *
- * @param clazz entity class
- * @param id entity id
- * @param checkExtension if true check that Wikitty result has all extension
- * declared in clazz
- * @return wikitty entity with specified id or {@code null} if entity can't be found
- */
- public <E extends BusinessEntity> E restore(Class<E> clazz, String id, boolean checkExtension) {
- E result = null;
- HashSet extNames = null;
- try {
- Wikitty wikitty = wikittyService.restore(id);
- if(wikitty == null) {
- return null;
- }
-
- if (checkExtension) {
- extNames = new HashSet<String>(wikitty.getExtensionNames());
- }
- result = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- if (checkExtension) {
- // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
- BusinessEntityWikitty b = (BusinessEntityWikitty)result;
- Collection<WikittyExtension> BusinessEntityStaticExtensions = b.getStaticExtensions();
- for (WikittyExtension ext : BusinessEntityStaticExtensions) {
- String extensionName = ext.getName();
- if (!extNames.contains(extensionName)) {
- // extension wanted by BusinessEntity (clazz)
- // is not in wikitty, then wikitty is not good type
- // for business
- return null;
- }
- }
- }
- return result;
- }
-
- /**
- * Restore wikitty entity with specified id or {@code null} if entity can't be found.
- *
- * @param clazz entity class
- * @param id entity id
- * @return wikitty entity with specified id or {@code null} if entity can't be found
- */
- public <E extends BusinessEntity> E restore(Class<E> clazz, String id) {
- E result = restore(clazz, id, false);
- return result;
- }
-
- /**
- *
- * @param clazz
- * @param id
- * @param checkExtension if true check that Wikitty result has all extension
- * @return
- */
- public <E extends BusinessEntity> List<E> restore(
- Class<E> clazz, List<String> id, boolean checkExtension) {
-
- List<Wikitty> wikitties = wikittyService.restore(id);
- List<E> result = new ArrayList<E>();
- for (Wikitty w : wikitties) {
- HashSet extNames = null;
- if (checkExtension) {
- extNames = new HashSet<String>(w.getExtensionNames());
- }
-
- E dto = WikittyUtil.newInstance(wikittyService, clazz, w);
- if (checkExtension) {
- // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
- BusinessEntityWikitty b = (BusinessEntityWikitty) dto;
- for (WikittyExtension ext : b.getStaticExtensions()) {
- if (!extNames.contains(ext.getName())) {
- // extension wanted by BusinessEntity (clazz)
- // is not in wikitty, then wikitty is not good type
- // for business
- return null;
- }
- }
- }
- result.add(dto);
- }
- return result;
- }
-
- public <E extends BusinessEntity> List<E> restore(Class<E> clazz, List<String> id) {
- List<E> result = restore(clazz, id, false);
- return result;
- }
-
- public void delete(String id) {
- wikittyService.delete(id);
- }
-
- public void delete(Collection<String> ids) {
- wikittyService.delete(ids);
- }
-
- public <E extends BusinessEntityWikitty> PagedResult<E> findAllByExample(E e,
- int firstIndex, int endIndex, String ... fieldFacet ) {
-
- Criteria criteria = Search.query(e.getWikitty()).criteria()
- .setFirstIndex(firstIndex).setEndIndex(endIndex)
- .setFacetField(fieldFacet);
-
- PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(criteria);
- // we can use autoconvert = true because search by example add automaticaly
- // restriction on extension
- PagedResult<E> result = (PagedResult<E>)pagedResult.cast(wikittyService, e.getClass(), true);
- return result;
- }
-
- public <E extends BusinessEntityWikitty> E findByExample(E e) {
- Criteria criteria = Search.query(e.getWikitty()).criteria();
-
- Wikitty w = wikittyService.findByCriteria(criteria);
- E result = (E)WikittyUtil.newInstance(wikittyService, e.getClass(), w);
- return result;
- }
-
- /**
- * Search object that correspond to criteria and that have all extension
- * needed by BusinessEntity (clazz). If criteria is null, find all extensions
- * else if crtiteria is empty return nothing.
- * @param clazz
- * @param criteria
- * @param firstIndex
- * @param endIndex
- * @return
- */
- public <E extends BusinessEntity> PagedResult<E> findAllByCriteria(
- Class<E> clazz, Criteria criteria) {
-
- // newInstance only return BusinessEntityWikittyImpl
- BusinessEntityWikitty sample =
- (BusinessEntityWikitty)WikittyUtil.newInstance(clazz);
-
- Wikitty wikitty = sample.getWikitty();
- Collection<String> extensions = wikitty.getExtensionNames();
-
- Criteria serviceCriteria;
- if(criteria == null) {
- Search search = Search.query();
- search = search.eq(Element.ELT_EXTENSION, extensions);
-
- serviceCriteria = search.criteria();
- } else {
- Search search = Search.query(criteria);
- search = search.eq(Element.ELT_EXTENSION, extensions);
-
- serviceCriteria = search.criteria(criteria.getName());
- serviceCriteria.setFirstIndex(criteria.getFirstIndex());
- serviceCriteria.setEndIndex(criteria.getEndIndex());
-
- 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));
- }
- }
-
- PagedResult<Wikitty> pagedResult = wikittyService.findAllByCriteria(serviceCriteria);
-
- // we can cast with autoconvert true because we have add restriction
- // on extension
- PagedResult<E> result = (PagedResult<E>)pagedResult.cast(wikittyService, sample.getClass(), true);
- return result;
- }
-
- public <E extends BusinessEntity> E findByCriteria(Class<E> clazz, Criteria criteria) {
- BusinessEntityWikitty sample =
- (BusinessEntityWikitty)WikittyUtil.newInstance(clazz);
-
- Wikitty wikitty = sample.getWikitty();
- Collection<String> extensions = wikitty.getExtensionNames();
- Search search = Search.query(criteria);
- search = search.eq(Element.ELT_EXTENSION, extensions);
-
- criteria = search.criteria(criteria.getName());
-
- Wikitty w = wikittyService.findByCriteria(criteria);
- E result = WikittyUtil.newInstance(wikittyService, clazz, w);
- return result;
- }
-
- public void addLabel(String wikittyId, String label) {
- wikittyService.addLabel(wikittyId, label);
- }
-
- public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) {
- PagedResult<Wikitty> result = wikittyService.findAllByLabel(
- label, firstIndex, endIndex);
- return result;
- }
-
- public Wikitty findByLabel(String label) {
- Wikitty result = wikittyService.findByLabel(label);
- return result;
- }
-
- public Set<String> findAllAppliedLabels(String wikittyId) {
- Set<String> result = wikittyService.findAllAppliedLabels(wikittyId);
- return result;
- }
-
- public Tree restoreTree(String wikittyId) {
- Tree result = wikittyService.restoreTree(wikittyId);
- return result;
- }
-
- public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter) {
- Entry<E, Integer> result = restoreNode(clazz, wikittyId, filter, false);
- return result;
- }
-
- public <E extends BusinessEntity> Map.Entry<E, Integer> restoreNode(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) {
- Map.Entry<TreeNode, Integer> node = wikittyService.restoreNode(wikittyId, filter);
- if(node == null) {
- return null;
- }
-
- E bean = restore(clazz, wikittyId, checkExtension);
- if(bean == null) {
- return null;
- }
-
- Map.Entry<E, Integer> result =
- new HashMap.SimpleEntry<E, Integer>(bean, node.getValue());
- return result;
- }
-
- public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter) {
- Map<E, Integer> result = restoreChildren(clazz, wikittyId, filter, false);
- return result;
- }
-
- public <E extends BusinessEntity> Map<E, Integer> restoreChildren(Class<E> clazz, String wikittyId, Criteria filter, boolean checkExtension) {
-
- Map<TreeNode, Integer> result = wikittyService.restoreChildren(wikittyId, filter);
- if(result == null) {
- return null;
- }
-
- Map<E, Integer> convertedResult = new LinkedHashMap<E, Integer>();
- Set<Entry<TreeNode, Integer>> entries = result.entrySet();
- for (Entry<TreeNode, Integer> entry : entries) {
-
- TreeNode node = entry.getKey();
-
- //TODO EC-20100420 was : String nodeId = node.getId();
- String nodeId = node.getWikittyId();
-
- E businessEntity = null;
- HashSet<String> extNames = null;
- try {
- Wikitty wikitty = wikittyService.restore(nodeId);
- if(checkExtension) {
- extNames = new HashSet<String>(wikitty.getExtensionNames());
- }
- businessEntity = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
-
- boolean goodType = true;
- if(checkExtension) {
- // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
- BusinessEntityWikitty businessEntityImpl = (BusinessEntityWikitty) businessEntity;
- Collection<WikittyExtension> staticExtensions = businessEntityImpl.getStaticExtensions();
-
- for (Iterator<WikittyExtension> iterator = staticExtensions.iterator(); iterator.hasNext() && goodType;) {
- WikittyExtension ext = iterator.next();
- if (!extNames.contains(ext.getName())) {
- // extension wanted by BusinessEntity (clazz)
- // is not in wikitty, then wikitty is not good type
- // for business
- goodType = false;
- }
- }
- }
-
- if(goodType) {
- Integer nodeCount = entry.getValue();
- convertedResult.put(businessEntity, nodeCount);
- }
- }
- return convertedResult;
- }
-
- public Wikitty restoreVersion(String wikittyId, String version) {
- Wikitty result = wikittyService.restoreVersion(wikittyId, version);
- return result;
- }
-
- public <E extends BusinessEntity> boolean hasType(Class<E> clazz, String wikittyId) {
- E result = null;
- HashSet<String> extNames = null;
- try {
- Wikitty wikitty = wikittyService.restore(wikittyId);
- if(wikitty == null) {
- return false;
- }
- extNames = new HashSet<String>(wikitty.getExtensionNames());
- result = WikittyUtil.newInstance(wikittyService, clazz, wikitty);
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl
- BusinessEntityWikitty b = (BusinessEntityWikitty)result;
- for (WikittyExtension ext : b.getStaticExtensions()) {
- if (!extNames.contains(ext.getName())) {
- // extension wanted by BusinessEntity (clazz)
- // is not in wikitty, then wikitty is not good type
- // for business
- return false;
- }
- }
- return true;
- }
-
- public void syncImportFromXml(String xml) {
- wikittyService.syncImportFromXml(xml);
- }
-
- public void syncImportFromUri(String uri) {
- wikittyService.syncImportFromUri(uri);
- }
-
- /**
- *
- * @param uri
- * @return job id
- */
- public String asyncImportFromUri(String uri) {
- String result = wikittyService.asyncImportFromUri(uri);
- return result;
- }
-
- /**
- *
- * @param e
- * @return job id
- */
- public <E extends BusinessEntityWikitty> String asyncExportAllByExample(E e) {
- Criteria criteria = Search.query(e.getWikitty()).criteria();
- String result = wikittyService.asyncExportAllByCriteria(criteria);
- return result;
- }
-
- /**
- *
- * @param e
- * @return xml string
- */
- public <E extends BusinessEntityWikitty> String syncExportAllByExample(E e) {
- Criteria criteria = Search.query(e.getWikitty()).criteria();
- String result = wikittyService.syncExportAllByCriteria(criteria);
- return result;
- }
-
- /**
- *
- * @param criteria
- * @return job id
- */
- public String asyncExportAllByCriteria(Criteria criteria) {
- String result = wikittyService.asyncExportAllByCriteria(criteria);
- return result;
- }
-
- /**
- *
- * @param criteria
- * @return xml string
- */
- public String syncExportAllByCriteria(Criteria criteria) {
- String result = wikittyService.syncExportAllByCriteria(criteria);
- return result;
- }
-
- /**
- * give the job state
- * @param jobId
- * @return
- */
- public JobState infoJob(String jobId) {
- JobState result = wikittyService.infoJob(jobId);
- return result;
- }
-
- /**
- * cancel job you must call freeJobResource
- * @param jobId
- */
- public void cancelJob(String jobId) {
- wikittyService.cancelJob(jobId);
- }
-
- /**
- * This method must be call when your job is done and you have result, or
- * when you call cancelJob
- * @param jobId
- */
- public void freeJobResource(String jobId) {
- wikittyService.freeJobResource(jobId);
- }
-
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittySearchEngin.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittySearchEngin.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittySearchEngin.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,83 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * WikittySearchEngin is used to abstract search engin used in WikittyService.
- *
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittySearchEngin {
-
- /**
- * Remove all data in index
- */
- public void clear(WikittyTransaction transaction);
-
- /**
- * Store wikitty in storage
- * @return information usefull for client side update data
- */
- public UpdateResponse store(WikittyTransaction transaction,
- Collection<Wikitty> wikitties);
-
- /**
- * Delete all object with idList argument. If id is not valid or don't exist.
- *
- * @param idList list of ids to delete
- * @return <code>UpdateResponse</code>>
- * @throws WikittyException
- */
- public UpdateResponse delete(WikittyTransaction transaction,
- Collection<String> idList) throws WikittyException;
-
- /**
- * Delete all object with idList argument. idList is directly passed to search engine
- * and is processed without any other kind of treatment.
- *
- * @param idList list of ids to delete
- * @return <code>UpdateResponse</code>>
- * @throws WikittyException
- */
- public void delete(Collection<String> idList) throws WikittyException;
-
- public PagedResult<String> findAllByCriteria(WikittyTransaction transaction, Criteria criteria);
-
- /**
- * Find count of child for a node
- * @param w
- * @return
- */
- public Integer findNodeCount(WikittyTransaction transaction, Wikitty w, Criteria filter);
-
- /**
- * Find all children ids with count for a node wikitty.
- * @param w
- * @return
- */
- public Map<String, Integer> findAllChildrenCount(WikittyTransaction transaction, Wikitty w, Criteria filter);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyService.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyService.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyService.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,304 +0,0 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittyService {
-
- /**
- * Use {@link Criteria.ALL_ELEMENTS}
- */
- @Deprecated
- public static final int ALL_ELEMENTS = -1;
-
- /*
- * Storage
- */
-
- /**
- * Use with caution : It will delete ALL indexes from search engine !
- * This operation should be disabled in production environment.
- */
- public void clear();
-
- /**
- * Manage Update and creation.
- *
- * @param wikitty contains an id all the time.
- */
- UpdateResponse store(Wikitty wikitty);
-
- /**
- * Manage Update and creation.
- *
- * @param wikitties list of wikitty to be persisted
- */
- UpdateResponse store(Collection<Wikitty> wikitties);
-
- /**
- * Manage Update and creation.
- *
- * @param wikitties list of wikitty to be persisted
- * @param disableAutoVersionIncrement boolean to disable version increment
- * on saved wikitty
- */
- UpdateResponse store(Collection<Wikitty> wikitties,
- boolean disableAutoVersionIncrement);
-
- /**
- * Return all extension id (ex: "extName[version])")
- * @return
- */
- List<String> getAllExtensionIds();
-
- /**
- * Return all extension id (ex: "extName[version])") where extensionName is required.
- * @return
- */
- List<String> getAllExtensionsRequires(String extensionName);
-
- /**
- * Manage Update and creation.
- *
- * @param wikitty extension to be persisted
- */
- UpdateResponse storeExtension(WikittyExtension ext);
-
- /**
- * Manage Update and creation.
- *
- * @param exts list of wikitty extension to be persisted
- */
- UpdateResponse storeExtension(Collection<WikittyExtension> exts);
-
- /**
- *
- * @param id
- * @return the corresponding object, exception if no such object found.
- */
- public WikittyExtension restoreExtension(String id);
-
- /**
- * Search extension with name in last version
- * @param name
- * @return the corresponding object, exception if no such object found.
- */
- public WikittyExtension restoreExtensionLastVersion(String name);
-
- /**
- *
- * @param id object id to restore
- * @return the corresponding object, or null if object doesn't exist or is
- * deleted
- */
- Wikitty restore( String id );
-
- /**
- *
- * @param id list of wikitty ids to restore
- * @return list of corresponding wikitty, if one id is not valid (no object
- * or deleted) this id is skip and result list have less elements than
- * collection argument
- */
- List<Wikitty> restore( List<String> id );
-
- /**
- * delete object if id exists
- * @param id object's id to remove
- */
- void delete(String id);
-
- /**
- * delete all object if id exists
- * @param ids object's ids to remove
- */
- void delete(Collection<String> ids);
-
- /**
- *
- * @param criteria
- * @return
- */
- public PagedResult<Wikitty> findAllByCriteria(Criteria criteria);
-
- /**
- * Fist lonely (or first one) wikitty object that match criteria, if no wikitty found return null
- * @param criteria
- * @return
- */
- public Wikitty findByCriteria(Criteria criteria);
-
- /*
- * Labelisation
- */
-
- /**
- * add new lable to the wikitty object
- * @param wikittyId id of wikitty object to add label
- * @param label label to add
- */
- void addLabel(String wikittyId, String label);
-
- /**
- *
- * @param label
- * @return
- */
- PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex);
-
- /**
- *
- * @param addLabel
- * @return
- */
- Wikitty findByLabel(String label);
-
- /**
- * retrieve all labels applied on a wikitty object
- * @param wikittyId
- * @return
- */
- Set<String> findAllAppliedLabels(String wikittyId);
-
-
- /*
- * Classification
- * Most of classification purpose is handle by extension mechanisms
- */
-
- /**
- * Retrieve all wikitties children (recursively) of an other one
- * Wikitty reference by wikittyId MUST include the 'Node' extension
- *
- * @param wikittyId
- * @return
- */
- Tree restoreTree(String wikittyId);
-
- /**
- * Retrieve wikitty node with count. Wikitty reference by wikittyId MUST
- * include the 'Node' extension
- * @param wikittyId
- * @return
- */
- Map.Entry<TreeNode, Integer> restoreNode(String wikittyId, Criteria filter);
-
- /**
- * Retrieve all wikitties children with count (no recursively) of an other one
- * Wikitty reference by wikittyId MUST include the 'Node' extension
- *
- * @param wikittyId
- * @return
- */
- Map<TreeNode, Integer> restoreChildren(String wikittyId, Criteria filter);
-
-
- /*
- * history
- */
-
- /**
- *
- */
- Wikitty restoreVersion(String wikittyId, String version);
-
- /*
- * admin
- */
-
- /**
- * Synchronise search engine with wikitty strorage engine, i.e. clear and
- * reindex all wikitties.
- * @return
- */
- UpdateResponse syncEngin();
-
- /*
- * Import / Export
- */
-
-
- /**
- * synchonous or not ?
- *
- * @param xmlData data to import
- */
- void syncImportFromXml(String xml);
-
- /**
- *
- * @param uri
- */
- void syncImportFromUri(String uri);
-
- /**
- *
- * @param uri
- * @return a jobID
- */
- String asyncImportFromUri(String uri);
-
- /**
- *
- * @param criteria
- * @return
- */
- String asyncExportAllByCriteria(Criteria criteria);
-
- /**
- *
- * @param criteria
- * @return
- */
- String syncExportAllByCriteria(Criteria criteria);
-
- /*
- * Job Management
- */
-
- /**
- *
- * @param jobId
- * @return
- */
- JobState infoJob(String jobId);
-
- /**
- *
- * @param jobId
- */
- void cancelJob(String jobId);
-
- /**
- * delete job info and all resources associated to that job (files or other ...)
- */
- void freeJobResource(String jobId);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyServiceInMemory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,418 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.search.And;
-import org.sharengo.wikitty.search.BinaryOperator;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.Restriction;
-
-/**
- * In memory implementation of WikittyService, currently used for test only
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyServiceInMemory extends AbstractWikittyService {
-
- //FIXME InMemory implementation is not usable for production. Must be reviewed.
- //FIXME The version increment must be done in 'prepare' method
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(WikittyServiceInMemory.class);
-
- public static class WikittyStorageInMemory implements WikittyStorage {
- protected Map<String, Wikitty> wikitties = new LinkedHashMap<String, Wikitty>();
-
- @Override
- public UpdateResponse store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
- UpdateResponse result = new UpdateResponse();
- for (Wikitty wikitty : wikitties) {
- wikitty.version = WikittyUtil.incrementMajorRevision(wikitty.version);
- wikitty.fieldDirty.clear();
- this.wikitties.put(wikitty.id, wikitty);
- result.addVersionUpdate(wikitty.id, wikitty.version);
- }
- return result;
- }
-
- @Override
- public UpdateResponse delete(WikittyTransaction transaction, Collection<String> idList) throws WikittyException {
- UpdateResponse result = new UpdateResponse();
- Date now = new Date();
- for (String id : idList) {
- Wikitty w = restore(transaction, id);
- w.setDeleteDate(now);
- result.addDeletionDateUpdate(id, now);
- }
- return result;
- }
-
- @Override
- public boolean exists(WikittyTransaction transaction, String id) {
- boolean result = wikitties.containsKey(id);
- return result;
- }
-
- @Override
- public boolean isDeleted(WikittyTransaction transaction, String id) {
- boolean result = false;
- Wikitty w = wikitties.get(id);
- if (w == null) {
- throw new WikittyException(String.format("No wikitty with id '%s'", id));
- } else {
- result = w.isDeleted();
- }
- return result;
- }
-
- @Override
- public Wikitty restore(WikittyTransaction transaction, String id, String ... fqFieldName) throws WikittyException {
- Wikitty result = wikitties.get(id);
- if (result.isDeleted()) {
- result = null;
- }
- if (result == null) {
- throw new WikittyException(String.format("No wikitty with id '%s'", id));
- }
- return result;
- }
-
- @Override
- public void scanWikitties(WikittyTransaction transaction, Scanner scanner) {
- Collection<Wikitty> all = wikitties.values();
- for (Wikitty wikitty : all) {
- scanner.scan(wikitty);
- }
- }
-
- @Override
- public void clear(WikittyTransaction transaction) {
- wikitties = new LinkedHashMap<String, Wikitty>();
- }
- }
-
- public static class WikittyExtensionStorageInMemory implements WikittyExtensionStorage {
- protected Map<String, WikittyExtension> extensions;
-
- public WikittyExtensionStorageInMemory() {
- this.extensions = new HashMap<String, WikittyExtension>();
- }
-
- @Override
- public UpdateResponse store(WikittyTransaction transaction,
- Collection<WikittyExtension> exts) throws WikittyException {
- for (WikittyExtension ext : exts) {
- extensions.put(ext.getId(), ext);
- }
- // nothing to do in UpdateResponse
- UpdateResponse result = new UpdateResponse();
- return result;
- }
-
- @Override
- public boolean exists(WikittyTransaction transaction, String id) {
- boolean result = extensions.containsKey(id);
- return result;
- }
-
- @Override
- public List<String> getAllExtensionIds(WikittyTransaction transaction) {
- List<String> result = new ArrayList<String>(extensions.keySet());
- return result;
- }
-
- @Override
- public List<String> getAllExtensionsRequires(WikittyTransaction transaction,
- String extensionName) {
- ArrayList<String> ids = new ArrayList<String>();
-
- Collection<WikittyExtension> values = extensions.values();
- if (values != null) {
- for (WikittyExtension extension : values) {
- if (extensionName.equals(extension.getRequires())) {
- ids.add(extension.getId());
- }
- }
- }
-
- return ids;
- }
-
- @Override
- public String getLastVersion(WikittyTransaction transaction, String extName) {
- String result = null;
- Set<String> extensionIds = extensions.keySet();
- for (String extensionId : extensionIds) {
- String extensionVersion = WikittyExtension.computeVersion(extensionId);
- if(extensionId.startsWith(extName) && (result == null ||
- WikittyUtil.versionGreaterThan(extensionVersion, result))) {
- result = extensionVersion;
- }
- }
- return result;
- }
-
- @Override
- public WikittyExtension restore(WikittyTransaction transaction, String name, String version)
- throws WikittyException {
- String id = WikittyExtension.computeId(name, version);
- WikittyExtension result = extensions.get(id);
- if (result == null) {
- throw new WikittyException(String.format("No extension with id '%s'", id));
- }
- return result;
- }
-
- @Override
- public void clear(WikittyTransaction transaction) {
- extensions = new HashMap<String, WikittyExtension>();
- }
- }
-
- public static class WikittySearchEnginInMemory implements WikittySearchEngin {
-
- WikittyStorageInMemory wikittyStorage;
-
- public WikittySearchEnginInMemory(WikittyStorageInMemory wikittyStorage) {
- this.wikittyStorage = wikittyStorage;
- }
-
- @Override
- public void clear(WikittyTransaction transaction) {
- // do nothing
- }
-
- @Override
- public UpdateResponse store(WikittyTransaction transaction,
- Collection<Wikitty> wikitties) {
- // do nothing
- return new UpdateResponse();
- }
-
- @Override
- public UpdateResponse delete(WikittyTransaction transaction,
- Collection<String> idList) throws WikittyException {
- // do nothing
- return new UpdateResponse();
- }
-
-
- @Override
- public void delete(Collection<String> idList) throws WikittyException {
- }
-
- public boolean checkRestriction( Restriction restriction, Wikitty w ) {
- if ( restriction instanceof BinaryOperator ) {
- BinaryOperator binOp = (BinaryOperator) restriction;
-
- if ( binOp.getElement().equals(Element.ELT_EXTENSION) ) {
- return w.hasExtension(binOp.getValue());
- }
-
- String fqfieldName = binOp.getElement().getName();
- if(Element.ELT_EXTENSION.equals(fqfieldName) ||
- Element.ELT_ID.equals(fqfieldName)) {
- return true; // FIXME: 20091104 jru manage search on extension and id
- }
- Object o = w.getFqField( fqfieldName );
- FieldType t = w.getFieldType(fqfieldName);
- Object value = t.getValidValue( binOp.getValue() );
- boolean checked = false;
- switch( restriction.getName() ) {
- case EQUALS:
- checked = value.equals(o);
- break;
- case LESS:
- checked = ((Comparable)o).compareTo( value ) < 0;
- break;
- case LESS_OR_EQUAL:
- checked = ((Comparable)o).compareTo( value ) <= 0;
- break;
- case GREATER:
- checked = ((Comparable)o).compareTo( value ) > 0;
- break;
- case GREATER_OR_EQUAL:
- checked = ((Comparable)o).compareTo( value ) >= 0;
- break;
- case NOT_EQUALS:
- checked = !value.equals(o);
- break;
- case ENDS_WITH:
- if (t.getType() != TYPE.STRING) {
- throw new WikittyException("Can't search for contents that 'ends with' on attribute type different of String. " +
- "Attribute " + fqfieldName + " is " + t.getType().name() );
- }
- checked = ((String) o).endsWith( (String) value );
- break;
- case STARTS_WITH:
- if (t.getType() != TYPE.STRING) {
- throw new WikittyException("Can't search for contents that 'starts with' on attribute type different of String. " +
- "Attribute " + fqfieldName + " is " + t.getType().name() );
- }
- checked = ((String) o).startsWith( (String) value );
- break;
- }
- return checked;
- } else if ( restriction instanceof And ) {
- And and = (And) restriction;
- for ( Restriction sub : and.getRestrictions() ) {
- if (!checkRestriction(sub, w)) {
- return false;
- }
- }
- return true;
- } else {
- throw new UnsupportedOperationException( restriction.getName() + " Search Not yet implemented");
- }
- }
-
- @Override
- public PagedResult<String> findAllByCriteria(WikittyTransaction transaction,
- Criteria criteria) {
- // throw new UnsupportedOperationException("Not supported yet.");
-
- int firstIndex = criteria.getFirstIndex();
- int endIndex = criteria.getEndIndex();
-
- List<String> ids = new LinkedList<String>();
- int currentIndex = 0;
-
- for( Entry<String, Wikitty> entry : wikittyStorage.wikitties.entrySet() ) {
- Wikitty w = entry.getValue();
- String id = entry.getKey();
- Restriction dto = criteria.getRestriction();
-
- if ( checkRestriction(dto, w) ) {
- currentIndex++;
- if (currentIndex > firstIndex) {
- ids.add(id);
- }
- if (endIndex >= 0 && currentIndex >= endIndex) {
- break;
- }
- }
-
- }
- return new PagedResult<String>(firstIndex, endIndex, criteria.getRestriction().toString(), null, ids );
- }
-
- @Override
- public Integer findNodeCount(WikittyTransaction transaction, Wikitty w, Criteria filter) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Map<String, Integer> findAllChildrenCount(WikittyTransaction transaction, Wikitty w, Criteria filter) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- }
-
- /**
- * if persitenceFile is not null, serialize all data to disk during store
- * operation and the file is reloaded during init
- */
- protected File persitenceFile = null;
-
- protected WikittyStorage wikittyStorage;
- protected WikittyExtensionStorage extensionStorage;
- protected WikittySearchEngin searchEngin;
-
- public WikittyServiceInMemory() {
- extensionStorage = new WikittyExtensionStorageInMemory();
- wikittyStorage = new WikittyStorageInMemory();
- searchEngin = new WikittySearchEnginInMemory((WikittyStorageInMemory)wikittyStorage);
- }
-
- public WikittyServiceInMemory(File persitenceFile) {
- this();
- this.persitenceFile = persitenceFile;
- if (persitenceFile != null && persitenceFile.exists()) {
- try {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(
- persitenceFile));
- ((WikittyExtensionStorageInMemory)extensionStorage).extensions = (Map) in.readObject();
- ((WikittyStorageInMemory)wikittyStorage).wikitties = (Map) in.readObject();
- in.close();
- } catch (Exception eee) {
- log.error("Can't read data file " + persitenceFile, eee);
- }
- }
- }
-
- @Override
- protected WikittyStorage getWikittyStorage() {
- return wikittyStorage;
- }
-
- @Override
- protected WikittyExtensionStorage getExtensionStorage() {
- return extensionStorage;
- }
-
- @Override
- protected WikittySearchEngin getSearchEngin() {
- return searchEngin;
- }
-
- @Override
- protected void finalize() throws Throwable {
- saveToPersistenceFile();
-
- super.finalize();
- }
-
- public void saveToPersistenceFile() {
- if (persitenceFile != null) {
- try {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
- persitenceFile));
- out.writeObject(((WikittyExtensionStorageInMemory)extensionStorage).extensions);
- out.writeObject(((WikittyStorageInMemory)wikittyStorage).wikitties);
- out.close();
- } catch (IOException eee) {
- log.error("Can't write data file " + persitenceFile, eee);
- }
- }
- }
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyStorage.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyStorage.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,90 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * WikittyStorage is used to abstract data and extension storage in WikittyService.
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittyStorage {
-
- /**
- * Store wikitty in storage
- * @return information usefull for client side update data
- */
- public UpdateResponse store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement);
-
- /**
- * Return true if id exists in storage
- * @param id
- * @return
- */
- public boolean exists(WikittyTransaction transaction, String id);
-
- /**
- * Return true if wikitty object with this id are marked deleted
- * @param id
- * @return
- */
- public boolean isDeleted(WikittyTransaction transaction, String id);
-
- /**
- * Restore list of wikitty object, if wikitty not found an exception is throw
- * @param id list of wikitty id
- * @param fqFieldName list of field that must be loaded, other fields
- * can be not loaded
- * @return
- */
- public Wikitty restore(WikittyTransaction transaction, String id,
- String ... fqFieldName) throws WikittyException;
-
- /**
- * Delete all object with id argument. If id is not valid or don't exist
- * throw an exception
- * @param idList
- * @return
- */
- public UpdateResponse delete(WikittyTransaction transaction, Collection<String> idList) throws WikittyException;
-
- /**
- * Scan all wikitties with specific scanner, even if the wikitty is deleted
- * @param scanner scanner
- */
- void scanWikitties(WikittyTransaction transaction, Scanner scanner);
-
- /**
- * Call each time wikitty is scan
- */
- public static interface Scanner {
- void scan(Wikitty wikitty);
- }
-
- /**
- * Remove all wikitty
- */
- public void clear(WikittyTransaction transaction);
-
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyTransaction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyTransaction.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyTransaction.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,75 +0,0 @@
-package org.sharengo.wikitty;
-
-import java.util.HashMap;
-import java.util.Map;
-import javax.transaction.Status;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/***
- * Manage JTA transaction. You can store some information during execution.
- */
-public class WikittyTransaction {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(AbstractWikittyService.class);
-
- protected Map<Object, Object> tagValues;
-
- public WikittyTransaction() {
- tagValues = new HashMap<Object, Object>();
- }
-
- public Object getTagValue(Object tag) {
- return tagValues.get(tag);
- }
-
- public void setTagValue(Object tag, Object value) {
- tagValues.put(tag, value);
- }
-
- public UserTransaction getUserTransaction() {
- return com.arjuna.ats.jta.UserTransaction.userTransaction();
- }
-
- public TransactionManager getTransactionManager() {
- return com.arjuna.ats.jta.TransactionManager.transactionManager();
- }
-
- public void begin() {
- UserTransaction userTransaction = getUserTransaction();
- try {
- log.debug("Begin transaction");
- userTransaction.setTransactionTimeout(3600); // FIXME: jru 20100115 error in service if call during lot of times
- userTransaction.begin();
- } catch (Exception eee) {
- throw new WikittyException("Error on begin JTA transaction", eee);
- }
- }
-
- public void commit() {
-
- UserTransaction userTransaction = getUserTransaction();
- try {
- log.debug("Commit transaction");
- userTransaction.commit();
- } catch (Exception eee) {
- throw new WikittyException("Error on commit JTA transaction", eee);
- }
- }
-
- public void rollback() {
- UserTransaction userTransaction = getUserTransaction();
- try {
- if(userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION
- && userTransaction.getStatus() != Status.STATUS_UNKNOWN) {
- log.debug("Rollback transaction");
- userTransaction.rollback();
- }
- } catch (Exception eee) {
- throw new WikittyException("Error on roolback JTA transaction", eee);
- }
- }
-}
Deleted: trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyUtil.java 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/java/org/sharengo/wikitty/WikittyUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,897 +0,0 @@
-/* *##%
- * Copyright (c) 2009 poussin. All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
-package org.sharengo.wikitty;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.text.CharacterIterator;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.text.StringCharacterIterator;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
-import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * Util static method for wikitty
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$ by : $Author$
- */
-public class WikittyUtil {
-
- public static final String DEFAULT_VERSION = "0.0";
-
- public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(WikittyUtil.class);
-
- /** used to format date for solr */
- protected static TimeZone CANONICAL_TZ = TimeZone.getTimeZone("UTC");
- protected static final Locale CANONICAL_LOCALE = Locale.US;
-
- static final public SimpleDateFormat solrDateFormat = new SolrDateFormat();
-
- public static class SolrDateFormat extends SimpleDateFormat {
- public SolrDateFormat() {
- super(DATE_FORMAT, CANONICAL_LOCALE);
- setTimeZone(CANONICAL_TZ);
- }
- }
-
- /** All date format parser used to convert string to date */
- static final protected DateFormat[] parserDateFormats = new DateFormat[] {
- solrDateFormat, DateFormat.getInstance(),
- // TODO poussin 20090813: add other date syntax
- };
-
- // TODO poussin 20090902 use spring configuration to add mapping in this
- // variable
- /** contains mapping between interface and concret class that must be used */
- static public Map<Class, Class> interfaceToClass = new HashMap<Class, Class>();
-
- /**
- * Pattern for tag value: tag="value" or tag=value. value can contains '"'
- */
- static protected String tagValuesPatternString = "(\\w*)=(\".*?(?<!\\\\)\"|[^(\\p{Space})]+)";
- static protected Pattern tagValuesPattern = Pattern.compile(
- tagValuesPatternString, Pattern.DOTALL);
- /**
- * Field pattern parser <li>group 1: type (string) <li>group 2: name
- * (string) <li>group 3: lower bound (number) can be null <li>group 4: upper
- * bound (number) can be null, mutualy exclusif with group 5 <li>group 5:
- * upper bound (n or *) can be null <li>group 6: unique can be null <li>
- * group 7: not null can be null <li>group 8: all tag/value (toto=titi
- * tutu=tata;lala tata="truc bidulle")
- */
- static protected Pattern fieldPattern = Pattern
- .compile(
- "\\s*(\\w+)\\s+(\\w+)(?:\\s*\\[(\\d+)-(?:(\\d+)|([\\*n]))\\])?(?:\\s+(unique))?(?:\\s+(not null))?((?:\\s+"
- + tagValuesPatternString + ")*)", Pattern.DOTALL);
-
- /**
- * parse FieldType definition and return field name. All field information
- * are stored in fieldType object passed in argument
- *
- * @param def
- * string field definition
- * @param fieldType
- * object used to put parsed information
- * @return field name parsed in definition
- */
- static public String parseField(String def, FieldType fieldType) {
- Matcher match = fieldPattern.matcher(def);
- if (match.matches()) {
- fieldType.type = FieldType.TYPE.parse(match.group(1));
- String name = match.group(2);
- String lower = match.group(3);
- if (lower != null) {
- fieldType.lowerBound = Integer.parseInt(lower);
- }
-
- String upper = match.group(4);
- if (upper != null) {
- fieldType.upperBound = Integer.parseInt(upper);
- }
- String noupper = match.group(5);
- if (noupper != null) {
- fieldType.upperBound = FieldType.NOLIMIT;
- }
- String uniqueString = match.group(6);
- fieldType.unique = uniqueString != null;
-
- String notNullString = match.group(7);
- fieldType.notNull = notNullString != null;
-
- String tagValues = match.group(8);
- Map<String, String> tagValuesMap = tagValuesToMap(tagValues);
- fieldType.setTagValues(tagValuesMap);
-
- return name;
- } else {
- throw new WikittyException(String.format(
- "Bad FieldType definition '%s'", def));
- }
- }
-
-
- /**
- * Serialize tagValues to string
- *
- * @param tagValues tagValues as map
- * @return string represent tagValues
- */
- public static String tagValuesToString(Map<String, String> tagValues) {
- String result = "";
- if(tagValues != null) {
- for (String tag : tagValues.keySet()) {
- String value = tagValues.get(tag);
- // replace " in string with \"
- value = value.replaceAll("\"", "\\\\\"");
- // quote value with "..."
- result += " " + tag + "=\"" + tagValues.get(tag) +"\"";
- }
- }
- return result;
- }
-
- /**
- * Deserialize tagValues to map
- *
- * @param tagValues tagValues as string
- * @return map represent tagValues
- */
- public static Map<String, String> tagValuesToMap(String tagValues) {
- Map<String, String> result = new HashMap<String, String>();
- if (tagValues != null) {
- Matcher matchTagValues = tagValuesPattern.matcher(tagValues);
- while (matchTagValues.find()) {
- String tag = matchTagValues.group(1);
- String value = matchTagValues.group(2);
- if (value.startsWith("\"") && value.endsWith("\"")) {
- // delete start and end "
- value = value.substring(1, value.length() - 1);
- // if value is between ", then inners " are quoted
- value = value.replaceAll("\\\\\"", "\"");
- }
- result.put(tag, value);
- }
- }
- return result;
- }
-
- /**
- * Create map from string representation
- *
- * ex: "String name", "Wikitty children[0-*]"
- *
- * @param definitions
- * @return
- */
- public static LinkedHashMap<String, FieldType> buildFieldMapExtension(
- String... definitions) {
- LinkedHashMap<String, FieldType> result = new LinkedHashMap<String, FieldType>();
- for (String def : definitions) {
- FieldType fieldType = new FieldType();
- String name = WikittyUtil.parseField(def, fieldType);
- log.debug("parse " + def + " => " + fieldType.toDefinition(name));
- result.put(name, fieldType);
- }
- return result;
- }
-
- /**
- * if version if null return 0 else version If version is not in format
- * <major>.<minor>, ".0" is added to the version
- *
- * @param version
- * @return the normalized version
- */
- public static String normalizeVersion(String version) {
- if (version == null || "".equals(version)) {
- version = "0";
- }
- if (version.indexOf(".") == -1) {
- version += ".0";
- }
- return version;
- }
-
- /**
- * return true if v1 and v2 are egals 1.2.0 et 1.2 ne sont pas egaux
- */
- public static boolean versionEquals(String v1, String v2) {
- if (v1 == null || v2 == null) {
- return false;
- }
- return normalizeVersion(v1).equals(normalizeVersion(v2));
- }
-
- /**
- * return true if v1 greater than v2
- *
- * @param v1
- * @param v2
- * @return
- */
- public static boolean versionGreaterThan(String v1, String v2) {
- if (v1 != null && v2 == null) {
- return true;
- }
- if (v1 == null) {
- return false;
- }
- String[] v1s = normalizeVersion(v1).split("\\.");
- String[] v2s = normalizeVersion(v2).split("\\.");
- int minlen = Math.min(v1s.length, v2s.length);
- for (int i = 0; i < minlen; i++) {
- if (!v1s[i].equals(v2s[i])) {
- return Integer.parseInt(v1s[i]) > Integer.parseInt(v2s[i]);
- }
- }
- // si on est ici c que tout les nombres sont v1[i] = v2[i]
- return v1s.length > v2s.length;
- }
-
- /**
- * increment minor version.
- *
- * @param version
- * version as 3.1 where 1 is minor and 3 major
- * @return incremented minor number (3.1 -> 3.2)
- */
- static public String incrementMinorRevision(String v) {
- String result;
-
- if (v == null || "".equals(v)) {
- result = "0.1";
- } else {
- v = v.trim();
- String[] mm = v.split("\\.");
- if (mm.length == 1) {
- result = v + ".1";
- } else {
- int i = Integer.parseInt(mm[1]) + 1;
- result = mm[0] + "." + i;
- }
- }
- return result;
- }
-
- /**
- * increment major version.
- *
- * @param version
- * version as 3.2 where 2 is minor and 3 major
- * @return incremented major number and reset minor number (3.2 -> 4.0)
- */
- static public String incrementMajorRevision(String v) {
- String result;
-
- if (v == null || "".equals(v)) {
- result = "1.0";
- } else {
- v = v.trim();
- String[] mm = v.split("\\.");
- int i = Integer.parseInt(mm[0]) + 1;
- result = i + ".0";
- }
- return result;
- }
-
- // /**
- // *
- // * @param value null and empty string are casted to '0' int value.
- // * @throws WikittyException on NumberFormatException or if value object
- // can't be casted to int.
- // */
- // static public int toInt(Object value) throws WikittyException {
- // int result = 0;
- // if (value == null || value.equals("") ) {
- // result = 0; // default to 0
- // } else if (value instanceof Number) {
- // result = ((Number) value).intValue();
- // } else {
- // // try to convert to int
- // try {
- // result = Integer.parseInt(value.toString());
- // } catch (NumberFormatException eee) {
- // throw new WikittyException(String.format(
- // "Can't convert value '%s' to int", getClass(value)), eee);
- // }
- // }
- // return result;
- // }
- //
- // static public float toFloat(Object value) throws WikittyException {
- // float result = 0;
- // if (value == null) {
- // result = 0; // default to 0
- // } else if (value instanceof Number) {
- // result = ((Number) value).floatValue();
- // } else {
- // // try to convert to float
- // try {
- // result = Float.parseFloat(value.toString());
- // } catch (NumberFormatException eee) {
- // throw new WikittyException(String.format(
- // "Can't convert value '%s' to float", getClass(value)), eee);
- // }
- // }
- // return result;
- // }
-
- /**
- *
- * @param value
- * null and empty string are casted to '0' value.
- * @throws WikittyException
- * on NumberFormatException or if value object can't be casted
- * to number.
- */
- static public BigDecimal toBigDecimal(Object value) {
- BigDecimal result = null;
- if (value == null) {
- result = new BigDecimal(0); // default to 0
- } else if (value instanceof BigDecimal) {
- result = (BigDecimal) value;
- } else {
- try {
- result = new BigDecimal(value.toString());
- } catch (NumberFormatException eee) {
- throw new WikittyException(
- String.format("Can't convert value '%s' to numeric",
- getClass(value)), eee);
- }
- }
- return result;
- }
-
- /**
- * Convert object to boolean: - null => false - 0 => false - numeric => true
- * - object.toString() == false => false - other => true
- *
- * @param value
- * @return
- */
- static public boolean toBoolean(Object value) {
- boolean result = false;
- if (value != null) {
- if (value instanceof Boolean) {
- result = (Boolean) value;
- } else if (value instanceof Number) {
- result = !((Number) value).equals(0);
- } else {
- // try to convert to Boolean
- result = !"false".equalsIgnoreCase(value.toString());
- }
- }
- return result;
- }
-
- static public String toString(Object value) {
- String result = null;
- if (value != null) {
- if (value instanceof String) {
- result = (String) value;
- } else if (value instanceof Wikitty) {
- result = ((Wikitty) value).getId();
- } else if (value instanceof BusinessEntity) {
- result = ((BusinessEntity) value).getWikittyId();
- } else if (value instanceof Date) {
- result = solrDateFormat.format((Date) value);
- } else {
- // try to convert to String
- result = value.toString();
- }
- }
- return result;
- }
-
- static public Date toDate(Object value) {
- Date result = null;
- if (value != null) {
- if (value instanceof Date) {
- result = (Date) value;
- } else {
- // try to convert to Date
- try {
- result = solrDateFormat.parse(value.toString());
- } catch (ParseException eee) {
- log.debug("Can't parse date, i try with next parser", eee);
- }
-
- if (result == null) {
- throw new WikittyException(String.format(
- "Can't convert value '%s' of type '%s' to Date",
- value, getClass(value)));
- }
- }
- }
- return result;
- }
-
- /**
- * return wikitty id and not wikitty objet because this method can be call
- * on server or client side and it's better to keep conversion between id
- * and objet to the caller
- *
- * @param value
- * @return id of wikitty object or null
- * @throws org.sharengo.wikitty.WikittyException
- */
- static public String toWikitty(Object value) {
- String result = null;
- if (value != null) {
- if (value instanceof String) {
- result = (String) value;
- } else if (value instanceof Wikitty) {
- result = ((Wikitty) value).getId();
- } else if (value instanceof BusinessEntity) {
- result = ((BusinessEntity) value).getWikittyId();
- } else {
- // try to convert to String
- result = value.toString();
- }
- }
- return result;
- }
-
- /**
- *
- * @param <E>
- * @param clazz
- * @return unmodifiable list
- */
- static public <E> List<E> toList(Object value, Class<E> clazz) {
- try {
- List<E> result = (List<E>) value;
- if (result != null) {
- result = Collections.unmodifiableList(result);
- }
- return result;
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't convert value '%s' to list", getClass(value)), eee);
- }
- }
-
- /**
- * Convert object o for indexation
- *
- * @param field
- * field description
- * @param o
- * field value
- * @return solr representation
- */
- static public String toString(FieldType field, Object o) {
- String result = null;
- if (o != null) {
- switch (field.getType()) {
- case DATE:
- // Date date = (Date)o;
- result = (o instanceof String) ? (String) o
- : WikittyUtil.solrDateFormat.format((Date) o);
- break;
- default:
- result = WikittyUtil.toString(o);
- break;
- }
- }
- return result;
- }
-
-
- /**
- * convert string field representation to correct value type
- *
- * @param field
- * field description
- * @param s
- * string value
- * @return object in type of field
- */
- static public Object fromString(FieldType field, String s) {
- Object result = null;
- switch (field.getType()) {
- case BOOLEAN:
- result = WikittyUtil.toBoolean(s);
- break;
- case DATE:
- result = WikittyUtil.toDate(s);
- break;
- case NUMERIC:
- result = WikittyUtil.toBigDecimal(s);
- break;
- default:
- result = s;
- break;
- }
- return result;
- }
-
- /**
- * return class of argument, if argument is null, return null
- *
- * @param value
- * @return class of value or null
- */
- static public Class getClass(Object value) {
- Class result = null;
- if (value != null) {
- result = value.getClass();
- }
- return result;
- }
-
- /**
- * Create new instance of WikittyDto without Wikitty object passed in
- * argument. If arguement is Interface try to add 'Impl' to find
- * instanciable class.
- * <p>
- * clazz parameter must be child of WikittyDto or business interface
- *
- * @param clazz
- * class of the new instance
- * @return
- */
- static public <E extends BusinessEntity> E newInstance(Class<E> clazz) {
- try {
- Class clazzInstanciable = clazz;
- if (clazzInstanciable.isInterface()) {
- log
- .debug(String
- .format(
- "Argument '%s' is interface looking for implementation",
- clazzInstanciable.getName()));
- // looking for implementation of this interface
- if (interfaceToClass.containsKey(clazz)) {
- clazzInstanciable = interfaceToClass.get(clazz);
- } else {
- // default use xxxImpl.class
- clazzInstanciable = clazz.forName(clazz.getName() + "Impl");
- }
- }
-
- if (!BusinessEntityWikitty.class
- .isAssignableFrom(clazzInstanciable)) {
- throw new WikittyException(String.format(
- "Your class '%s' don't extends WikittyDto", clazz
- .getName()));
- }
-
- E result = (E) clazzInstanciable.newInstance();
- return result;
-
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Create new instance of WikittyDto with Wikitty object passed in argument.
- * If arguement is Interface try to add 'Impl' to find instanciable class.
- * <p>
- * clazz parameter must be child of WikittyDto or business interface
- *
- * @param clazz
- * class of the new instance
- * @param w
- * wikitty object to use internaly for in new instance
- * @return
- */
- // E extends BeanDto to permit business interface as parameter
- static public <E extends BusinessEntity> E newInstance(
- WikittyService wikittyService, Class<E> clazz, Wikitty w) {
- try {
- Class clazzInstanciable = clazz;
- if (clazzInstanciable.isInterface()) {
- log
- .debug(String
- .format(
- "Argument '%s' is interface looking for implementation",
- clazzInstanciable.getName()));
- // looking for implementation of this interface
- if (interfaceToClass.containsKey(clazz)) {
- clazzInstanciable = interfaceToClass.get(clazz);
- } else {
- // default use xxxImpl.class
- clazzInstanciable = clazz.forName(clazz.getName() + "Impl");
- }
- }
-
- if (!BusinessEntityWikitty.class
- .isAssignableFrom(clazzInstanciable)) {
- throw new WikittyException(String.format(
- "Your class '%s' don't extends WikittyDto", clazz
- .getName()));
- }
-
- E result = null;
- if (w != null) {
- try {
- // try to find constructor with wikitty argument
- Constructor cons = clazzInstanciable
- .getConstructor(Wikitty.class);
- Object[] parms = { null };
- result = (E) cons.newInstance(parms);
-
- BusinessEntityWikitty bean = (BusinessEntityWikitty) result;
- checkExtensionVersion(wikittyService, w, bean);
- bean.setWikitty(w);
-
- } catch (NoSuchMethodException noerror) {
- log.debug(String.format(
- "Can't find constructor with wikitty arguement in '%s',"
- + "we try with setWikitty method",
- clazzInstanciable.getName()), noerror);
- }
- }
-
- return result;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
- /**
- * Check extension default, i.e. if bean contain a extension with a great
- * version as in wikitty. In this case the extension is stored in last
- * version and wikitty it is restored again. The upgrade data is during the
- * restoration.
- *
- * @param wikittyService
- * @param wikitty
- * @param entity
- * @return
- */
- static public Wikitty checkExtensionVersion(WikittyService wikittyService,
- Wikitty wikitty, BusinessEntityWikitty entity) {
-
- Wikitty result = wikitty;
- boolean upgradeData = false;
-
- Collection<WikittyExtension> extensions = entity.getStaticExtensions();
- for (WikittyExtension ext : extensions) {
-
- String extName = ext.getName();
- if (wikitty.hasExtension(extName)) {
-
- WikittyExtension oldExt = wikitty.getExtension(extName);
- String newVersion = ext.getVersion();
- String oldVersion = oldExt.getVersion();
-
- if (WikittyUtil.versionGreaterThan(newVersion, oldVersion)) {
- wikittyService.storeExtension(Arrays.asList(ext));
- upgradeData = true;
- }
- }
- }
-
- if (upgradeData) {
- String wikittyId = wikitty.getId();
- result = wikittyService.restore(wikittyId);
- }
-
- return result;
- }
-
- /**
- * Try to cast obj to class passed in arguement
- *
- * @param obj
- * object to cast
- * @param clazz
- * new type of object
- * @return the same object but casted to class wanted, except for primitif
- * where is new object if obj BigDecimal
- */
- public static <E> E cast(Object obj, Class<E> clazz) {
- E result = null;
- if (obj != null) {
- if (clazz.isAssignableFrom(obj.getClass())) {
- result = clazz.cast(obj);
- } else if (obj instanceof BigDecimal) {
- BigDecimal bd = (BigDecimal) obj;
- if (clazz == int.class || clazz == Integer.class) {
- result = clazz.cast(bd.intValue());
- } else if (clazz == float.class || clazz == Float.class) {
- result = clazz.cast(bd.floatValue());
- }
- }
- if (result == null) {
- throw new WikittyException("Unable to cast from '"
- + obj.getClass().getName() + "' to " + clazz.getName());
- }
- }
- return result;
- }
-
- public static Wikitty beanToWikitty(BusinessEntity bean) {
- Wikitty result;
- if (bean instanceof BusinessEntityWikitty) {
- BusinessEntityWikitty b = (BusinessEntityWikitty) bean;
- result = b.getWikitty();
- } else if (bean instanceof BusinessEntityBean) {
- BusinessEntityBean b = (BusinessEntityBean) bean;
- result = WikittyUtil.beanToWikitty(b);
- } else {
- throw new IllegalArgumentException(String.format(
- "This BusinessEntity implementation is not supported: %s",
- bean.getClass().getName()));
- }
- return result;
- }
-
- public static Wikitty beanToWikitty(BusinessEntityBean bean) {
- try {
- // TODO poussin 20090910 for now, we force version change, but it's
- // better if we modify version in bean we field is set
- Wikitty result = new Wikitty(bean.getWikittyId());
- // prevent BusinessEntity with null id (during store call for
- // creation)
- bean.id = result.id;
- result.version = bean.getWikittyVersion();
-
- // add execution defined extension in wikitty
- for (String extName : bean.getExtensionNames()) {
- for (String fieldName : bean.getExtensionFields(extName)) {
- Object value = bean.getField(extName, fieldName);
- result.setField(extName, fieldName, value);
- }
- }
-
- // add development time defined extension in wikitty
- Field[] fields = bean.getClass().getFields();
- for (Field field : fields) {
- Object value = field.get(bean);
- String fqfieldName = field.getName();
- // fieldName use $ as separator between extension name and field
- // name
- fqfieldName = fqfieldName.replace('$', '.');
- result.setFqField(fqfieldName, value);
- }
- return result;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
- public static <E extends BusinessEntityBean, F extends BusinessEntityWikitty> E wikittyToBean(
- Class<E> clazz, F dto) {
- E result = wikittyToBean(clazz, dto.getWikitty());
- return result;
- }
-
- /**
- * Convert WikittyDto (dto that encapsulate Wikitty) to BeanDto (dto without
- * internaly wikitty)
- *
- * @param clazz
- * target object clazz
- * @param w
- * source object
- * @return
- */
- public static <E extends BusinessEntityBean> E wikittyToBean(
- Class<E> clazz, Wikitty w) {
- try {
- E result = clazz.newInstance();
- result.id = w.id;
- result.version = w.version;
- result.extensions = new LinkedHashMap<String, WikittyExtension>(
- w.extensions);
-
- Field[] fields = clazz.getFields();
- Map<String, Field> allFields = new HashMap<String, Field>();
- for (Field field : fields) {
- allFields.put(field.getName(), field);
- }
-
- for (String extName : result.extensions.keySet()) {
- WikittyExtension ext = result.extensions.get(extName);
- for (String fieldName : ext.getFieldNames()) {
- String key = extName + "$" + fieldName;
- Field field = allFields.get(key);
- if (field != null) {
- Class type = field.getType();
- if (Integer.TYPE.isAssignableFrom(type)) {
- int value = w.getFieldAsInt(extName, fieldName);
- field.setInt(result, value);
- } else if (Boolean.TYPE.isAssignableFrom(type)) {
- boolean value = w.getFieldAsBoolean(extName,
- fieldName);
- field.setBoolean(result, value);
- } else if (Date.class.isAssignableFrom(type)) {
- Date value = w.getFieldAsDate(extName, fieldName);
- field.set(result, value);
- } else if (Double.TYPE.isAssignableFrom(type)) {
- double value = w.getFieldAsDouble(extName,
- fieldName);
- field.setDouble(result, value);
- } else if (Float.TYPE.isAssignableFrom(type)) {
- float value = w.getFieldAsFloat(extName, fieldName);
- field.setFloat(result, value);
- } else if (List.class.isAssignableFrom(type)) {
- List value = w.getFieldAsList(extName, fieldName,
- clazz);
- field.set(result, value);
- } else if (Long.TYPE.isAssignableFrom(type)) {
- long value = w.getFieldAsLong(extName, fieldName);
- field.setLong(result, value);
- } else if (Set.class.isAssignableFrom(type)) {
- Set value = w.getFieldAsSet(extName, fieldName,
- clazz);
- field.set(result, value);
- } else if (String.class.isAssignableFrom(type)) {
- String value = w.getFieldAsString(extName,
- fieldName);
- field.set(result, value);
- } else {
- throw new WikittyException(String.format(
- "Can't convert field for '%s' because"
- + " unkonw field type '%s'", clazz,
- field));
- }
- } else {
- Object value = w.getFieldAsObject(extName, fieldName);
- result.setField(extName, fieldName, value);
- }
- }
- }
-
- return result;
- } catch (Exception eee) {
- throw new WikittyException(eee);
- }
- }
-
- // private static BASE64Encoder enc = new BASE64Encoder();
- public static String genUID() {
- return UUID.randomUUID().toString();
- /*
- * we can gain 10 chars per ID on applying a base64 on the UID. long
- * mostSignificant = uid.getMostSignificantBits(); long leastSignificant
- * = uid.getLeastSignificantBits(); long current = mostSignificant;
- * byte[] b = new byte[16]; for ( int i = 0; i < 16; i++ ) { b[i] =
- * (byte) (current & 0xff); current = current >> 8; if ( i == 7 )
- * current = leastSignificant; } return enc.encode(b);
- */
- }
-}
Modified: trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-api.uml
===================================================================
--- trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-api.uml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/main/uml/wikitty-api/wikitty-api.uml 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:WikittyProfile="http:///schemas/WikittyProfile/_jQsKkIwQEd6QHYJLLUbpqw/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/WikittyProfile/_jQsKkIwQEd6QHYJLLUbpqw/0 ../wikitty-profile/WikittyProfile.uml#_jQsxoYwQEd6QHYJLLUbpqw">
<uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA">
- <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.sharengo.wikitty">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.nuiton.wikitty">
<packagedElement xmi:type="uml:Class" xmi:id="_7vSlAIygEd6AV7_7yPcuUg" name="TreeNode">
<ownedAttribute xmi:id="_I_f20IyhEd6AV7_7yPcuUg" name="name">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/AbstractTestApi.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/AbstractTestApi.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/AbstractTestApi.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,11 +1,11 @@
-package org.sharengo.wikitty.test.api;
+package org.nuiton.wikitty.test.api;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.internal.runners.JUnit4ClassRunner;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.WikittyServiceInMemory;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyServiceInMemory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/CommonTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/CommonTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/CommonTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.api;
+package org.nuiton.wikitty.test.api;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
@@ -19,14 +19,14 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.Test;
-import org.sharengo.wikitty.ExtensionFactory;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyUtil;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.test.conform.StorageTest;
/**
* Test Wikitty, Extensions, Field and FieldType through the Wikitty Object
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/ExtensionFactoryTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/ExtensionFactoryTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/ExtensionFactoryTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,13 +1,13 @@
-package org.sharengo.wikitty.test.api;
+package org.nuiton.wikitty.test.api;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import org.junit.Test;
-import org.sharengo.wikitty.ExtensionFactory;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.FieldType.TYPE;
public class ExtensionFactoryTest extends AbstractTestApi {
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/SearchCriteriaTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/SearchCriteriaTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/SearchCriteriaTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.api;
+package org.nuiton.wikitty.test.api;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
@@ -7,16 +7,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.search.And;
-import org.sharengo.wikitty.search.AssociatedRestriction;
-import org.sharengo.wikitty.search.Between;
-import org.sharengo.wikitty.search.BinaryOperator;
-import org.sharengo.wikitty.search.Equals;
-import org.sharengo.wikitty.search.Or;
-import org.sharengo.wikitty.search.Restriction;
-import org.sharengo.wikitty.search.RestrictionName;
-import org.sharengo.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.search.And;
+import org.nuiton.wikitty.search.AssociatedRestriction;
+import org.nuiton.wikitty.search.Between;
+import org.nuiton.wikitty.search.BinaryOperator;
+import org.nuiton.wikitty.search.Equals;
+import org.nuiton.wikitty.search.Or;
+import org.nuiton.wikitty.search.Restriction;
+import org.nuiton.wikitty.search.RestrictionName;
+import org.nuiton.wikitty.search.Search;
public class SearchCriteriaTest extends AbstractTestApi {
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/WikittyUtilTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/api/WikittyUtilTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/api/WikittyUtilTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-package org.sharengo.wikitty.test.api;
+package org.nuiton.wikitty.test.api;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
@@ -29,14 +29,14 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.LabelBean;
-import org.sharengo.wikitty.TreeNodeImpl;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.Label;
-import org.sharengo.wikitty.TreeNode;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.LabelBean;
+import org.nuiton.wikitty.TreeNodeImpl;
+import org.nuiton.wikitty.Label;
+import org.nuiton.wikitty.TreeNode;
/**
*
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/AbstractTestConformance.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/AbstractTestConformance.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/AbstractTestConformance.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.conform;
+package org.nuiton.wikitty.test.conform;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -12,12 +12,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.WikittyUtil;
-import org.sharengo.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/ImportExportTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/ImportExportTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/ImportExportTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.conform;
+package org.nuiton.wikitty.test.conform;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
@@ -17,10 +17,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/PerformanceTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/PerformanceTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/PerformanceTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.test.conform;
+package org.nuiton.wikitty.test.conform;
import java.util.ArrayList;
import java.util.Collection;
@@ -24,10 +24,10 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyService;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/SearchTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/SearchTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/SearchTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.conform;
+package org.nuiton.wikitty.test.conform;
import static junit.framework.Assert.assertEquals;
@@ -6,13 +6,13 @@
import java.util.List;
import org.junit.Test;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.ExtensionFactory;
-import org.sharengo.wikitty.PagedResult;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.Search;
public class SearchTest extends AbstractTestConformance {
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/StorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/conform/StorageTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/conform/StorageTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.conform;
+package org.nuiton.wikitty.test.conform;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
@@ -22,18 +22,18 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
-import org.sharengo.wikitty.TreeNodeImpl;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.PagedResult;
-import org.sharengo.wikitty.Tree;
-import org.sharengo.wikitty.TreeNode;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.WikittyUtil;
-import org.sharengo.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.Tree;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.TreeNodeImpl;
+import org.nuiton.wikitty.TreeNode;
public class StorageTest extends AbstractTestConformance {
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/memory/InMemoryStorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/sharengo/wikitty/test/memory/InMemoryStorageTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/test/memory/InMemoryStorageTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.test.memory;
+package org.nuiton.wikitty.test.memory;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
@@ -14,16 +14,16 @@
import org.junit.Before;
import org.junit.Test;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.ExtensionFactory;
-import org.sharengo.wikitty.PagedResult;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyServiceInMemory;
-import org.sharengo.wikitty.WikittyUtil;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.search.Search;
-import org.sharengo.wikitty.test.api.AbstractTestApi;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyServiceInMemory;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.test.api.AbstractTestApi;
public class InMemoryStorageTest extends AbstractTestApi {
Modified: trunk/wikitty-api/src/test/resources/META-INF/spring/wikitty-test.xml
===================================================================
--- trunk/wikitty-api/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -7,9 +7,9 @@
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <bean id="wikittyService" class="org.sharengo.wikitty.WikittyServiceInMemory" />
+ <bean id="wikittyService" class="org.nuiton.wikitty.WikittyServiceInMemory" />
<context:annotation-config/>
- <context:component-scan base-package="org.sharengo.wikitty"/>
+ <context:component-scan base-package="org.nuiton.wikitty"/>
</beans>
\ No newline at end of file
Modified: trunk/wikitty-api/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-api/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-api/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,4 +5,4 @@
# Configuration by components
log4j.rootLogger=ERROR, logConsole
-log4j.category.org.sharengo.wikitty=DEBUG
+log4j.category.org.nuiton.wikitty=DEBUG
Deleted: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,307 +0,0 @@
-package org.sharengo.wikitty.generator;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.GeneratorUtil;
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-
-/**
- * Generate pure Bean Object (no wikitty object internaly stored)
- *
- * @author poussin
- */
-public class BusinessEntityBeanGenerator extends WikengoCommonGenerator {
-
- private static final Log log = LogFactory.getLog(BusinessEntityBeanGenerator.class);
-
- protected String EXT_NAME;
-
- /**
- * A flag to generate on setter a propertyChangeEvent.
- */
- protected Boolean generatePropertyChangeListener;
-
- @Override
- public String getFilenameForClass(ObjectModelClass clazz) {
- String fqn = clazz.getQualifiedName();
- log.info( "Filename for " + clazz.getName() + " is " + fqn.replace('.', File.separatorChar) + ".java");
- return fqn.replace('.', File.separatorChar) + "Bean.java";
- }
-
- public void generateFromClass(Writer output, ObjectModelClass clazz)
- throws IOException {
- if (!EugengoUtils.isBusinessEntity(clazz)) {
- log.info( clazz.getName() + " is not a business entity");
- return;
- }
-
- log.info("Generate Bean Business entity " + clazz.getName() + "... ");
- String genPCS = EugengoUtils.findTagValue("generatePropertyChangeListener",clazz,model);
- generatePropertyChangeListener = genPCS != null && "true".equals(genPCS.trim());
-
- generateCopyright(output);
-
- String packageName = clazz.getPackageName();
- String name = clazz.getName() + "Bean";
-/*{package <%=packageName%>;
-
-}*/
- ObjectModelClass superClass = findSuperClass(clazz);
-
- clearImports();
- addImport(clazz);
- addImport(superClass);
- addImport("org.sharengo.wikitty.BusinessEntityBean");
- String parentBean = null;
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- addImport(parent);
- parentBean = parent.getQualifiedName() + "Bean";
- addImport( parentBean );
- }
- }
- if (generatePropertyChangeListener) {
- addImport(PropertyChangeSupport.class.getName());
- addImport(PropertyChangeListener.class.getName());
- }
- lookForAttributeImports(clazz);
- generateImports(output, packageName);
-
- generateClazzDocumentation(output, clazz);
- String extendsString = " extends " + ( parentBean != null ? parentBean : getType("org.sharengo.wikitty.BusinessEntityBean") );
- String abstractString = "";
- if (clazz.isAbstract()) {
- abstractString += "abstract ";
- }
-
- String implementsString = "implements " + getType(clazz.getQualifiedName());
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- implementsString += ", " + getType(parent.getQualifiedName());
- }
- }
-
-/*{public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
-
-}*/
-
- String svUID = GeneratorUtil.computeSerialVersionUID(clazz);
-/*{ private static final long serialVersionUID = <%=svUID%>;
-
- public <%=name%>() {
- super();
- }
-
-}*/
- if (generatePropertyChangeListener) {
-
-/*{ protected transient PropertyChangeSupport propertyChange = new PropertyChangeSupport(this);
-
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- propertyChange.addPropertyChangeListener(listener);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- propertyChange.removePropertyChangeListener(listener);
- }
-
- public void addPropertyChangeListener(String propertyName,PropertyChangeListener listener) {
- propertyChange.addPropertyChangeListener(propertyName, listener);
- }
-
- public void removePropertyChangeListener(String propertyName,PropertyChangeListener listener) {
- propertyChange.removePropertyChangeListener(propertyName, listener);
- }
-
-}*/
- }
- generateFieldAndMethod(output, clazz);
-
-/*{
-} //<%=name%>
-}*/
-
- }
-
-
-
- // Utilitarian methods
-
- private void generateFieldAndMethod(Writer output,
- ObjectModelClass clazz) throws IOException {
- generateWikittyField(output, clazz);
- generateAttributeAccessMethod(output, clazz);
-
- // we must generate method for parent of parent
- for (ObjectModelClass parent : clazz.getSuperclasses()) {
- if (EugengoUtils.isBusinessEntity(parent)) {
- generateFieldAndMethod(output, parent);
- }
- }
-
- }
-
-
- private void generateWikittyField(Writer output,
- ObjectModelClass clazz) throws IOException {
-
- for (ObjectModelAttribute attr : clazz.getAttributes()) {
- if (attr.isNavigable() && !attr.isStatic() &&
- (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
- generateAttribute(output, attr);
- }
- }
- }
-
- private void generateAttributeAccessMethod(Writer output, ObjectModelClass clazz) throws IOException {
- for (ObjectModelAttribute attr : clazz.getAttributes()) {
- if (attr.isNavigable() && !attr.isStatic()
- && (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
- if ((attr.getMaxMultiplicity() != 0 && attr.getMaxMultiplicity() != 1)) {
- //TODO ymartel 20090812: when dataType "List", "Set" or "Collection" in model, must be here!
- generateCollectionAttributeAccessors(output, attr);
- } else {
- generateWikittyAttributeAccessors(output, attr);
- }
- }
- }
- }
-
- private void generateAttribute(Writer output, ObjectModelAttribute attr)
- throws IOException {
- EXT_NAME = attr.getDeclaringElement().getName();
-
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType, true);
- } else {
- return;
- }
-
- String attrName = EXT_NAME + "$" + attr.getName();
-/*{ public <%=attrType%> <%=attrName%>;
-
-}*/
- }
-
- private void generateWikittyAttributeAccessors(Writer output,
- ObjectModelAttribute attr) throws IOException {
-
- EXT_NAME = attr.getDeclaringElement().getName();
-
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType, true);
- } else {
- return;
- }
-
- String simpleAttrName = attr.getName();
- String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(simpleAttrName);
- String attrName = EXT_NAME + "$" + simpleAttrName;
- String genPCS = "";
- if(!generatePropertyChangeListener) {
- genPCS = "//";
- }
-
-/*{
- public void set<%=attrNameCapitalized%>(<%=attrType%> value) {
- <%=genPCS%>Object oldValue = <%=attrName%>;
- this.<%=attrName%> = value;
- <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", oldValue, value);
- }
-
- public <%=attrType%> get<%=attrNameCapitalized%>() {
- return <%=attrName%>;
- }
-
-}*/
- }
-
- private void generateCollectionAttributeAccessors(Writer output,
- ObjectModelAttribute attr) throws IOException {
-
- EXT_NAME = attr.getDeclaringElement().getName();
-
- String attrType = computeType(attr);
- if (EugengoUtils.notEmpty(attrType)) {
- attrType = getType(attrType, true);
- } else {
- return;
- }
-
- // get collection element type for add and remove method arguement type
- String elementType = getType(attr.getType(), true);
-
- String simpleAttrName = attr.getName();
- String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(simpleAttrName );
- String attrName = EXT_NAME + "$" + simpleAttrName;
- String genPCS = "";
- if(!generatePropertyChangeListener) {
- genPCS = "//";
- }
-
-/*{ public <%=attrType%> get<%=attrNameCapitalized%>() {
- return <%=attrName%>;
- }
-
- public void add<%=attrNameCapitalized%>(<%=elementType%> element) {
- <%=attrName%>.add(element);
- <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
- }
-
- public void remove<%=attrNameCapitalized%>(<%=elementType%> element) {
- <%=attrName%>.remove(element);
- <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
- }
-
- public void clear<%=attrNameCapitalized%>() {
- <%=attrName%>.clear();
- <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
- }
-
-}*/
- }
-
- private static Set<String> commonTypes;
- static {
- commonTypes = new HashSet<String>();
- commonTypes.add("byte");
- commonTypes.add("Byte");
- commonTypes.add("short");
- commonTypes.add("Short");
- commonTypes.add("int");
- commonTypes.add("Integer");
- commonTypes.add("long");
- commonTypes.add("Long");
- commonTypes.add("float");
- commonTypes.add("Float");
- commonTypes.add("double");
- commonTypes.add("Double");
-
- commonTypes.add("char");
- commonTypes.add("Char");
-
- commonTypes.add("boolean");
- commonTypes.add("Boolean");
-
- commonTypes.add("Date");
- commonTypes.add("String");
- }
-
-}
Copied: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java (from rev 52, trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java)
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java (rev 0)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -0,0 +1,314 @@
+package org.nuiton.wikitty.generator;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+/**
+ * Generate pure Bean Object (no wikitty object internaly stored)
+ *
+ * @author poussin
+ *
+ * @deprecated since 2.0 will be removed soon
+ */
+@Deprecated
+public class BusinessEntityBeanGenerator extends WikengoCommonGenerator {
+
+ private static final Log log = LogFactory.getLog(BusinessEntityBeanGenerator.class);
+
+ protected String EXT_NAME;
+
+ /**
+ * A flag to generate on setter a propertyChangeEvent.
+ */
+ protected Boolean generatePropertyChangeListener;
+
+ @Override
+ public String getFilenameForClass(ObjectModelClass clazz) {
+ String fqn = clazz.getQualifiedName();
+ log.info( "Filename for " + clazz.getName() + " is " + fqn.replace('.', File.separatorChar) + ".java");
+ return fqn.replace('.', File.separatorChar) + "Bean.java";
+ }
+
+ public void generateFromClass(Writer output, ObjectModelClass clazz)
+ throws IOException {
+ if (!EugengoUtils.isBusinessEntity(clazz)) {
+ log.info( clazz.getName() + " is not a business entity");
+ return;
+ }
+
+ log.info("Generate Bean Business entity " + clazz.getName() + "... ");
+ String genPCS = EugengoUtils.findTagValue("generatePropertyChangeListener",clazz,model);
+ generatePropertyChangeListener = genPCS != null && "true".equals(genPCS.trim());
+
+ generateCopyright(output);
+
+ String packageName = clazz.getPackageName();
+ String name = clazz.getName() + "Bean";
+/*{package <%=packageName%>;
+
+}*/
+ ObjectModelClass superClass = findSuperClass(clazz);
+
+ clearImports();
+ addImport(clazz);
+ addImport(superClass);
+ addImport("org.nuiton.wikitty.BusinessEntityBean");
+ String parentBean = null;
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ addImport(parent);
+ parentBean = parent.getQualifiedName() + "Bean";
+ addImport( parentBean );
+ }
+ }
+ if (generatePropertyChangeListener) {
+ addImport(PropertyChangeSupport.class.getName());
+ addImport(PropertyChangeListener.class.getName());
+ }
+ lookForAttributeImports(clazz);
+ generateImports(output, packageName);
+
+ generateClazzDocumentation(output, clazz);
+ String extendsString = " extends " + ( parentBean != null ? parentBean : getType("org.nuiton.wikitty.BusinessEntityBean") );
+ String abstractString = "";
+ if (clazz.isAbstract()) {
+ abstractString += "abstract ";
+ }
+
+ String implementsString = "implements " + getType(clazz.getQualifiedName());
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ implementsString += ", " + getType(parent.getQualifiedName());
+ }
+ }
+
+/*{/**
+ * @deprecated since 2.0 will be removed soon
+ *)
+@Deprecated
+public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
+
+}*/
+
+ String svUID = GeneratorUtil.computeSerialVersionUID(clazz);
+/*{ private static final long serialVersionUID = <%=svUID%>;
+
+ public <%=name%>() {
+ super();
+ }
+
+}*/
+ if (generatePropertyChangeListener) {
+
+/*{ protected transient PropertyChangeSupport propertyChange = new PropertyChangeSupport(this);
+
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ propertyChange.addPropertyChangeListener(listener);
+ }
+
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ propertyChange.removePropertyChangeListener(listener);
+ }
+
+ public void addPropertyChangeListener(String propertyName,PropertyChangeListener listener) {
+ propertyChange.addPropertyChangeListener(propertyName, listener);
+ }
+
+ public void removePropertyChangeListener(String propertyName,PropertyChangeListener listener) {
+ propertyChange.removePropertyChangeListener(propertyName, listener);
+ }
+
+}*/
+ }
+ generateFieldAndMethod(output, clazz);
+
+/*{
+} //<%=name%>
+}*/
+
+ }
+
+
+
+ // Utilitarian methods
+
+ private void generateFieldAndMethod(Writer output,
+ ObjectModelClass clazz) throws IOException {
+ generateWikittyField(output, clazz);
+ generateAttributeAccessMethod(output, clazz);
+
+ // we must generate method for parent of parent
+ for (ObjectModelClass parent : clazz.getSuperclasses()) {
+ if (EugengoUtils.isBusinessEntity(parent)) {
+ generateFieldAndMethod(output, parent);
+ }
+ }
+
+ }
+
+
+ private void generateWikittyField(Writer output,
+ ObjectModelClass clazz) throws IOException {
+
+ for (ObjectModelAttribute attr : clazz.getAttributes()) {
+ if (attr.isNavigable() && !attr.isStatic() &&
+ (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
+ generateAttribute(output, attr);
+ }
+ }
+ }
+
+ private void generateAttributeAccessMethod(Writer output, ObjectModelClass clazz) throws IOException {
+ for (ObjectModelAttribute attr : clazz.getAttributes()) {
+ if (attr.isNavigable() && !attr.isStatic()
+ && (attr.getStereotypes() == null || attr.getStereotypes().isEmpty())) {
+ if ((attr.getMaxMultiplicity() != 0 && attr.getMaxMultiplicity() != 1)) {
+ //TODO ymartel 20090812: when dataType "List", "Set" or "Collection" in model, must be here!
+ generateCollectionAttributeAccessors(output, attr);
+ } else {
+ generateWikittyAttributeAccessors(output, attr);
+ }
+ }
+ }
+ }
+
+ private void generateAttribute(Writer output, ObjectModelAttribute attr)
+ throws IOException {
+ EXT_NAME = attr.getDeclaringElement().getName();
+
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType, true);
+ } else {
+ return;
+ }
+
+ String attrName = EXT_NAME + "$" + attr.getName();
+/*{ public <%=attrType%> <%=attrName%>;
+
+}*/
+ }
+
+ private void generateWikittyAttributeAccessors(Writer output,
+ ObjectModelAttribute attr) throws IOException {
+
+ EXT_NAME = attr.getDeclaringElement().getName();
+
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType, true);
+ } else {
+ return;
+ }
+
+ String simpleAttrName = attr.getName();
+ String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(simpleAttrName);
+ String attrName = EXT_NAME + "$" + simpleAttrName;
+ String genPCS = "";
+ if(!generatePropertyChangeListener) {
+ genPCS = "//";
+ }
+
+/*{
+ public void set<%=attrNameCapitalized%>(<%=attrType%> value) {
+ <%=genPCS%>Object oldValue = <%=attrName%>;
+ this.<%=attrName%> = value;
+ <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", oldValue, value);
+ }
+
+ public <%=attrType%> get<%=attrNameCapitalized%>() {
+ return <%=attrName%>;
+ }
+
+}*/
+ }
+
+ private void generateCollectionAttributeAccessors(Writer output,
+ ObjectModelAttribute attr) throws IOException {
+
+ EXT_NAME = attr.getDeclaringElement().getName();
+
+ String attrType = computeType(attr);
+ if (EugengoUtils.notEmpty(attrType)) {
+ attrType = getType(attrType, true);
+ } else {
+ return;
+ }
+
+ // get collection element type for add and remove method arguement type
+ String elementType = getType(attr.getType(), true);
+
+ String simpleAttrName = attr.getName();
+ String attrNameCapitalized = EugengoUtils.toUpperCaseFirstLetter(simpleAttrName );
+ String attrName = EXT_NAME + "$" + simpleAttrName;
+ String genPCS = "";
+ if(!generatePropertyChangeListener) {
+ genPCS = "//";
+ }
+
+/*{ public <%=attrType%> get<%=attrNameCapitalized%>() {
+ return <%=attrName%>;
+ }
+
+ public void add<%=attrNameCapitalized%>(<%=elementType%> element) {
+ <%=attrName%>.add(element);
+ <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
+ }
+
+ public void remove<%=attrNameCapitalized%>(<%=elementType%> element) {
+ <%=attrName%>.remove(element);
+ <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
+ }
+
+ public void clear<%=attrNameCapitalized%>() {
+ <%=attrName%>.clear();
+ <%=genPCS%>propertyChange.firePropertyChange("<%=simpleAttrName%>", null, <%=attrName%>);
+ }
+
+}*/
+ }
+
+ private static Set<String> commonTypes;
+ static {
+ commonTypes = new HashSet<String>();
+ commonTypes.add("byte");
+ commonTypes.add("Byte");
+ commonTypes.add("short");
+ commonTypes.add("Short");
+ commonTypes.add("int");
+ commonTypes.add("Integer");
+ commonTypes.add("long");
+ commonTypes.add("Long");
+ commonTypes.add("float");
+ commonTypes.add("Float");
+ commonTypes.add("double");
+ commonTypes.add("Double");
+
+ commonTypes.add("char");
+ commonTypes.add("Char");
+
+ commonTypes.add("boolean");
+ commonTypes.add("Boolean");
+
+ commonTypes.add("Date");
+ commonTypes.add("String");
+ }
+
+}
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.File;
import java.io.IOException;
@@ -64,10 +64,10 @@
clearImports();
addImport(clazz);
addImport(superClass);
- addImport("org.sharengo.wikitty.WikittyUtil");
- addImport("org.sharengo.wikitty.Wikitty");
- addImport("org.sharengo.wikitty.BusinessEntityWikitty");
- addImport("org.sharengo.wikitty.WikittyExtension");
+ addImport("org.nuiton.wikitty.WikittyUtil");
+ addImport("org.nuiton.wikitty.Wikitty");
+ addImport("org.nuiton.wikitty.BusinessEntityWikitty");
+ addImport("org.nuiton.wikitty.WikittyExtension");
addImport(Collection.class);
addImport(Collections.class);
addImport(List.class);
@@ -84,7 +84,7 @@
generateImports(output, packageName);
generateClazzDocumentation(output, clazz);
- String extendsString = " extends " + ( parentImpl != null ? parentImpl : getType("org.sharengo.wikitty.BusinessEntityWikitty") );
+ String extendsString = " extends " + ( parentImpl != null ? parentImpl : getType("org.nuiton.wikitty.BusinessEntityWikitty") );
String abstractString = "";
if (clazz.isAbstract()) {
abstractString += "abstract ";
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityInterfaceGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/BusinessEntityInterfaceGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.File;
import java.io.IOException;
@@ -47,7 +47,7 @@
clearImports();
addImport(superClass);
- addImport("org.sharengo.wikitty.BusinessEntity");
+ addImport("org.nuiton.wikitty.BusinessEntity");
for (ObjectModelClass parent : clazz.getSuperclasses()) {
if (EugengoUtils.isBusinessEntity(parent)) {
@@ -57,7 +57,7 @@
lookForAttributeImports(clazz);
generateImports(output, packageName);
- String extendsString = "extends " + getType("org.sharengo.wikitty.BusinessEntity");
+ String extendsString = "extends " + getType("org.nuiton.wikitty.BusinessEntity");
for (ObjectModelClass parent : clazz.getSuperclasses()) {
if (EugengoUtils.isBusinessEntity(parent)) {
extendsString += ", " + getType(parent.getName());
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EnumGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/EnumGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EnumGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.File;
import java.io.IOException;
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoConstants.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/EugengoConstants.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoConstants.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
public class EugengoConstants {
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoUtils.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/EugengoUtils.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/EugengoUtils.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.util.HashSet;
import java.util.Set;
@@ -14,7 +14,7 @@
/**
* Cherches et renvoie le copyright a utiliser sur le model.
*
- * @param model le modele utilisé
+ * @param model le modele utilise
* @return le texte du copyright ou null
*/
public static String getCopyright(Model model) {
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/InterfaceGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/InterfaceGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/InterfaceGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.File;
import java.io.IOException;
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikengoCommonGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/WikengoCommonGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikengoCommonGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.IOException;
import java.io.Writer;
@@ -101,7 +101,7 @@
*/
protected String getType(String fqn, boolean convert) {
// if type is Wikitty then we used String
- if ("org.sharengo.wikitty.Wikitty".equals(fqn)
+ if ("org.nuiton.wikitty.Wikitty".equals(fqn)
|| "Wikitty".equals(fqn)) {
fqn = "String";
} else if (convert && null != getModel().getEnumeration(fqn)) {
@@ -350,7 +350,7 @@
String result = param.getType();
// if type is Wikitty then we used String
- if ("org.sharengo.wikitty.Wikitty".equals(result)
+ if ("org.nuiton.wikitty.Wikitty".equals(result)
|| "Wikitty".equals(result)) {
result = "String";
}
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/WikittyMetaGenerator.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.generator;
+package org.nuiton.wikitty.generator;
import java.io.File;
import java.io.IOException;
Modified: trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyExtensionStorageHBase.java
===================================================================
--- trunk/wikitty-hbase-impl/src/main/java/org/sharengo/wikitty/hbase/WikittyExtensionStorageHBase.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyExtensionStorageHBase.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.hbase;
+package org.nuiton.wikitty.hbase;
/* *##%
* Copyright (c) 2009 poussin. All rights reserved.
@@ -17,13 +17,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.F_ADMIN;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.F_DATA;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.Q_NAME;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.Q_REQUIRES;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.Q_TAGVALUES;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.Q_VERSION;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.T_EXTENSION;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.F_ADMIN;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.F_DATA;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.Q_NAME;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.Q_REQUIRES;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.Q_TAGVALUES;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.Q_VERSION;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.T_EXTENSION;
import java.io.IOException;
import java.util.ArrayList;
@@ -43,13 +43,13 @@
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.util.Bytes;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyHBaseUtil.java
===================================================================
--- trunk/wikitty-hbase-impl/src/main/java/org/sharengo/wikitty/hbase/WikittyHBaseUtil.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyHBaseUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.hbase;
+package org.nuiton.wikitty.hbase;
import java.io.ByteArrayInputStream;
@@ -28,9 +28,9 @@
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.util.Bytes;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyServiceHBase.java
===================================================================
--- trunk/wikitty-hbase-impl/src/main/java/org/sharengo/wikitty/hbase/WikittyServiceHBase.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyServiceHBase.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,16 +15,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.hbase;
+package org.nuiton.wikitty.hbase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.solr.WikittySearchEnginSolr;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.solr.WikittySearchEnginSolr;
/**
* HBase must have 2 definitions, one for extension and one for wikitty object.
Modified: trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java
===================================================================
--- trunk/wikitty-hbase-impl/src/main/java/org/sharengo/wikitty/hbase/WikittyStorageHBase.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,12 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.hbase;
+package org.nuiton.wikitty.hbase;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
-import static org.sharengo.wikitty.hbase.WikittyHBaseUtil.*;
+import static org.nuiton.wikitty.hbase.WikittyHBaseUtil.*;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -37,15 +38,15 @@
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/AbstractTestHbase.java
===================================================================
--- trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/AbstractTestHbase.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/AbstractTestHbase.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,13 +1,13 @@
-package org.sharengo.wikitty.hbase.test;
+package org.nuiton.wikitty.hbase.test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.junit.Before;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.hbase.WikittyServiceHBase;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.hbase.WikittyServiceHBase;
import org.springframework.beans.factory.annotation.Autowired;
@RunWith(SpringJUnit4ClassRunner.class)
Modified: trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/HBaseConnectorTest.java
===================================================================
--- trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/HBaseConnectorTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/HBaseConnectorTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.hbase.test;
+package org.nuiton.wikitty.hbase.test;
import static junit.framework.Assert.assertEquals;
@@ -18,7 +18,7 @@
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;
-import org.sharengo.wikitty.hbase.WikittyHBaseUtil;
+import org.nuiton.wikitty.hbase.WikittyHBaseUtil;
public class HBaseConnectorTest extends AbstractTestHbase {
Modified: trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/ServiceFactory.java
===================================================================
--- trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/ServiceFactory.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/ServiceFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,10 +1,10 @@
-package org.sharengo.wikitty.hbase.test;
+package org.nuiton.wikitty.hbase.test;
import java.util.Properties;
import org.apache.hadoop.hbase.HConstants;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.hbase.WikittyServiceHBase;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.hbase.WikittyServiceHBase;
public class ServiceFactory {
Modified: trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StandAloneServer.java
===================================================================
--- trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/StandAloneServer.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StandAloneServer.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.hbase.test;
+package org.nuiton.wikitty.hbase.test;
import java.io.FileInputStream;
import java.util.Properties;
@@ -91,7 +91,7 @@
/*
if ( "true".equals(props.getProperty(DataIhmProperty)) ) {
- // new org.sharengo.wikitty.hbase.admin.HBaseAdmin( sas.conf ); // launch a visual admin
+ // new org.nuiton.wikitty.hbase.admin.HBaseAdmin( sas.conf ); // launch a visual admin
}
*/
Modified: trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StorageHbaseTest.java
===================================================================
--- trunk/wikitty-hbase-impl/src/test/java/org/sharengo/wikitty/hbase/test/StorageHbaseTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/src/test/java/org/nuiton/wikitty/hbase/test/StorageHbaseTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,11 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.hbase.test;
+package org.nuiton.wikitty.hbase.test;
import org.junit.Before;
-import org.sharengo.wikitty.hbase.WikittyServiceHBase;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.hbase.WikittyServiceHBase;
+import org.nuiton.wikitty.test.conform.StorageTest;
/**
*
Modified: trunk/wikitty-hbase-impl/src/test/resources/META-INF/spring/wikitty-test.xml
===================================================================
--- trunk/wikitty-hbase-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-hbase-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -6,10 +6,10 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <bean name="serviceFactory" class="org.sharengo.wikitty.hbase.test.ServiceFactory" init-method="init" />
+ <bean name="serviceFactory" class="org.nuiton.wikitty.hbase.test.ServiceFactory" init-method="init" />
<bean name="wikittyService" factory-bean="serviceFactory" factory-method="getService"/>
<context:annotation-config/>
- <context:component-scan base-package="org.sharengo.wikitty"/>
+ <context:component-scan base-package="org.nuiton.wikitty"/>
</beans>
Modified: trunk/wikitty-hbase-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-hbase-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-hbase-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,5 +5,5 @@
# Configuration by components
log4j.rootLogger=ERROR, logConsole
-log4j.category.org.sharengo.wikitty=DEBUG
+log4j.category.org.nuiton.wikitty=DEBUG
#log4j.category.org.apache.solr=DEBUG
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.jdbc;
+package org.nuiton.wikitty.jdbc;
/* *##%
* Copyright (c) 2009 morin. All rights reserved.
@@ -16,28 +16,28 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_FIELDTYPE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_ID;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_NAME;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_REQUIRES;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_TAGVALUES;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_EXTENSION;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.TABLE_EXTENSION_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.TABLE_EXTENSION_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.commitJDBCConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.doQuery;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.getConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.getJDBCConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.loadProperties;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.rollbackJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_FIELDTYPE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_ID;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_NAME;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_REQUIRES;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_TAGVALUES;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_EXTENSION;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.TABLE_EXTENSION_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.TABLE_EXTENSION_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.commitJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.doQuery;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.getConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.getJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.loadProperties;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.rollbackJDBCConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -54,13 +54,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyJDBCUtil.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jdbc;
+package org.nuiton.wikitty.jdbc;
import java.io.IOException;
import java.io.InputStream;
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
import org.enhydra.jdbc.pool.StandardXAPoolDataSource;
import org.enhydra.jdbc.standard.StandardXADataSource;
-import org.sharengo.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyException;
/**
*
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyServiceJDBC.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyServiceJDBC.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyServiceJDBC.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,15 +15,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jdbc;
+package org.nuiton.wikitty.jdbc;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.solr.WikittySearchEnginSolr;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.solr.WikittySearchEnginSolr;
/**
* @author poussin
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/sharengo/wikitty/jdbc/WikittyStorageJDBC.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,37 +14,37 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jdbc;
+package org.nuiton.wikitty.jdbc;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_BOOLEAN_VALUE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_DATE_VALUE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_DELETION_DATE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_EXTENSION;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_FIELDNAME;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_ID;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_NUMBER_VALUE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_TEXT_VALUE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_WIKITTY;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_NOTDELETED;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE_NOTDELETED;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.QUERY_UPDATE_WIKITTY_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.TABLE_WIKITTY_ADMIN;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.TABLE_WIKITTY_DATA;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.commitJDBCConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.doQuery;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.getConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.getJDBCConnection;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.loadProperties;
-import static org.sharengo.wikitty.jdbc.WikittyJDBCUtil.rollbackJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_BOOLEAN_VALUE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_DATE_VALUE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_DELETION_DATE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_EXTENSION;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_FIELDNAME;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_ID;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_NUMBER_VALUE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_TEXT_VALUE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_WIKITTY;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_NOTDELETED;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_SELECT_WHERE_NOTDELETED;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_UPDATE_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.TABLE_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.TABLE_WIKITTY_DATA;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.commitJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.doQuery;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.getConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.getJDBCConnection;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.loadProperties;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.rollbackJDBCConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -66,15 +66,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/test/java/org/sharengo/wikitty/jdbc/test/StorageJDBCTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/jdbc/test/StorageJDBCTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,11 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jdbc.test;
+package org.nuiton.wikitty.jdbc.test;
import org.junit.Before;
-import org.sharengo.wikitty.jdbc.WikittyServiceJDBC;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.jdbc.WikittyServiceJDBC;
+import org.nuiton.wikitty.test.conform.StorageTest;
/**
*
Modified: trunk/wikitty-jdbc-impl/src/test/resources/META-INF/spring/wikitty-test.xml
===================================================================
--- trunk/wikitty-jdbc-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jdbc-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -6,9 +6,9 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <bean name="wikittyService" class="org.sharengo.wikitty.jdbc.WikittyServiceJDBC"/>
+ <bean name="wikittyService" class="org.nuiton.wikitty.jdbc.WikittyServiceJDBC"/>
<context:annotation-config/>
- <context:component-scan base-package="org.sharengo.wikitty"/>
+ <context:component-scan base-package="org.nuiton.wikitty"/>
</beans>
Modified: trunk/wikitty-jdbc-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-jdbc-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jdbc-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,5 +5,5 @@
# Configuration by components
log4j.rootLogger=DEBUG, logConsole
-log4j.category.org.sharengo.wikitty=DEBUG
+log4j.category.org.nuiton.wikitty=DEBUG
log4j.category.org.enhydra=DEBUG
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyActionMessage.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyActionMessage.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyActionMessage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,13 +15,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
import java.io.Serializable;
import java.util.HashMap;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.*;
+
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.*;
+
import org.apache.activemq.command.ActiveMQObjectMessage;
/**
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyBrokerFactory.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyBrokerFactory.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyBrokerFactory.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
import java.net.URI;
import java.util.Map;
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionStorageJMS.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyExtensionStorageJMS.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionStorageJMS.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,13 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_EXTENSIONS;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.TOPIC_EXTENSION_STORAGE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_EXTENSIONS;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.TOPIC_EXTENSION_STORAGE;
import java.util.ArrayList;
import java.util.Collection;
@@ -39,11 +39,11 @@
import org.apache.activemq.ActiveMQXAConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* @author ruchaud
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionSubscriberJMS.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyExtensionSubscriberJMS.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyExtensionSubscriberJMS.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,13 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_EXTENSIONS;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.TOPIC_EXTENSION_STORAGE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_EXTENSIONS;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.TOPIC_EXTENSION_STORAGE;
import java.util.ArrayList;
import java.util.Properties;
@@ -42,10 +42,10 @@
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* WikittyExtensionSubscriberJMS.
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyJMSUtil.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyJMSUtil.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyJMSUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
import java.util.Date;
import java.util.Enumeration;
@@ -30,7 +30,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* @author ruchaud
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageJMS.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyStorageJMS.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageJMS.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,16 +15,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_DELETE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_DISABLE_AUTO_VERSION_INCREMENT;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_IDS;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_WIKITTIES;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.TOPIC_WIKITTY_STORAGE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_DELETE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_DISABLE_AUTO_VERSION_INCREMENT;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_IDS;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_WIKITTIES;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.TOPIC_WIKITTY_STORAGE;
import java.util.ArrayList;
import java.util.Collection;
@@ -41,11 +41,11 @@
import org.apache.activemq.ActiveMQXAConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* @author ruchaud
Modified: trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageSubscriberJMS.java
===================================================================
--- trunk/wikitty-jms-impl/src/main/java/org/sharengo/wikitty/jms/WikittyStorageSubscriberJMS.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/main/java/org/nuiton/wikitty/jms/WikittyStorageSubscriberJMS.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,16 +15,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms;
+package org.nuiton.wikitty.jms;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_DELETE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_DISABLE_AUTO_VERSION_INCREMENT;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_IDS;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.PARAM_WIKITTIES;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.TOPIC_WIKITTY_STORAGE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_CLEAR;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_DELETE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.ACTION_STORE;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_DISABLE_AUTO_VERSION_INCREMENT;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_IDS;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.PARAM_WIKITTIES;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.TOPIC_WIKITTY_STORAGE;
import java.util.ArrayList;
import java.util.Properties;
@@ -45,10 +45,10 @@
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* WikittyStorageSubscriberJMS.
Modified: trunk/wikitty-jms-impl/src/main/resources/META-INF/services/org/apache/activemq/broker/wikitty
===================================================================
--- trunk/wikitty-jms-impl/src/main/resources/META-INF/services/org/apache/activemq/broker/wikitty 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jms-impl/src/main/resources/META-INF/services/org/apache/activemq/broker/wikitty 2010-05-12 15:08:48 UTC (rev 53)
@@ -1 +1 @@
-class=org.sharengo.wikitty.jms.WikittyBrokerFactory
+class=org.nuiton.wikitty.jms.WikittyBrokerFactory
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTCPTest.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/TopicSendReceiveTCPTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTCPTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,9 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms.test;
+package org.nuiton.wikitty.jms.test;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
import java.util.Properties;
import org.apache.activemq.broker.BrokerFactory;
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/TopicSendReceiveTestSupport.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms.test;
+package org.nuiton.wikitty.jms.test;
import java.util.ArrayList;
import java.util.Collection;
@@ -25,17 +25,17 @@
import org.junit.Assert;
import org.junit.Test;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.jms.WikittyExtensionStorageJMS;
-import org.sharengo.wikitty.jms.WikittyExtensionSubscriberJMS;
-import org.sharengo.wikitty.jms.WikittyStorageJMS;
-import org.sharengo.wikitty.jms.WikittyStorageSubscriberJMS;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.jms.WikittyExtensionStorageJMS;
+import org.nuiton.wikitty.jms.WikittyExtensionSubscriberJMS;
+import org.nuiton.wikitty.jms.WikittyStorageJMS;
+import org.nuiton.wikitty.jms.WikittyStorageSubscriberJMS;
/**
* TopicSendReceiveTestSupport.
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveVMTest.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/TopicSendReceiveVMTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveVMTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,9 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jms.test;
+package org.nuiton.wikitty.jms.test;
-import static org.sharengo.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
+import static org.nuiton.wikitty.jms.WikittyJMSUtil.JNDI_PROVIDER_URL;
import java.util.Properties;
import org.apache.activemq.broker.BrokerFactory;
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyExtensionStorageAdapter.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/WikittyExtensionStorageAdapter.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyExtensionStorageAdapter.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,13 +1,13 @@
-package org.sharengo.wikitty.jms.test;
+package org.nuiton.wikitty.jms.test;
import java.util.Collection;
import java.util.List;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* WikittyExtensionStorageAdapter.
@@ -19,7 +19,7 @@
public class WikittyExtensionStorageAdapter implements WikittyExtensionStorage {
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#store(org.sharengo.wikitty.WikittyTransaction, java.util.Collection)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#store(org.sharengo.wikitty.WikittyTransaction, java.util.Collection)
*/
@Override
public UpdateResponse store(WikittyTransaction transaction,
@@ -28,7 +28,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#exists(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#exists(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
*/
@Override
public boolean exists(WikittyTransaction transaction, String id) {
@@ -36,7 +36,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#getAllExtensionIds(org.sharengo.wikitty.WikittyTransaction)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#getAllExtensionIds(org.sharengo.wikitty.WikittyTransaction)
*/
@Override
public List<String> getAllExtensionIds(WikittyTransaction transaction) {
@@ -44,7 +44,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#getAllExtensionsRequires(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#getAllExtensionsRequires(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
*/
@Override
public List<String> getAllExtensionsRequires(
@@ -53,7 +53,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#getLastVersion(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#getLastVersion(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
*/
@Override
public String getLastVersion(WikittyTransaction transaction, String extName) {
@@ -61,7 +61,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#restore(org.sharengo.wikitty.WikittyTransaction, java.lang.String, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#restore(org.sharengo.wikitty.WikittyTransaction, java.lang.String, java.lang.String)
*/
@Override
public WikittyExtension restore(WikittyTransaction transaction,
@@ -70,7 +70,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyExtensionStorage#clear(org.sharengo.wikitty.WikittyTransaction)
+ * @see org.nuiton.wikitty.WikittyExtensionStorage#clear(org.sharengo.wikitty.WikittyTransaction)
*/
@Override
public void clear(WikittyTransaction transaction) {
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyStorageAdapter.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/sharengo/wikitty/jms/test/WikittyStorageAdapter.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/WikittyStorageAdapter.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,12 +1,12 @@
-package org.sharengo.wikitty.jms.test;
+package org.nuiton.wikitty.jms.test;
import java.util.Collection;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
* WikittyStorageAdapter.
@@ -18,7 +18,7 @@
public class WikittyStorageAdapter implements WikittyStorage {
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#store(org.sharengo.wikitty.WikittyTransaction, java.util.Collection, boolean)
+ * @see org.nuiton.wikitty.WikittyStorage#store(org.sharengo.wikitty.WikittyTransaction, java.util.Collection, boolean)
*/
@Override
public UpdateResponse store(WikittyTransaction transaction,
@@ -27,7 +27,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#exists(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyStorage#exists(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
*/
@Override
public boolean exists(WikittyTransaction transaction, String id) {
@@ -35,7 +35,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#isDeleted(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
+ * @see org.nuiton.wikitty.WikittyStorage#isDeleted(org.sharengo.wikitty.WikittyTransaction, java.lang.String)
*/
@Override
public boolean isDeleted(WikittyTransaction transaction, String id) {
@@ -43,7 +43,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#restore(org.sharengo.wikitty.WikittyTransaction, java.lang.String, java.lang.String[])
+ * @see org.nuiton.wikitty.WikittyStorage#restore(org.sharengo.wikitty.WikittyTransaction, java.lang.String, java.lang.String[])
*/
@Override
public Wikitty restore(WikittyTransaction transaction, String id,
@@ -52,7 +52,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#delete(org.sharengo.wikitty.WikittyTransaction, java.util.Collection)
+ * @see org.nuiton.wikitty.WikittyStorage#delete(org.sharengo.wikitty.WikittyTransaction, java.util.Collection)
*/
@Override
public UpdateResponse delete(WikittyTransaction transaction,
@@ -61,7 +61,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#scanWikitties(org.sharengo.wikitty.WikittyTransaction, org.sharengo.wikitty.WikittyStorage.Scanner)
+ * @see org.nuiton.wikitty.WikittyStorage#scanWikitties(org.sharengo.wikitty.WikittyTransaction, org.sharengo.wikitty.WikittyStorage.Scanner)
*/
@Override
public void scanWikitties(WikittyTransaction transaction, Scanner scanner) {
@@ -69,7 +69,7 @@
}
/* (non-Javadoc)
- * @see org.sharengo.wikitty.WikittyStorage#clear(org.sharengo.wikitty.WikittyTransaction)
+ * @see org.nuiton.wikitty.WikittyStorage#clear(org.sharengo.wikitty.WikittyTransaction)
*/
@Override
public void clear(WikittyTransaction transaction) {
Modified: trunk/wikitty-jms-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-jms-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jms-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,6 +5,6 @@
# Configuration by components
log4j.rootLogger=INFO, logConsole
-log4j.logger.org.sharengo.wikitty=DEBUG
+log4j.logger.org.nuiton.wikitty=DEBUG
log4j.logger.org.apache.activemq=INFO
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossTMFactoryBean.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/JBossTMFactoryBean.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossTMFactoryBean.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import javax.transaction.TransactionManager;
import org.springframework.beans.factory.FactoryBean;
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossUTFactoryBean.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/JBossUTFactoryBean.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JBossUTFactoryBean.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import javax.transaction.UserTransaction;
import org.springframework.beans.factory.FactoryBean;
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JtaPersistenceUnitPostProcessor.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/JtaPersistenceUnitPostProcessor.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/JtaPersistenceUnitPostProcessor.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import javax.sql.DataSource;
import org.springframework.orm.jpa.persistenceunit.MutablePersistenceUnitInfo;
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/TransactionManagerLookup.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/TransactionManagerLookup.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/TransactionManagerLookup.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import java.util.Properties;
import javax.transaction.Transaction;
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyExtensionStorageJPA.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/WikittyExtensionStorageJPA.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyExtensionStorageJPA.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
/* *##%
* Copyright (c) 2009 ruchaud. All rights reserved.
@@ -31,12 +31,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
/**
*
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyJPAUtil.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/WikittyJPAUtil.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyJPAUtil.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,12 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyTransaction;
+
/**
*
* @author ruchaud
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyServiceJPA.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/WikittyServiceJPA.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyServiceJPA.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,14 +15,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyStorage;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyStorage;
import org.springframework.beans.factory.annotation.Autowired;
/**
Modified: trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyStorageJPA.java
===================================================================
--- trunk/wikitty-jpa-impl/src/main/java/org/sharengo/wikitty/jpa/WikittyStorageJPA.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/main/java/org/nuiton/wikitty/jpa/WikittyStorageJPA.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa;
+package org.nuiton.wikitty.jpa;
import java.util.Collection;
import java.util.Date;
@@ -23,15 +23,16 @@
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.WikittyUtil;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.WikittyUtil;
+
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
Modified: trunk/wikitty-jpa-impl/src/main/resources/META-INF/orm.xml
===================================================================
--- trunk/wikitty-jpa-impl/src/main/resources/META-INF/orm.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jpa-impl/src/main/resources/META-INF/orm.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd"
version="2.0">
- <entity name="WikittyExtension" class="org.sharengo.wikitty.WikittyExtension" access="FIELD">
+ <entity name="WikittyExtension" class="org.nuiton.wikitty.WikittyExtension" access="FIELD">
<attributes>
<id name="name"/>
<id name="version"/>
@@ -17,7 +17,7 @@
</attributes>
</entity>
- <entity name="Wikitty" class="org.sharengo.wikitty.Wikitty" access="FIELD">
+ <entity name="Wikitty" class="org.nuiton.wikitty.Wikitty" access="FIELD">
<attributes>
<id name="id"/>
<basic name="deleteDate">
Modified: trunk/wikitty-jpa-impl/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/wikitty-jpa-impl/src/main/resources/META-INF/persistence.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jpa-impl/src/main/resources/META-INF/persistence.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,11 +1,11 @@
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://anonsvn.jboss.org/repos/hibernate/core/trunk/entitymanager/src/main/…"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="manager" transaction-type="JTA">
- <class>org.sharengo.wikitty.Wikitty</class>
- <class>org.sharengo.wikitty.WikittyExtension</class>
+ <class>org.nuiton.wikitty.Wikitty</class>
+ <class>org.nuiton.wikitty.WikittyExtension</class>
</persistence-unit>
</persistence>
Modified: trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/StorageJPATest.java
===================================================================
--- trunk/wikitty-jpa-impl/src/test/java/org/sharengo/wikitty/jpa/test/StorageJPATest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/StorageJPATest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,12 +15,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa.test;
+package org.nuiton.wikitty.jpa.test;
import org.junit.Before;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.jpa.WikittyServiceJPA;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.jpa.WikittyServiceJPA;
+import org.nuiton.wikitty.test.conform.StorageTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
Modified: trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java
===================================================================
--- trunk/wikitty-jpa-impl/src/test/java/org/sharengo/wikitty/jpa/test/TestJTA.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa.test;
+package org.nuiton.wikitty.jpa.test;
import com.arjuna.ats.arjuna.coordinator.BasicAction;
@@ -39,8 +39,8 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.jpa.WikittyExtensionStorageJPA;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.jpa.WikittyExtensionStorageJPA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
Modified: trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java
===================================================================
--- trunk/wikitty-jpa-impl/src/test/java/org/sharengo/wikitty/jpa/test/TestJTAWithSync.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.jpa.test;
+package org.nuiton.wikitty.jpa.test;
import javax.persistence.EntityManager;
@@ -30,8 +30,8 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.jpa.WikittyExtensionStorageJPA;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.jpa.WikittyExtensionStorageJPA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
Modified: trunk/wikitty-jpa-impl/src/test/resources/META-INF/spring/wikitty-test.xml
===================================================================
--- trunk/wikitty-jpa-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jpa-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -41,8 +41,8 @@
<!-- required cos the standalone jbosstm transaction manager is not autodetected by the
JtaTransactionManager cos it requires a static accessor method -->
- <bean id="jbosstm" class="org.sharengo.wikitty.jpa.JBossTMFactoryBean"/>
- <bean id="jbossut" class="org.sharengo.wikitty.jpa.JBossUTFactoryBean"/>
+ <bean id="jbosstm" class="org.nuiton.wikitty.jpa.JBossTMFactoryBean"/>
+ <bean id="jbossut" class="org.nuiton.wikitty.jpa.JBossUTFactoryBean"/>
<!-- supplying the jbossut merely to the userTransaction property cos JtaTransactionManager -->
<bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
@@ -68,7 +68,7 @@
specify further Hibernate specific configuration properties -->
<property name="jpaPropertyMap">
<map>
- <entry key="hibernate.transaction.manager_lookup_class" value="org.sharengo.wikitty.jpa.TransactionManagerLookup"/>
+ <entry key="hibernate.transaction.manager_lookup_class" value="org.nuiton.wikitty.jpa.TransactionManagerLookup"/>
<entry key="hibernate.transaction.flush_before_completion" value="true"/>
<entry key="hibernate.transaction.auto_close_session" value="true"/>
<entry key="hibernate.current_session_context_class" value="jta"/>
@@ -87,7 +87,7 @@
datasource instead of using a JNDI name as requied by the jta-data-source setting in the
persistence.xml file -->
<property name="persistenceUnitPostProcessors">
- <bean class="org.sharengo.wikitty.jpa.JtaPersistenceUnitPostProcessor">
+ <bean class="org.nuiton.wikitty.jpa.JtaPersistenceUnitPostProcessor">
<property name="jtaDataSource" ref="dataSource"/>
</bean>
</property>
@@ -98,14 +98,14 @@
<tx:annotation-driven transaction-manager="jtaTransactionManager" proxy-target-class="false"/>
<!-- Create service -->
- <bean name="wikittyService" class="org.sharengo.wikitty.jpa.WikittyServiceJPA"/>
- <bean name="wikittyStorage" class="org.sharengo.wikitty.jpa.WikittyStorageJPA" />
- <bean name="extensionStorage" class="org.sharengo.wikitty.jpa.WikittyExtensionStorageJPA"/>
- <bean name="searchEngin" class="org.sharengo.wikitty.solr.WikittySearchEnginSolr">
+ <bean name="wikittyService" class="org.nuiton.wikitty.jpa.WikittyServiceJPA"/>
+ <bean name="wikittyStorage" class="org.nuiton.wikitty.jpa.WikittyStorageJPA" />
+ <bean name="extensionStorage" class="org.nuiton.wikitty.jpa.WikittyExtensionStorageJPA"/>
+ <bean name="searchEngin" class="org.nuiton.wikitty.solr.WikittySearchEnginSolr">
<constructor-arg ref="extensionStorage"/>
</bean>
<context:annotation-config/>
- <context:component-scan base-package="org.sharengo.wikitty"/>
+ <context:component-scan base-package="org.nuiton.wikitty"/>
</beans>
Modified: trunk/wikitty-jpa-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-jpa-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-jpa-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,6 +5,6 @@
# Configuration by components
log4j.rootLogger=ERROR, logConsole
-log4j.category.org.sharengo.wikitty=DEBUG
+log4j.category.org.nuiton.wikitty=DEBUG
log4j.category.org.hibernate=DEBUG
log4j.category.org.enhydra=DEBUG
Modified: trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/MultiStorageConfiguration.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/main/java/org/sharengo/wikitty/multistorage/MultiStorageConfiguration.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/MultiStorageConfiguration.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,14 +15,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.multistorage;
+package org.nuiton.wikitty.multistorage;
import java.util.ArrayList;
import java.util.List;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+
/**
*
* @author ruchaud
Modified: trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyExtensionMultiStorage.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/main/java/org/sharengo/wikitty/multistorage/WikittyExtensionMultiStorage.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyExtensionMultiStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,18 +15,18 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.multistorage;
+package org.nuiton.wikitty.multistorage;
import java.util.Collection;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
*
Modified: trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyMultiStorage.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/main/java/org/sharengo/wikitty/multistorage/WikittyMultiStorage.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyMultiStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,20 +15,20 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.multistorage;
+package org.nuiton.wikitty.multistorage;
import java.util.Collection;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.WikittyTransaction;
/**
*
Modified: trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyServiceMultiStorage.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/main/java/org/sharengo/wikitty/multistorage/WikittyServiceMultiStorage.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/src/main/java/org/nuiton/wikitty/multistorage/WikittyServiceMultiStorage.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,13 +15,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.multistorage;
+package org.nuiton.wikitty.multistorage;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.solr.WikittySearchEnginSolr;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.solr.WikittySearchEnginSolr;
/**
*
Modified: trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/test/java/org/sharengo/wikitty/multistorage/test/MultiStorageTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.multistorage.test;
+package org.nuiton.wikitty.multistorage.test;
import java.io.InputStream;
import java.net.URL;
@@ -24,19 +24,19 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittyService;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.jdbc.WikittyExtensionStorageJDBC;
-import org.sharengo.wikitty.jdbc.WikittyStorageJDBC;
-import org.sharengo.wikitty.jms.WikittyExtensionStorageJMS;
-import org.sharengo.wikitty.jms.WikittyJMSUtil;
-import org.sharengo.wikitty.jms.WikittyStorageJMS;
-import org.sharengo.wikitty.multistorage.MultiStorageConfiguration;
-import org.sharengo.wikitty.multistorage.MultiStorageConfiguration.BasicConfiguration;
-import org.sharengo.wikitty.multistorage.WikittyServiceMultiStorage;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC;
+import org.nuiton.wikitty.jdbc.WikittyStorageJDBC;
+import org.nuiton.wikitty.jms.WikittyExtensionStorageJMS;
+import org.nuiton.wikitty.jms.WikittyJMSUtil;
+import org.nuiton.wikitty.jms.WikittyStorageJMS;
+import org.nuiton.wikitty.multistorage.MultiStorageConfiguration;
+import org.nuiton.wikitty.multistorage.WikittyServiceMultiStorage;
+import org.nuiton.wikitty.multistorage.MultiStorageConfiguration.BasicConfiguration;
/**
* MultiStorageTest build a multi-storage configuration using jdbc and jms
Modified: trunk/wikitty-multistorage-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-multistorage-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-multistorage-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -6,10 +6,10 @@
log4j.appender.stdout.layout.ConversionPattern=%-5p %-46.46c %4L - %m%n
# wikitty
-log4j.logger.org.sharengo.wikitty=ERROR
-log4j.logger.org.sharengo.wikitty.solr.WikittySearchEngineSolr=DEBUG
-log4j.logger.org.sharengo.wikitty.solr.SolrQParser=DEBUG
-log4j.logger.org.sharengo.wikitty.jdbc.WikittyJDBCUtil=INFO
+log4j.logger.org.nuiton.wikitty=ERROR
+log4j.logger.org.nuiton.wikitty.solr.WikittySearchEngineSolr=DEBUG
+log4j.logger.org.nuiton.wikitty.solr.SolrQParser=DEBUG
+log4j.logger.org.nuiton.wikitty.jdbc.WikittyJDBCUtil=INFO
# solr
log4j.logger.org.apache.solr=WARN
Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/Restriction2Solr.java
===================================================================
--- trunk/wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/Restriction2Solr.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/Restriction2Solr.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.solr;
+package org.nuiton.wikitty.solr;
import java.util.ArrayList;
import java.util.Arrays;
@@ -10,30 +10,30 @@
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.search.And;
-import org.sharengo.wikitty.search.AssociatedRestriction;
-import org.sharengo.wikitty.search.Between;
-import org.sharengo.wikitty.search.Contains;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.EndsWith;
-import org.sharengo.wikitty.search.Equals;
-import org.sharengo.wikitty.search.Greater;
-import org.sharengo.wikitty.search.GreaterOrEqual;
-import org.sharengo.wikitty.search.In;
-import org.sharengo.wikitty.search.Keyword;
-import org.sharengo.wikitty.search.Less;
-import org.sharengo.wikitty.search.LessOrEqual;
-import org.sharengo.wikitty.search.Like;
-import org.sharengo.wikitty.search.Not;
-import org.sharengo.wikitty.search.NotEquals;
-import org.sharengo.wikitty.search.Or;
-import org.sharengo.wikitty.search.Restriction;
-import org.sharengo.wikitty.search.RestrictionHelper;
-import org.sharengo.wikitty.search.StartsWith;
-import org.sharengo.wikitty.search.Unlike;
-import org.sharengo.wikitty.search.Like.SearchAs;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.search.And;
+import org.nuiton.wikitty.search.AssociatedRestriction;
+import org.nuiton.wikitty.search.Between;
+import org.nuiton.wikitty.search.Contains;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.EndsWith;
+import org.nuiton.wikitty.search.Equals;
+import org.nuiton.wikitty.search.Greater;
+import org.nuiton.wikitty.search.GreaterOrEqual;
+import org.nuiton.wikitty.search.In;
+import org.nuiton.wikitty.search.Keyword;
+import org.nuiton.wikitty.search.Less;
+import org.nuiton.wikitty.search.LessOrEqual;
+import org.nuiton.wikitty.search.Like;
+import org.nuiton.wikitty.search.Not;
+import org.nuiton.wikitty.search.NotEquals;
+import org.nuiton.wikitty.search.Or;
+import org.nuiton.wikitty.search.Restriction;
+import org.nuiton.wikitty.search.RestrictionHelper;
+import org.nuiton.wikitty.search.StartsWith;
+import org.nuiton.wikitty.search.Unlike;
+import org.nuiton.wikitty.search.Like.SearchAs;
/**
* @author "Nicolas Chapurlat" <nicolas.chapurlat(a)logica.com>
Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittyQueryParser.java
===================================================================
--- trunk/wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittyQueryParser.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittyQueryParser.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,4 +1,4 @@
-package org.sharengo.wikitty.solr;
+package org.nuiton.wikitty.solr;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java
===================================================================
--- trunk/wikitty-solr-impl/src/main/java/org/sharengo/wikitty/solr/WikittySearchEnginSolr.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/WikittySearchEnginSolr.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.solr;
+package org.nuiton.wikitty.solr;
import java.io.IOException;
import java.util.ArrayList;
@@ -39,21 +39,21 @@
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.CoreContainer;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.FacetTopic;
-import org.sharengo.wikitty.FieldType;
-import org.sharengo.wikitty.PagedResult;
-import org.sharengo.wikitty.TreeNode;
-import org.sharengo.wikitty.UpdateResponse;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyException;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyTransaction;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.Search;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.FacetTopic;
+import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.UpdateResponse;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyException;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyTransaction;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.TreeNode;
import com.arjuna.ats.arjuna.coordinator.BasicAction;
import com.arjuna.ats.arjuna.coordinator.OnePhaseResource;
Modified: trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml
===================================================================
--- trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -678,7 +678,7 @@
</queryResponseWriter>
- <queryParser name="wikitty" class="org.sharengo.wikitty.solr.WikittyQueryParser"/>
+ <queryParser name="wikitty" class="org.nuiton.wikitty.solr.WikittyQueryParser"/>
<!-- example of registering a query parser
<queryParser name="lucene" class="org.apache.solr.search.LuceneQParserPlugin"/>
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/AbstractTestSolr.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/AbstractTestSolr.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/AbstractTestSolr.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,12 +1,12 @@
-package org.sharengo.wikitty.solr.test;
+package org.nuiton.wikitty.solr.test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.junit.Before;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyService;
import org.springframework.beans.factory.annotation.Autowired;
@RunWith(SpringJUnit4ClassRunner.class)
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/SolrSearchTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -1,8 +1,7 @@
-package org.sharengo.wikitty.solr.test;
+package org.nuiton.wikitty.solr.test;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
-import org.sharengo.wikitty.FacetTopic;
import java.util.ArrayList;
import java.util.List;
@@ -11,18 +10,19 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import org.junit.Before;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.PagedResult;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.WikittyUtil;
-import org.sharengo.wikitty.search.Element;
-import org.sharengo.wikitty.search.Like;
-import org.sharengo.wikitty.search.RestrictionHelper;
-import org.sharengo.wikitty.search.Search;
-import org.sharengo.wikitty.search.Like.SearchAs;
-import org.sharengo.wikitty.test.conform.AbstractTestConformance;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.FacetTopic;
+import org.nuiton.wikitty.PagedResult;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.search.Element;
+import org.nuiton.wikitty.search.Like;
+import org.nuiton.wikitty.search.RestrictionHelper;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.search.Like.SearchAs;
+import org.nuiton.wikitty.test.conform.AbstractTestConformance;
+import org.nuiton.wikitty.test.conform.StorageTest;
public class SolrSearchTest extends AbstractTestSolr {
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrServerTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/SolrServerTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrServerTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.solr.test;
+package org.nuiton.wikitty.solr.test;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/TreeTest.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.solr.test;
+package org.nuiton.wikitty.solr.test;
import java.util.Map.Entry;
import java.util.Set;
@@ -30,17 +30,16 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.Test;
-import org.sharengo.wikitty.TreeNodeImpl;
-import org.sharengo.wikitty.Criteria;
-import org.sharengo.wikitty.ExtensionFactory;
-import org.sharengo.wikitty.Tree;
-import org.sharengo.wikitty.TreeNode;
-import org.sharengo.wikitty.Wikitty;
-import org.sharengo.wikitty.WikittyExtension;
-import org.sharengo.wikitty.FieldType.TYPE;
-import org.sharengo.wikitty.TreeNode;
-import org.sharengo.wikitty.search.Search;
-import org.sharengo.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.Criteria;
+import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.Tree;
+import org.nuiton.wikitty.Wikitty;
+import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.test.conform.StorageTest;
+import org.nuiton.wikitty.TreeNodeImpl;
+import org.nuiton.wikitty.TreeNode;
/**
*
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/WikittyServiceSolr.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/sharengo/wikitty/solr/test/WikittyServiceSolr.java 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/WikittyServiceSolr.java 2010-05-12 15:08:48 UTC (rev 53)
@@ -15,16 +15,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*##%*/
-package org.sharengo.wikitty.solr.test;
+package org.nuiton.wikitty.solr.test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.sharengo.wikitty.AbstractWikittyService;
-import org.sharengo.wikitty.WikittyExtensionStorage;
-import org.sharengo.wikitty.WikittySearchEngin;
-import org.sharengo.wikitty.WikittyServiceInMemory;
-import org.sharengo.wikitty.WikittyStorage;
-import org.sharengo.wikitty.solr.WikittySearchEnginSolr;
+import org.nuiton.wikitty.AbstractWikittyService;
+import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittySearchEngin;
+import org.nuiton.wikitty.WikittyServiceInMemory;
+import org.nuiton.wikitty.WikittyStorage;
+import org.nuiton.wikitty.solr.WikittySearchEnginSolr;
/**
*
Modified: trunk/wikitty-solr-impl/src/test/resources/META-INF/spring/wikitty-test.xml
===================================================================
--- trunk/wikitty-solr-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-solr-impl/src/test/resources/META-INF/spring/wikitty-test.xml 2010-05-12 15:08:48 UTC (rev 53)
@@ -6,9 +6,9 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <bean name="wikittyService" class="org.sharengo.wikitty.solr.test.WikittyServiceSolr"/>
+ <bean name="wikittyService" class="org.nuiton.wikitty.solr.test.WikittyServiceSolr"/>
<context:annotation-config/>
- <context:component-scan base-package="org.sharengo.wikitty"/>
+ <context:component-scan base-package="org.nuiton.wikitty"/>
</beans>
\ No newline at end of file
Modified: trunk/wikitty-solr-impl/src/test/resources/log4j.properties
===================================================================
--- trunk/wikitty-solr-impl/src/test/resources/log4j.properties 2010-05-12 10:19:55 UTC (rev 52)
+++ trunk/wikitty-solr-impl/src/test/resources/log4j.properties 2010-05-12 15:08:48 UTC (rev 53)
@@ -5,5 +5,5 @@
# Configuration by components
log4j.rootLogger=DEBUG, logConsole
-log4j.category.org.sharengo.wikitty=DEBUG
+log4j.category.org.nuiton.wikitty=DEBUG
#log4j.category.org.apache.solr=DEBUG
1
0
r52 - trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator
by echatellier@users.nuiton.org 12 May '10
by echatellier@users.nuiton.org 12 May '10
12 May '10
Author: echatellier
Date: 2010-05-12 12:19:55 +0200 (Wed, 12 May 2010)
New Revision: 52
Url: http://nuiton.org/repositories/revision/wikitty/52
Log:
Make bean generator deprecated and generated classes deprecated too.
Modified:
trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java
Modified: trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-12 10:12:03 UTC (rev 51)
+++ trunk/wikitty-generators/src/main/java/org/sharengo/wikitty/generator/BusinessEntityBeanGenerator.java 2010-05-12 10:19:55 UTC (rev 52)
@@ -24,7 +24,10 @@
* Generate pure Bean Object (no wikitty object internaly stored)
*
* @author poussin
+ *
+ * @deprecated since 2.0 will be removed soon
*/
+@Deprecated
public class BusinessEntityBeanGenerator extends WikengoCommonGenerator {
private static final Log log = LogFactory.getLog(BusinessEntityBeanGenerator.class);
@@ -96,7 +99,11 @@
}
}
-/*{public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
+/*{/**
+ * @deprecated since 2.0 will be removed soon
+ *)
+@Deprecated
+public <%=abstractString%>class <%=name%><%=extendsString%> <%=implementsString%> {
}*/
1
0
r51 - in trunk: . wikitty-api wikitty-generators wikitty-hbase-impl wikitty-jdbc-impl wikitty-jms-impl wikitty-jpa-impl wikitty-multistorage-impl wikitty-solr-impl wikitty-ui-gwt
by echatellier@users.nuiton.org 12 May '10
by echatellier@users.nuiton.org 12 May '10
12 May '10
Author: echatellier
Date: 2010-05-12 12:12:03 +0200 (Wed, 12 May 2010)
New Revision: 51
Url: http://nuiton.org/repositories/revision/wikitty/51
Log:
Move all wikitty project to org.nuiton.wikitty (just pom done).
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hbase-impl/pom.xml
trunk/wikitty-jdbc-impl/pom.xml
trunk/wikitty-jms-impl/pom.xml
trunk/wikitty-jpa-impl/pom.xml
trunk/wikitty-multistorage-impl/pom.xml
trunk/wikitty-solr-impl/pom.xml
trunk/wikitty-ui-gwt/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -3,13 +3,19 @@
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>mavenpom4redmine</artifactId>
+ <version>2.1.4</version>
+ </parent>
+
<!-- ************************************************************* -->
<!-- *** POM Relationships *************************************** -->
<!-- ************************************************************* -->
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
<modules>
<module>wikitty-generators</module>
@@ -23,96 +29,97 @@
<!--module>wikitty-ui-gwt</module-->
</modules>
- <parent>
- <groupId>org.nuiton</groupId>
- <artifactId>mavenpom4redmine</artifactId>
- <version>2.1.4</version>
- <!--groupId>org.sharengo.wikengo</groupId>
- <artifactId>mavenpom</artifactId>
- <version>1.0.2</version-->
- </parent>
-
<dependencyManagement>
- <dependencies>
+ <dependencies>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>test</scope>
+ </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ <scope>compile</scope>
+ </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1.1</version>
- <scope>compile</scope>
- </dependency>
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${eugene.version}</version>
+ </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.16</version>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.2.135</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.6.0</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.6.0</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- GWT dependencies for GWT projects
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ <version>${gwt.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>${gwt.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwt.version}</version>
+ <classifier>${gwtplatform}-libs</classifier>
+ <type>zip</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwt.version}</version>
+ <classifier>${gwtplatform}</classifier>
+ <scope>provided</scope>
+ </dependency>-->
+
+ </dependencies>
- <!--<dependency>
- <groupId>com.caucho</groupId>
- <artifactId>resin-hessian</artifactId>
- <version>${hessian.version}</version>
- <scope>compile</scope>
- </dependency> -->
+ </dependencyManagement>
- <!-- GWT dependencies for GWT projects
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-servlet</artifactId>
- <version>${gwt.version}</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-user</artifactId>
- <version>${gwt.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-dev</artifactId>
- <version>${gwt.version}</version>
- <classifier>${gwtplatform}-libs</classifier>
- <type>zip</type>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-dev</artifactId>
- <version>${gwt.version}</version>
- <classifier>${gwtplatform}</classifier>
- <scope>provided</scope>
- </dependency>-->
-
- </dependencies>
-
- </dependencyManagement>
-
- <!--distributionManagement>
- <repository>
- <id>nuiton</id>
- <url>scpexe://nuiton.org/var/lib/maven/release</url>
- </repository>
- <snapshotRepository>
- <id>nuiton</id>
- <url>scpexe://nuiton.org/var/lib/maven/snapshot</url>
- </snapshotRepository>
- <site>
- <id>nuiton</id>
- <url>
- scpexe://nuiton.org/var/lib/redmine-${platform}/project-site/${projectId}
- </url>
- </site>
- </distributionManagement-->
-
<!-- Source control management. -->
<scm>
<connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
@@ -124,9 +131,9 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty</name>
+ <name>Wikitty</name>
- <description>wikitty multi-module project</description>
+ <description>Wikitty multi-module project</description>
<inceptionYear>2009</inceptionYear>
<!-- ************************************************************* -->
@@ -136,20 +143,21 @@
<packaging>pom</packaging>
<properties>
- <!-- pour un muli module on doit fixer le projectId -->
- <!--projectId>core-wikitty</projectId-->
- <!--platform>nuiton.org</platform-->
<projectId>wikitty</projectId>
<!-- common versions used in sub-poms -->
<!-- <gwt.version>1.7.0</gwt.version> -->
- <junit.version>4.7</junit.version>
+ <eugene.version>1.0.1</eugene.version>
<spring.version>3.0.1.RELEASE</spring.version>
<hessian.version>3.1.6</hessian.version>
<jetty.version>6.1.22</jetty.version>
</properties>
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
<build>
<pluginManagement>
@@ -169,12 +177,7 @@
</build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
- <!--repositories>
-
+ <repositories>
<repository>
<id>sharengo-maven2-repository</id>
<name>Sharengo's repository</name>
@@ -188,7 +191,15 @@
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
-
- </repositories-->
-
+ <repository>
+ <id>jboss</id>
+ <url>http://repository.jboss.com/maven2</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
</project>
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-api/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,20 +1,20 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </parent>
+
<!-- ************************************************************* -->
<!-- *** POM Relationships *************************************** -->
<!-- ************************************************************* -->
-
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-api</artifactId>
- <parent>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty</artifactId>
- <version>2.0</version>
- </parent>
-
<dependencies>
<!-- TEST -->
<dependency>
@@ -58,7 +58,6 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.5</version>
</dependency>
<dependency>
@@ -85,23 +84,19 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-api</name>
+ <name>Wikitty :: api</name>
- <description>public api of wikitty</description>
+ <description>Public wikitty API</description>
<inceptionYear>2009</inceptionYear>
<!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
<packaging>jar</packaging>
<properties>
- <eugene.version>1.0.0</eugene.version>
- <!-- where to generate sources -->
- <maven.gen.dir>${project.build.directory}/generated-sources</maven.gen.dir>
-
<!-- where to generate test sources -->
<!--<maven.test.gen.dir>${project.build.directory}/generated-test-sources</maven.test.gen.dir>-->
<maven.test.failure.ignore>false</maven.test.failure.ignore>
@@ -136,8 +131,8 @@
<version>${eugene.version}</version>
<dependencies>
<dependency>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty-generators</artifactId>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-generators</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Meta model uml d'eclipse -->
@@ -154,35 +149,39 @@
</dependency>
</dependencies>
</plugin>
+ <!-- Create a jar that includes all tests -->
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-test</id>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
- <!-- Create a jar that includes all tests -->
<plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-test</id>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<groupId>org.nuiton.eugene</groupId>
<artifactId>maven-eugene-plugin</artifactId>
<executions>
<execution>
- <id>api generator</id>
- <!--
- do not use the phase generate-XXX because it can be excecuted several times...
- -->
- <phase>process-sources</phase>
-
- <!--Configuration of model generator-->
+ <id>api-generation</id>
+ <phase>generate-sources</phase>
+ <!--<configuration>
+ <inputs>src/main/uml/wikitty-api:**\/*.uml</inputs>
+ <fullPackagePath>org.sharengo.wikitty</fullPackagePath>
+ <defaultPackage>org.sharengo.wikitty</defaultPackage>
+ <extractedPackages>org.sharengo.wikitty</extractedPackages>
+ <templates>org.sharengo.wikitty.generator.WikittyMetaGenerator</templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>-->
<configuration>
<addCompileDirectory>true</addCompileDirectory>
<zargoResources>
@@ -227,30 +226,4 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
- <repositories>
- <repository>
- <id>sharengo-maven2-repository</id>
- <name>Sharengo's repository</name>
- <url>http://maven2.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- <repository>
- <id>jboss</id>
- <url>http://repository.jboss.com/maven2</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-generators/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,25 +1,25 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </parent>
+
<!-- ************************************************************* -->
<!-- *** POM Relationships *************************************** -->
<!-- ************************************************************* -->
-
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-generators</artifactId>
- <parent>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty</artifactId>
- <version>2.0</version>
- </parent>
-
<dependencies>
<dependency>
<groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
- <version>${eugene.version}</version>
+ <artifactId>eugene</artifactId>
+ <scope>provided</scope>
</dependency>
</dependencies>
@@ -27,7 +27,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-generators</name>
+ <name>Wikitty :: generators</name>
<description>Wikitty generators</description>
<inceptionYear>2009</inceptionYear>
@@ -38,13 +38,6 @@
<packaging>jar</packaging>
- <properties>
- <eugene.version>1.0.0</eugene.version>
-
- <!-- where to generate sources -->
- <maven.gen.dir>${project.build.directory}/generated-sources</maven.gen.dir>
- </properties>
-
<build>
<plugins>
Modified: trunk/wikitty-hbase-impl/pom.xml
===================================================================
--- trunk/wikitty-hbase-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-hbase-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,20 +1,21 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-hbase-impl</artifactId>
-
<parent>
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
</parent>
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-hbase-impl</artifactId>
+
<dependencies>
<!-- TEST -->
<dependency>
@@ -61,24 +62,11 @@
<scope>compile</scope>
</dependency>
- <!-- This one is a test dependency of core-wikitty-solr-impl
- but not found during tests :( -->
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>1.5.11</version>
- <scope>test</scope>
- </dependency>
-
- <!--dependency>
- <groupId>com.caucho</groupId>
- <artifactId>resin-hessian</artifactId>
- </dependency-->
-
- <dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>${jetty.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
@@ -100,12 +88,14 @@
<groupId>org.apache.hadoop.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>r785019-hbase-1329</version>
+ <!--version>3.3.0</version-->
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hadoop</groupId>
<artifactId>hadoop</artifactId>
<version>0.20.0-plus4681-core</version>
+ <!--version>0.20.2</version -->
<scope>compile</scope>
</dependency>
<dependency>
@@ -124,6 +114,7 @@
<groupId>org.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
<version>0.20.0</version>
+ <!--version>0.20.2</version-->
<scope>test</scope>
</dependency>
<dependency>
@@ -135,17 +126,17 @@
</dependencies>
<!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-hbase-impl</name>
+ <name>Wikitty :: wikitty-hbase-impl</name>
<description>hbase impl of wikitty</description>
<inceptionYear>2009</inceptionYear>
<!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
<packaging>jar</packaging>
@@ -156,8 +147,8 @@
</properties>
<!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
<build>
<plugins>
@@ -176,21 +167,5 @@
</plugins>
</build>
- <repositories>
- <repository>
- <id>sharengo-maven2-repository</id>
- <name>Sharengo's repository</name>
- <url>http://maven2.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-jdbc-impl/pom.xml
===================================================================
--- trunk/wikitty-jdbc-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-jdbc-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,15 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-jdbc-impl</artifactId>
-
<parent>
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
</parent>
+
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jdbc-impl</artifactId>
<dependencies>
<!-- TEST -->
@@ -42,12 +43,6 @@
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>1.5.11</version>
- <scope>test</scope>
- </dependency>
<!-- WIKITTY -->
<dependency>
@@ -61,11 +56,6 @@
<version>${project.version}</version>
</dependency>
- <!--dependency>
- <groupId>com.caucho</groupId>
- <artifactId>resin-hessian</artifactId>
- </dependency-->
-
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
@@ -89,8 +79,6 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.2.127</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>com.experlog</groupId>
@@ -98,41 +86,19 @@
<version>1.5.0</version>
</dependency>
</dependencies>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-jdbc-impl</name>
-
- <description>public api of wikitty</description>
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>Wikitty :: wikitty-jdbc-impl</name>
+ <description>Wikitty jdbc storage</description>
<inceptionYear>2009</inceptionYear>
<!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
<packaging>jar</packaging>
- <properties>
- <!--maven.test.skip>false</maven.test.skip-->
- </properties>
-
- <repositories>
-
- <repository>
- <id>sharengo-maven-repository</id>
- <name>Repo Sharengo</name>
- <url>http://repository.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-jms-impl/pom.xml
===================================================================
--- trunk/wikitty-jms-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-jms-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,16 +1,16 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-jms-impl</artifactId>
-
<parent>
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
</parent>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jms-impl</artifactId>
+
<dependencies>
<!-- WIKITTY -->
<dependency>
@@ -39,42 +39,21 @@
</dependencies>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-jms-impl</name>
+ <name>Wikitty :: wikitty-jms-impl</name>
<description>jms storage implementation</description>
<inceptionYear>2010</inceptionYear>
<!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
<packaging>jar</packaging>
- <properties>
- <!--maven.test.skip>false</maven.test.skip-->
- </properties>
-
- <repositories>
-
- <repository>
- <id>sharengo-maven-repository</id>
- <name>Repo Sharengo</name>
- <url>http://repository.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-jpa-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,20 +1,21 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-jpa-impl</artifactId>
-
<parent>
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
</parent>
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jpa-impl</artifactId>
+
<dependencies>
<!-- TEST -->
<dependency>
@@ -29,13 +30,6 @@
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>1.5.11</version>
- <scope>test</scope>
- </dependency>
<!-- LOG -->
<dependency>
@@ -150,24 +144,22 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.2.128</version>
- <scope>test</scope>
</dependency>
</dependencies>
<!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-jpa-impl</name>
+ <name>Wikitty :: wikitty-jpa-impl</name>
<description>jpa impl of wikitty</description>
<inceptionYear>2009</inceptionYear>
<!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
<packaging>jar</packaging>
@@ -176,34 +168,8 @@
</properties>
<!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
- <repositories>
- <repository>
- <id>sharengo-maven2-repository</id>
- <name>Sharengo's repository</name>
- <url>http://maven2.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- <repository>
- <id>jboss</id>
- <url>http://repository.jboss.com/maven2</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-multistorage-impl/pom.xml
===================================================================
--- trunk/wikitty-multistorage-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-multistorage-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,15 +1,16 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-multistorage-impl</artifactId>
-
<parent>
- <groupId>org.sharengo.wikengo</groupId>
+ <groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>2.0</version>
+ <version>2.0-SNAPSHOT</version>
</parent>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-multistorage-impl</artifactId>
+
<dependencies>
<!-- WIKITTY -->
<dependency>
@@ -31,14 +32,10 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.2.127</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
- <version>1.5.11</version>
- <scope>test</scope>
</dependency>
<dependency>
@@ -59,7 +56,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-multistorage-impl</name>
+ <name>Wikitty :: wikitty-multistorage-impl</name>
<description>manage multi storage</description>
<inceptionYear>2010</inceptionYear>
Modified: trunk/wikitty-solr-impl/pom.xml
===================================================================
--- trunk/wikitty-solr-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-solr-impl/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,128 +1,111 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </parent>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty-solr-impl</artifactId>
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
- <parent>
- <groupId>org.sharengo.wikengo</groupId>
- <artifactId>wikitty</artifactId>
- <version>2.0</version>
- </parent>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
- <dependencies>
- <!-- COMPILE -->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
+ <dependencies>
+ <!-- COMPILE -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
- <!-- SOLR -->
- <dependency>
- <groupId>org.apache.solr</groupId>
- <artifactId>solr-core</artifactId>
- <version>1.4.0</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>1.5.11</version>
- <scope>test</scope>
- </dependency>
+ <!-- SOLR -->
+ <dependency>
+ <groupId>org.apache.solr</groupId>
+ <artifactId>solr-core</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
- <!-- TEST -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- <classifier>tests</classifier>
- <scope>test</scope>
- </dependency>
- </dependencies>
+ <!-- TEST -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${spring.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
- <name>org.sharengo.wikengo.core-wikitty-solr-impl</name>
+ <name>Wikitty :: wikitty-solr-impl</name>
- <description>hbase impl of wikitty</description>
- <inceptionYear>2009</inceptionYear>
+ <description>Wikiity solr search engine</description>
+ <inceptionYear>2009</inceptionYear>
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
- <packaging>jar</packaging>
+ <packaging>jar</packaging>
- <properties>
- <!--maven.test.skip>false</maven.test.skip>
- <maven.test.failure.ignore>false</maven.test.failure.ignore-->
- </properties>
+ <properties>
+ <!--maven.test.skip>false</maven.test.skip> <maven.test.failure.ignore>false</maven.test.failure.ignore -->
+ </properties>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
- <repositories>
- <repository>
- <id>sharengo-maven2-repository</id>
- <name>Sharengo's repository</name>
- <url>http://maven2.sharengo.org</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
- </repositories>
-
</project>
Modified: trunk/wikitty-ui-gwt/pom.xml
===================================================================
--- trunk/wikitty-ui-gwt/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
+++ trunk/wikitty-ui-gwt/pom.xml 2010-05-12 10:12:03 UTC (rev 51)
@@ -1,24 +1,29 @@
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
<modelVersion>4.0.0</modelVersion>
- <groupId>org.sharengo</groupId>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-ui-gwt</artifactId>
- <version>1.0-SNAPSHOT</version>
+
<packaging>jar</packaging>
- <name>wikitty-ui-gwt</name>
+ <name>Wikitty :: wikitty-ui-gwt</name>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
- <version>1.1.1</version>
- <scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.sharengo</groupId>
+ <groupId>org.nuiton.wikitty</groupId>
<artifactId>wikitty-api</artifactId>
<version>${current.version}</version>
<scope>compile</scope>
1
0
r50 - in trunk: . wikitty-api wikitty-generators wikitty-hbase-impl wikitty-jdbc-impl wikitty-jms-impl wikitty-jpa-impl wikitty-multistorage-impl wikitty-solr-impl
by echatellier@users.nuiton.org 12 May '10
by echatellier@users.nuiton.org 12 May '10
12 May '10
Author: echatellier
Date: 2010-05-12 10:20:06 +0200 (Wed, 12 May 2010)
New Revision: 50
Url: http://nuiton.org/repositories/revision/wikitty/50
Log:
Fix parent reference (remove 'core' !!!)
Modified:
trunk/
trunk/wikitty-api/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hbase-impl/pom.xml
trunk/wikitty-jdbc-impl/pom.xml
trunk/wikitty-jms-impl/pom.xml
trunk/wikitty-jpa-impl/pom.xml
trunk/wikitty-multistorage-impl/pom.xml
trunk/wikitty-solr-impl/pom.xml
Property changes on: trunk
___________________________________________________________________
Modified: svn:ignore
- .settings
.project
+ .settings
.project
target
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-api/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-generators/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-hbase-impl/pom.xml
===================================================================
--- trunk/wikitty-hbase-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-hbase-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-jdbc-impl/pom.xml
===================================================================
--- trunk/wikitty-jdbc-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jdbc-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -7,7 +7,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-jms-impl/pom.xml
===================================================================
--- trunk/wikitty-jms-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jms-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -7,7 +7,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-jpa-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-multistorage-impl/pom.xml
===================================================================
--- trunk/wikitty-multistorage-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-multistorage-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
Modified: trunk/wikitty-solr-impl/pom.xml
===================================================================
--- trunk/wikitty-solr-impl/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
+++ trunk/wikitty-solr-impl/pom.xml 2010-05-12 08:20:06 UTC (rev 50)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
</parent>
1
0
Author: echatellier
Date: 2010-05-11 19:31:27 +0200 (Tue, 11 May 2010)
New Revision: 49
Url: http://nuiton.org/repositories/revision/wikitty/49
Log:
Fix actifactId not corresponding to module names
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
+++ trunk/pom.xml 2010-05-11 17:31:27 UTC (rev 49)
@@ -8,7 +8,7 @@
<!-- ************************************************************* -->
<groupId>org.sharengo.wikengo</groupId>
- <artifactId>core-wikitty</artifactId>
+ <artifactId>wikitty</artifactId>
<version>2.0</version>
<modules>
1
0
r48 - in trunk: . wikitty-api wikitty-generators wikitty-hbase-impl wikitty-jdbc-impl wikitty-jms-impl wikitty-jpa-impl wikitty-multistorage-impl wikitty-solr-impl
by echatellier@users.nuiton.org 11 May '10
by echatellier@users.nuiton.org 11 May '10
11 May '10
Author: echatellier
Date: 2010-05-11 18:41:44 +0200 (Tue, 11 May 2010)
New Revision: 48
Url: http://nuiton.org/repositories/revision/wikitty/48
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hbase-impl/pom.xml
trunk/wikitty-jdbc-impl/pom.xml
trunk/wikitty-jms-impl/pom.xml
trunk/wikitty-jpa-impl/pom.xml
trunk/wikitty-multistorage-impl/pom.xml
trunk/wikitty-solr-impl/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -9,7 +9,7 @@
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
<modules>
<module>wikitty-generators</module>
@@ -115,9 +115,9 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/core-wikitty-1.5</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/core-wikitty-1.5</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/wikitty/tags/core-wikitty-1.5</url>
+ <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/wikitty/trunk</url>
</scm>
<!-- ************************************************************* -->
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-api/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-generators/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-hbase-impl/pom.xml
===================================================================
--- trunk/wikitty-hbase-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-hbase-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-jdbc-impl/pom.xml
===================================================================
--- trunk/wikitty-jdbc-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-jdbc-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-jms-impl/pom.xml
===================================================================
--- trunk/wikitty-jms-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-jms-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-jpa-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-multistorage-impl/pom.xml
===================================================================
--- trunk/wikitty-multistorage-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-multistorage-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -7,7 +7,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
Modified: trunk/wikitty-solr-impl/pom.xml
===================================================================
--- trunk/wikitty-solr-impl/pom.xml 2010-05-11 16:41:42 UTC (rev 47)
+++ trunk/wikitty-solr-impl/pom.xml 2010-05-11 16:41:44 UTC (rev 48)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.sharengo.wikengo</groupId>
<artifactId>core-wikitty</artifactId>
- <version>1.5</version>
+ <version>2.0</version>
</parent>
<dependencies>
1
0
Author: echatellier
Date: 2010-05-11 18:41:42 +0200 (Tue, 11 May 2010)
New Revision: 47
Url: http://nuiton.org/repositories/revision/wikitty/47
Log:
[maven-release-plugin] copy for tag core-wikitty-1.5
Added:
tags/core-wikitty-1.5/
1
0