Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 1653 discussions
13 Aug '10
Author: sletellier
Date: 2010-08-13 10:27:13 +0200 (Fri, 13 Aug 2010)
New Revision: 256
Url: http://nuiton.org/repositories/revision/wikitty/256
Log:
Add test for Hessian BigDecimal serialization
Added:
trunk/wikitty-hessian-server/src/test/java/HessianTest.java
Modified:
trunk/wikitty-hessian-server/pom.xml
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2010-08-12 17:28:30 UTC (rev 255)
+++ trunk/wikitty-hessian-server/pom.xml 2010-08-13 08:27:13 UTC (rev 256)
@@ -54,6 +54,16 @@
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <!-- TEST -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
</dependencies>
<!-- ************************************************************* -->
Added: trunk/wikitty-hessian-server/src/test/java/HessianTest.java
===================================================================
--- trunk/wikitty-hessian-server/src/test/java/HessianTest.java (rev 0)
+++ trunk/wikitty-hessian-server/src/test/java/HessianTest.java 2010-08-13 08:27:13 UTC (rev 256)
@@ -0,0 +1,34 @@
+import com.caucho.hessian.io.Hessian2Input;
+import com.caucho.hessian.io.Hessian2Output;
+import com.caucho.hessian.io.SerializerFactory;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class HessianTest {
+
+ @Test
+ public void testHessianBigDecimal() throws Exception {
+ BigDecimal object = new BigDecimal("12474639.945458954");
+ Hessian2Output os = new Hessian2Output(null);
+ SerializerFactory factory = new SerializerFactory();
+ os.setSerializerFactory(factory);
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ os.init(buffer);
+ os.writeObject(object);
+ os.close();
+ byte[] bytes = buffer.toByteArray();
+
+ Hessian2Input is = new Hessian2Input(new ByteArrayInputStream(bytes));
+ BigDecimal newObject = (BigDecimal) is.readObject();
+ is.close();
+
+ Assert.assertEquals(object, newObject);
+ }
+}
1
0
r255 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 12 Aug '10
by bleny@users.nuiton.org 12 Aug '10
12 Aug '10
Author: bleny
Date: 2010-08-12 19:28:30 +0200 (Thu, 12 Aug 2010)
New Revision: 255
Url: http://nuiton.org/repositories/revision/wikitty/255
Log:
introducing purifier transformer, moving stuff to Util
Added:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java
Removed:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
Modified:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -7,27 +7,38 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.Transformer;
import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
/**
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyAbstractGenerator"
*/
public class WikittyAbstractGenerator extends ObjectModelTransformerToJava {
private static final Log log = LogFactory.getLog(WikittyAbstractGenerator.class);
+
+ @Override
+ protected Transformer<ObjectModel, ObjectModel> initPreviousTransformer() {
+ return new WikittyPurifierTransformer();
+ }
@Override
public void transformFromClass(ObjectModelClass clazz) {
ObjectModelClass abstractClass = createAbstractClass(clazz.getName() + "Abstract", clazz.getPackageName());
// TODO 20100811 bleny remove unused imports
- addImport(abstractClass, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
- addImport(abstractClass, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(abstractClass, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(abstractClass, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(abstractClass, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(abstractClass, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
addImport(abstractClass, "org.nuiton.wikitty.WikittyExtension");
addImport(abstractClass, "org.nuiton.wikitty.WikittyUtil");
addImport(abstractClass, "org.nuiton.wikitty.WikittyUser");
@@ -73,14 +84,14 @@
}*/);
constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
- addParameter(constructor, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "wikitty");
+ addParameter(constructor, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
setOperationBody(constructor, ""
/*{
super(wikitty);
}*/);
constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
- addParameter(constructor, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
+ addParameter(constructor, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
setOperationBody(constructor, ""
/*{
super(businessEntityWikitty.getWikitty());
@@ -103,20 +114,20 @@
//// preparing static equals(w1, w2)
ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
- addParameter(equals, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "w1");
- addParameter(equals, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "w2");
+ addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w1");
+ addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w2");
// the body of the equals method, will be assembled while reading attributes
String equalsBody = ""
/*{
boolean result = true;
}*/;
- String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// two variables needed below
// String fieldVariableName = "FIELD_" + clazz.getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
- String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
// considering field in equals body
equalsBody += ""
@@ -151,7 +162,7 @@
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// now add the attribute to the piece of code that build the extension
- String wikittyType = WikittyGeneratorUtil.typeToWikittyColumn(attribute.getType());
+ String wikittyType = WikittyTransformerUtil.typeToWikittyColumn(attribute.getType());
String multiplicity = "";
if (attribute.getMinMultiplicity() != 1 ||
attribute.getMaxMultiplicity() != 1) {
@@ -187,7 +198,7 @@
String requires = null;
for (ObjectModelClass superClass : superClasses) {
// using "for" but there will be 0 or 1 iteration
- requires = superClass.getName() + "." + WikittyGeneratorUtil.classToExtensionVariableName(superClass);
+ requires = superClass.getName() + "." + WikittyTransformerUtil.classToExtensionVariableName(superClass);
}
String staticInitializationBody = ""
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -4,30 +4,41 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.Transformer;
import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
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.ObjectModelInterface;
import org.nuiton.eugene.models.object.ObjectModelModifier;
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
/**
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyContractGenerator"
*/
public class WikittyContractGenerator extends ObjectModelTransformerToJava {
private static final Log log = LogFactory.getLog(WikittyContractGenerator.class);
-
+
@Override
+ protected Transformer<ObjectModel, ObjectModel> initPreviousTransformer() {
+ return new WikittyPurifierTransformer();
+ }
+
+ @Override
public void transformFromClass(ObjectModelClass clazz) {
ObjectModelInterface contract = createInterface(clazz.getName(), clazz.getPackageName());
- addInterface(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addInterface(contract, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
// TODO 20100811 bleny remove unused imports
- addImport(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
- addImport(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(contract, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(contract, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(contract, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(contract, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
addImport(contract, "org.nuiton.wikitty.WikittyExtension");
addImport(contract, "org.nuiton.wikitty.WikittyUtil");
addImport(contract, "org.nuiton.wikitty.WikittyUser");
@@ -58,12 +69,12 @@
"\"" + clazz.getName() + "\"",
ObjectModelModifier.PUBLIC);
- String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// two variables needed below
- String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
// adding constants to contract
addConstant(contract,
@@ -80,5 +91,4 @@
}
}
}
-
}
Deleted: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -1,96 +0,0 @@
-package org.nuiton.wikitty.generator;
-
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-
-
-public class WikittyGeneratorUtil {
-
- /** utility class should not be instanciated */
- private WikittyGeneratorUtil() {}
-
- protected static final String BUSINESS_ENTITY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntity";
- protected static final String BUSINESS_ENTITY_WIKITTY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntityWikitty";
- protected static final String WIKITTY_CLASS_FQN = "org.nuiton.wikitty.Wikitty";
-
- /** given a class called Client will return "EXT_CLIENT"
- * should be used as a variable name to store the extension name
- */
- protected static String classToExtensionVariableName(ObjectModelClass clazz) {
- String extensionVariableName = "EXT_" + clazz.getName().toUpperCase();
- return extensionVariableName;
- }
-
- /** given the field name of the class client, will return FIELD_CLIENT_NAME */
- protected static String attributeToFielVariableName(ObjectModelAttribute attribute) {
- String fieldVariableName = "FIELD_" + attribute.getDeclaringElement().getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
- return fieldVariableName;
- }
-
- /** given "my.java.package.MyClass" or "MyClass" return "MyClass" */
- protected static String FQNtoSimpleName(String fqn) {
- int lastDotIndex = fqn.lastIndexOf(".");
- String simpleName = fqn;
- if (lastDotIndex != -1) {
- simpleName = fqn.substring(lastDotIndex + 1);
- }
- return simpleName;
- }
-
- /**
- * wikitty interface provide getFieldAsString, getFieldAsDate etc. methods
- * this method returns the good name of the method to call depending the
- * type given as parameter
- * @param typeName a name of a business entity or "String", "Integer" etc.
- * @return the name of a method "getFieldAsInt" for example
- */
- protected static String generateGetFieldAsCall(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- asWhat = "Boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
- } else {
- asWhat = "String";
- }
- return "getFieldAs" + asWhat;
- }
-
-
- protected static String generateResultType(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- // asWhat = "boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- // asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
- } else {
- asWhat = "String";
- }
- return asWhat;
- }
-
- protected static String typeToWikittyColumn(String type) {
- String simpleType = FQNtoSimpleName(type);
- String result = null;
- if ("Date".equals(simpleType)) {
- result = "Date";
- } else if ("String".equals(simpleType)) {
- result = "String";
- } else if ("boolean".equals(simpleType)) {
- result = "boolean";
- } else if ("int".equals(simpleType) ||
- "Integer".equals(simpleType)) {
- result = "Numeric";
- } else {
- result = "Wikitty";
- }
- return result;
- }
-
-
-
-}
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -5,6 +5,10 @@
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
/**
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyHelperGenerator"
*/
@@ -16,9 +20,9 @@
ObjectModelClass helper = createClass(clazz.getName() + "Helper", clazz.getPackageName());
// TODO 20100811 bleny remove unused imports
- addImport(helper, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
- addImport(helper, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(helper, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(helper, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(helper, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(helper, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
addImport(helper, "org.nuiton.wikitty.WikittyExtension");
addImport(helper, "org.nuiton.wikitty.WikittyUtil");
addImport(helper, "org.nuiton.wikitty.WikittyUser");
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -7,6 +7,10 @@
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
/**
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyImplementationGenerator"
*/
@@ -17,9 +21,9 @@
ObjectModelClass implementation = createClass(clazz.getName() + "Impl", clazz.getPackageName());
// TODO 20100811 bleny remove unused imports
- addImport(implementation, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
- addImport(implementation, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(implementation, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(implementation, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(implementation, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(implementation, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
addImport(implementation, "org.nuiton.wikitty.WikittyExtension");
addImport(implementation, "org.nuiton.wikitty.WikittyUtil");
addImport(implementation, "org.nuiton.wikitty.WikittyUser");
@@ -45,14 +49,14 @@
}*/);
constructor = addConstructor(implementation, ObjectModelModifier.PUBLIC);
- addParameter(constructor, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "wikitty");
+ addParameter(constructor, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
setOperationBody(constructor, ""
/*{
super(wikitty);
}*/);
constructor = addConstructor(implementation, ObjectModelModifier.PUBLIC);
- addParameter(constructor, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
+ addParameter(constructor, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
setOperationBody(constructor, ""
/*{
super(businessEntityWikitty.getWikitty());
Deleted: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-12 17:09:58 UTC (rev 254)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -1,253 +0,0 @@
-package org.nuiton.wikitty.generator;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Random;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.AbstractMetaTransformer;
-import org.nuiton.eugene.TemplateConfiguration;
-import org.nuiton.eugene.Transformer;
-import org.nuiton.eugene.java.ObjectModelTransformerToJava;
-import org.nuiton.eugene.models.object.ObjectModel;
-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.ObjectModelInterface;
-import org.nuiton.eugene.models.object.ObjectModelModifier;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
-
-/**
- *
- * @author bleny
- *
- * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyMetaGenerator"
- */
-
-// TODO 20100610 use filter with /*[]*/
-/*{generator option: writeString = }*/
-/*{generator option: parentheses = false}*/
-/*{generator option: writeString = +}*/
-
-public class WikittyMetaGenerator extends AbstractMetaTransformer<ObjectModel> {
-
- private static final Log log = LogFactory.getLog(WikittyMetaGenerator.class);
-
-
- /** @deprecated name change : see ticket #798. use BUSINESS_ENTITY_STEREOTYPE_NAME */
- @Deprecated
- protected static final String BUSINESS_ENTITY_STEREOTYPE_OLD_NAME = "BusinessEntity";
-
- protected static final String BUSINESS_ENTITY_STEREOTYPE_NAME = "entity";
-
- public WikittyMetaGenerator() {
- super(WikittyContractGenerator.class,
- WikittyAbstractGenerator.class,
- WikittyImplementationGenerator.class,
- WikittyHelperGenerator.class);
- }
-
- @Override
- protected boolean validateModel(ObjectModel model) {
-
- if (model.getClasses().isEmpty()) {
- log.warn("model doesn't contains any class");
- }
-
- for (ObjectModelClass clazz : model.getClasses()) {
- if (clazz.getSuperclasses().size() > 1) {
- log.error("multiple inheritance for class " + clazz.getName());
- return false;
- }
-
- if (clazz.getStereotypes().contains(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) {
- log.warn(clazz.getQualifiedName() + " uses deprecated \"" + BUSINESS_ENTITY_STEREOTYPE_OLD_NAME
- +"\" stereotype. use \"" + BUSINESS_ENTITY_STEREOTYPE_NAME + "\" instead");
- }
- }
-
- return true;
- }
-
-// will be moved soon
-// protected void processAttribute(ObjectModelAttribute attribute) {
-// // two variables needed below
-// String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
-// String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
-//
-//
-//
-// // let's find a name for the getter
-// String getterName = getMethodName("get", contract, attribute, attribute.getTagValue("getter"));
-//
-// // let's find a name for the setter
-// String setterName = getMethodName("set", contract, attribute, attribute.getTagValue("setter"));
-//
-// // attribute type simple name as it should be in signature
-// String attributeTypeSimpleName = WikittyGeneratorUtil.FQNtoSimpleName(attribute.getType());
-// if ("boolean".equals(attributeTypeSimpleName)) {
-// attributeTypeSimpleName = "Boolean";
-// } else if ("int".equals(attributeTypeSimpleName)) {
-// attributeTypeSimpleName = "Integer";
-// }
-//
-// if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
-// // attributed is a collection, we will generate operations get, add, remove and clear
-// String attributeTypeSimpleNameInSet = "Set<" + attributeTypeSimpleName + ">";
-//
-// // now, for this attribute, we will generate add, remove and clear methods
-//
-// // adding operations to contract
-// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
-//
-// String addName = getMethodName("add", contract, attribute, attribute.getTagValue("adder"));
-// ObjectModelOperation adder = addOperation(contract, addName, "void");
-// addParameter(adder, "String", "element");
-//
-// String removeName = getMethodName("remove", contract, attribute, attribute.getTagValue("remover"));
-// ObjectModelOperation remover = addOperation(contract, removeName, "void");
-// addParameter(remover, "String", "element");
-//
-// String clearName = getMethodName("clear", contract, attribute, attribute.getTagValue("clear"));
-// ObjectModelOperation clear = addOperation(contract, clearName, "void");
-//
-// // adding operations to abstract with bodies
-// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String getterBody = ""
-///*{
-// <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeTypeSimpleName %>.class);
-// return result;
-//}*/;
-// setOperationBody(getter, getterBody);
-//
-// adder = cloneOperationSignature(adder, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String adderBody = ""
-///*{
-// getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
-//}*/;
-// setOperationBody(adder, adderBody);
-//
-// remover = cloneOperationSignature(remover, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String removerBody = ""
-///*{
-// getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-//}*/;
-// setOperationBody(remover, removerBody);
-//
-// clear = cloneOperationSignature(clear, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String clearBody = ""
-///*{
-// getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-//}*/;
-// setOperationBody(clear, clearBody);
-//
-// // adding operations to Helper with bodies
-// getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
-// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(getter, ""
-///*{
-// <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeTypeSimpleName%>.class);
-// return result;
-//}*/);
-//
-// adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
-// addParameter(adder, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(adder, attributeTypeSimpleName, "element");
-// setOperationBody(adder, ""
-///*{
-// wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-//}*/
-//);
-//
-// remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
-// addParameter(remover, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(remover, attributeTypeSimpleName, "element");
-// setOperationBody(remover, ""
-///*{
-// wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-//}*/);
-//
-// clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
-// addParameter(clear, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(clear, ""
-///*{
-// wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
-//}*/);
-//
-// } else {
-// // attribute is not a collection, we generate a getter and a setter
-// String getFieldMethodName = WikittyGeneratorUtil.generateGetFieldAsCall(attribute.getType());
-// String resultType = WikittyGeneratorUtil.generateResultType(attribute.getType());
-// attributeTypeSimpleName = resultType;
-//
-// // adding getter and setter to contract
-// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleName);
-// ObjectModelOperation setter = addOperation(contract, setterName, "void");
-// addParameter(setter, attributeTypeSimpleName, attribute.getName());
-//
-// // adding getter and setter to abstract with bodies
-// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// setOperationBody(getter, ""
-///*{
-// <%=resultType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// return result;
-//}*/);
-//
-// setter = cloneOperationSignature(setter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// setOperationBody(setter, ""
-///*{
-// Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
-//}*/);
-//
-// // adding getter and setter to Helper with bodies
-// getter = addOperation(helper, getterName, attributeTypeSimpleName, ObjectModelModifier.STATIC);
-// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(getter, ""
-///*{
-// <%=resultType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// return result;
-//}*/);
-//
-// setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
-// addParameter(setter, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(setter, attributeTypeSimpleName, attribute.getName());
-// setOperationBody(setter, ""
-///*{
-// wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
-//}*/);
-// }
-// }
-
- /** getMethodName("add", contract, attribute, "myNameForThisAdder")
- * will return "myNameForThisAdder" if not already defined in contract ;
- * if already defined, will try add<attributeName>. If it already exists
- * will return add<attributeName>From<ExtensionName> */
- protected String getMethodName(String operatorName,
- ObjectModelClassifier classifier,
- ObjectModelAttribute attribute,
- String claimedValue) {
- String methodName = claimedValue;
- if (methodName != null) {
- if (! classifier.getOperations(methodName).isEmpty()) {
- log.warn(methodName + " operation already exists in " + attribute.getDeclaringElement().getName() + " ignoring tagValue");
- methodName = null;
- }
- }
-
- if (methodName == null) {
- methodName = operatorName + StringUtils.capitalize(attribute.getName());
- if (! classifier.getOperations(methodName).isEmpty()) {
- methodName += "From" + attribute.getDeclaringElement().getName();
- }
- }
- return methodName;
- }
-}
Copied: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java (from rev 248, branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java)
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -0,0 +1,270 @@
+package org.nuiton.wikitty.generator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Random;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.AbstractMetaTransformer;
+import org.nuiton.eugene.TemplateConfiguration;
+import org.nuiton.eugene.Transformer;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
+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.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
+/**
+ *
+ * Wikitty generation steps :
+ * <ol>
+ * <li>transform user model to wikitty intermediate model</li>
+ * <li>generate from wikitty intermediate model :
+ * <ul>
+ * <li>a contract;</li>
+ * <li>an abstract class;</li>
+ * <li>an implementation;</li>
+ * <li>a helper</li>
+ * </ul>
+ * </li>
+ * </ol>
+ *
+ * @author bleny
+ *
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyMetaGenerator"
+ */
+
+// TODO 20100610 use filter with /*[]*/
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
+public class WikittyMetaTransformer extends AbstractMetaTransformer<ObjectModel> {
+
+ private static final Log log = LogFactory.getLog(WikittyMetaTransformer.class);
+
+
+
+ public WikittyMetaTransformer() {
+ super(WikittyContractGenerator.class,
+ WikittyAbstractGenerator.class,
+ WikittyImplementationGenerator.class,
+ WikittyHelperGenerator.class);
+ }
+
+ /** */
+ @Override
+ protected boolean validateModel(ObjectModel model) {
+
+ if (model.getClasses().isEmpty()) {
+ log.warn("model doesn't contains any class");
+ }
+
+ for (ObjectModelClass clazz : model.getClasses()) {
+ if (clazz.getSuperclasses().size() > 1) {
+ log.error("multiple inheritance for class " + clazz.getName());
+ return false;
+ }
+
+ if (clazz.getStereotypes().contains(WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) {
+ log.warn(clazz.getQualifiedName() + " uses deprecated \"" +
+ WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_OLD_NAME
+ + "\" stereotype. use \"" +
+ WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_NAME +
+ "\" instead");
+ }
+
+ if (!clazz.hasTagValue(WikittyTransformerUtil.TAG_VERSION)) {
+ log.warn(clazz.getQualifiedName() + " misses a \"" +
+ WikittyTransformerUtil.TAG_VERSION + "\" tagValue");
+ }
+ }
+
+ return true;
+ }
+
+// will be moved soon
+// protected void processAttribute(ObjectModelAttribute attribute) {
+// // two variables needed below
+// String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+// String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+//
+//
+//
+// // let's find a name for the getter
+// String getterName = getMethodName("get", contract, attribute, attribute.getTagValue("getter"));
+//
+// // let's find a name for the setter
+// String setterName = getMethodName("set", contract, attribute, attribute.getTagValue("setter"));
+//
+// // attribute type simple name as it should be in signature
+// String attributeTypeSimpleName = WikittyGeneratorUtil.FQNtoSimpleName(attribute.getType());
+// if ("boolean".equals(attributeTypeSimpleName)) {
+// attributeTypeSimpleName = "Boolean";
+// } else if ("int".equals(attributeTypeSimpleName)) {
+// attributeTypeSimpleName = "Integer";
+// }
+//
+// if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+// // attributed is a collection, we will generate operations get, add, remove and clear
+// String attributeTypeSimpleNameInSet = "Set<" + attributeTypeSimpleName + ">";
+//
+// // now, for this attribute, we will generate add, remove and clear methods
+//
+// // adding operations to contract
+// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
+//
+// String addName = getMethodName("add", contract, attribute, attribute.getTagValue("adder"));
+// ObjectModelOperation adder = addOperation(contract, addName, "void");
+// addParameter(adder, "String", "element");
+//
+// String removeName = getMethodName("remove", contract, attribute, attribute.getTagValue("remover"));
+// ObjectModelOperation remover = addOperation(contract, removeName, "void");
+// addParameter(remover, "String", "element");
+//
+// String clearName = getMethodName("clear", contract, attribute, attribute.getTagValue("clear"));
+// ObjectModelOperation clear = addOperation(contract, clearName, "void");
+//
+// // adding operations to abstract with bodies
+// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String getterBody = ""
+///*{
+// <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeTypeSimpleName %>.class);
+// return result;
+//}*/;
+// setOperationBody(getter, getterBody);
+//
+// adder = cloneOperationSignature(adder, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String adderBody = ""
+///*{
+// getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
+//}*/;
+// setOperationBody(adder, adderBody);
+//
+// remover = cloneOperationSignature(remover, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String removerBody = ""
+///*{
+// getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+//}*/;
+// setOperationBody(remover, removerBody);
+//
+// clear = cloneOperationSignature(clear, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String clearBody = ""
+///*{
+// getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+//}*/;
+// setOperationBody(clear, clearBody);
+//
+// // adding operations to Helper with bodies
+// getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
+// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(getter, ""
+///*{
+// <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeTypeSimpleName%>.class);
+// return result;
+//}*/);
+//
+// adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
+// addParameter(adder, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(adder, attributeTypeSimpleName, "element");
+// setOperationBody(adder, ""
+///*{
+// wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+//}*/
+//);
+//
+// remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
+// addParameter(remover, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(remover, attributeTypeSimpleName, "element");
+// setOperationBody(remover, ""
+///*{
+// wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+//}*/);
+//
+// clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
+// addParameter(clear, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(clear, ""
+///*{
+// wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
+//}*/);
+//
+// } else {
+// // attribute is not a collection, we generate a getter and a setter
+// String getFieldMethodName = WikittyGeneratorUtil.generateGetFieldAsCall(attribute.getType());
+// String resultType = WikittyGeneratorUtil.generateResultType(attribute.getType());
+// attributeTypeSimpleName = resultType;
+//
+// // adding getter and setter to contract
+// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleName);
+// ObjectModelOperation setter = addOperation(contract, setterName, "void");
+// addParameter(setter, attributeTypeSimpleName, attribute.getName());
+//
+// // adding getter and setter to abstract with bodies
+// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// setOperationBody(getter, ""
+///*{
+// <%=resultType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// return result;
+//}*/);
+//
+// setter = cloneOperationSignature(setter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// setOperationBody(setter, ""
+///*{
+// Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
+//}*/);
+//
+// // adding getter and setter to Helper with bodies
+// getter = addOperation(helper, getterName, attributeTypeSimpleName, ObjectModelModifier.STATIC);
+// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(getter, ""
+///*{
+// <%=resultType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// return result;
+//}*/);
+//
+// setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
+// addParameter(setter, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(setter, attributeTypeSimpleName, attribute.getName());
+// setOperationBody(setter, ""
+///*{
+// wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
+//}*/);
+// }
+// }
+
+ /** getMethodName("add", contract, attribute, "myNameForThisAdder")
+ * will return "myNameForThisAdder" if not already defined in contract ;
+ * if already defined, will try add<attributeName>. If it already exists
+ * will return add<attributeName>From<ExtensionName> */
+ protected String getMethodName(String operatorName,
+ ObjectModelClassifier classifier,
+ ObjectModelAttribute attribute,
+ String claimedValue) {
+ String methodName = claimedValue;
+ if (methodName != null) {
+ if (! classifier.getOperations(methodName).isEmpty()) {
+ log.warn(methodName + " operation already exists in " + attribute.getDeclaringElement().getName() + " ignoring tagValue");
+ methodName = null;
+ }
+ }
+
+ if (methodName == null) {
+ methodName = operatorName + StringUtils.capitalize(attribute.getName());
+ if (! classifier.getOperations(methodName).isEmpty()) {
+ methodName += "From" + attribute.getDeclaringElement().getName();
+ }
+ }
+ return methodName;
+ }
+}
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -0,0 +1,131 @@
+package org.nuiton.wikitty.generator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+/**
+ * this transformer read the original user model and generate the intermediate
+ * model needed by generators.
+ *
+ *
+ *
+ */
+public class WikittyPurifierTransformer extends ObjectModelTransformerToJava {
+
+ private static final Log log = LogFactory.getLog(WikittyPurifierTransformer.class);
+
+ Map<ObjectModelClass, List<String>> namesUsedByClass = new HashMap<ObjectModelClass, List<String>>();
+
+ List<ObjectModelClass> processedClasses = new ArrayList<ObjectModelClass>();
+
+ /**
+ * for a given, class read all attributes name and try to find conflicts
+ * with parent classes attributes names.
+ *
+ * If a conflict is found, we try to solve the conflict by adding an
+ * tagValue to the conflicting attribute for others transformers
+ * to consider it as a new name. To choose a new name, we look for
+ * an alternative name provided by the user through a tagValue on this
+ * attribute. If no alternative provided, we try to generate an alternative
+ * name by adding "From<className>" to the attribute name.
+ */
+ protected void processClass(ObjectModelClass clazz) {
+ if (processedClasses.contains(clazz)) {
+ // clazz has already been processed, do nothing
+ } else {
+ // all attributes names that will be used by clazz
+ List<String> allUsedNames = new ArrayList<String>();
+
+
+ // first, we have to get all names used by the super classes and
+ // its superclasses. So they must have been processed before
+ // current class. Thus, we recursively call processClass on
+ // superClass.
+
+ // process superclass first
+ for (ObjectModelClass superClasses : clazz.getSuperclasses()) {
+ if (WikittyTransformerUtil.isBusinessEntity(superClasses)) {
+ if (!processedClasses.contains(superClasses)) {
+ processClass(superClasses);
+ allUsedNames.addAll(namesUsedByClass.get(superClasses));
+ }
+ }
+ }
+
+ // now, allUsedNames contains all names used by superClass, we
+ // have to check current class attributes names for conflict.
+ // allUsedNames contains name that we
+ // can't use without generating a conflict
+ for (ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (allUsedNames.contains(attribute.getName())) {
+ // conflict !
+
+ // let's try to find an alternative name for this attribute
+ // as long as we has not found, alternativeName should
+ // remains null
+ String alternativeName = null;
+
+ // first, try to use an alternative name provided by the user in the model
+ if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
+ alternativeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
+ if (allUsedNames.contains(alternativeName)) {
+ // using alternative name lead to a conflict
+ alternativeName = null;
+ }
+ }
+
+ if (alternativeName == null) {
+ // it wasn't a success, try to generate an alternative name
+ alternativeName = attribute.getName() + "From" + clazz.getName();
+ if (allUsedNames.contains(alternativeName)) {
+ log.error("are you joking ? do you *really* " +
+ "need to call an attribue" +
+ alternativeName + " ?");
+ alternativeName = null;
+ }
+ }
+
+ if (alternativeName == null) {
+ // still no alternative :-(
+ log.error("no way to resolve conflict with attribute" +
+ attribute.getName() + " from class " + clazz
+ + ". You should add or change a tagValue \"" +
+ WikittyTransformerUtil.TAG_ALTERNATIVE_NAME +
+ "\" on this attribute");
+ } else {
+ // using alternative name is OK
+ addTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME, alternativeName);
+ allUsedNames.add(alternativeName);
+ }
+
+ } else {
+ // no conflict, we name consider this attribute name as taken
+ allUsedNames.add(attribute.getName());
+ }
+ }
+
+ // saving all names we used in current class will permit to sub classes
+ // to know what names it must not use
+ namesUsedByClass.put(clazz, allUsedNames);
+ }
+ }
+
+ @Override
+ public void transformFromModel(ObjectModel model) {
+ for (ObjectModelClass clazz : model.getClasses()) {
+ ObjectModelClass clone = cloneClass(clazz, true);
+ if (WikittyTransformerUtil.isBusinessEntity(clazz)) {
+ processClass(clone);
+ }
+ }
+ }
+}
Copied: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java (from rev 254, branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java)
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-12 17:28:30 UTC (rev 255)
@@ -0,0 +1,112 @@
+package org.nuiton.wikitty.generator;
+
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+
+public class WikittyTransformerUtil {
+
+ /** utility class should not be instanciated */
+ private WikittyTransformerUtil() {}
+
+ protected static final String BUSINESS_ENTITY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntity";
+ protected static final String BUSINESS_ENTITY_WIKITTY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntityWikitty";
+ protected static final String WIKITTY_CLASS_FQN = "org.nuiton.wikitty.Wikitty";
+
+ protected static final String TAG_VERSION = "version";
+ protected static final String TAG_ALTERNATIVE_NAME = "alternativeName";
+
+ /** @deprecated name change : see ticket #798. use BUSINESS_ENTITY_STEREOTYPE_NAME */
+ @Deprecated
+ protected static final String BUSINESS_ENTITY_STEREOTYPE_OLD_NAME = "BusinessEntity";
+
+ /** user will use this stereotype in his model */
+ protected static final String BUSINESS_ENTITY_STEREOTYPE_NAME = "entity";
+
+ /** given a class called Client will return "EXT_CLIENT"
+ * should be used as a variable name to store the extension name
+ */
+ protected static String classToExtensionVariableName(ObjectModelClass clazz) {
+ String extensionVariableName = "EXT_" + clazz.getName().toUpperCase();
+ return extensionVariableName;
+ }
+
+ /** given the field name of the class client, will return FIELD_CLIENT_NAME */
+ protected static String attributeToFielVariableName(ObjectModelAttribute attribute) {
+ String fieldVariableName = "FIELD_" + attribute.getDeclaringElement().getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
+ return fieldVariableName;
+ }
+
+ /** given "my.java.package.MyClass" or "MyClass" return "MyClass" */
+ protected static String FQNtoSimpleName(String fqn) {
+ int lastDotIndex = fqn.lastIndexOf(".");
+ String simpleName = fqn;
+ if (lastDotIndex != -1) {
+ simpleName = fqn.substring(lastDotIndex + 1);
+ }
+ return simpleName;
+ }
+
+ protected static boolean isBusinessEntity(ObjectModelClass clazz) {
+ boolean result = clazz.hasStereotype(BUSINESS_ENTITY_STEREOTYPE_NAME)
+ || clazz.hasStereotype(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME);
+ return result;
+ }
+
+ /**
+ * wikitty interface provide getFieldAsString, getFieldAsDate etc. methods
+ * this method returns the good name of the method to call depending the
+ * type given as parameter
+ * @param typeName a name of a business entity or "String", "Integer" etc.
+ * @return the name of a method "getFieldAsInt" for example
+ */
+ protected static String generateGetFieldAsCall(String typeName) {
+ String asWhat = FQNtoSimpleName(typeName);
+ if ("boolean".equals(asWhat)) {
+ asWhat = "Boolean";
+ } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
+ asWhat = "Int";
+ } else if ("Date".equals(asWhat)) {
+ // asWhat = "Date";
+ } else {
+ asWhat = "String";
+ }
+ return "getFieldAs" + asWhat;
+ }
+
+
+ protected static String generateResultType(String typeName) {
+ String asWhat = FQNtoSimpleName(typeName);
+ if ("boolean".equals(asWhat)) {
+ // asWhat = "boolean";
+ } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
+ // asWhat = "Int";
+ } else if ("Date".equals(asWhat)) {
+ // asWhat = "Date";
+ } else {
+ asWhat = "String";
+ }
+ return asWhat;
+ }
+
+ protected static String typeToWikittyColumn(String type) {
+ String simpleType = FQNtoSimpleName(type);
+ String result = null;
+ if ("Date".equals(simpleType)) {
+ result = "Date";
+ } else if ("String".equals(simpleType)) {
+ result = "String";
+ } else if ("boolean".equals(simpleType)) {
+ result = "boolean";
+ } else if ("int".equals(simpleType) ||
+ "Integer".equals(simpleType)) {
+ result = "Numeric";
+ } else {
+ result = "Wikitty";
+ }
+ return result;
+ }
+
+
+
+}
1
0
Author: sletellier
Date: 2010-08-12 19:09:58 +0200 (Thu, 12 Aug 2010)
New Revision: 254
Url: http://nuiton.org/repositories/revision/wikitty/254
Log:
Up hessian version to 3.0.6
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-12 17:07:31 UTC (rev 253)
+++ trunk/pom.xml 2010-08-12 17:09:58 UTC (rev 254)
@@ -106,7 +106,7 @@
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
- <version>3.1.5</version>
+ <version>4.0.6</version>
<scope>compile</scope>
</dependency>
1
0
r253 - in trunk/wikitty-api/src/main/resources: . META-INF META-INF/hessian
by sletellier@users.nuiton.org 12 Aug '10
by sletellier@users.nuiton.org 12 Aug '10
12 Aug '10
Author: sletellier
Date: 2010-08-12 19:07:31 +0200 (Thu, 12 Aug 2010)
New Revision: 253
Url: http://nuiton.org/repositories/revision/wikitty/253
Log:
Specify serializers for BigDecimal
Added:
trunk/wikitty-api/src/main/resources/META-INF/
trunk/wikitty-api/src/main/resources/META-INF/hessian/
trunk/wikitty-api/src/main/resources/META-INF/hessian/deserializers
trunk/wikitty-api/src/main/resources/META-INF/hessian/serializers
Added: trunk/wikitty-api/src/main/resources/META-INF/hessian/deserializers
===================================================================
--- trunk/wikitty-api/src/main/resources/META-INF/hessian/deserializers (rev 0)
+++ trunk/wikitty-api/src/main/resources/META-INF/hessian/deserializers 2010-08-12 17:07:31 UTC (rev 253)
@@ -0,0 +1 @@
+java.math.BigDecimal=com.caucho.hessian.io.BigDecimalDeserializer
\ No newline at end of file
Added: trunk/wikitty-api/src/main/resources/META-INF/hessian/serializers
===================================================================
--- trunk/wikitty-api/src/main/resources/META-INF/hessian/serializers (rev 0)
+++ trunk/wikitty-api/src/main/resources/META-INF/hessian/serializers 2010-08-12 17:07:31 UTC (rev 253)
@@ -0,0 +1 @@
+java.math.BigDecimal=com.caucho.hessian.io.StringValueSerializer
\ No newline at end of file
1
0
Author: tchemit
Date: 2010-08-12 16:48:23 +0200 (Thu, 12 Aug 2010)
New Revision: 252
Url: http://nuiton.org/repositories/revision/wikitty/252
Log:
once again
Modified:
trunk/wikitty-jpa-impl/pom.xml
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2010-08-12 14:24:00 UTC (rev 251)
+++ trunk/wikitty-jpa-impl/pom.xml 2010-08-12 14:48:23 UTC (rev 252)
@@ -72,26 +72,31 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
+ <scope>test</scope>
</dependency>
<!-- Hibernate -->
@@ -126,7 +131,6 @@
<dependency>
<groupId>com.experlog</groupId>
<artifactId>xapool</artifactId>
- <version>1.5.0</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
@@ -159,7 +163,7 @@
<properties>
- <!--maven.test.failure.ignore>false</maven.test.failure.ignore-->
+ <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
</project>
1
0
Author: tchemit
Date: 2010-08-12 16:24:00 +0200 (Thu, 12 Aug 2010)
New Revision: 251
Url: http://nuiton.org/repositories/revision/wikitty/251
Log:
once again, clean poms + svn:ignore for (safe?) none eclipse users...
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
+++ trunk/pom.xml 2010-08-12 14:24:00 UTC (rev 251)
@@ -246,12 +246,30 @@
<dependency>
<groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.5.1-Final</version>
1
0
r250 - in trunk: . wikitty-api wikitty-generators wikitty-hbase-impl wikitty-hessian-server wikitty-jdbc-impl wikitty-jms-impl wikitty-jpa-impl wikitty-multistorage-impl wikitty-solr-impl wikitty-ui-zk
by tchemit@users.nuiton.org 12 Aug '10
by tchemit@users.nuiton.org 12 Aug '10
12 Aug '10
Author: tchemit
Date: 2010-08-12 16:08:51 +0200 (Thu, 12 Aug 2010)
New Revision: 250
Url: http://nuiton.org/repositories/revision/wikitty/250
Log:
once again, clean poms + svn:ignore for (safe?) none eclipse users...
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hbase-impl/
trunk/wikitty-hbase-impl/pom.xml
trunk/wikitty-hessian-server/pom.xml
trunk/wikitty-jdbc-impl/pom.xml
trunk/wikitty-jms-impl/
trunk/wikitty-jms-impl/pom.xml
trunk/wikitty-jpa-impl/
trunk/wikitty-jpa-impl/pom.xml
trunk/wikitty-multistorage-impl/pom.xml
trunk/wikitty-solr-impl/pom.xml
trunk/wikitty-ui-zk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,5 +1,7 @@
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -113,7 +115,7 @@
<artifactId>solr-core</artifactId>
<version>1.4.1</version>
</dependency>
-
+
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
@@ -192,7 +194,111 @@
<version>${zk.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase</artifactId>
+ <version>${hbase.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase</artifactId>
+ <classifier>tests</classifier>
+ <version>${hbase.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <!-- needed at runtime for tests -->
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-test</artifactId>
+ <version>0.20.3-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ <scope>test</scope>
+ </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>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.5.1-Final</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>4.0.2.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ <version>2.2.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.6.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ <version>2.7.7</version>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1_3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>1.0.0.Final</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-core</artifactId>
+ <version>5.3.1</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
@@ -200,7 +306,8 @@
<!-- Source control management. -->
<scm>
<connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</developerConnection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk
+ </developerConnection>
<url>http://www.nuiton.org/repositories/browse/wikitty/trunk</url>
</scm>
@@ -228,6 +335,8 @@
<jetty.version>6.1.22</jetty.version>
<zk.version>5.0.2</zk.version>
+
+ <hbase.version>0.89.0-SNAPSHOT</hbase.version>
</properties>
<!-- ************************************************************* -->
@@ -262,7 +371,7 @@
<profiles>
<profile>
- <id>extra-modules</id>
+ <id>wikitty-extra-modules</id>
<modules>
<module>wikitty-hbase-impl</module>
<module>wikitty-jpa-impl</module>
@@ -271,5 +380,5 @@
</modules>
</profile>
</profiles>
-
+
</project>
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-api/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -25,21 +25,18 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</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>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
<scope>test</scope>
</dependency>
@@ -111,12 +108,6 @@
<!-- *** Build Settings ****************************************** -->
<!-- ************************************************************* -->
- <packaging>jar</packaging>
-
- <properties>
-
- </properties>
-
<build>
<pluginManagement>
@@ -200,8 +191,4 @@
</build>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
-
</project>
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-generators/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,5 +1,7 @@
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
Property changes on: trunk/wikitty-hbase-impl
___________________________________________________________________
Modified: svn:ignore
- .settings
target
.classpath
.project
build
PutObjectStoreDirHere
+ .settings
target
.classpath
.project
build
PutObjectStoreDirHere
*.ipr
*.iml
*.iws
Modified: trunk/wikitty-hbase-impl/pom.xml
===================================================================
--- trunk/wikitty-hbase-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-hbase-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,6 +1,7 @@
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -17,69 +18,70 @@
<artifactId>wikitty-hbase-impl</artifactId>
<dependencies>
- <!-- TEST -->
+
+ <!-- sibling depedencies -->
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>wikitty-api</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
+
<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>
- <!-- COMPILE -->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-solr-impl</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
- <version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
- <version>1.1.4c</version>
</dependency>
- <!-- HBASE -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
+
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
@@ -113,29 +115,28 @@
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
- <version>0.89.0-SNAPSHOT</version>
</dependency>
+
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
- <version>0.89.0-SNAPSHOT</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
+
<dependency>
<!-- needed at runtime for tests -->
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
- <version>0.20.3-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
- <version>1.1</version>
<scope>test</scope>
</dependency>
+
</dependencies>
<!-- ************************************************************* -->
@@ -154,8 +155,10 @@
<packaging>jar</packaging>
<properties>
- <!-- Test don't run in hudson due to port restriction -->
- <maven.test.skip>false</maven.test.skip>
+ <!-- FIXME tchemit 20010-08-12 : Find a nice way to do it in test :
+ Must brefore test to detect if test can be executed otherwise ignore it
+ -->
+ <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
<!-- ************************************************************* -->
@@ -179,5 +182,21 @@
</plugins>
</build>
+ <!-- FIXME tchemit 2010-08-12 Must be removed as soon as a stable version is available -->
+ <repositories>
+ <repository>
+ <id>apache-snapshots</id>
+ <url>
+ http://nexus.nuiton.org/nexus/content/repositories/apache-snapshots/
+ </url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+
</project>
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-hessian-server/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,5 +1,7 @@
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -16,45 +18,41 @@
<artifactId>wikitty-hessian-server</artifactId>
<dependencies>
+
+ <!-- sibling dependencies -->
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-api</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
-
- <!-- webapp can manage every things -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jdbc-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
- <!--dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-multistorage-impl</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-solr-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
</dependency>
<dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <scope>runtime</scope>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>runtime</scope>
</dependency>
<dependency>
- <groupId>postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <scope>runtime</scope>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <scope>runtime</scope>
</dependency>
</dependencies>
@@ -67,4 +65,38 @@
<description>Wikitty hessian server</description>
<inceptionYear>2010</inceptionYear>
+
+ <profiles>
+ <!-- use this profile to add all impl dependencies -->
+ <profile>
+ <id>wikitty-extra-modules</id>
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-hbase-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-jpa-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-jms-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-multistorage-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
+
</project>
Modified: trunk/wikitty-jdbc-impl/pom.xml
===================================================================
--- trunk/wikitty-jdbc-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-jdbc-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -13,7 +13,29 @@
<artifactId>wikitty-jdbc-impl</artifactId>
<dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+
<!-- TEST -->
+
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -21,45 +43,22 @@
<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>
- <!-- WIKITTY -->
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-solr-impl</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
- <version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
Property changes on: trunk/wikitty-jms-impl
___________________________________________________________________
Modified: svn:ignore
- .settings
target
.classpath
.project
PutObjectStoreDirHere
+ .settings
target
.classpath
.project
PutObjectStoreDirHere
*.ipr
*.iws
*.iml
Modified: trunk/wikitty-jms-impl/pom.xml
===================================================================
--- trunk/wikitty-jms-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-jms-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,59 +1,56 @@
<?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>
+<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.1-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ </parent>
- <groupId>org.nuiton.wikitty</groupId>
- <artifactId>wikitty-jms-impl</artifactId>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jms-impl</artifactId>
- <dependencies>
- <!-- WIKITTY -->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-solr-impl</artifactId>
- <version>${project.version}</version>
- </dependency>
+ <dependencies>
- <!-- JMS -->
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-core</artifactId>
- <version>5.3.1</version>
- </dependency>
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
- <!-- TEST -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
+ <!-- JMS -->
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-core</artifactId>
+ </dependency>
- </dependencies>
+ <!-- TEST -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ </dependencies>
- <name>Wikitty :: wikitty-jms-impl</name>
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
- <description>jms storage implementation</description>
- <inceptionYear>2010</inceptionYear>
+ <name>Wikitty :: wikitty-jms-impl</name>
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <description>jms storage implementation</description>
+ <inceptionYear>2010</inceptionYear>
- <packaging>jar</packaging>
-
</project>
Property changes on: trunk/wikitty-jpa-impl
___________________________________________________________________
Modified: svn:ignore
- .settings
target
.classpath
.project
PutObjectStoreDirHere
solr
+ .settings
target
.classpath
.project
PutObjectStoreDirHere
solr
*.ipr
*.iws
*.iml
Modified: trunk/wikitty-jpa-impl/pom.xml
===================================================================
--- trunk/wikitty-jpa-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-jpa-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -1,175 +1,166 @@
<?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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.nuiton</groupId>
- <artifactId>wikitty</artifactId>
- <version>2.1-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ </parent>
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
- <groupId>org.nuiton.wikitty</groupId>
- <artifactId>wikitty-jpa-impl</artifactId>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jpa-impl</artifactId>
- <dependencies>
- <!-- TEST -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
+ <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- <classifier>tests</classifier>
- <scope>test</scope>
- </dependency>
+ <!-- sibling dependencies -->
- <!-- LOG -->
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
- <!-- SPRING -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
- <!-- COMPILE -->
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-api</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>wikitty-solr-impl</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
- <!-- Hibernate -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>3.5.1-Final</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>4.0.2.GA</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-common-core</artifactId>
- <version>2.2.0.GA</version>
- </dependency>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- </dependency>
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.6.0.GA</version>
- </dependency>
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>2.7.7</version>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.1_3</version>
- </dependency>
- <dependency>
- <groupId>com.experlog</groupId>
- <artifactId>xapool</artifactId>
- <version>1.5.0</version>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate.javax.persistence</groupId>
- <artifactId>hibernate-jpa-2.0-api</artifactId>
- <version>1.0.0.Final</version>
- </dependency>
+ <!-- TEST -->
- <!-- H2 -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
- </dependencies>
+ <!-- LOG -->
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
- <name>Wikitty :: wikitty-jpa-impl</name>
+ <!-- SPRING -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <scope>test</scope>
+ </dependency>
- <description>jpa impl of wikitty</description>
- <inceptionYear>2009</inceptionYear>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
+ </dependency>
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </dependency>
- <packaging>jar</packaging>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </dependency>
- <properties>
- <maven.test.failure.ignore>false</maven.test.failure.ignore>
- </properties>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
+ </dependency>
- <!-- ************************************************************* -->
- <!-- *** Build Environment ************************************** -->
- <!-- ************************************************************* -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+ <!-- Hibernate -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.experlog</groupId>
+ <artifactId>xapool</artifactId>
+ <version>1.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ </dependency>
+
+ <!-- H2 -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>Wikitty :: wikitty-jpa-impl</name>
+ <description>jpa impl of wikitty</description>
+ <inceptionYear>2009</inceptionYear>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <properties>
+
+ <!--maven.test.failure.ignore>false</maven.test.failure.ignore-->
+ </properties>
+
</project>
Modified: trunk/wikitty-multistorage-impl/pom.xml
===================================================================
--- trunk/wikitty-multistorage-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-multistorage-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -14,28 +14,15 @@
<artifactId>wikitty-multistorage-impl</artifactId>
<dependencies>
- <!-- WIKITTY -->
+
+ <!-- sibling dependencies -->
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-api</artifactId>
<version>${project.version}</version>
</dependency>
-
- <!-- TEST -->
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
-
- <dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jdbc-impl</artifactId>
<version>${project.version}</version>
@@ -53,6 +40,21 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+
+ <!-- TEST -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+
</dependencies>
<!-- ************************************************************* -->
@@ -67,12 +69,10 @@
<!-- *** Build Settings ****************************************** -->
<!-- ************************************************************* -->
- <packaging>jar</packaging>
-
<properties>
- <!-- maven conventionnal variables doesn't work ?
- <maven.test.failure.ignore>true</maven.test.failure.ignore> -->
- <maven.test.testFailureIgnore>true</maven.test.testFailureIgnore>
+ <!-- maven conventionnal variables doesn't work ? -->
+ <maven.test.failure.ignore>true</maven.test.failure.ignore>
+ <!--maven.test.testFailureIgnore>true</maven.test.testFailureIgnore-->
</properties>
<build>
Modified: trunk/wikitty-solr-impl/pom.xml
===================================================================
--- trunk/wikitty-solr-impl/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-solr-impl/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -17,13 +17,20 @@
<artifactId>wikitty-solr-impl</artifactId>
<dependencies>
- <!-- COMPILE -->
+
+ <!-- sibling dependencies -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-api</artifactId>
<version>${project.version}</version>
- <scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
<!-- SOLR -->
<dependency>
@@ -56,28 +63,19 @@
<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>
<!-- ************************************************************* -->
Modified: trunk/wikitty-ui-zk/pom.xml
===================================================================
--- trunk/wikitty-ui-zk/pom.xml 2010-08-12 08:32:45 UTC (rev 249)
+++ trunk/wikitty-ui-zk/pom.xml 2010-08-12 14:08:51 UTC (rev 250)
@@ -17,12 +17,13 @@
<dependencies>
+ <!-- sibling dependencies -->
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-api</artifactId>
<version>${project.version}</version>
</dependency>
-
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jdbc-impl</artifactId>
1
0
r249 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search
by sletellier@users.nuiton.org 12 Aug '10
by sletellier@users.nuiton.org 12 Aug '10
12 Aug '10
Author: sletellier
Date: 2010-08-12 10:32:45 +0200 (Thu, 12 Aug 2010)
New Revision: 249
Url: http://nuiton.org/repositories/revision/wikitty/249
Log:
Add contains mathod for one value
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java 2010-08-11 17:09:50 UTC (rev 248)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Search.java 2010-08-12 08:32:45 UTC (rev 249)
@@ -128,6 +128,19 @@
}
/**
+ * Contains.
+ *
+ * @param element
+ * @param value
+ * @return
+ */
+ public Search contains(String element, String value) {
+ restrictions.add(RestrictionHelper.contains(elt(element),
+ value));
+ return this;
+ }
+
+ /**
* Equals.
*
* @param element
1
0
r248 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 11 Aug '10
by bleny@users.nuiton.org 11 Aug '10
11 Aug '10
Author: bleny
Date: 2010-08-11 19:09:50 +0200 (Wed, 11 Aug 2010)
New Revision: 248
Url: http://nuiton.org/repositories/revision/wikitty/248
Log:
remove done "todo"
Modified:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-11 17:09:50 UTC (rev 248)
@@ -32,7 +32,6 @@
/*{generator option: parentheses = false}*/
/*{generator option: writeString = +}*/
-// TODO 20100609 bleny break this transformer in more specialized transformer, WikittyMetaGenerator will manage all those transformers
public class WikittyMetaGenerator extends AbstractMetaTransformer<ObjectModel> {
private static final Log log = LogFactory.getLog(WikittyMetaGenerator.class);
1
0
r247 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 11 Aug '10
by bleny@users.nuiton.org 11 Aug '10
11 Aug '10
Author: bleny
Date: 2010-08-11 19:09:14 +0200 (Wed, 11 Aug 2010)
New Revision: 247
Url: http://nuiton.org/repositories/revision/wikitty/247
Log:
breaking single transformer to multiple transformers + utility class
Added:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java
Modified:
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -0,0 +1,224 @@
+package org.nuiton.wikitty.generator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Random;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
+/**
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyAbstractGenerator"
+ */
+public class WikittyAbstractGenerator extends ObjectModelTransformerToJava {
+
+ private static final Log log = LogFactory.getLog(WikittyAbstractGenerator.class);
+
+ @Override
+ public void transformFromClass(ObjectModelClass clazz) {
+ ObjectModelClass abstractClass = createAbstractClass(clazz.getName() + "Abstract", clazz.getPackageName());
+
+ // TODO 20100811 bleny remove unused imports
+ addImport(abstractClass, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(abstractClass, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(abstractClass, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(abstractClass, "org.nuiton.wikitty.WikittyExtension");
+ addImport(abstractClass, "org.nuiton.wikitty.WikittyUtil");
+ addImport(abstractClass, "org.nuiton.wikitty.WikittyUser");
+ addImport(abstractClass, "org.nuiton.wikitty.WikittyUserAbstract");
+ addImport(abstractClass, "org.nuiton.wikitty.WikittyUserImpl");
+ addImport(abstractClass, "org.nuiton.wikitty.TreeNode");
+ addImport(abstractClass, "org.nuiton.wikitty.TreeNodeAbstract");
+ addImport(abstractClass, "org.nuiton.wikitty.TreeNodeImpl");
+ addImport(abstractClass, java.util.List.class);
+ addImport(abstractClass, java.util.ArrayList.class);
+ addImport(abstractClass, java.util.Collection.class);
+ addImport(abstractClass, java.util.Collections.class);
+ addImport(abstractClass, java.util.Set.class);
+ addImport(abstractClass, java.util.Date.class);
+
+ addInterface(abstractClass, clazz.getQualifiedName());
+
+ Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
+ if (superClasses.isEmpty()) {
+ // no inheritance so inheritance from BusinessEntityWikitty
+ setSuperClass(abstractClass, "BusinessEntityWikitty");
+ } else {
+ for (ObjectModelClass superClass : superClasses) {
+ // using "for" but there will be 0 or 1 iteration
+ addInterface(abstractClass, superClass.getQualifiedName());
+ setSuperClass(abstractClass, superClass.getQualifiedName() + "Impl");
+ }
+ }
+
+ // adding a generated serialVersionUID
+ Random random = new Random();
+ Long serialVersionUIDs = random.nextLong();
+ addConstant(abstractClass,
+ "serialVersionUID",
+ "long",
+ serialVersionUIDs.toString() + "L",
+ ObjectModelModifier.PRIVATE);
+
+ ObjectModelOperation constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ setOperationBody(constructor, ""
+/*{
+ super();
+}*/);
+
+ constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ addParameter(constructor, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "wikitty");
+ setOperationBody(constructor, ""
+/*{
+ super(wikitty);
+}*/);
+
+ constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ addParameter(constructor, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
+ setOperationBody(constructor, ""
+/*{
+ super(businessEntityWikitty.getWikitty());
+}*/);
+
+
+ // adding some constants about extension to abstract
+ addConstant(abstractClass, "extensions", "List<WikittyExtension>", null, ObjectModelModifier.PUBLIC);
+ addConstant(abstractClass, "extension" + clazz.getName(), "WikittyExtension", null, ObjectModelModifier.PUBLIC);
+
+ // ... and a getter
+ ObjectModelOperation getStaticExtensions = addOperation(abstractClass, "getStaticExtensions", "Collection<WikittyExtension>", ObjectModelModifier.PUBLIC);
+ addAnnotation(abstractClass, getStaticExtensions, "Override");
+ setOperationBody(getStaticExtensions, ""
+/*{
+ return extensions;
+}*/);
+
+
+ //// preparing static equals(w1, w2)
+
+ ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
+ addParameter(equals, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "w1");
+ addParameter(equals, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "w2");
+
+ // the body of the equals method, will be assembled while reading attributes
+ String equalsBody = ""
+/*{
+ boolean result = true;
+}*/;
+ String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+ for(ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // two variables needed below
+ // String fieldVariableName = "FIELD_" + clazz.getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
+ String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+
+ // considering field in equals body
+ equalsBody += ""
+/*{
+ if (result) {
+ Object f1 = w1.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
+ Object f2 = w2.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
+ result = f1 == f2 || (f1 != null && f1.equals(f2));
+ };
+}*/;
+ }
+ }
+
+ // finishing equals body
+ equalsBody += ""
+/*{
+ return result;
+}*/;
+ setOperationBody(equals, equalsBody);
+
+
+ //// preparing a static block to initialize those constants
+ ObjectModelOperation staticInitialization = addBlock(abstractClass, ObjectModelModifier.STATIC);
+
+ // generating constructor call for extensionClient
+ // we will build a string to write a call
+ List<String> buildFieldMapExtensionParameters = new ArrayList<String>();
+
+
+
+ // now process attributes
+ for(ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // now add the attribute to the piece of code that build the extension
+ String wikittyType = WikittyGeneratorUtil.typeToWikittyColumn(attribute.getType());
+ String multiplicity = "";
+ if (attribute.getMinMultiplicity() != 1 ||
+ attribute.getMaxMultiplicity() != 1) {
+ // generate a string like [1-10] or [0-*] etc.
+ multiplicity = "["
+ + attribute.getMinMultiplicity()
+ + "-"
+ + (attribute.getMaxMultiplicity() == -1 ? "*" : attribute.getMaxMultiplicity())
+ + "]";
+ }
+
+ // generate a string line like " unique=true" or ""
+ String unique = attribute.isUnique() ? " unique=true" : "";
+ // generate a string line like " deprecated=true" or ""
+ String deprecated = attribute.hasTagValue("deprecated") ? " deprecated=" + attribute.getTagValue("deprecated") : "";
+ // generate a string line like ' documentation="my documentation"' or ""
+ String attributeDocumentation = attribute.hasTagValue("documentation") ? " documentation=\\\"" + attribute.getTagValue("documentation") + "\\\"": "";
+ // generate a string like " notNull=true" or ""
+ String notNull = attribute.hasTagValue("notNull") ? " notNull=" + attribute.getTagValue("notNull") : "";
+ buildFieldMapExtensionParameters.add("" // generate a line like '"Wikitty attributName[0-*] unique=true deprecated=true documentation=\"my documentation\""'
+/*{ "<%=wikittyType%> <%=attribute.getName()%><%=multiplicity%><%=unique%><%=deprecated%><%=notNull%><%=attributeDocumentation%>"}*/);
+ }
+ }
+
+ // finishing static block
+ String extensionVersion = clazz.getTagValue("version");
+ if (extensionVersion == null || "".equals(extensionVersion)) {
+ extensionVersion = "0.1";
+ log.warn("no version specified in model for " + clazz.getQualifiedName() + " using " + extensionVersion);
+ }
+
+ // a piece of code used in the static block
+ String requires = null;
+ for (ObjectModelClass superClass : superClasses) {
+ // using "for" but there will be 0 or 1 iteration
+ requires = superClass.getName() + "." + WikittyGeneratorUtil.classToExtensionVariableName(superClass);
+ }
+
+ String staticInitializationBody = ""
+/*{
+ extension<%=clazz.getName()%> =
+ new WikittyExtension(EXT_<%=clazz.getName().toUpperCase()%>,
+ "<%=extensionVersion%>", // version
+ <%= requires %>,
+ WikittyUtil.buildFieldMapExtension( // building field map
+<%=StringUtils.join(buildFieldMapExtensionParameters, ", \n")%>));
+
+ // init extensions
+ List<WikittyExtension> exts = new ArrayList<WikittyExtension>();
+}*/;
+
+ for (ObjectModelClass superClass : superClasses) {
+ // using "for" but there will be 0 or 1 iteration
+ staticInitializationBody += ""
+/*{
+ exts.addAll(<%=superClass.getName()%>Abstract.extensions);
+ // current after requires ones
+}*/;
+ }
+
+ staticInitializationBody += ""
+/*{
+ exts.add(extension<%=clazz.getName()%>);
+ extensions = Collections.unmodifiableList(exts);
+}*/;
+ setOperationBody(staticInitialization, staticInitializationBody);
+
+ }
+
+}
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -0,0 +1,84 @@
+package org.nuiton.wikitty.generator;
+
+import java.util.Collection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+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.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+
+/**
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyContractGenerator"
+ */
+public class WikittyContractGenerator extends ObjectModelTransformerToJava {
+
+ private static final Log log = LogFactory.getLog(WikittyContractGenerator.class);
+
+ @Override
+ public void transformFromClass(ObjectModelClass clazz) {
+
+ ObjectModelInterface contract = createInterface(clazz.getName(), clazz.getPackageName());
+ addInterface(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+
+ // TODO 20100811 bleny remove unused imports
+ addImport(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(contract, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(contract, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(contract, "org.nuiton.wikitty.WikittyExtension");
+ addImport(contract, "org.nuiton.wikitty.WikittyUtil");
+ addImport(contract, "org.nuiton.wikitty.WikittyUser");
+ addImport(contract, "org.nuiton.wikitty.WikittyUserAbstract");
+ addImport(contract, "org.nuiton.wikitty.WikittyUserImpl");
+ addImport(contract, "org.nuiton.wikitty.TreeNode");
+ addImport(contract, "org.nuiton.wikitty.TreeNodeAbstract");
+ addImport(contract, "org.nuiton.wikitty.TreeNodeImpl");
+ addImport(contract, java.util.List.class);
+ addImport(contract, java.util.ArrayList.class);
+ addImport(contract, java.util.Collection.class);
+ addImport(contract, java.util.Collections.class);
+ addImport(contract, java.util.Set.class);
+ addImport(contract, java.util.Date.class);
+
+ Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
+ if (! superClasses.isEmpty()) {
+ for (ObjectModelClass superClass : superClasses) {
+ // using "for" but there will be 0 or 1 iteration
+ addInterface(contract, superClass.getQualifiedName());
+ }
+ }
+
+ // adding public static final String EXT_CLIENT = "Client";
+ addConstant(contract,
+ "EXT_" + clazz.getName().toUpperCase(),
+ "String",
+ "\"" + clazz.getName() + "\"",
+ ObjectModelModifier.PUBLIC);
+
+ String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+
+ for(ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // two variables needed below
+ String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+
+ // adding constants to contract
+ addConstant(contract,
+ fieldVariableName,
+ "String",
+ "\"" + attribute.getName() + "\"",
+ ObjectModelModifier.PUBLIC);
+ // adding public static final String FQ_FIELD_CLIENT_NAME = EXT_CLIENT + ".name";
+ addConstant(contract,
+ "FQ_" + fieldVariableName,
+ "String",
+ extensionVariableName + " + \"." + attribute.getName() + "\"",
+ ObjectModelModifier.PUBLIC);
+ }
+ }
+ }
+
+}
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyGeneratorUtil.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -0,0 +1,96 @@
+package org.nuiton.wikitty.generator;
+
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+
+
+public class WikittyGeneratorUtil {
+
+ /** utility class should not be instanciated */
+ private WikittyGeneratorUtil() {}
+
+ protected static final String BUSINESS_ENTITY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntity";
+ protected static final String BUSINESS_ENTITY_WIKITTY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntityWikitty";
+ protected static final String WIKITTY_CLASS_FQN = "org.nuiton.wikitty.Wikitty";
+
+ /** given a class called Client will return "EXT_CLIENT"
+ * should be used as a variable name to store the extension name
+ */
+ protected static String classToExtensionVariableName(ObjectModelClass clazz) {
+ String extensionVariableName = "EXT_" + clazz.getName().toUpperCase();
+ return extensionVariableName;
+ }
+
+ /** given the field name of the class client, will return FIELD_CLIENT_NAME */
+ protected static String attributeToFielVariableName(ObjectModelAttribute attribute) {
+ String fieldVariableName = "FIELD_" + attribute.getDeclaringElement().getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
+ return fieldVariableName;
+ }
+
+ /** given "my.java.package.MyClass" or "MyClass" return "MyClass" */
+ protected static String FQNtoSimpleName(String fqn) {
+ int lastDotIndex = fqn.lastIndexOf(".");
+ String simpleName = fqn;
+ if (lastDotIndex != -1) {
+ simpleName = fqn.substring(lastDotIndex + 1);
+ }
+ return simpleName;
+ }
+
+ /**
+ * wikitty interface provide getFieldAsString, getFieldAsDate etc. methods
+ * this method returns the good name of the method to call depending the
+ * type given as parameter
+ * @param typeName a name of a business entity or "String", "Integer" etc.
+ * @return the name of a method "getFieldAsInt" for example
+ */
+ protected static String generateGetFieldAsCall(String typeName) {
+ String asWhat = FQNtoSimpleName(typeName);
+ if ("boolean".equals(asWhat)) {
+ asWhat = "Boolean";
+ } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
+ asWhat = "Int";
+ } else if ("Date".equals(asWhat)) {
+ // asWhat = "Date";
+ } else {
+ asWhat = "String";
+ }
+ return "getFieldAs" + asWhat;
+ }
+
+
+ protected static String generateResultType(String typeName) {
+ String asWhat = FQNtoSimpleName(typeName);
+ if ("boolean".equals(asWhat)) {
+ // asWhat = "boolean";
+ } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
+ // asWhat = "Int";
+ } else if ("Date".equals(asWhat)) {
+ // asWhat = "Date";
+ } else {
+ asWhat = "String";
+ }
+ return asWhat;
+ }
+
+ protected static String typeToWikittyColumn(String type) {
+ String simpleType = FQNtoSimpleName(type);
+ String result = null;
+ if ("Date".equals(simpleType)) {
+ result = "Date";
+ } else if ("String".equals(simpleType)) {
+ result = "String";
+ } else if ("boolean".equals(simpleType)) {
+ result = "boolean";
+ } else if ("int".equals(simpleType) ||
+ "Integer".equals(simpleType)) {
+ result = "Numeric";
+ } else {
+ result = "Wikitty";
+ }
+ return result;
+ }
+
+
+
+}
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -0,0 +1,44 @@
+package org.nuiton.wikitty.generator;
+
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
+/**
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyHelperGenerator"
+ */
+public class WikittyHelperGenerator extends ObjectModelTransformerToJava {
+
+ @Override
+ public void transformFromClass(ObjectModelClass clazz) {
+
+ ObjectModelClass helper = createClass(clazz.getName() + "Helper", clazz.getPackageName());
+
+ // TODO 20100811 bleny remove unused imports
+ addImport(helper, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(helper, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(helper, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(helper, "org.nuiton.wikitty.WikittyExtension");
+ addImport(helper, "org.nuiton.wikitty.WikittyUtil");
+ addImport(helper, "org.nuiton.wikitty.WikittyUser");
+ addImport(helper, "org.nuiton.wikitty.WikittyUserAbstract");
+ addImport(helper, "org.nuiton.wikitty.WikittyUserImpl");
+ addImport(helper, "org.nuiton.wikitty.TreeNode");
+ addImport(helper, "org.nuiton.wikitty.TreeNodeAbstract");
+ addImport(helper, "org.nuiton.wikitty.TreeNodeImpl");
+ addImport(helper, java.util.List.class);
+ addImport(helper, java.util.ArrayList.class);
+ addImport(helper, java.util.Collection.class);
+ addImport(helper, java.util.Collections.class);
+ addImport(helper, java.util.Set.class);
+ addImport(helper, java.util.Date.class);
+
+ // provides interface constants for to the helper
+ setSuperClass(helper, clazz.getQualifiedName() + "Impl");
+
+ // making constructor for helper class (empty and private)
+ ObjectModelOperation constructor = addConstructor(helper, ObjectModelModifier.PRIVATE);
+ setOperationBody(constructor, "\n// utility class\n"); // empty implementation
+ }
+}
Added: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java (rev 0)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -0,0 +1,71 @@
+package org.nuiton.wikitty.generator;
+
+import java.util.Random;
+
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
+/**
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyImplementationGenerator"
+ */
+public class WikittyImplementationGenerator extends ObjectModelTransformerToJava {
+
+ @Override
+ public void transformFromClass(ObjectModelClass clazz) {
+ ObjectModelClass implementation = createClass(clazz.getName() + "Impl", clazz.getPackageName());
+
+ // TODO 20100811 bleny remove unused imports
+ addImport(implementation, WikittyGeneratorUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(implementation, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(implementation, WikittyGeneratorUtil.WIKITTY_CLASS_FQN);
+ addImport(implementation, "org.nuiton.wikitty.WikittyExtension");
+ addImport(implementation, "org.nuiton.wikitty.WikittyUtil");
+ addImport(implementation, "org.nuiton.wikitty.WikittyUser");
+ addImport(implementation, "org.nuiton.wikitty.WikittyUserAbstract");
+ addImport(implementation, "org.nuiton.wikitty.WikittyUserImpl");
+ addImport(implementation, "org.nuiton.wikitty.TreeNode");
+ addImport(implementation, "org.nuiton.wikitty.TreeNodeAbstract");
+ addImport(implementation, "org.nuiton.wikitty.TreeNodeImpl");
+ addImport(implementation, java.util.List.class);
+ addImport(implementation, java.util.ArrayList.class);
+ addImport(implementation, java.util.Collection.class);
+ addImport(implementation, java.util.Collections.class);
+ addImport(implementation, java.util.Set.class);
+ addImport(implementation, java.util.Date.class);
+
+ setSuperClass(implementation, clazz.getQualifiedName() + "Abstract");
+
+ // adding constructor
+ ObjectModelOperation constructor = addConstructor(implementation, ObjectModelModifier.PUBLIC);
+ setOperationBody(constructor, ""
+/*{
+ super();
+}*/);
+
+ constructor = addConstructor(implementation, ObjectModelModifier.PUBLIC);
+ addParameter(constructor, WikittyGeneratorUtil.WIKITTY_CLASS_FQN, "wikitty");
+ setOperationBody(constructor, ""
+/*{
+ super(wikitty);
+}*/);
+
+ constructor = addConstructor(implementation, ObjectModelModifier.PUBLIC);
+ addParameter(constructor, WikittyGeneratorUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
+ setOperationBody(constructor, ""
+/*{
+ super(businessEntityWikitty.getWikitty());
+}*/);
+
+ // adding a generated serialVersionUID
+ Random random = new Random();
+ Long serialVersionUIDs = random.nextLong();
+ addConstant(implementation,
+ "serialVersionUID",
+ "long",
+ serialVersionUIDs.toString() + "L",
+ ObjectModelModifier.PRIVATE);
+ }
+
+}
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-11 15:27:25 UTC (rev 246)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaGenerator.java 2010-08-11 17:09:14 UTC (rev 247)
@@ -8,7 +8,11 @@
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.AbstractMetaTransformer;
+import org.nuiton.eugene.TemplateConfiguration;
+import org.nuiton.eugene.Transformer;
import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
@@ -23,483 +27,208 @@
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyMetaGenerator"
*/
-
// TODO 20100610 use filter with /*[]*/
/*{generator option: writeString = }*/
/*{generator option: parentheses = false}*/
/*{generator option: writeString = +}*/
// TODO 20100609 bleny break this transformer in more specialized transformer, WikittyMetaGenerator will manage all those transformers
-public class WikittyMetaGenerator extends ObjectModelTransformerToJava {
-
+public class WikittyMetaGenerator extends AbstractMetaTransformer<ObjectModel> {
+
private static final Log log = LogFactory.getLog(WikittyMetaGenerator.class);
- protected static final String BUSINESS_ENTITY_STEREOTYPE_NAME = "entity";
/** @deprecated name change : see ticket #798. use BUSINESS_ENTITY_STEREOTYPE_NAME */
@Deprecated
protected static final String BUSINESS_ENTITY_STEREOTYPE_OLD_NAME = "BusinessEntity";
-
-
- protected static final String BUSINESS_ENTITY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntity";
- protected static final String BUSINESS_ENTITY_WIKITTY_CLASS_FQN = "org.nuiton.wikitty.BusinessEntityWikitty";
- protected static final String WIKITTY_CLASS_FQN = "org.nuiton.wikitty.Wikitty";
- /** current class read from model */
- protected ObjectModelClass clazz;
+ protected static final String BUSINESS_ENTITY_STEREOTYPE_NAME = "entity";
- /** contract for this business entity */
- protected ObjectModelInterface contract;
-
- /** abstract class for this business entity */
- protected ObjectModelClass abstractClass;
-
- /** implementation class for this business entity */
- protected ObjectModelClass implementation;
-
- /** implementation class for this business entity */
- protected ObjectModelClass helper;
-
- /** the body of the equals method, will be assembled while reading attributes */
- protected String equalsBody;
+ public WikittyMetaGenerator() {
+ super(WikittyContractGenerator.class,
+ WikittyAbstractGenerator.class,
+ WikittyImplementationGenerator.class,
+ WikittyHelperGenerator.class);
+ }
@Override
- public void transformFromClass(ObjectModelClass clazz) {
+ protected boolean validateModel(ObjectModel model) {
- this.clazz = clazz;
-
- Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
- if (superClasses.size() > 1) {
- log.error("Java doesn't support multiple inheritance for class " + clazz.getName());
- return ;
+ if (model.getClasses().isEmpty()) {
+ log.warn("model doesn't contains any class");
}
-
- if (clazz.getStereotypes().contains(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) {
- log.warn(clazz.getName() + " uses deprecated \"" + BUSINESS_ENTITY_STEREOTYPE_OLD_NAME
- +"\" stereotype. use \"" + BUSINESS_ENTITY_STEREOTYPE_NAME + "\" instead");
- }
- if (clazz.getStereotypes().contains(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)
- || clazz.getStereotypes().contains(BUSINESS_ENTITY_STEREOTYPE_NAME)) {
- // for a single business entity, we create a contract, an abstract and an implementation
- contract = createInterface(clazz.getName(), clazz.getPackageName());
- abstractClass = createAbstractClass(clazz.getName() + "Abstract", clazz.getPackageName());
- implementation = createClass(clazz.getName() + "Impl", clazz.getPackageName());
- helper = createClass(clazz.getName() + "Helper", clazz.getPackageName());
-
- addImports(contract);
- addImports(abstractClass);
- addImports(implementation);
- addImports(helper);
-
- // now, deal with inheritance
-
- // implementation extends abstract and abstract realizes contract
- addInterface(contract, BUSINESS_ENTITY_CLASS_FQN);
- addInterface(abstractClass, contract.getQualifiedName());
- setSuperClass(implementation, abstractClass.getQualifiedName());
- setSuperClass(helper, implementation.getQualifiedName()); // as it was in the old templates
-
- // dealing with inheritance between entities specified in the model
- if (superClasses.isEmpty()) {
- // no inheritance so inheritance from BusinessEntityWikitty
- setSuperClass(abstractClass, "BusinessEntityWikitty");
- } else {
- for (ObjectModelClass superClass : superClasses) {
- // using "for" but there will be 0 or 1 iteration
- addInterface(contract, superClass.getQualifiedName());
- addInterface(abstractClass, superClass.getQualifiedName());
- setSuperClass(abstractClass, superClass.getQualifiedName() + "Impl");
- }
+ for (ObjectModelClass clazz : model.getClasses()) {
+ if (clazz.getSuperclasses().size() > 1) {
+ log.error("multiple inheritance for class " + clazz.getName());
+ return false;
}
-
- // adding public static final String EXT_CLIENT = "Client";
- addConstant(contract,
- "EXT_" + clazz.getName().toUpperCase(),
- "String",
- "\"" + clazz.getName() + "\"",
- ObjectModelModifier.PUBLIC);
-
- // adding serialVersionUIDs
- Random random = new Random();
- Long serialVersionUIDs = random.nextLong();
- addConstant(abstractClass,
- "serialVersionUID",
- "long",
- serialVersionUIDs.toString() + "L",
- ObjectModelModifier.PRIVATE);
- serialVersionUIDs = random.nextLong();
- addConstant(implementation,
- "serialVersionUID",
- "long",
- serialVersionUIDs.toString() + "L",
- ObjectModelModifier.PRIVATE);
- // making constructors for abstract and implementation (both are same)
- addConstructors(abstractClass);
- addConstructors(implementation);
-
- // making constructor for helper class (empty and private)
- ObjectModelOperation constructor = addConstructor(helper, ObjectModelModifier.PRIVATE);
- setOperationBody(constructor, "\n// utility class\n"); // empty implementation
-
- // adding some constants about extension to abstract
- addConstant(abstractClass, "extensions", "List<WikittyExtension>", null, ObjectModelModifier.PUBLIC);
- addConstant(abstractClass, "extension" + clazz.getName(), "WikittyExtension", null, ObjectModelModifier.PUBLIC);
-
- // ... and a getter
- ObjectModelOperation getStaticExtensions = addOperation(abstractClass, "getStaticExtensions", "Collection<WikittyExtension>", ObjectModelModifier.PUBLIC);
- setOperationBody(getStaticExtensions, ""
-/*{
- return extensions;
-}*/);
- addAnnotation(abstractClass, getStaticExtensions, "Override");
-
- // preparing a static block to initialize those constants
- ObjectModelOperation staticInitialization = addBlock(abstractClass, ObjectModelModifier.STATIC);
-
- // generating constructor call for extensionClient
- // we will build a string to write a call
- List<String> buildFieldMapExtensionParameters = new ArrayList<String>();
-
- // preparing static equals(w1, w2)
- ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
- addParameter(equals, WIKITTY_CLASS_FQN, "w1");
- addParameter(equals, WIKITTY_CLASS_FQN, "w2");
- equalsBody = ""
-/*{
- boolean result = true;
-}*/;
-
- // now process attributes
- for(ObjectModelAttribute attribute : clazz.getAttributes()) {
- if (attribute.isNavigable()) {
- processAttribute(attribute);
-
- // equalsBody will be updated in processAttribute
- buildFieldMapExtensionParameters.add("\"" + attribute.getType() + " " + attribute.getName() + "\"");
-
- }
+ if (clazz.getStereotypes().contains(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) {
+ log.warn(clazz.getQualifiedName() + " uses deprecated \"" + BUSINESS_ENTITY_STEREOTYPE_OLD_NAME
+ +"\" stereotype. use \"" + BUSINESS_ENTITY_STEREOTYPE_NAME + "\" instead");
}
-
- // finishing equals body
- equalsBody += ""
-/*{
- return result;
-}*/;
- setOperationBody(equals, equalsBody);
-
- // finishing static block
- String extensionVersion = clazz.getTagValue("version");
- if (extensionVersion == null || "".equals(extensionVersion)) {
- extensionVersion = "0.1";
- log.warn("no version specified in model for " + clazz.getQualifiedName() + " using " + extensionVersion);
- }
-
- // a piece of code used in the static block
- String requires = null;
- for (ObjectModelClass superClass : superClasses) {
- // using "for" but there will be 0 or 1 iteration
- requires = superClass.getName() + ".EXT_" + superClass.getName().toUpperCase();
- }
-
- String staticInitializationBody = ""
- /*{
- extension<%=clazz.getName()%> =
- new WikittyExtension(EXT_<%=clazz.getName().toUpperCase()%>,
- "<%=extensionVersion%>", // version
- <%= requires %>, //
- WikittyUtil.buildFieldMapExtension(<%=StringUtils.join(buildFieldMapExtensionParameters, ", \n")%>));
-
- // init extensions
- List<WikittyExtension> exts = new ArrayList<WikittyExtension>();
- }*/;
-
- for (ObjectModelClass superClass : superClasses) {
- // using "for" but there will be 0 or 1 iteration
- staticInitializationBody += ""
-/*{
- exts.addAll(<%=superClass.getName()%>Abstract.extensions);
- // current after requires ones
-}*/;
- }
-
- staticInitializationBody += ""
-/*{
- exts.add(extension<%=clazz.getName()%>);
- extensions = Collections.unmodifiableList(exts);
-}*/;
- setOperationBody(staticInitialization, staticInitializationBody);
}
- }
- protected void addImports(ObjectModelClassifier classifier) {
- addImport(classifier, BUSINESS_ENTITY_CLASS_FQN);
- addImport(classifier, BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(classifier, WIKITTY_CLASS_FQN);
- addImport(classifier, "org.nuiton.wikitty.WikittyExtension");
- addImport(classifier, "org.nuiton.wikitty.WikittyUtil");
- addImport(classifier, "org.nuiton.wikitty.WikittyUser");
- addImport(classifier, "org.nuiton.wikitty.WikittyUserAbstract");
- addImport(classifier, "org.nuiton.wikitty.WikittyUserImpl");
- addImport(classifier, "org.nuiton.wikitty.TreeNode");
- addImport(classifier, "org.nuiton.wikitty.TreeNodeAbstract");
- addImport(classifier, "org.nuiton.wikitty.TreeNodeImpl");
- addImport(classifier, java.util.List.class);
- addImport(classifier, java.util.ArrayList.class);
- addImport(classifier, java.util.Collection.class);
- addImport(classifier, java.util.Collections.class);
- addImport(classifier, java.util.Set.class);
- addImport(classifier, java.util.Date.class);
+ return true;
}
- /** add three constructors : empty, from business entity wikitty, from wikitty */
- protected void addConstructors(ObjectModelClass clazz) {
- ObjectModelOperation constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
- setOperationBody(constructor, ""
-/*{
- super();
-}*/);
-
- constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
- addParameter(constructor, WIKITTY_CLASS_FQN, "wikitty");
- setOperationBody(constructor, ""
-/*{
- super(wikitty);
-}*/);
-
- constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
- addParameter(constructor, BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
- setOperationBody(constructor, ""
-/*{
- super(businessEntityWikitty.getWikitty());
-}*/);
- }
-
-
- protected void processAttribute(ObjectModelAttribute attribute) {
- // two variables needed below
- String extensionVariableName = "EXT_" + clazz.getName().toUpperCase();
- String fieldVariableName = "FIELD_" + clazz.getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
-
- // adding constants to contract
- {
- addConstant(contract,
- fieldVariableName,
- "String",
- "\"" + attribute.getName() + "\"",
- ObjectModelModifier.PUBLIC);
- // adding public static final String FQ_FIELD_CLIENT_NAME = EXT_CLIENT + ".name";
- addConstant(contract,
- "FQ_" + fieldVariableName,
- "String",
- extensionVariableName + " + \"." + attribute.getName() + "\"",
- ObjectModelModifier.PUBLIC);
- }
-
- // considering field in equals body
- {
- equalsBody += ""
-/*{
- if (result) {
- Object f1 = w1.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- Object f2 = w2.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- result = f1 == f2 || (f1 != null && f1.equals(f2));
- };
-}*/;
- }
-
- // let's find a name for the getter
- String getterName = getMethodName("get", contract, attribute, attribute.getTagValue("getter"));
-
- // let's find a name for the setter
- String setterName = getMethodName("set", contract, attribute, attribute.getTagValue("setter"));
-
- // attribute type simple name as it should be in signature
- String attributeTypeSimpleName = FQNtoSimpleName(attribute.getType());
- if ("boolean".equals(attributeTypeSimpleName)) {
- attributeTypeSimpleName = "Boolean";
- } else if ("int".equals(attributeTypeSimpleName)) {
- attributeTypeSimpleName = "Integer";
- }
-
- if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
- String attributeTypeSimpleNameInSet = "Set<" + attributeTypeSimpleName + ">";
-
- // now, for this attribute, we will generate add, remove and clear methods
-
- // adding operations to contract
- ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
-
- String addName = getMethodName("add", contract, attribute, attribute.getTagValue("adder"));
- ObjectModelOperation adder = addOperation(contract, addName, "void");
- addParameter(adder, "String", "element");
-
- String removeName = getMethodName("remove", contract, attribute, attribute.getTagValue("remover"));
- ObjectModelOperation remover = addOperation(contract, removeName, "void");
- addParameter(remover, "String", "element");
-
- String clearName = getMethodName("clear", contract, attribute, attribute.getTagValue("clear"));
- ObjectModelOperation clear = addOperation(contract, clearName, "void");
-
- // adding operations to abstract with bodies
- getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
- String getterBody = ""
-/*{
- <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeTypeSimpleName %>.class);
- return result;
-}*/;
- setOperationBody(getter, getterBody);
-
- adder = cloneOperationSignature(adder, abstractClass, true, ObjectModelModifier.PUBLIC);
- String adderBody = ""
-/*{
- getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
-}*/;
- setOperationBody(adder, adderBody);
-
- remover = cloneOperationSignature(remover, abstractClass, true, ObjectModelModifier.PUBLIC);
- String removerBody = ""
-/*{
- getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-}*/;
- setOperationBody(remover, removerBody);
-
- clear = cloneOperationSignature(clear, abstractClass, true, ObjectModelModifier.PUBLIC);
- String clearBody = ""
-/*{
- getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-}*/;
- setOperationBody(clear, clearBody);
-
- // adding operations to Helper with bodies
- getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
- addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
- setOperationBody(getter, ""
-/*{
- <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeTypeSimpleName%>.class);
- return result;
-}*/);
-
- adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
- addParameter(adder, WIKITTY_CLASS_FQN, "wikitty");
- addParameter(adder, attributeTypeSimpleName, "element");
- setOperationBody(adder, ""
-/*{
- wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-}*/
-);
-
- remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
- addParameter(remover, WIKITTY_CLASS_FQN, "wikitty");
- addParameter(remover, attributeTypeSimpleName, "element");
- setOperationBody(remover, ""
-/*{
- wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-}*/);
-
- clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
- addParameter(clear, WIKITTY_CLASS_FQN, "wikitty");
- setOperationBody(clear, ""
-/*{
- wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
-}*/);
-
- } else {
- String getFieldMethodName = generateGetFieldAsCall(attribute.getType());
- String resultType = generateResultType(attribute.getType());
- attributeTypeSimpleName = resultType;
-
- // adding getter and setter to contract
- ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleName);
- ObjectModelOperation setter = addOperation(contract, setterName, "void");
- addParameter(setter, attributeTypeSimpleName, attribute.getName());
-
- // adding getter and setter to abstract with bodies
- getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
- setOperationBody(getter, ""
-/*{
- <%=resultType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
- return result;
-}*/);
-
- setter = cloneOperationSignature(setter, abstractClass, true, ObjectModelModifier.PUBLIC);
- setOperationBody(setter, ""
-/*{
- Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
- getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
-}*/);
-
- // adding getter and setter to Helper with bodies
- getter = addOperation(helper, getterName, attributeTypeSimpleName, ObjectModelModifier.STATIC);
- addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
- setOperationBody(getter, ""
-/*{
- <%=resultType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
- return result;
-}*/);
-
- setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
- addParameter(setter, WIKITTY_CLASS_FQN, "wikitty");
- addParameter(setter, attributeTypeSimpleName, attribute.getName());
- setOperationBody(setter, ""
-/*{
- wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
-}*/);
- }
- }
+// will be moved soon
+// protected void processAttribute(ObjectModelAttribute attribute) {
+// // two variables needed below
+// String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
+// String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
+//
+//
+//
+// // let's find a name for the getter
+// String getterName = getMethodName("get", contract, attribute, attribute.getTagValue("getter"));
+//
+// // let's find a name for the setter
+// String setterName = getMethodName("set", contract, attribute, attribute.getTagValue("setter"));
+//
+// // attribute type simple name as it should be in signature
+// String attributeTypeSimpleName = WikittyGeneratorUtil.FQNtoSimpleName(attribute.getType());
+// if ("boolean".equals(attributeTypeSimpleName)) {
+// attributeTypeSimpleName = "Boolean";
+// } else if ("int".equals(attributeTypeSimpleName)) {
+// attributeTypeSimpleName = "Integer";
+// }
+//
+// if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+// // attributed is a collection, we will generate operations get, add, remove and clear
+// String attributeTypeSimpleNameInSet = "Set<" + attributeTypeSimpleName + ">";
+//
+// // now, for this attribute, we will generate add, remove and clear methods
+//
+// // adding operations to contract
+// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
+//
+// String addName = getMethodName("add", contract, attribute, attribute.getTagValue("adder"));
+// ObjectModelOperation adder = addOperation(contract, addName, "void");
+// addParameter(adder, "String", "element");
+//
+// String removeName = getMethodName("remove", contract, attribute, attribute.getTagValue("remover"));
+// ObjectModelOperation remover = addOperation(contract, removeName, "void");
+// addParameter(remover, "String", "element");
+//
+// String clearName = getMethodName("clear", contract, attribute, attribute.getTagValue("clear"));
+// ObjectModelOperation clear = addOperation(contract, clearName, "void");
+//
+// // adding operations to abstract with bodies
+// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String getterBody = ""
+///*{
+// <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeTypeSimpleName %>.class);
+// return result;
+//}*/;
+// setOperationBody(getter, getterBody);
+//
+// adder = cloneOperationSignature(adder, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String adderBody = ""
+///*{
+// getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
+//}*/;
+// setOperationBody(adder, adderBody);
+//
+// remover = cloneOperationSignature(remover, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String removerBody = ""
+///*{
+// getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+//}*/;
+// setOperationBody(remover, removerBody);
+//
+// clear = cloneOperationSignature(clear, abstractClass, true, ObjectModelModifier.PUBLIC);
+// String clearBody = ""
+///*{
+// getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+//}*/;
+// setOperationBody(clear, clearBody);
+//
+// // adding operations to Helper with bodies
+// getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
+// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(getter, ""
+///*{
+// <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeTypeSimpleName%>.class);
+// return result;
+//}*/);
+//
+// adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
+// addParameter(adder, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(adder, attributeTypeSimpleName, "element");
+// setOperationBody(adder, ""
+///*{
+// wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+//}*/
+//);
+//
+// remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
+// addParameter(remover, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(remover, attributeTypeSimpleName, "element");
+// setOperationBody(remover, ""
+///*{
+// wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+//}*/);
+//
+// clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
+// addParameter(clear, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(clear, ""
+///*{
+// wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
+//}*/);
+//
+// } else {
+// // attribute is not a collection, we generate a getter and a setter
+// String getFieldMethodName = WikittyGeneratorUtil.generateGetFieldAsCall(attribute.getType());
+// String resultType = WikittyGeneratorUtil.generateResultType(attribute.getType());
+// attributeTypeSimpleName = resultType;
+//
+// // adding getter and setter to contract
+// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleName);
+// ObjectModelOperation setter = addOperation(contract, setterName, "void");
+// addParameter(setter, attributeTypeSimpleName, attribute.getName());
+//
+// // adding getter and setter to abstract with bodies
+// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// setOperationBody(getter, ""
+///*{
+// <%=resultType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// return result;
+//}*/);
+//
+// setter = cloneOperationSignature(setter, abstractClass, true, ObjectModelModifier.PUBLIC);
+// setOperationBody(setter, ""
+///*{
+// Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
+// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
+//}*/);
+//
+// // adding getter and setter to Helper with bodies
+// getter = addOperation(helper, getterName, attributeTypeSimpleName, ObjectModelModifier.STATIC);
+// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
+// setOperationBody(getter, ""
+///*{
+// <%=resultType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+// return result;
+//}*/);
+//
+// setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
+// addParameter(setter, WIKITTY_CLASS_FQN, "wikitty");
+// addParameter(setter, attributeTypeSimpleName, attribute.getName());
+// setOperationBody(setter, ""
+///*{
+// wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
+//}*/);
+// }
+// }
- /** given "my.java.package.MyClass" or "MyClass" return "MyClass" */
- protected static String FQNtoSimpleName(String fqn) {
- int lastDotIndex = fqn.lastIndexOf(".");
- String simpleName = fqn;
- if (lastDotIndex != -1) {
- simpleName = fqn.substring(lastDotIndex + 1);
- }
- return simpleName;
- }
-
- /**
- * wikitty interface provide getFieldAsString, getFieldAsDate etc. methods
- * this method returns the good name of the method to call depending the
- * type given as parameter
- * @param typeName a name of a business entity or "String", "Integer" etc.
- * @return the name of a method "getFieldAsInt" for example
- */
- protected static String generateGetFieldAsCall(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- asWhat = "Boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
- } else {
- asWhat = "String";
- }
- return "getFieldAs" + asWhat;
- }
-
- protected static String generateResultType(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- // asWhat = "boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- // asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
- } else {
- asWhat = "String";
- }
- return asWhat;
- }
-
/** getMethodName("add", contract, attribute, "myNameForThisAdder")
- * will return "myNameForThisAdder" if not already defined in contract
+ * will return "myNameForThisAdder" if not already defined in contract ;
* if already defined, will try add<attributeName>. If it already exists
* will return add<attributeName>From<ExtensionName> */
protected String getMethodName(String operatorName,
@@ -509,15 +238,15 @@
String methodName = claimedValue;
if (methodName != null) {
if (! classifier.getOperations(methodName).isEmpty()) {
- log.warn(methodName + " operation already exists in " + clazz.getQualifiedName() + " ignoring tagValue");
+ log.warn(methodName + " operation already exists in " + attribute.getDeclaringElement().getName() + " ignoring tagValue");
methodName = null;
- }
+ }
}
-
+
if (methodName == null) {
methodName = operatorName + StringUtils.capitalize(attribute.getName());
if (! classifier.getOperations(methodName).isEmpty()) {
- methodName += "From" + clazz.getName();
+ methodName += "From" + attribute.getDeclaringElement().getName();
}
}
return methodName;
1
0