Eugene-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
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- 1738 discussions
26 Apr '14
Author: tchemit
Date: 2014-04-26 21:16:12 +0200 (Sat, 26 Apr 2014)
New Revision: 1345
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1345
Log:
refs #3175 add default value on TagValueDefinition
Modified:
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java
trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -79,6 +79,7 @@
* @since 2.3
*/
@TagValueDefinition(target = {ObjectModel.class, ObjectModelClassifier.class},
+ defaultValue = "PROPERTY_",
documentation = "Sets the prefix of any constant to be generated for the given class")
String TAG_CONSTANT_PREFIX = "constantPrefix";
@@ -102,6 +103,7 @@
* @since 2.4.1
*/
@TagValueDefinition(target = {ObjectModel.class, ObjectModelClassifier.class},
+ defaultValue = "true",
documentation = "To specify to NOT generate getXXX methods for boolean properties")
String TAG_DO_NOT_GENERATE_BOOLEAN_GET_METHODS = "doNotGenerateBooleanGetMethods";
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -149,6 +149,7 @@
return result;
}
+ @Deprecated
public boolean containsTagValue(String tagValueName) {
boolean b = tagValueStore.containsKey(tagValueName);
return b;
@@ -159,16 +160,21 @@
return b;
}
- public void acceptTagValue(String tagValueName, Class<?> type) throws TagValueNotFoundException, MismatchTagValueTargetException {
-
+ public TagValueDefinition getTagValueDefinition(String tagValueName) {
TagValueDefinition def = null;
for (TagValueMatcher tagValueMatcher : tagValueMatchers) {
- def = tagValueMatcher.match(tagValueName, type);
+ def = tagValueMatcher.match(tagValueName);
if (def != null) {
break;
}
}
+ return def;
+ }
+ public void acceptTagValue(String tagValueName, Class<?> type) throws TagValueNotFoundException, MismatchTagValueTargetException {
+
+ TagValueDefinition def = getTagValueDefinition(tagValueName);
+
if (def == null) {
throw new TagValueNotFoundException();
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -42,5 +42,15 @@
*/
String documentation();
- Class<? extends TagValueMatcher> validatorClass() default DefaultTagValueMatcher.class;
+ /**
+ * @return the matcher used to find out back a tagValue definition from his name.
+ * @since 2.9
+ */
+ Class<? extends TagValueMatcher> matcherClass() default DefaultTagValueMatcher.class;
+
+ /**
+ * @return the default value to use, if not setted then do NOT use the default value.
+ * @since 2.9
+ */
+ String defaultValue() default "";
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -23,7 +23,7 @@
this.modelPropertiesProvider = modelPropertiesProvider;
Map<String, TagValueDefinition> tagValues = new TreeMap<String, TagValueDefinition>();
for (Map.Entry<String, TagValueDefinition> entry : modelPropertiesProvider.getTagValueStore().entrySet()) {
- if (getClass().equals(entry.getValue().validatorClass())) {
+ if (getClass().equals(entry.getValue().matcherClass())) {
tagValues.put(entry.getKey(), entry.getValue());
}
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -16,7 +16,7 @@
}
@Override
- public TagValueDefinition match(String tagValueName, Class<?> type) {
+ public TagValueDefinition match(String tagValueName) {
TagValueDefinition tagValueDefinition = null;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -16,7 +16,7 @@
}
@Override
- public TagValueDefinition match(String tagValueName, Class<?> type) {
+ public TagValueDefinition match(String tagValueName) {
TagValueDefinition tagValueDefinition = null;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -3,7 +3,7 @@
import org.nuiton.eugene.metas.TagValueDefinition;
/**
- * To validate a Tag value.
+ * To match a Tag value.
* <p/>
* Created on 4/26/14.
*
@@ -12,5 +12,5 @@
*/
public interface TagValueMatcher {
- TagValueDefinition match(String tagValueName, Class<?> type);
+ TagValueDefinition match(String tagValueName);
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -451,8 +451,7 @@
}
String fqn = matcher.group(1);
- fqn = StringUtil.substring(fqn, 0, -1); // remove ended
- // .
+ fqn = StringUtil.substring(fqn, 0, -1); // remove ended dot
// target is class, attribute or operation
String target = matcher.group(2);
// name of the target (can be null on class)
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -123,8 +123,15 @@
}
protected void containsTagValue(String name, boolean expected) {
- boolean classes = provider.containsTagValue(name);
- Assert.assertEquals(expected, classes);
+ try {
+ provider.acceptTagValue(name, Object.class);
+ Assert.assertTrue(expected);
+ } catch (TagValueNotFoundException e) {
+ Assert.assertFalse(expected);
+ } catch (MismatchTagValueTargetException e) {
+ // dont care
+ }
+
}
protected void acceptTagValue(String name, boolean expected, Class<?>... types) {
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -47,6 +47,7 @@
*/
@TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
+ defaultValue = "true",
documentation = "To specify to not generate any propertyChange " +
"code for a class or any class of a model")
String TAG_NO_PCS = "noPCS";
Modified: trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344)
+++ trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 19:16:12 UTC (rev 1345)
@@ -116,8 +116,14 @@
}
protected void containsTagValue(String name, boolean expected) {
- boolean classes = provider.containsTagValue(name);
- Assert.assertEquals(expected, classes);
+ try {
+ provider.acceptTagValue(name, Object.class);
+ Assert.assertTrue(expected);
+ } catch (TagValueNotFoundException e) {
+ Assert.assertFalse(expected);
+ } catch (MismatchTagValueTargetException e) {
+ // don't care here
+ }
}
protected void acceptTagValue(String name, boolean expected, Class<?>... types) {
1
0
26 Apr '14
Author: tchemit
Date: 2014-04-26 20:56:51 +0200 (Sat, 26 Apr 2014)
New Revision: 1344
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1344
Log:
refs #3175 (add better tagvalue validation)
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java
Modified:
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java
trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -12,7 +12,7 @@
public class EugeneModelPropertiesProvider extends ModelPropertiesProvider {
@Override
- public void init() throws IllegalAccessException {
+ public void initStores() throws IllegalAccessException {
scanStereotypeClass(EugeneStereoTypes.class);
scanTagValueClass(EugeneTagValues.class);
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -30,7 +30,7 @@
}
@Override
- public void init() throws Exception {
+ public void initStores() throws Exception {
if (providers == null) {
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,11 @@
+package org.nuiton.eugene.metas;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class MismatchTagValueTargetException extends Exception {
+ private static final long serialVersionUID = 1L;
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -2,6 +2,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.metas.matcher.DefaultTagValueMatcher;
+import org.nuiton.eugene.metas.matcher.PrefixTagNameMatchTagValueMatcher;
+import org.nuiton.eugene.metas.matcher.TagValueMatcher;
import java.lang.reflect.Field;
import java.util.Arrays;
@@ -30,6 +33,8 @@
protected Set<String> deprecatedStereotypes;
+ protected Set<TagValueMatcher> tagValueMatchers;
+
protected boolean verbose;
protected ModelPropertiesProvider() {
@@ -37,6 +42,7 @@
tagValueStore = new TreeMap<String, TagValueDefinition>();
deprecatedTagValues = new HashSet<String>();
deprecatedStereotypes = new HashSet<String>();
+ tagValueMatchers = new HashSet<TagValueMatcher>();
}
public boolean isVerbose() {
@@ -47,8 +53,18 @@
this.verbose = verbose;
}
- public abstract void init() throws Exception;
+ public void init() throws Exception {
+ initStores();
+ initValidators();
+ }
+ protected abstract void initStores() throws Exception;
+
+ protected void initValidators() {
+ tagValueMatchers.add(new DefaultTagValueMatcher(this));
+ tagValueMatchers.add(new PrefixTagNameMatchTagValueMatcher(this));
+ }
+
protected void scanStereotypeClass(Class<?> holder) throws IllegalAccessException {
if (isVerbose()) {
log.info("Will scan " + holder.getName() + " to search some stereotype definitions...");
@@ -143,25 +159,25 @@
return b;
}
- public boolean acceptTagValue(String tagValueName, Class<?> type) {
- if (!containsTagValue(tagValueName)) {
+ public void acceptTagValue(String tagValueName, Class<?> type) throws TagValueNotFoundException, MismatchTagValueTargetException {
- // unknown
- return false;
+ TagValueDefinition def = null;
+ for (TagValueMatcher tagValueMatcher : tagValueMatchers) {
+ def = tagValueMatcher.match(tagValueName, type);
+ if (def != null) {
+ break;
+ }
}
- Class<?>[] tagValueTarget = getTagValueTarget(tagValueName);
+ if (def == null) {
+ throw new TagValueNotFoundException();
+ }
- for (Class<?> target : tagValueTarget) {
- if (target.equals(type) || target.isAssignableFrom(type)) {
+ boolean valid = isTargetValid(def, type);
- // found one accepting target
- return true;
- }
+ if (!valid) {
+ throw new MismatchTagValueTargetException();
}
-
- // no target found
- return false;
}
public boolean acceptStereotype(String stereotypeName, Class<?> type) {
@@ -193,4 +209,18 @@
boolean deprecated = deprecatedStereotypes.contains(stereotypeName);
return deprecated;
}
+
+ protected boolean isTargetValid(TagValueDefinition def, Class<?> type) {
+
+ Class<?>[] tagValueTarget = def.target();
+
+ for (Class<?> target : tagValueTarget) {
+ if (target.equals(type) || target.isAssignableFrom(type)) {
+
+ // found one accepting target
+ return true;
+ }
+ }
+ return false;
+ }
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -1,7 +1,6 @@
package org.nuiton.eugene.metas;
import java.util.Collection;
-import java.util.Map;
/**
* Created on 4/26/14.
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -1,5 +1,8 @@
package org.nuiton.eugene.metas;
+import org.nuiton.eugene.metas.matcher.DefaultTagValueMatcher;
+import org.nuiton.eugene.metas.matcher.TagValueMatcher;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -38,4 +41,6 @@
* @since 2.3.1
*/
String documentation();
+
+ Class<? extends TagValueMatcher> validatorClass() default DefaultTagValueMatcher.class;
}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,11 @@
+package org.nuiton.eugene.metas;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class TagValueNotFoundException extends Exception {
+ private static final long serialVersionUID = 1L;
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,38 @@
+package org.nuiton.eugene.metas.matcher;
+
+import com.google.common.collect.ImmutableMap;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.TagValueDefinition;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public abstract class AbstractTagValueMatcher implements TagValueMatcher {
+
+ protected final ModelPropertiesProvider modelPropertiesProvider;
+
+ protected final Map<String, TagValueDefinition> tagValueStore;
+
+ public AbstractTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) {
+ this.modelPropertiesProvider = modelPropertiesProvider;
+ Map<String, TagValueDefinition> tagValues = new TreeMap<String, TagValueDefinition>();
+ for (Map.Entry<String, TagValueDefinition> entry : modelPropertiesProvider.getTagValueStore().entrySet()) {
+ if (getClass().equals(entry.getValue().validatorClass())) {
+ tagValues.put(entry.getKey(), entry.getValue());
+ }
+ }
+
+ this.tagValueStore = ImmutableMap.<String, TagValueDefinition>builder().putAll(tagValues).build();
+ }
+
+ protected Map<String, TagValueDefinition> getTagValueStore() {
+ return tagValueStore;
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,33 @@
+package org.nuiton.eugene.metas.matcher;
+
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.TagValueDefinition;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class DefaultTagValueMatcher extends AbstractTagValueMatcher {
+
+ public DefaultTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) {
+ super(modelPropertiesProvider);
+ }
+
+ @Override
+ public TagValueDefinition match(String tagValueName, Class<?> type) {
+
+ TagValueDefinition tagValueDefinition = null;
+
+ for (String name : getTagValueStore().keySet()) {
+ if (tagValueName.equals(name)) {
+ tagValueDefinition = getTagValueStore().get(name);
+ break;
+ }
+ }
+
+ return tagValueDefinition;
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,34 @@
+package org.nuiton.eugene.metas.matcher;
+
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.TagValueDefinition;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class PrefixTagNameMatchTagValueMatcher extends AbstractTagValueMatcher {
+
+ public PrefixTagNameMatchTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) {
+ super(modelPropertiesProvider);
+ }
+
+ @Override
+ public TagValueDefinition match(String tagValueName, Class<?> type) {
+
+ TagValueDefinition tagValueDefinition = null;
+
+ for (String name : getTagValueStore().keySet()) {
+ if (tagValueName.startsWith(name + ".")) {
+ tagValueDefinition = getTagValueStore().get(name);
+ break;
+ }
+ }
+
+ return tagValueDefinition;
+ }
+
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -0,0 +1,16 @@
+package org.nuiton.eugene.metas.matcher;
+
+import org.nuiton.eugene.metas.TagValueDefinition;
+
+/**
+ * To validate a Tag value.
+ * <p/>
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public interface TagValueMatcher {
+
+ TagValueDefinition match(String tagValueName, Class<?> type);
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -32,7 +32,9 @@
import org.nuiton.eugene.EugeneTagValues;
import org.nuiton.eugene.ModelHelper;
import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.metas.MismatchTagValueTargetException;
import org.nuiton.eugene.metas.ModelPropertiesProviders;
+import org.nuiton.eugene.metas.TagValueNotFoundException;
import org.nuiton.eugene.models.object.reader.XmlObjectModelReader;
import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet;
import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl;
@@ -303,21 +305,18 @@
}
String tag = matcher.group(2);
- boolean safe = modelPropertiesProvider.containsTagValue(tag);
+ boolean safe = false;
- if (!safe) {
+ try {
+ modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
+ safe = true;
+ } catch (TagValueNotFoundException e) {
if (log.isWarnEnabled()) {
log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown.");
}
- } else {
- safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
-
- if (!safe) {
-
- // the tag value can not be apply of model
- if (log.isWarnEnabled()) {
- log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model.");
- }
+ } catch (MismatchTagValueTargetException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model.");
}
}
@@ -466,24 +465,18 @@
+ " type:" + type + " tag:" + tag);
}
- boolean safe = modelPropertiesProvider.containsTagValue(tag);
+ boolean safe = false;
- if (!safe) {
-
- // unknown tag value
+ try {
+ modelPropertiesProvider.acceptTagValue(tag, targetType);
+ safe = true;
+ } catch (TagValueNotFoundException e) {
if (log.isWarnEnabled()) {
log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown.");
}
- } else {
-
- safe = modelPropertiesProvider.acceptTagValue(tag, targetType);
-
- if (!safe) {
-
- // the tag value can not be apply of model
- if (log.isWarnEnabled()) {
- log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'.");
- }
+ } catch (MismatchTagValueTargetException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'.");
}
}
@@ -516,7 +509,7 @@
+ ", value:" + value
+ " to element:" + element);
}
- ((ObjectModelElementImpl) element).addTagValue(tag, value);
+ element.addTagValue(tag, value);
}
if (isVerbose()) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -30,7 +30,9 @@
import org.nuiton.eugene.EugeneTagValues;
import org.nuiton.eugene.ModelHelper;
import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.metas.MismatchTagValueTargetException;
import org.nuiton.eugene.metas.ModelPropertiesProviders;
+import org.nuiton.eugene.metas.TagValueNotFoundException;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAssociationClass;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
@@ -287,21 +289,18 @@
}
String tag = matcher.group(2);
- boolean safe = modelPropertiesProvider.containsTagValue(tag);
+ boolean safe = false;
- if (!safe) {
+ try {
+ modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
+ safe = true;
+ } catch (TagValueNotFoundException e) {
if (log.isWarnEnabled()) {
log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown.");
}
- } else {
- safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
-
- if (!safe) {
-
- // the tag value can not be apply of model
- if (log.isWarnEnabled()) {
- log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model.");
- }
+ } catch (MismatchTagValueTargetException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model.");
}
}
@@ -472,24 +471,18 @@
+ " type:" + type + " tag:" + tag);
}
- boolean safe = modelPropertiesProvider.containsTagValue(tag);
+ boolean safe = false;
- if (!safe) {
-
- // unknown tag value
+ try {
+ modelPropertiesProvider.acceptTagValue(tag, targetType);
+ safe = true;
+ } catch (TagValueNotFoundException e) {
if (log.isWarnEnabled()) {
log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown.");
}
- } else {
-
- safe = modelPropertiesProvider.acceptTagValue(tag, targetType);
-
- if (!safe) {
-
- // the tag value can not be apply of model
- if (log.isWarnEnabled()) {
- log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'.");
- }
+ } catch (MismatchTagValueTargetException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'.");
}
}
@@ -534,7 +527,7 @@
+ ", value:" + value
+ " to element:" + element);
}
- ((ObjectModelElementImpl) element).addTagValue(tag, value);
+ element.addTagValue(tag, value);
}
if (isVerbose()) {
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -27,7 +27,9 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.nuiton.eugene.metas.MismatchTagValueTargetException;
import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.TagValueNotFoundException;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -127,8 +129,14 @@
protected void acceptTagValue(String name, boolean expected, Class<?>... types) {
for (Class<?> type : types) {
- boolean actual = provider.acceptTagValue(name, type);
- Assert.assertEquals(expected, actual);
+ try {
+ provider.acceptTagValue(name, type);
+ Assert.assertTrue(expected);
+ } catch (TagValueNotFoundException e) {
+ Assert.assertFalse(expected);
+ } catch (MismatchTagValueTargetException e) {
+ Assert.assertFalse(expected);
+ }
}
}
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -36,7 +36,7 @@
public class JavaTemplatesModelPropertiesProvider extends ModelPropertiesProvider {
@Override
- public void init() throws IllegalAccessException {
+ public void initStores() throws IllegalAccessException {
scanStereotypeClass(JavaTemplatesStereoTypes.class);
scanTagValueClass(JavaTemplatesTagValues.class);
}
Modified: trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 17:42:25 UTC (rev 1343)
+++ trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344)
@@ -27,7 +27,9 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.nuiton.eugene.metas.MismatchTagValueTargetException;
import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.TagValueNotFoundException;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -120,8 +122,14 @@
protected void acceptTagValue(String name, boolean expected, Class<?>... types) {
for (Class<?> type : types) {
- boolean actual = provider.acceptTagValue(name, type);
- Assert.assertEquals(expected, actual);
+ try {
+ provider.acceptTagValue(name, type);
+ Assert.assertTrue(expected);
+ } catch (TagValueNotFoundException e) {
+ Assert.assertFalse(expected);
+ } catch (MismatchTagValueTargetException e) {
+ Assert.assertFalse(expected);
+ }
}
}
1
0
r1343 - in trunk/eugene/src/main/java/org/nuiton/eugene/models/object: . reader
by tchemit@users.nuiton.org 26 Apr '14
by tchemit@users.nuiton.org 26 Apr '14
26 Apr '14
Author: tchemit
Date: 2014-04-26 19:42:25 +0200 (Sat, 26 Apr 2014)
New Revision: 1343
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1343
Log:
fix typo
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:11:32 UTC (rev 1342)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343)
@@ -366,7 +366,7 @@
if (!safe) {
- // stereotype unkown
+ // stereotype unknown
if (log.isWarnEnabled()) {
log.warn("Invalid stereotype [" + key + "] : this stereotype '" + value + "' is unknown.");
}
@@ -470,9 +470,9 @@
if (!safe) {
- // unkown tag value
+ // unknown tag value
if (log.isWarnEnabled()) {
- log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unkown.");
+ log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown.");
}
} else {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:11:32 UTC (rev 1342)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343)
@@ -291,7 +291,7 @@
if (!safe) {
if (log.isWarnEnabled()) {
- log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unkown.");
+ log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown.");
}
} else {
safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
@@ -361,9 +361,9 @@
if (!safe) {
- // stereotype unkown
+ // stereotype unknown
if (log.isWarnEnabled()) {
- log.warn("Invalid stereotype [" + key + "] : this stereotype '" + value + "' is unkown.");
+ log.warn("Invalid stereotype [" + key + "] : this stereotype '" + value + "' is unknown.");
}
} else {
@@ -476,9 +476,9 @@
if (!safe) {
- // unkown tag value
+ // unknown tag value
if (log.isWarnEnabled()) {
- log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unkown.");
+ log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown.");
}
} else {
1
0
Author: tchemit
Date: 2014-04-26 19:11:32 +0200 (Sat, 26 Apr 2014)
New Revision: 1342
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1342
Log:
fixes #3175: Introduce a metas package for Stereotype and TagValue API and improve this API.
Added:
trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider
trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/
trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProviders.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeDefinition.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueAble.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValues.java
trunk/eugene/src/main/java/org/nuiton/eugene/metas/package-info.java
trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider
Removed:
trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider
trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider
Modified:
trunk/eugene-java-templates/pom.xml
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesGeneratorUtil.java
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java
trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java
trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
trunk/eugene-maven-plugin/pom.xml
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
trunk/eugene-plantuml-templates/pom.xml
trunk/eugene-yaml-templates/pom.xml
trunk/eugene/pom.xml
trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java
trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java
trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelPropertiesUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/Model.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelElement.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
trunk/pom.xml
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -27,7 +27,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Added: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,19 @@
+package org.nuiton.eugene;
+
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+
+/**
+ * The Eugene provider of tag values and stereotypes.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @plexus.component role="org.nuiton.eugene.metas.ModelPropertiesProvider" role-hint="eugene"
+ * @since 2.3
+ */
+public class EugeneModelPropertiesProvider extends ModelPropertiesProvider {
+
+ @Override
+ public void init() throws IllegalAccessException {
+ scanStereotypeClass(EugeneStereoTypes.class);
+ scanTagValueClass(EugeneTagValues.class);
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,11 +25,10 @@
package org.nuiton.eugene;
import org.nuiton.eugene.java.JavaGeneratorUtil;
+import org.nuiton.eugene.metas.StereotypeDefinition;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
-import static org.nuiton.eugene.ModelPropertiesUtil.StereotypeDefinition;
-
/**
* Defines all stereotypes managed by Eugene.
* <p/>
@@ -45,7 +44,7 @@
* Stéréotype pour les attributs à indexer en base.
*
* @see GeneratorUtil#hasIndexedStereotype(ObjectModelAttribute)
- * @deprecated since 2.8, use {@link #STEREOTYPE_ORDERED} instead
+ * @deprecated since 2.8, use {@link #STEREOTYPE_ORDERED} instead, will be removed in version 3.0
*/
@StereotypeDefinition(target = ObjectModelAttribute.class,
documentation = "To specify that a attribute is indexed")
@@ -54,7 +53,7 @@
/**
* Stereotype to mark an attribute with multiplicity as ordered.
- *
+ * <p/>
* It means that order of insertion is maintained: in Java, it will lead
* to a collection typed with {@link java.util.List} or {@link java.util.LinkedHashSet}
* or {@link java.util.LinkedHashMap}.
@@ -68,14 +67,14 @@
/**
* Stereotype to mark an attribute with multiplicity as unique.
- *
+ * <p/>
* It means that uniqueness of elements is maintained in the collection: in Java, it
* will lead to a collection typed with {@link java.util.Set}.
*
* @see JavaGeneratorUtil#hasUniqueStereotype(ObjectModelAttribute)
*/
@StereotypeDefinition(target = ObjectModelAttribute.class,
- documentation = "To specify that an attribute is unique")
+ documentation = "To specify that an attribute is unique")
String STEREOTYPE_UNIQUE = "unique";
/**
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,12 +25,11 @@
package org.nuiton.eugene;
import org.nuiton.eugene.java.JavaGeneratorUtil;
+import org.nuiton.eugene.metas.TagValueDefinition;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelElement;
-import static org.nuiton.eugene.ModelPropertiesUtil.TagValueDefinition;
-
/**
* Defines all tag values managed by Eugene.
* <p/>
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -16,8 +16,8 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
+ *
+ * You should have received a copy of the GNU General Lesser Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/lgpl-3.0.html>.
* #L%
@@ -27,6 +27,8 @@
package org.nuiton.eugene;
import org.apache.commons.lang3.StringUtils;
+import org.nuiton.eugene.metas.TagValueAble;
+import org.nuiton.eugene.metas.TagValues;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
@@ -461,7 +463,9 @@
* @param element l'élément à tester
* @param model le modele utilisé
* @return la valeur du tagValue ou null
+ * @deprecated since 2.9 (will be remove in version 3.0), prefer use now {@link TagValues#findTagValue(String, TagValueAble...)}
*/
+ @Deprecated
public static String findTagValue(String tagName,
ObjectModelElement element,
Model model) {
@@ -798,7 +802,8 @@
* @since 2.3
*/
public static String getDocumentationTagValue(ObjectModel model) {
- String value = findTagValue(EugeneTagValues.TAG_DOCUMENTATION, null, model);
+// String value = findTagValue(EugeneTagValues.TAG_DOCUMENTATION, null, model);
+ String value = TagValues.findTagValue(EugeneTagValues.TAG_DOCUMENTATION, model);
return value;
}
@@ -812,7 +817,8 @@
* @since 2.3
*/
public static String getDocumentationTagValue(ObjectModelElement element) {
- String value = findTagValue(EugeneTagValues.TAG_DOCUMENTATION, element, null);
+// String value = findTagValue(EugeneTagValues.TAG_DOCUMENTATION, element, null);
+ String value = TagValues.findTagValue(EugeneTagValues.TAG_DOCUMENTATION, element);
return value;
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelPropertiesUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelPropertiesUtil.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelPropertiesUtil.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -45,7 +45,9 @@
*
* @author tchemit <chemit(a)codelutin.com>
* @since 2.3
+ * @deprecated since 2.9, will be removed in version 3.0, use now classes inside {@link org.nuiton.eugene.metas} package.
*/
+@Deprecated
public class ModelPropertiesUtil {
/** Logger. */
@@ -101,7 +103,6 @@
* The Eugene provider of tag values and stereotypes.
*
* @author tchemit <chemit(a)codelutin.com>
- * @plexus.component role="org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider" role-hint="eugene"
* @since 2.3
*/
public static class EugeneModelPropertiesProvider extends ModelPropertiesProvider {
@@ -185,7 +186,7 @@
/**
* Obtain the english documentation of the stereotype.
- *
+ *
* @return the documentation of the stereotype.
* @since 2.3.1
*/
@@ -242,7 +243,9 @@
protected Map<String, TagValueDefinition> tagValueStore;
protected Map<String, StereotypeDefinition> stereotypeStore;
+
protected Set<String> deprecatedTagValues;
+
protected Set<String> deprecatedStereotypes;
protected boolean verbose;
@@ -261,7 +264,7 @@
public void setVerbose(boolean verbose) {
this.verbose = verbose;
}
-
+
public abstract void init() throws Exception;
protected void scanStereotypeClass(Class<?> holder) throws IllegalAccessException {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -27,6 +27,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
import org.nuiton.eugene.models.Model;
import java.io.File;
@@ -69,7 +70,7 @@
*
* @since 2.3
*/
- protected ModelPropertiesUtil.ModelPropertiesProvider modelPropertiesProvider;
+ protected ModelPropertiesProvider modelPropertiesProvider;
/**
* Gets the type of model.
@@ -136,7 +137,7 @@
* @return the provider of controled tagvalues and stereotypes.
* @since 2.3
*/
- public ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() {
+ public ModelPropertiesProvider getModelPropertiesProvider() {
return modelPropertiesProvider;
}
@@ -146,7 +147,7 @@
* @param modelPropertiesProvider the provider to use
* @since 2.3
*/
- public void setModelPropertiesProvider(ModelPropertiesUtil.ModelPropertiesProvider modelPropertiesProvider) {
+ public void setModelPropertiesProvider(ModelPropertiesProvider modelPropertiesProvider) {
this.modelPropertiesProvider = modelPropertiesProvider;
}
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -28,6 +28,7 @@
import org.nuiton.eugene.EugeneStereoTypes;
import org.nuiton.eugene.EugeneTagValues;
import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.metas.TagValues;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -152,7 +153,8 @@
*/
public static String getI18nPrefixTagValue(ObjectModelElement element,
ObjectModel model) {
- return findTagValue(EugeneTagValues.TAG_I18N_PREFIX, element, model);
+// return findTagValue(EugeneTagValues.TAG_I18N_PREFIX, element, model);
+ return TagValues.findTagValue(EugeneTagValues.TAG_I18N_PREFIX, element, model);
}
/**
@@ -169,8 +171,10 @@
*/
public static boolean isDoNotGenerateBooleanGetMethods(ObjectModel model,
ObjectModelClassifier classifier) {
- String value = findTagValue(EugeneTagValues.TAG_DO_NOT_GENERATE_BOOLEAN_GET_METHODS, classifier, model);
- return value!=null && "true".equals(value);
+// String value = findTagValue(EugeneTagValues.TAG_DO_NOT_GENERATE_BOOLEAN_GET_METHODS, classifier, model);
+// return value!=null && "true".equals(value);
+ boolean value = TagValues.findBooleanTagValue(EugeneTagValues.TAG_DO_NOT_GENERATE_BOOLEAN_GET_METHODS, classifier, model);
+ return value;
}
/**
@@ -187,7 +191,8 @@
*/
public static String getConstantPrefixTagValue(ObjectModel model,
ObjectModelClassifier classifier) {
- String value = findTagValue(EugeneTagValues.TAG_CONSTANT_PREFIX, classifier, model);
+// String value = findTagValue(EugeneTagValues.TAG_CONSTANT_PREFIX, classifier, model);
+ String value = TagValues.findTagValue(EugeneTagValues.TAG_CONSTANT_PREFIX, classifier, model);
return value;
}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,52 @@
+package org.nuiton.eugene.metas;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.ServiceLoader;
+
+/**
+ * A aggregate provider to box all the ones registred in the class-path via the
+ * {@link ServiceLoader} api.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 2.3
+ */
+public class AggregateModelPropertiesProvider extends ModelPropertiesProvider {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(AggregateModelPropertiesProvider.class);
+
+ protected ClassLoader loader;
+
+ private Iterable<ModelPropertiesProvider> providers;
+
+ public AggregateModelPropertiesProvider(ClassLoader loader) {
+ this.loader = loader;
+ }
+
+ public AggregateModelPropertiesProvider(Iterable<ModelPropertiesProvider> providers) {
+ this.providers = providers;
+ }
+
+ @Override
+ public void init() throws Exception {
+
+ if (providers == null) {
+
+ providers = ServiceLoader.load(ModelPropertiesProvider.class, loader);
+ }
+
+ for (ModelPropertiesProvider provider : providers) {
+ if (isVerbose()) {
+ log.info("Will init model properties provider " + provider);
+ }
+ provider.setVerbose(isVerbose());
+ provider.init();
+ getStereotypeStore().putAll(provider.getStereotypeStore());
+ getTagValueStore().putAll(provider.getTagValueStore());
+ getDeprecatedStereotypes().addAll(provider.getDeprecatedStereotypes());
+ getDeprecatedTagValues().addAll(provider.getDeprecatedTagValues());
+ }
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,196 @@
+package org.nuiton.eugene.metas;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since XXX
+ */
+public abstract class ModelPropertiesProvider {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ModelPropertiesProvider.class);
+
+ protected Map<String, TagValueDefinition> tagValueStore;
+
+ protected Map<String, StereotypeDefinition> stereotypeStore;
+
+ protected Set<String> deprecatedTagValues;
+
+ protected Set<String> deprecatedStereotypes;
+
+ protected boolean verbose;
+
+ protected ModelPropertiesProvider() {
+ stereotypeStore = new TreeMap<String, StereotypeDefinition>();
+ tagValueStore = new TreeMap<String, TagValueDefinition>();
+ deprecatedTagValues = new HashSet<String>();
+ deprecatedStereotypes = new HashSet<String>();
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ public abstract void init() throws Exception;
+
+ protected void scanStereotypeClass(Class<?> holder) throws IllegalAccessException {
+ if (isVerbose()) {
+ log.info("Will scan " + holder.getName() + " to search some stereotype definitions...");
+ }
+ Field[] fields = holder.getDeclaredFields();
+ for (Field field : fields) {
+
+ StereotypeDefinition stereotypeDefinition =
+ field.getAnnotation(StereotypeDefinition.class);
+
+ if (stereotypeDefinition != null) {
+ String fieldName = field.getName();
+ String stereotypeName = (String) field.get(null);
+ if (isVerbose()) {
+ log.info("Detected stereotype definition [" + fieldName + ":" + stereotypeName + "] : " + Arrays.toString(stereotypeDefinition.target()));
+ }
+ stereotypeStore.put(stereotypeName, stereotypeDefinition);
+ if (field.isAnnotationPresent(Deprecated.class)) {
+ deprecatedStereotypes.add((stereotypeName));
+ }
+ }
+ }
+ }
+
+ protected void scanTagValueClass(Class<?> holder) throws IllegalAccessException {
+ if (isVerbose()) {
+ log.info("Will scan " + holder.getName() + " to search some tag value definitions...");
+ }
+ Field[] fields = holder.getDeclaredFields();
+ for (Field field : fields) {
+
+ TagValueDefinition tagValueDefinition =
+ field.getAnnotation(TagValueDefinition.class);
+ if (tagValueDefinition != null) {
+ String fieldName = field.getName();
+ String tagValueName = (String) field.get(null);
+ if (isVerbose()) {
+ log.info("Detected tag value definition [" + fieldName + ":" + tagValueName + "] : " + Arrays.toString(tagValueDefinition.target()));
+ }
+ tagValueStore.put(tagValueName, tagValueDefinition);
+ if (field.isAnnotationPresent(Deprecated.class)) {
+ deprecatedTagValues.add((tagValueName));
+ }
+ }
+ }
+ }
+
+ public Map<String, StereotypeDefinition> getStereotypeStore() {
+ return stereotypeStore;
+ }
+
+ public Map<String, TagValueDefinition> getTagValueStore() {
+ return tagValueStore;
+ }
+
+ public Set<String> getDeprecatedTagValues() {
+ return deprecatedTagValues;
+ }
+
+ public Set<String> getDeprecatedStereotypes() {
+ return deprecatedStereotypes;
+ }
+
+ public Class<?>[] getTagValueTarget(String tagValueName) {
+ TagValueDefinition definition = tagValueStore.get(tagValueName);
+
+ Class<?>[] result = null;
+ if (definition != null) {
+ result = definition.target();
+ }
+ return result;
+ }
+
+ public Class<?>[] getStereotypeTarget(String tagValueName) {
+
+ StereotypeDefinition definition = stereotypeStore.get(tagValueName);
+
+ Class<?>[] result = null;
+ if (definition != null) {
+ result = definition.target();
+ }
+ return result;
+ }
+
+ public boolean containsTagValue(String tagValueName) {
+ boolean b = tagValueStore.containsKey(tagValueName);
+ return b;
+ }
+
+ public boolean containsStereotype(String stereotypeName) {
+ boolean b = stereotypeStore.containsKey(stereotypeName);
+ return b;
+ }
+
+ public boolean acceptTagValue(String tagValueName, Class<?> type) {
+ if (!containsTagValue(tagValueName)) {
+
+ // unknown
+ return false;
+ }
+
+ Class<?>[] tagValueTarget = getTagValueTarget(tagValueName);
+
+ for (Class<?> target : tagValueTarget) {
+ if (target.equals(type) || target.isAssignableFrom(type)) {
+
+ // found one accepting target
+ return true;
+ }
+ }
+
+ // no target found
+ return false;
+ }
+
+ public boolean acceptStereotype(String stereotypeName, Class<?> type) {
+ if (!containsStereotype(stereotypeName)) {
+
+ // unknown
+ return false;
+ }
+
+ Class<?>[] tagValueTarget = getStereotypeTarget(stereotypeName);
+ for (Class<?> target : tagValueTarget) {
+ if (target.equals(type) || target.isAssignableFrom(type)) {
+
+ // found one accepting target
+ return true;
+ }
+ }
+
+ // no target found
+ return false;
+ }
+
+ public boolean isDeprecatedTagValue(String tagValueName) {
+ boolean deprecated = deprecatedTagValues.contains(tagValueName);
+ return deprecated;
+ }
+
+ public boolean isDeprecatedStereotype(String stereotypeName) {
+ boolean deprecated = deprecatedStereotypes.contains(stereotypeName);
+ return deprecated;
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProviders.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProviders.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProviders.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,60 @@
+package org.nuiton.eugene.metas;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class ModelPropertiesProviders {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(ModelPropertiesProviders.class);
+
+ /**
+ * Obtain a new store of tag values and stereotypes.
+ *
+ * @param loader the classloader to use (if none given will use the one of the current thread)
+ * @param verbose a verbose flag
+ * @return the aggregate store of all atomic one detected in the class-path
+ */
+ public static ModelPropertiesProvider newStore(ClassLoader loader, boolean verbose) {
+
+ if (loader == null) {
+
+ // use the current thread loader
+ loader = Thread.currentThread().getContextClassLoader();
+ }
+
+ ModelPropertiesProvider store = new AggregateModelPropertiesProvider(loader);
+ store.setVerbose(verbose || log.isDebugEnabled());
+ try {
+ store.init();
+ } catch (Exception e) {
+ throw new RuntimeException("Could not init store of tag values and stereotypes", e);
+ }
+ return store;
+ }
+
+ /**
+ * Obtain a new store of tag values and stereotypes.
+ *
+ * @param providers the list of providers to use in the store
+ * @param verbose a verbose flag
+ * @return the aggregate store of all atomic one detected in the class-path
+ */
+ public static ModelPropertiesProvider newStore(Iterable<ModelPropertiesProvider> providers, boolean verbose) {
+
+ ModelPropertiesProvider store = new AggregateModelPropertiesProvider(providers);
+ store.setVerbose(verbose || log.isDebugEnabled());
+ try {
+ store.init();
+ } catch (Exception e) {
+ throw new RuntimeException("Could not init store of tag values and stereotypes", e);
+ }
+ return store;
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProviders.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,28 @@
+package org.nuiton.eugene.metas;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public interface StereotypeAble {
+
+ /**
+ * Returns the stereotypes names associated with this element.
+ *
+ * @return a Collection containing all stereotypes names associated with this element as String.
+ */
+ Collection<String> getStereotypes();
+
+ /**
+ * Returns whether this element has a stereotype corresponding to the given name, or not.
+ *
+ * @param stereotypeName stereotype name
+ * @return a boolean indicating whether this element has a stereotype corresponding to the given name, or not.
+ */
+ boolean hasStereotype(String stereotypeName);
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeDefinition.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeDefinition.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeDefinition.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,44 @@
+package org.nuiton.eugene.metas;
+
+import org.nuiton.eugene.EugeneTagValues;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * To define a stereotype.
+ * <p/>
+ * Place this annotation on the constant defining your stereotype.
+ * <p/>
+ * <br/>
+ * Example for stereotype named mystereotype which can be only put on a attribute :
+ * <pre>
+ * String STEREOTYPE_MYSTEREOTYPE = "mystereotype";
+ * \@StereotypeDefinition(target = ObjectModelAttribute.class)
+ * </pre
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @see EugeneTagValues
+ * @since 2.3
+ */
+(a)Target(ElementType.FIELD)
+(a)Retention(RetentionPolicy.RUNTIME)
+public @interface StereotypeDefinition {
+
+ /**
+ * Define the types of object model api which can use this tag value.
+ *
+ * @return the array of target object model element which can accept the tag value.
+ */
+ Class<?>[] target();
+
+ /**
+ * Obtain the english documentation of the stereotype.
+ *
+ * @return the documentation of the stereotype.
+ * @since 2.3.1
+ */
+ String documentation();
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeDefinition.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueAble.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueAble.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueAble.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,47 @@
+package org.nuiton.eugene.metas;
+
+import java.util.Map;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public interface TagValueAble {
+
+ /**
+ * Returns the tagValues associated with this element.
+ * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-)
+ *
+ * @return a Map containing all tagValues associated with this element
+ */
+ Map<String, String> getTagValues();
+
+ /**
+ * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
+ *
+ * @param tagValue tag value key
+ * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
+ */
+ String getTagValue(String tagValue);
+
+ /**
+ * Adds the given {@code value} associated to the {@code tagValue}.
+ * <p/>
+ * Note: If a previous tag value was definied, then it will be replaced.
+ *
+ * @param tagValue the name of the tag value
+ * @param value the value to associate
+ * @since 2.1.2
+ */
+ void addTagValue(String tagValue, String value);
+
+ /**
+ * Returns whether this element has a tagValue corresponding to the given name, or not.
+ *
+ * @param tagValue tag value name
+ * @return a boolean indicating whether this element has a tagValue corresponding to the given name, or not.
+ */
+ boolean hasTagValue(String tagValue);
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueAble.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,41 @@
+package org.nuiton.eugene.metas;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * To define a tag value.
+ * <p/>
+ * Place this annotation on the constant defining your tag-value.
+ * <p/>
+ * Example for tag value named mytagvalut which can be only put on a attribute :
+ * <pre>
+ * String TAG_VALUE_MYTAGVALUE = "mytagvalue";
+ * \@TagValueDefinition(target = ObjectModelAttribute.class)
+ * </pre
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @see org.nuiton.eugene.EugeneTagValues
+ * @since 2.3
+ */
+(a)Target(ElementType.FIELD)
+(a)Retention(RetentionPolicy.RUNTIME)
+public @interface TagValueDefinition {
+
+ /**
+ * Define the types of object model api which can use this tag value.
+ *
+ * @return the array of target object model element which can accept the tag value.
+ */
+ Class<?>[] target();
+
+ /**
+ * Obtain the english documentation of the tag value.
+ *
+ * @return the documentation of the tag value.
+ * @since 2.3.1
+ */
+ String documentation();
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValues.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValues.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValues.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,91 @@
+package org.nuiton.eugene.metas;
+
+import org.apache.commons.lang3.StringUtils;
+import org.nuiton.eugene.models.object.ObjectModelElement;
+
+/**
+ * Created on 4/26/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.9
+ */
+public class TagValues {
+
+ /**
+ * Seek for a boolean tag value.
+ * <p/>
+ * Will first the tag value using the method {@link #findTagValue(String, TagValueAble...)}.
+ * <p/>
+ * If found, return {@code true}, if the value is not null and is {@code "true"} String value.
+ * <p/>
+ * <strong>Note:</strong> Order of {@code elements} is important, better then to
+ * always starts from specialized to more general level (for example from attribute,
+ * to classifier or model).
+ *
+ * @param tagName tag name to find
+ * @param elements not null elements to test
+ * @return found boolean tag value or {@code false} if tag value is not found, nor having
+ * exactly {@code "true"} value.
+ * @since 2.9
+ */
+ public static boolean findBooleanTagValue(String tagName, TagValueAble... elements) {
+
+ String value = findTagValue(tagName, elements);
+ return value != null && "true".equals(value);
+
+ }
+
+ /**
+ * Seek for a tag value amoung elements given using these rules:
+ * <ul>
+ * <li>Look into {@code elements} and return the first not empty tag value found.</li>
+ * <li>If not found, Look into {@code elements} declaringElement (for each
+ * element that is a {@link ObjectModelElement} and return the first not empty tag
+ * value found.</li>
+ * <li>If not found return {@code null}</li>
+ * </ul>
+ * <p/>
+ * <strong>Note:</strong> Order of {@code elements} is important, better then to
+ * always starts from specialized to more general level (for example from attribute,
+ * to classifier or model).
+ *
+ * @param tagName tag name to find
+ * @param elements not null elements to test
+ * @return found tag value or {@code null} if not found
+ * @since 2.9
+ */
+ public static String findTagValue(String tagName, TagValueAble... elements) {
+
+ for (TagValueAble element : elements) {
+ String value = findNotEmptyTagValue(tagName, element);
+ if (value != null) {
+ return value;
+ }
+ }
+
+ for (TagValueAble element : elements) {
+ if (element instanceof ObjectModelElement) {
+ // try in declaring element
+ ObjectModelElement declaringElement = ((ObjectModelElement) element).getDeclaringElement();
+ if (declaringElement != null) {
+ String value = findNotEmptyTagValue(tagName, declaringElement);
+ if (value != null) {
+ return value;
+ }
+ }
+ }
+ }
+ return null;
+
+ }
+
+ public static String findNotEmptyTagValue(String tagName, TagValueAble element) {
+ String value = element.getTagValue(tagName);
+ if (StringUtils.isEmpty(value)) {
+ value = null;
+ }
+ return value;
+
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValues.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/package-info.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/metas/package-info.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/package-info.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1,37 @@
+/*
+ * #%L
+ * EUGene :: EUGene
+ *
+ * $Id$
+ * $HeadURL: https://nuiton.org/svn/eugene/trunk/eugene/src/main/java/org/nuiton/eugene/… $
+ * %%
+ * Copyright (C) 2004 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+/**
+ * This package contains all the metas objects you can add on a model,
+ * such as a stereotype or tagValue.
+ *
+ * We find also here tools to read and validate them.
+ *
+ * <strong>Note:</strong> Replace the deprecated class {@link org.nuiton.eugene.ModelPropertiesUtil}.
+ *
+ * @since 2.9
+ */
+package org.nuiton.eugene.metas;
+
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/Model.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/Model.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/Model.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -26,16 +26,17 @@
package org.nuiton.eugene.models;
-import java.util.Map;
+import org.nuiton.eugene.metas.TagValueAble;
/**
* Model.
*
* @version $Revision$
- *
- * Mise a jour: $Date$
- * par : */
-public interface Model {
+ * <p/>
+ * Mise a jour: $Date$
+ * par :
+ */
+public interface Model extends TagValueAble {
/**
* Plexus role name
@@ -62,31 +63,31 @@
*/
String getModelType();
- /**
- * Returns the tagValues associated with this element.
- * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-)
- *
- * @return a Map containing all tagValues associated with this element
- */
- Map<String, String> getTagValues();
+// /**
+// * Returns the tagValues associated with this element.
+// * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-)
+// *
+// * @return a Map containing all tagValues associated with this element
+// */
+// Map<String, String> getTagValues();
+//
+// /**
+// * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
+// *
+// * @param tagValue tag value key
+// * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
+// */
+// String getTagValue(String tagValue);
+//
+// /**
+// * Adds the given {@code value} associated to the {@code tagValue}.
+// *
+// * Note: If a previous tag value was definied, then it will be replaced.
+// *
+// * @param tagValue the name of the tag value
+// * @param value the value to associate
+// * @since 2.1.2
+// */
+// void addTagValue(String tagValue, String value);
- /**
- * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
- *
- * @param tagValue tag value key
- * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
- */
- String getTagValue(String tagValue);
-
- /**
- * Adds the given {@code value} associated to the {@code tagValue}.
- *
- * Note: If a previous tag value was definied, then it will be replaced.
- *
- * @param tagValue the name of the tag value
- * @param value the value to associate
- * @since 2.1.2
- */
- void addTagValue(String tagValue, String value);
-
} //Model
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelElement.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelElement.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelElement.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,51 +25,53 @@
package org.nuiton.eugene.models.object;
-import java.util.Collection;
+import org.nuiton.eugene.metas.StereotypeAble;
+import org.nuiton.eugene.metas.TagValueAble;
+
import java.util.List;
-import java.util.Map;
/**
* ObjectModelElement.
- *
+ *
* @author Cédric Pineau <pineau(a)codelutin.com>
- * Copyright Code Lutin
+ * Copyright Code Lutin
* @version $Revision$
- *
- * Last update : $Date$
- * by : */
-public interface ObjectModelElement {
+ * <p/>
+ * Last update : $Date$
+ * by :
+ */
+public interface ObjectModelElement extends TagValueAble, StereotypeAble {
/**
- * Returns the name of this element.
- *
- * @return the name of this element.
- */
+ * Returns the name of this element.
+ *
+ * @return the name of this element.
+ */
String getName();
/**
- * Returns the element in which this element is defined, or null if there's none.
- *
- * @return the ObjectModelElement in which this element is defined, or null if there's none.
- */
+ * Returns the element in which this element is defined, or null if there's none.
+ *
+ * @return the ObjectModelElement in which this element is defined, or null if there's none.
+ */
ObjectModelElement getDeclaringElement();
/**
- * Returns the whole documentation associated with this element (description + source documentation).
- *
- * @return the whole documentation associated with this element.
- */
+ * Returns the whole documentation associated with this element (description + source documentation).
+ *
+ * @return the whole documentation associated with this element.
+ */
String getDocumentation();
/**
- * The description of this element is the upper part of the element's
- * documentation.
- *
- * The other part of the document can be accessed with
- * {@link #getSourceDocumentation()}
- *
- * @return the description associated with this element.
- */
+ * The description of this element is the upper part of the element's
+ * documentation.
+ * <p/>
+ * The other part of the document can be accessed with
+ * {@link #getSourceDocumentation()}
+ *
+ * @return the description associated with this element.
+ */
String getDescription();
/**
@@ -81,58 +83,59 @@
*/
String getSourceDocumentation();
- /**
- * Returns the stereotypes names associated with this element.
- *
- * @return a Collection containing all stereotypes names associated with this element as String.
- */
- Collection<String> getStereotypes();
+// /**
+// * Returns the stereotypes names associated with this element.
+// *
+// * @return a Collection containing all stereotypes names associated with this element as String.
+// */
+// Collection<String> getStereotypes();
+//
+// /**
+// * Returns whether this element has a stereotype corresponding to the given name, or not.
+// *
+// * @param stereotypeName stereotype name
+// * @return a boolean indicating whether this element has a stereotype corresponding to the given name, or not.
+// */
+// boolean hasStereotype(String stereotypeName);
- /**
- * Returns whether this element has a stereotype corresponding to the given name, or not.
- *
- * @param stereotypeName stereotype name
- * @return a boolean indicating whether this element has a stereotype corresponding to the given name, or not.
- */
- boolean hasStereotype(String stereotypeName);
+// /**
+// * Returns the tagValues associated with this element.
+// * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-)
+// *
+// * @return a Map containing all tagValues associated with this element
+// */
+// Map<String, String> getTagValues();
+//
+// /**
+// * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
+// *
+// * @param tagValue tag value name
+// * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
+// */
+// String getTagValue(String tagValue);
+//
+// /**
+// * Returns whether this element has a tagValue corresponding to the given name, or not.
+// *
+// * @param tagValue tag value name
+// * @return a boolean indicating whether this element has a tagValue corresponding to the given name, or not.
+// */
+// boolean hasTagValue(String tagValue);
/**
- * Returns the tagValues associated with this element.
- * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-)
- *
- * @return a Map containing all tagValues associated with this element
- */
- Map<String, String> getTagValues();
-
- /**
- * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
- *
- * @param tagValue tag value name
- * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
- */
- String getTagValue(String tagValue);
-
- /**
- * Returns whether this element has a tagValue corresponding to the given name, or not.
- *
- * @param tagValue tag value name
- * @return a boolean indicating whether this element has a tagValue corresponding to the given name, or not.
- */
- boolean hasTagValue(String tagValue);
-
- /**
- * Return if this element has static declaration, only valid when
- * getDeclaringElement is classifier. Not possible for the moment
+ * Return if this element has static declaration, only valid when
+ * getDeclaringElement is classifier. Not possible for the moment
* to have static innerClass (from XMI 1.2 and 2.1).
+ *
* @return true if element is static
*/
boolean isStatic();
/**
- * Returns all comments lied to this particular model element
- *
- * @return a List containing all comments for this element as Strings.
- */
+ * Returns all comments lied to this particular model element
+ *
+ * @return a List containing all comments for this element as Strings.
+ */
List<String> getComments();
} //ObjectModelElement
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -31,8 +31,8 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.EugeneTagValues;
import org.nuiton.eugene.ModelHelper;
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.metas.ModelPropertiesProviders;
import org.nuiton.eugene.models.object.reader.XmlObjectModelReader;
import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet;
import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl;
@@ -139,7 +139,7 @@
if (log.isWarnEnabled()) {
log.warn("No properties provider filled, will instanciate a new default one");
}
- setModelPropertiesProvider(ModelPropertiesUtil.newStore(getClass().getClassLoader(), false));
+ setModelPropertiesProvider(ModelPropertiesProviders.newStore(getClass().getClassLoader(), false));
}
ObjectModel model = new ObjectModelImpl();
@@ -307,7 +307,7 @@
if (!safe) {
if (log.isWarnEnabled()) {
- log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unkown.");
+ log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown.");
}
} else {
safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class);
@@ -368,7 +368,7 @@
// stereotype unkown
if (log.isWarnEnabled()) {
- log.warn("Invalid stereotype [" + key + "] : this stereotype '" + value + "' is unkown.");
+ log.warn("Invalid stereotype [" + key + "] : this stereotype '" + value + "' is unknown.");
}
} else {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -29,8 +29,8 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.EugeneTagValues;
import org.nuiton.eugene.ModelHelper;
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.metas.ModelPropertiesProviders;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAssociationClass;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
@@ -125,7 +125,7 @@
if (log.isDebugEnabled()) {
log.debug("No properties provider filled, will instanciate a new default one");
}
- setModelPropertiesProvider(ModelPropertiesUtil.newStore(getClass().getClassLoader(), false));
+ setModelPropertiesProvider(ModelPropertiesProviders.newStore(getClass().getClassLoader(), false));
}
}
@@ -317,7 +317,7 @@
boolean deprecated = modelPropertiesProvider.isDeprecatedTagValue(tag);
if (deprecated) {
if (log.isWarnEnabled()) {
- log.warn("Deprecated tagValue usage [" + key + "] : " + value );
+ log.warn("Deprecated tagValue usage [" + key + "] : " + value);
}
}
}
@@ -390,7 +390,7 @@
boolean deprecated = modelPropertiesProvider.isDeprecatedStereotype(value);
if (deprecated) {
if (log.isWarnEnabled()) {
- log.warn("Deprecated stereotype usage [" + key + "] : " + value );
+ log.warn("Deprecated stereotype usage [" + key + "] : " + value);
}
}
}
@@ -505,7 +505,7 @@
boolean deprecated = modelPropertiesProvider.isDeprecatedTagValue(tag);
if (deprecated) {
if (log.isWarnEnabled()) {
- log.warn("Deprecated tagValue usage [" + key + "] : " + value );
+ log.warn("Deprecated tagValue usage [" + key + "] : " + value);
}
}
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -230,15 +230,7 @@
return tagValues.containsKey(tagValue);
}
- /**
- * Adds the given {@code value} associated to the {@code tagValue}.
- * <p/>
- * Note: If a previous tag value was definied, then it will be replaced.
- *
- * @param tagValue the name of the tag value
- * @param value the value to associate
- * @since 2.1.2
- */
+ @Override
public void addTagValue(String tagValue, String value) {
String oldValue = getTagValue(tagValue);
if (StringUtils.isNotEmpty(oldValue)) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -509,15 +509,7 @@
return tagValue == null ? null : tagValues.get(tagValue);
}
- /**
- * Adds the given {@code value} associated to the {@code tagValue}.
- *
- * Note: If a previous tag value was definied, then it will be replaced.
- *
- * @param tagValue the name of the tag value
- * @param value the value to associate
- * @since 2.1.2
- */
+ @Override
public void addTagValue(String tagValue, String value) {
String oldValue = getTagValue(tagValue);
if (StringUtils.isNotEmpty(oldValue) && !oldValue.equals(value)) {
@@ -529,6 +521,11 @@
tagValues.put(tagValue,value);
}
+ @Override
+ public boolean hasTagValue(String tagValue) {
+ return tagValues.containsKey(tagValue);
+ }
+
/**
* Get the extension associated to the reference (unique). Create it if not exist.
* @param <O> object type returned
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -127,14 +127,7 @@
return modelTagValues;
}
- /**
- * Adds the given {@code value} associated to the {@code key}.
- *
- * Note: If a previous tag value was definied, then it will be replaced.
- *
- * @param key the name of the tag value
- * @param value the value to associate
- */
+ @Override
public void addTagValue(String key, String value) {
modelTagValues.put(key, value);
}
@@ -144,6 +137,11 @@
return key == null ? null : modelTagValues.get(key);
}
+ @Override
+ public boolean hasTagValue(String tagValue) {
+ return modelTagValues.containsKey(tagValue);
+ }
+
/**
* Set model version.
*
Deleted: trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider
===================================================================
--- trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider 2014-04-26 17:11:32 UTC (rev 1342)
@@ -1 +0,0 @@
-org.nuiton.eugene.ModelPropertiesUtil$EugeneModelPropertiesProvider
\ No newline at end of file
Copied: trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider (from rev 1339, trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider)
===================================================================
--- trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider (rev 0)
+++ trunk/eugene/src/main/resolver-cache/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1 @@
+org.nuiton.eugene.EugeneModelPropertiesProvider
\ No newline at end of file
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -27,6 +27,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -36,18 +37,18 @@
import org.nuiton.eugene.models.object.ObjectModelOperation;
/**
- * To test {@link ModelPropertiesUtil.EugeneModelPropertiesProvider}.
+ * To test {@link EugeneModelPropertiesProvider}.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 2.3
*/
public class EugeneModelPropertiesProviderTest {
- protected ModelPropertiesUtil.ModelPropertiesProvider provider;
+ protected ModelPropertiesProvider provider;
@Before
public void setUp() throws Exception {
- provider = new ModelPropertiesUtil.EugeneModelPropertiesProvider();
+ provider = new EugeneModelPropertiesProvider();
provider.init();
}
Modified: trunk/eugene-java-templates/pom.xml
===================================================================
--- trunk/eugene-java-templates/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesGeneratorUtil.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesGeneratorUtil.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesGeneratorUtil.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,6 +25,7 @@
*/
import org.apache.commons.lang3.StringUtils;
+import org.nuiton.eugene.metas.TagValues;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
@@ -61,8 +62,10 @@
* @since 2.3
*/
public static boolean isNoPCS(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_NO_PCS, classifier, model);
- return value != null && "true".equals(value);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_NO_PCS, classifier, model);
+// return value != null && "true".equals(value);
+ boolean value = TagValues.findBooleanTagValue(JavaTemplatesTagValues.TAG_NO_PCS, classifier, model);
+ return value;
}
/**
@@ -78,7 +81,8 @@
* @since 2.3
*/
public static String getBeanSuperClassTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_BEAN_SUPER_CLASS, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_BEAN_SUPER_CLASS, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_BEAN_SUPER_CLASS, classifier, model);
return value;
}
@@ -95,7 +99,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanSuperClassTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_SUPER_CLASS, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_SUPER_CLASS, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_SUPER_CLASS, classifier, model);
return value;
}
@@ -112,8 +117,10 @@
* @since 2.3
*/
public static boolean isSimpleBeanGenerateInterface(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_INTERFACE, classifier, model);
- return value != null && "true".equals(value);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_INTERFACE, classifier, model);
+// return value != null && "true".equals(value);
+ boolean value = TagValues.findBooleanTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_INTERFACE, classifier, model);
+ return value ;
}
/**
@@ -126,8 +133,10 @@
* @since 2.7.2
*/
public static boolean isSimpleBeanGenerateFactory(ObjectModel model) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_FACTORY, null, model);
- return value != null && "true".equals(value);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_FACTORY, null, model);
+// return value != null && "true".equals(value);
+ boolean value = TagValues.findBooleanTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_FACTORY, model);
+ return value;
}
/**
@@ -143,7 +152,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanInterfaceSuperClassTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_SUPER_CLASS, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_SUPER_CLASS, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_SUPER_CLASS, classifier, model);
return value;
}
@@ -160,7 +170,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanClassNamePrefixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_PREFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_PREFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_PREFIX, classifier, model);
return value;
}
@@ -177,7 +188,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanClassNameSuffixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_SUFFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_SUFFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_CLASS_NAME_SUFFIX, classifier, model);
return value;
}
@@ -194,7 +206,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanInterfaceNamePrefixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_PREFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_PREFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_PREFIX, classifier, model);
return value;
}
@@ -211,7 +224,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanInterfaceNameSuffixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_SUFFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_SUFFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_INTERFACE_NAME_SUFFIX, classifier, model);
return value;
}
@@ -228,8 +242,10 @@
* @since 2.7.2
*/
public static boolean isSimpleBeanGenerateDefaults(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_DEFAULTS, classifier, model);
- return value != null && "true".equals(value);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_DEFAULTS, classifier, model);
+// return value != null && "true".equals(value);
+ boolean value = TagValues.findBooleanTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_GENERATE_DEFAULTS, classifier, model);
+ return value;
}
/**
@@ -245,7 +261,8 @@
* @since 2.7.2
*/
public static String getSimpleBeanDefaultsSuperClassTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_SUPER_CLASS, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_SUPER_CLASS, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_SUPER_CLASS, classifier, model);
return value;
}
@@ -262,7 +279,8 @@
* @since 2.7.2
*/
public static String getSimpleBeanDefaultsClassNamePrefixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_PREFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_PREFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_PREFIX, classifier, model);
return value;
}
@@ -271,7 +289,7 @@
* tag value on the given model or classifier.
* <p/>
* It will first look on the model, and then in the given classifier.
- *
+ * <p/>
* <strong>If not filled, then use default {@code s} value.</strong>
*
* @param model model to seek
@@ -281,7 +299,8 @@
* @since 2.6.2
*/
public static String getSimpleBeanDefaultsClassNameSuffixTagValue(ObjectModel model, ObjectModelClassifier classifier) {
- String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_SUFFIX, classifier, model);
+// String value = findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_SUFFIX, classifier, model);
+ String value = TagValues.findTagValue(JavaTemplatesTagValues.TAG_SIMPLE_BEAN_DEFAULTS_CLASS_NAME_SUFFIX, classifier, model);
if (StringUtils.isBlank(value)) {
value = "s";
}
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -24,16 +24,16 @@
* #L%
*/
-import org.nuiton.eugene.ModelPropertiesUtil;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
/**
* The Java templates provider of tag values and stereotypes.
*
* @author tchemit <chemit(a)codelutin.com>
- * @plexus.component role="org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider" role-hint="java"
+ * @plexus.component role="org.nuiton.eugene.metas.ModelPropertiesProvider" role-hint="java"
* @since 2.5.6
*/
-public class JavaTemplatesModelPropertiesProvider extends ModelPropertiesUtil.ModelPropertiesProvider {
+public class JavaTemplatesModelPropertiesProvider extends ModelPropertiesProvider {
@Override
public void init() throws IllegalAccessException {
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,7 +25,7 @@
*/
import org.nuiton.eugene.EugeneStereoTypes;
-import org.nuiton.eugene.ModelPropertiesUtil;
+import org.nuiton.eugene.metas.StereotypeDefinition;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
/**
@@ -42,7 +42,7 @@
* @see JavaTemplatesGeneratorUtil#hasBeanStereotype(ObjectModelClassifier)
* @since 2.5.6
*/
- @ModelPropertiesUtil.StereotypeDefinition(
+ @StereotypeDefinition(
target = ObjectModelClassifier.class,
documentation = "To specify that a class is a JavaBean")
String STEREOTYPE_BEAN = "bean";
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -25,7 +25,7 @@
*/
import org.nuiton.eugene.EugeneTagValues;
-import org.nuiton.eugene.ModelPropertiesUtil;
+import org.nuiton.eugene.metas.TagValueDefinition;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
@@ -45,7 +45,7 @@
* @see JavaTemplatesGeneratorUtil#isNoPCS(ObjectModel, ObjectModelClassifier)
* @since 2.5.6
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To specify to not generate any propertyChange " +
"code for a class or any class of a model")
@@ -108,7 +108,7 @@
* @see JavaTemplatesGeneratorUtil#getBeanSuperClassTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.5.6
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To specify a super-class to used on generated bean " +
"for a class or any class of a model.\n" +
@@ -172,7 +172,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanSuperClassTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.5.6
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To specify a super-class to used on generated simple bean " +
"for a class or any class of a model.\n" +
@@ -187,7 +187,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanClassNamePrefixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a prefix on class name of generated bean " +
"for a class or any class of a model.\n" +
@@ -202,7 +202,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanClassNameSuffixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a suffix on class name of generated bean " +
"for a class or any class of a model.\n" +
@@ -217,7 +217,7 @@
* @see JavaTemplatesGeneratorUtil#isSimpleBeanGenerateInterface(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To generate an interface for each bean " +
"for a class or any class of a model.\n" +
@@ -232,7 +232,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanInterfaceSuperClassTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To specify a super-class to used on generated interfaces " +
"for a class or any class of a model.\n" +
@@ -247,7 +247,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanInterfaceNamePrefixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a prefix on interface name of generated bean " +
"for a class or any class of a model.\n" +
@@ -262,7 +262,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanInterfaceNameSuffixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a suffix on interface name of generated bean " +
"for a class or any class of a model.\n" +
@@ -277,7 +277,7 @@
* @see JavaTemplatesGeneratorUtil#isSimpleBeanGenerateFactory(ObjectModel)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class},
documentation = "To generate a factory of simple bean.\n" +
"(only effective with simple bean generator)")
@@ -291,7 +291,7 @@
* @see JavaTemplatesGeneratorUtil#isSimpleBeanGenerateDefaults(ObjectModel, ObjectModelClassifier)
* @since 2.7.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To generate defaults class with simple operations on the type.\n" +
"(only effective with simple bean generator)")
@@ -306,7 +306,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanDefaultsSuperClassTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.7.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To specify a super-class to used on generated defaults classes" +
"for a bean or any bean of a model.\n" +
@@ -321,7 +321,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanDefaultsClassNamePrefixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.7.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a prefix on class name of generated defaults bean " +
"for a class or any class of a model.\n" +
@@ -336,7 +336,7 @@
* @see JavaTemplatesGeneratorUtil#getSimpleBeanDefaultsClassNameSuffixTagValue(ObjectModel, ObjectModelClassifier)
* @since 2.6.2
*/
- @ModelPropertiesUtil.TagValueDefinition(
+ @TagValueDefinition(
target = {ObjectModel.class, ObjectModelClassifier.class},
documentation = "To add a suffix on class name of generated defaults bean " +
"for a class or any class of a model.\n" +
Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java
===================================================================
--- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -133,8 +133,7 @@
boolean generateFactory =
JavaTemplatesGeneratorUtil.isSimpleBeanGenerateFactory(model);
- String defaultPackage =
- getConfiguration().getProperty(PROP_DEFAULT_PACKAGE);
+ String defaultPackage = getDefaultPackageName();
String fqn = defaultPackage + "." + className;
boolean canGenerate = generateFactory &&
@@ -227,8 +226,7 @@
}
protected void generateBeanFactory(ObjectModel model, String className) {
- String defaultPackage =
- getConfiguration().getProperty(PROP_DEFAULT_PACKAGE);
+ String defaultPackage = getDefaultPackageName();
ObjectModelClass output = createClass(className, defaultPackage);
Deleted: trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider
===================================================================
--- trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider 2014-04-26 17:11:32 UTC (rev 1342)
@@ -1 +0,0 @@
-org.nuiton.eugene.java.JavaTemplatesModelPropertiesProvider
\ No newline at end of file
Copied: trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider (from rev 1339, trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider)
===================================================================
--- trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider (rev 0)
+++ trunk/eugene-java-templates/src/main/resources/META-INF/services/org.nuiton.eugene.metas.ModelPropertiesProvider 2014-04-26 17:11:32 UTC (rev 1342)
@@ -0,0 +1 @@
+org.nuiton.eugene.java.JavaTemplatesModelPropertiesProvider
\ No newline at end of file
Modified: trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java
===================================================================
--- trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -27,7 +27,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.nuiton.eugene.ModelPropertiesUtil;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -44,7 +44,7 @@
*/
public class JavaTemplatesModelPropertiesProviderTest {
- protected ModelPropertiesUtil.ModelPropertiesProvider provider;
+ protected ModelPropertiesProvider provider;
@Before
public void setUp() throws Exception {
Modified: trunk/eugene-maven-plugin/pom.xml
===================================================================
--- trunk/eugene-maven-plugin/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-maven-plugin/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -33,9 +33,12 @@
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
import org.nuiton.eugene.Template;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.ModelPropertiesProviders;
+import org.nuiton.eugene.metas.StereotypeDefinition;
+import org.nuiton.eugene.metas.TagValueDefinition;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.writer.ChainedFileWriter;
@@ -107,12 +110,12 @@
*
* @since 2.3.1
*/
- @Component(role = ModelPropertiesUtil.ModelPropertiesProvider.class)
- protected Map<String, ModelPropertiesUtil.ModelPropertiesProvider> modelPropertiesProviders;
+ @Component(role = ModelPropertiesProvider.class)
+ protected Map<String, ModelPropertiesProvider> modelPropertiesProviders;
- protected Map<String, ModelPropertiesUtil.ModelPropertiesProvider> loadedProviders;
+ protected Map<String, ModelPropertiesProvider> loadedProviders;
- protected ModelPropertiesUtil.ModelPropertiesProvider currentPropertiesProvider;
+ protected ModelPropertiesProvider currentPropertiesProvider;
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
@@ -143,7 +146,8 @@
} catch (IllegalArgumentException e) {
getLog().warn(
"does not know data type : " + s + " use one of " +
- Arrays.toString(AvailableData.values()));
+ Arrays.toString(AvailableData.values())
+ );
}
}
}
@@ -151,10 +155,10 @@
if (safeDataTypes.contains(AvailableData.stereotype) ||
safeDataTypes.contains(AvailableData.tagvalue)) {
- loadedProviders = new LinkedHashMap<String, ModelPropertiesUtil.ModelPropertiesProvider>();
+ loadedProviders = new LinkedHashMap<String, ModelPropertiesProvider>();
// init stores
- for (Map.Entry<String, ModelPropertiesUtil.ModelPropertiesProvider> e : modelPropertiesProviders.entrySet()) {
- ModelPropertiesUtil.ModelPropertiesProvider provider = ModelPropertiesUtil.newStore(
+ for (Map.Entry<String, ModelPropertiesProvider> e : modelPropertiesProviders.entrySet()) {
+ ModelPropertiesProvider provider = ModelPropertiesProviders.newStore(
Arrays.asList(e.getValue()),
false
);
@@ -177,7 +181,7 @@
if (data == AvailableData.tagvalue || data == AvailableData.stereotype) {
int nbData = 0;
- for (ModelPropertiesUtil.ModelPropertiesProvider provider : loadedProviders.values()) {
+ for (ModelPropertiesProvider provider : loadedProviders.values()) {
currentPropertiesProvider = provider;
nbData += data.getData(this).size();
}
@@ -192,9 +196,9 @@
loadedProviders.keySet())
);
- for (Map.Entry<String, ModelPropertiesUtil.ModelPropertiesProvider> e : loadedProviders.entrySet()) {
+ for (Map.Entry<String, ModelPropertiesProvider> e : loadedProviders.entrySet()) {
String providerName = e.getKey();
- ModelPropertiesUtil.ModelPropertiesProvider provider = e.getValue();
+ ModelPropertiesProvider provider = e.getValue();
currentPropertiesProvider = provider;
Map<String, ?> map = data.getData(this);
@@ -288,7 +292,7 @@
@Override
String toString(Object data) {
- ModelPropertiesUtil.TagValueDefinition d = (ModelPropertiesUtil.TagValueDefinition) data;
+ TagValueDefinition d = (TagValueDefinition) data;
StringBuilder sb = new StringBuilder();
Class<?>[] targets = d.target();
for (Class<?> aClass : targets) {
@@ -310,7 +314,7 @@
buffer.append("] targets : '");
buffer.append(toString(value));
buffer.append("\' : ");
- buffer.append(((ModelPropertiesUtil.TagValueDefinition) value).documentation());
+ buffer.append(((TagValueDefinition) value).documentation());
}
},
stereotype {
@@ -321,7 +325,7 @@
@Override
String toString(Object data) {
- ModelPropertiesUtil.StereotypeDefinition d = (ModelPropertiesUtil.StereotypeDefinition) data;
+ StereotypeDefinition d = (StereotypeDefinition) data;
StringBuilder sb = new StringBuilder();
Class<?>[] targets = d.target();
for (Class<?> aClass : targets) {
@@ -343,7 +347,7 @@
buffer.append("] targets : '");
buffer.append(toString(value));
buffer.append("\' : ");
- buffer.append(((ModelPropertiesUtil.StereotypeDefinition) value).documentation());
+ buffer.append(((StereotypeDefinition) value).documentation());
}
};
@@ -364,13 +368,13 @@
}
}
- protected ModelPropertiesUtil.ModelPropertiesProvider getCurrentPropertiesProvider() {
+ protected ModelPropertiesProvider getCurrentPropertiesProvider() {
return currentPropertiesProvider;
}
- protected ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() {
+ protected ModelPropertiesProvider getModelPropertiesProvider() {
- ModelPropertiesUtil.ModelPropertiesProvider provider;
+ ModelPropertiesProvider provider;
if (modelPropertiesProviders == null ||
modelPropertiesProviders.isEmpty()) {
@@ -378,12 +382,12 @@
// could not find any model properties via plexus
// try to obtain them by ServiceLoader
- provider = ModelPropertiesUtil.newStore(
+ provider = ModelPropertiesProviders.newStore(
getClass().getClassLoader(),
false
);
} else {
- provider = ModelPropertiesUtil.newStore(
+ provider = ModelPropertiesProviders.newStore(
modelPropertiesProviders.values(),
false
);
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -37,9 +37,10 @@
import org.apache.maven.settings.Settings;
import org.nuiton.eugene.DefaultTemplateConfiguration;
import org.nuiton.eugene.ModelHelper;
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
import org.nuiton.eugene.Template;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
+import org.nuiton.eugene.metas.ModelPropertiesProviders;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.plugin.writer.BaseChainedFileWriter;
import org.nuiton.eugene.plugin.writer.XmiChainedFileWriter;
@@ -320,8 +321,8 @@
*
* @since 2.3
*/
- @Component(role = ModelPropertiesUtil.ModelPropertiesProvider.class)
- protected Map<String, ModelPropertiesUtil.ModelPropertiesProvider> modelPropertiesProviders;
+ @Component(role = ModelPropertiesProvider.class)
+ protected Map<String, ModelPropertiesProvider> modelPropertiesProviders;
/** The engine to compute {@link ChainedFileWriter} from inputs entries. */
@Component(role = ChainedWriterEngine.class)
@@ -891,9 +892,9 @@
}
}
- protected ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() throws MojoExecutionException {
+ protected ModelPropertiesProvider getModelPropertiesProvider() throws MojoExecutionException {
- ModelPropertiesUtil.ModelPropertiesProvider provider;
+ ModelPropertiesProvider provider;
if (modelPropertiesProviders == null ||
modelPropertiesProviders.isEmpty() ||
@@ -902,12 +903,12 @@
// could not find any model properties via plexus
// try to obtain them by ServiceLoader
- provider = ModelPropertiesUtil.newStore(
+ provider = ModelPropertiesProviders.newStore(
getFixedClassLoader(),
verbose
);
} else {
- provider = ModelPropertiesUtil.newStore(
+ provider = ModelPropertiesProviders.newStore(
modelPropertiesProviders.values(),
verbose
);
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -24,8 +24,8 @@
* #L%
*/
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
import org.nuiton.eugene.writer.ChainedFileWriterToMemoryModel;
@@ -102,8 +102,8 @@
return getProperty(PROP_READER, String.class);
}
- protected ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() {
- return getProperty(PROP_MODEL_PROPERTIES_PROVIDER, ModelPropertiesUtil.ModelPropertiesProvider.class);
+ protected ModelPropertiesProvider getModelPropertiesProvider() {
+ return getProperty(PROP_MODEL_PROPERTIES_PROVIDER, ModelPropertiesProvider.class);
}
@Override
@@ -144,7 +144,8 @@
throw new IllegalStateException(
"could not find a model reader for modelType: " +
modelType + ", and input type: " + inputType + ", availables readers : " +
- configuration.getModelHelper().getModelReaders().values());
+ configuration.getModelHelper().getModelReaders().values()
+ );
}
properties.put(PROP_MODEL_READER, modelReader);
}
@@ -153,7 +154,7 @@
boolean verbose = configuration.isVerbose();
// gets the provider of safe tag values and stereotypes
- ModelPropertiesUtil.ModelPropertiesProvider propertiesProvider =
+ ModelPropertiesProvider propertiesProvider =
getModelPropertiesProvider();
// affect it to the model reader
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2014-04-26 17:11:32 UTC (rev 1342)
@@ -27,10 +27,10 @@
import org.apache.commons.lang3.StringUtils;
import org.nuiton.eugene.DefaultTemplateConfiguration;
-import org.nuiton.eugene.ModelPropertiesUtil;
import org.nuiton.eugene.ModelReader;
import org.nuiton.eugene.Template;
import org.nuiton.eugene.TemplateConfiguration;
+import org.nuiton.eugene.metas.ModelPropertiesProvider;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
@@ -51,7 +51,7 @@
*/
public class ModelChainedFileWriter extends BaseChainedFileWriter {
- public static final String PROP_GENERATED_PACKAGES = "generatedPackages";
+ public static final String PROP_GENERATED_PACKAGES = Template.PROP_GENERATED_PACKAGES;
public static final String PROP_EXCLUDE_TEMPLATES = "excludeTemplates";
@@ -59,7 +59,7 @@
public static final String PROP_TEMPLATES_LIST = "templatesList";
- public static final String PROP_DEFAULT_PACKAGE = "defaultPackage";
+ public static final String PROP_DEFAULT_PACKAGE = Template.PROP_DEFAULT_PACKAGE;
public static final String PROP_MODEL_READER = "modelReader";
@@ -165,8 +165,8 @@
return getProperty(PROP_READER, String.class);
}
- protected ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() {
- return getProperty(PROP_MODEL_PROPERTIES_PROVIDER, ModelPropertiesUtil.ModelPropertiesProvider .class);
+ protected ModelPropertiesProvider getModelPropertiesProvider() {
+ return getProperty(PROP_MODEL_PROPERTIES_PROVIDER, ModelPropertiesProvider.class);
}
@Override
@@ -210,9 +210,8 @@
boolean verbose = configuration.isVerbose();
// gets the provider of safe tag values and stereotypes
- ModelPropertiesUtil.ModelPropertiesProvider propertiesProvider =
- getModelPropertiesProvider();
-
+ ModelPropertiesProvider propertiesProvider = getModelPropertiesProvider();
+
// affect it to the model reader
getModelReader().setModelPropertiesProvider(propertiesProvider);
@@ -274,7 +273,8 @@
} catch (Exception e) {
throw new IllegalStateException(
"Can't obtain template [" + templateName +
- "] for reason " + e.getMessage(), e);
+ "] for reason " + e.getMessage(), e
+ );
}
}
@@ -307,9 +307,8 @@
if (configuration.isVerbose()) {
getLog().info("Will read " + filesToRead.length + " model(s).");
}
-
-
+
// read memory model from all files models
Model model = getModelReader().read(filesToRead);
Modified: trunk/eugene-plantuml-templates/pom.xml
===================================================================
--- trunk/eugene-plantuml-templates/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-plantuml-templates/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-yaml-templates/pom.xml
===================================================================
--- trunk/eugene-yaml-templates/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/eugene-yaml-templates/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-26 17:10:22 UTC (rev 1341)
+++ trunk/pom.xml 2014-04-26 17:11:32 UTC (rev 1342)
@@ -32,7 +32,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.8.1-SNAPSHOT</version>
+ <version>2.9-SNAPSHOT</version>
<packaging>pom</packaging>
<name>EUGene</name>
<description>Efficient Universal Generator</description>
1
0
26 Apr '14
Author: tchemit
Date: 2014-04-26 19:10:22 +0200 (Sat, 26 Apr 2014)
New Revision: 1341
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1341
Log:
fixes #3176: Review the outputProperties state in Transformer
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java 2014-04-25 10:06:34 UTC (rev 1340)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java 2014-04-26 17:10:22 UTC (rev 1341)
@@ -68,7 +68,7 @@
/**
* Properties for output generator.
*/
- protected Properties outputProperties;
+ protected Properties outputProperties = new Properties();
public Transformer() {
}
@@ -96,14 +96,15 @@
// merge input configuration + output properties
Properties properties = new Properties();
properties.putAll(getConfiguration().getProperties());
- properties.putAll(getOutputProperties());
+ properties.putAll(outputProperties);
TemplateConfiguration outconfig =
new DefaultTemplateConfiguration(properties);
+ // Note tchemit 2014-04-26, do not touch the outputProperties, init the transformer
+ // should not change this state
// push back to outputPropertie the all configuration
- //FIXME tchemit 2010-05-16 Should rethink this...
- outputProperties = properties;
+// outputProperties = properties;
outputTemplate.setConfiguration(outconfig);
outputModel = initOutputModel();
@@ -139,14 +140,20 @@
*
* @return output properties
* @since 2.0.0
+ * @deprecated since 2.9, wille be removed in version 3.0, prefer use now {@link #addOutputProperty(String, Object)}
*/
+ @Deprecated
protected Properties getOutputProperties() {
- if (outputProperties == null) {
- outputProperties = new Properties();
- }
+// if (outputProperties == null) {
+// outputProperties = new Properties();
+// }
return outputProperties;
}
+ public void addOutputProperty(String key, Object value) {
+ outputProperties.put(key, value);
+ }
+
public Template<O> getOutputTemplate() {
return outputTemplate;
}
@@ -156,8 +163,7 @@
}
public String getDefaultPackageName() {
- String packageName =
- getOutputProperties().getProperty(PROP_DEFAULT_PACKAGE);
+ String packageName = getConfiguration().getProperty(PROP_DEFAULT_PACKAGE);
return packageName;
}
1
0
r1340 - trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin
by tchemit@users.nuiton.org 25 Apr '14
by tchemit@users.nuiton.org 25 Apr '14
25 Apr '14
Author: tchemit
Date: 2014-04-25 12:06:34 +0200 (Fri, 25 Apr 2014)
New Revision: 1340
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1340
Log:
refs #3169 (improve logs)
Modified:
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-23 08:05:06 UTC (rev 1339)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-25 10:06:34 UTC (rev 1340)
@@ -486,18 +486,8 @@
continue;
}
long t0 = System.nanoTime();
- int size = writer.getEntries().size();
- if (size == 1) {
- getLog().info(
- "Process phase [" + writer.getInputProtocol() +
- "] for one entry."
- );
- } else {
- getLog().info(
- "Process phase [" + writer.getInputProtocol() +
- "] for " + size + " entries."
- );
- }
+ getLog().info("Process phase [" + writer.getInputProtocol() + "]");
+
if (dryRun || isVerbose()) {
for (ChainedFileWriterEntry entry : writer.getEntries()) {
getLog().info(" entry : " + entry);
@@ -532,16 +522,7 @@
WriterReport writerReport = newWriterReport();
- int size = models.size();
- if (size == 1) {
- getLog().info(
- "Process phase [java] for one entry."
- );
- } else {
- getLog().info(
- "Process phase [java] for " + size + " entries."
- );
- }
+ getLog().info("Process phase [generator]");
for (ChainedFileWriterToMemoryModel entry : models) {
Model model = entry.getModel();
1
0
23 Apr '14
See <http://ci.nuiton.org/jenkins/job/eugene-nightly/9/changes>
Changes:
[maven-release] [maven-release-plugin] prepare for next development iteration
[maven-release] [maven-release-plugin] prepare release eugene-2.8
[Tony CHEMIT] fixes #3164
[Tony CHEMIT] refs #3147 improve javadoc
------------------------------------------
Started by an SCM change
Building in workspace <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/>
Reverting <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/trunk> to depth infinity with ignoreExternals: false
Updating https://svn.nuiton.org/eugene/trunk at revision '2014-04-19T01:04:49.260 +0200'
U eugene-java-templates/pom.xml
U eugene-yaml-templates/pom.xml
U eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
U eugene/src/main/java/org/nuiton/eugene/ModelPropertiesUtil.java
U eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java
U eugene/pom.xml
U eugene-maven-plugin/pom.xml
U pom.xml
U eugene-plantuml-templates/pom.xml
At revision 1336
Parsing POMs
Modules changed, recalculating dependency graph
[trunk] $ /opt/jdk7/bin/java -Dsettings.security=/var/local/forge/data/nuiton.org/maven/settings-security.xml -Djava.awt.headless=true -cp /var/local/forge/data/nuiton.org/jenkins/plugins/maven-plugin/WEB-INF/lib/maven31-agent-1.5.jar:/opt/maven3/boot/plexus-classworlds-2.5.1.jar:/opt/maven3/conf/logging jenkins.maven3.agent.Maven31Main /opt/maven3 /var/local/forge/exec/tomcat-nuiton.org/webapps/jenkins/WEB-INF/lib/remoting-2.36.jar /var/local/forge/data/nuiton.org/jenkins/plugins/maven-plugin/WEB-INF/lib/maven31-interceptor-1.5.jar /var/local/forge/data/nuiton.org/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.5.jar 35796
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven: -B -f <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/trunk/pom.xml> -s /var/local/forge/data/nuiton.org/maven/settings.xml -e -U clean install -DperformRelease
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] EUGene
[INFO] EUGene :: EUGene
[INFO] EUGene :: Java templates
[INFO] EUGene :: PlantUML templates
[INFO] EUGene :: YAML templates
[INFO] EUGene :: Maven plugin
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building EUGene 2.9-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ eugene ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/trunk/target>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ eugene ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:check-auto-container (check-central-safe) @ eugene ---
[INFO] Will use repository http://repo1.maven.org/maven2/
[INFO] Will use repository http://maven.nuiton.org/central-releases
[INFO] 14 dependencies to check.
[INFO] 14 artifact(s) resolved by repository http://repo1.maven.org/maven2/ in 2.424s
[INFO] All dependencies are safe.
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ eugene ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ eugene ---
[INFO] Exporting server [redmine-forge.nuiton.org] privateKey in ${redmine.apiKey}
[INFO]
[INFO] --- license-maven-plugin:1.6:update-project-license (attach-licenses) @ eugene ---
[INFO] Will create or update license file [lgpl_v3] to <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/trunk/LICENSE.txt>
[INFO]
[INFO] --- license-maven-plugin:1.6:add-third-party (attach-licenses) @ eugene ---
[WARNING] The goal is skip due to packaging 'pom'
[INFO]
[INFO] --- license-maven-plugin:1.6:update-file-header (update-file-header) @ eugene ---
[WARNING] The extension xsl is already accepted for comment style xml
[INFO] Will search files to update from root <http://ci.nuiton.org/jenkins/job/eugene-nightly/ws/trunk/src>
[INFO] Scan 21 files header done in 190.275ms.
[INFO] All files are up-to-date.
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.10:check (default) @ eugene ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java16:1.1
[INFO]
[INFO] --- jredmine-maven-plugin:1.8.1:generate-changes (jredmine-generate-changes) @ eugene ---
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] EUGene ............................................ FAILURE [ 10.619 s]
[INFO] EUGene :: EUGene .................................. SKIPPED
[INFO] EUGene :: Java templates .......................... SKIPPED
[INFO] EUGene :: PlantUML templates ...................... SKIPPED
[INFO] EUGene :: YAML templates .......................... SKIPPED
[INFO] EUGene :: Maven plugin ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.756 s
[INFO] Finished at: 2014-04-19T01:05:15+01:00
[INFO] Final Memory: 28M/245M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.nuiton.jredmine:jredmine-maven-plugin:1.8.1:generate-changes (jredmine-generate-changes) on project eugene: the version '2.9' could not be retrieve from redmine server. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.nuiton.jredmine:jredmine-maven-plugin:1.8.1:generate-changes (jredmine-generate-changes) on project eugene: the version '2.9' could not be retrieve from redmine server.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.plugin.MojoExecutionException: the version '2.9' could not be retrieve from redmine server.
at org.nuiton.jredmine.plugin.AbstractRedmineMojo.failIfSafe(AbstractRedmineMojo.java:376)
at org.nuiton.jredmine.plugin.AbstractRedmineMojoWithProjectAndVersion.init(AbstractRedmineMojoWithProjectAndVersion.java:119)
at org.nuiton.jredmine.plugin.GenerateChangesMojo.init(GenerateChangesMojo.java:336)
at org.nuiton.plugin.AbstractPlugin.execute(AbstractPlugin.java:106)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 30 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Failed to send e-mail to maven-release because no e-mail address is known, and no default e-mail domain is configured
Sending e-mails to: eugene-commits(a)list.nuiton.org
channel stopped
Skipping sonar analysis due to bad build status FAILURE
Failed to send e-mail to maven-release because no e-mail address is known, and no default e-mail domain is configured
1
1
23 Apr '14
See <http://ci.nuiton.org/jenkins/job/eugene-nightly/org.nuiton$eugene/9/changes>
Changes:
[maven-release] [maven-release-plugin] prepare for next development iteration
[maven-release] [maven-release-plugin] prepare release eugene-2.8
------------------------------------------
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven: -B -f <http://ci.nuiton.org/jenkins/job/eugene-nightly/org.nuiton$eugene/ws/pom.xml> -s /var/local/forge/data/nuiton.org/maven/settings.xml -e -U clean install -DperformRelease
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] EUGene
[INFO] EUGene :: EUGene
[INFO] EUGene :: Java templates
[INFO] EUGene :: PlantUML templates
[INFO] EUGene :: YAML templates
[INFO] EUGene :: Maven plugin
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building EUGene 2.9-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ eugene ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/eugene-nightly/org.nuiton$eugene/ws/target>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ eugene ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:check-auto-container (check-central-safe) @ eugene ---
[INFO] Will use repository http://repo1.maven.org/maven2/
[INFO] Will use repository http://maven.nuiton.org/central-releases
[INFO] 14 dependencies to check.
[INFO] 14 artifact(s) resolved by repository http://repo1.maven.org/maven2/ in 2.424s
[INFO] All dependencies are safe.
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ eugene ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ eugene ---
[INFO] Exporting server [redmine-forge.nuiton.org] privateKey in ${redmine.apiKey}
[INFO]
[INFO] --- license-maven-plugin:1.6:update-project-license (attach-licenses) @ eugene ---
[INFO] Will create or update license file [lgpl_v3] to <http://ci.nuiton.org/jenkins/job/eugene-nightly/org.nuiton$eugene/ws/LICENS…>
[INFO]
[INFO] --- license-maven-plugin:1.6:add-third-party (attach-licenses) @ eugene ---
[WARNING] The goal is skip due to packaging 'pom'
[INFO]
[INFO] --- license-maven-plugin:1.6:update-file-header (update-file-header) @ eugene ---
[WARNING] The extension xsl is already accepted for comment style xml
[INFO] Will search files to update from root <http://ci.nuiton.org/jenkins/job/eugene-nightly/org.nuiton$eugene/ws/src>
[INFO] Scan 21 files header done in 190.275ms.
[INFO] All files are up-to-date.
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.10:check (default) @ eugene ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java16:1.1
[INFO]
[INFO] --- jredmine-maven-plugin:1.8.1:generate-changes (jredmine-generate-changes) @ eugene ---
[JENKINS] Archiving disabled
1
1
r1339 - in trunk: . eugene eugene-java-templates eugene-maven-plugin eugene-plantuml-templates eugene-yaml-templates
by tchemit@users.nuiton.org 23 Apr '14
by tchemit@users.nuiton.org 23 Apr '14
23 Apr '14
Author: tchemit
Date: 2014-04-23 10:05:06 +0200 (Wed, 23 Apr 2014)
New Revision: 1339
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1339
Log:
pass to next version
Modified:
trunk/eugene-java-templates/pom.xml
trunk/eugene-maven-plugin/pom.xml
trunk/eugene-plantuml-templates/pom.xml
trunk/eugene-yaml-templates/pom.xml
trunk/eugene/pom.xml
trunk/pom.xml
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/eugene/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -27,7 +27,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-java-templates/pom.xml
===================================================================
--- trunk/eugene-java-templates/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/eugene-java-templates/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-maven-plugin/pom.xml
===================================================================
--- trunk/eugene-maven-plugin/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/eugene-maven-plugin/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-plantuml-templates/pom.xml
===================================================================
--- trunk/eugene-plantuml-templates/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/eugene-plantuml-templates/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-yaml-templates/pom.xml
===================================================================
--- trunk/eugene-yaml-templates/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/eugene-yaml-templates/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-23 07:57:45 UTC (rev 1338)
+++ trunk/pom.xml 2014-04-23 08:05:06 UTC (rev 1339)
@@ -32,7 +32,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.9-SNAPSHOT</version>
+ <version>2.8.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>EUGene</name>
<description>Efficient Universal Generator</description>
1
0
r1338 - in trunk: eugene/src/main/java/org/nuiton/eugene/java eugene/src/main/java/org/nuiton/eugene/models/object/reader eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer
by tchemit@users.nuiton.org 23 Apr '14
by tchemit@users.nuiton.org 23 Apr '14
23 Apr '14
Author: tchemit
Date: 2014-04-23 09:57:45 +0200 (Wed, 23 Apr 2014)
New Revision: 1338
Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1338
Log:
fixes #3169
Modified:
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java
trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -990,11 +990,9 @@
// there is already a existing file in class-path, skip
- if (isVerbose()) {
-
- log.info("Will not generate [" + fqn + "], already found in class-path at location : " + fileLocation);
- } else {
-
+ if (log.isDebugEnabled()) {
+ log.debug("Will not generate [" + fqn + "], already found in class-path at location : " + fileLocation);
+ } else if (isVerbose()) {
log.info("Will not generate [" + fqn + "], already found in class-path.");
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -122,8 +122,8 @@
}
if (modelPropertiesProvider == null) {
- if (log.isWarnEnabled()) {
- log.warn("No properties provider filled, will instanciate a new default one");
+ if (log.isDebugEnabled()) {
+ log.debug("No properties provider filled, will instanciate a new default one");
}
setModelPropertiesProvider(ModelPropertiesUtil.newStore(getClass().getClassLoader(), false));
}
@@ -266,7 +266,7 @@
numberImportedTagValues++;
}
}
- if (log.isInfoEnabled()) {
+ if (isVerbose()) {
log.info(numberImportedTagValues + " tag values were succesfull imported from " + propFile);
}
int nbFailed = prop.size() - numberImportedTagValues;
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -368,13 +368,15 @@
if (model == null) {
throw new MojoExecutionException(
"No modelType named '" + modelType + "', use one of " +
- _models.keySet());
+ _models.keySet()
+ );
}
if (inputs.length == 0) {
throw new MojoExecutionException(
"Must specify something to include using the includes " +
- "property");
+ "property"
+ );
}
//FIXME-TC20091217 use a configurator in plexus ?
// Actually we obtain a different instance of the mojo conflit with
@@ -423,30 +425,6 @@
properties.put(XmiChainedFileWriter.PROP_RESOLVER, resolver);
}
-// if (engine.containsWriter("model")) {
-//
-// // add model writer support
-//
-// properties.put(ModelChainedFileWriter.PROP_DEFAULT_PACKAGE,
-// defaultPackage);
-// properties.put(ModelChainedFileWriter.PROP_GENERATED_PACKAGES,
-// generatedPackages);
-// properties.put(ModelChainedFileWriter.PROP_TEMPLATES, templates);
-// properties.put(ModelChainedFileWriter.PROP_EXCLUDE_TEMPLATES,
-// getExcludeTemplatesAsString());
-// properties.put(ModelChainedFileWriter.PROP_MODEL_PROPERTIES_PROVIDER,
-// getModelPropertiesProvider());
-//
-// DefaultTemplateConfiguration configuration =
-// new DefaultTemplateConfiguration();
-// configuration.setEncoding(getEncoding());
-// configuration.setLoader(getClassLoader());
-// configuration.setOverwrite(isOverwrite());
-// configuration.setVerbose(isVerbose());
-// properties.put(ModelChainedFileWriter.PROP_TEMPLATE_CONFIGURATION,
-// configuration);
-// }
-
if (engine.containsWriter("xmlmodel")) {
// add xml model writer support
@@ -512,11 +490,13 @@
if (size == 1) {
getLog().info(
"Process phase [" + writer.getInputProtocol() +
- "] for one entry.");
+ "] for one entry."
+ );
} else {
getLog().info(
"Process phase [" + writer.getInputProtocol() +
- "] for " + size + " entries.");
+ "] for " + size + " entries."
+ );
}
if (dryRun || isVerbose()) {
for (ChainedFileWriterEntry entry : writer.getEntries()) {
@@ -542,14 +522,27 @@
models.add(writerToMemoryModel);
}
- String message = reportGeneratedFiles(writer, t0);
+ String message = reportGeneratedFiles(writer.getWriterReport(), t0);
getLog().info(message);
}
// merge all models in a unique one ? or apply templates on each model ?
+ long t0 = System.nanoTime();
+
WriterReport writerReport = newWriterReport();
+ int size = models.size();
+ if (size == 1) {
+ getLog().info(
+ "Process phase [java] for one entry."
+ );
+ } else {
+ getLog().info(
+ "Process phase [java] for " + size + " entries."
+ );
+ }
+
for (ChainedFileWriterToMemoryModel entry : models) {
Model model = entry.getModel();
Long lastModified = entry.getLastModifiedSource();
@@ -565,6 +558,9 @@
fixCompileSourceRoots(outputDir);
}
+ String message = reportGeneratedFiles(writerReport, t0);
+ getLog().info(message);
+
} finally {
// always clear everything to avoid side-effects in goal is
// invoked more than once
@@ -600,22 +596,6 @@
}
}
-
- public String reportGeneratedFiles(ChainedFileWriter writer, long t0) {
- WriterReport writerReport = writer.getWriterReport();
- int nbFiles = writerReport.getFilesCount();
-
- if (nbFiles == 0) {
- return "No file generated.";
- }
-
- long delay = System.nanoTime() - t0;
- if (nbFiles == 1) {
- return "Generate one file in " + StringUtil.convertTime(delay) + ".";
- }
- return "Generate " + nbFiles + " files in " + StringUtil.convertTime(delay) + ".";
- }
-
/**
* Add a single input to the {@link #inputs} property.
* <p/>
@@ -737,7 +717,7 @@
/**
* @return the string representation of excludesTemplates
- * (separated by comma)
+ * (separated by comma)
*/
protected String getExcludeTemplatesAsString() {
String result = "";
@@ -900,23 +880,31 @@
if (isTestPhase()) {
if (!project.getTestCompileSourceRoots().contains(
destDirGen.getPath())) {
- getLog().info("Add test compile source root : " + destDirGen);
+ if (isVerbose()) {
+ getLog().info("Add test compile source root : " + destDirGen);
+ }
project.addTestCompileSourceRoot(destDirGen.getPath());
Resource resources = new Resource();
resources.setDirectory(destDirGen.getAbsolutePath());
resources.setExcludes(Arrays.asList("**/*.java"));
- getLog().info("Add test resource root :" + resources);
+ if (isVerbose()) {
+ getLog().info("Add test resource root :" + resources);
+ }
project.addTestResource(resources);
}
} else {
if (!project.getCompileSourceRoots().contains(
destDirGen.getPath())) {
- getLog().info("Add compile source root : " + destDirGen);
+ if (isVerbose()) {
+ getLog().info("Add compile source root : " + destDirGen);
+ }
project.addCompileSourceRoot(destDirGen.getPath());
Resource resources = new Resource();
resources.setDirectory(destDirGen.getAbsolutePath());
resources.setExcludes(Arrays.asList("**/*.java"));
- getLog().info("Add resource root :" + resources);
+ if (isVerbose()) {
+ getLog().info("Add resource root :" + resources);
+ }
project.addResource(resources);
}
}
@@ -993,7 +981,8 @@
} catch (Exception e) {
throw new IllegalStateException(
"Can't obtain template [" + templateName +
- "] for reason " + e.getMessage(), e);
+ "] for reason " + e.getMessage(), e
+ );
}
}
@@ -1011,4 +1000,18 @@
}
return templatesList;
}
+
+ protected String reportGeneratedFiles(WriterReport writerReport, long t0) {
+ int nbFiles = writerReport.getFilesCount();
+
+ if (nbFiles == 0) {
+ return "No file generated.";
+ }
+
+ long delay = System.nanoTime() - t0;
+ if (nbFiles == 1) {
+ return "Generate one file in " + StringUtil.convertTime(delay) + ".";
+ }
+ return "Generate " + nbFiles + " files in " + StringUtil.convertTime(delay) + ".";
+ }
}
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -292,7 +292,9 @@
// File out = new File(outputDirectory, relativePath);
// File out = new File(outputDirectory, in.getName());
- getLog().info("Copy file " + in + " to " + out);
+ if (configuration.isVerbose()) {
+ getLog().info("Copy file " + in + " to " + out);
+ }
if (overwrite) {
FileUtils.copyFile(in, out);
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -163,8 +163,10 @@
File inputDirectory = entry.getKey();
List<File> files = entry.getValue();
- getLog().info("Processing XSL tranformation on " +
- inputDirectory + " for " + files.size() + " file(s).");
+ if (configuration.isVerbose()) {
+ getLog().info("Processing XSL tranformation on " +
+ inputDirectory + " for " + files.size() + " file(s).");
+ }
for (File file : files) {
@@ -237,7 +239,7 @@
writerReport.addFile(
getClass().getName(),
result,
- true
+ false
);
}
Modified: trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
===================================================================
--- trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2014-04-23 07:57:21 UTC (rev 1337)
+++ trunk/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2014-04-23 07:57:45 UTC (rev 1338)
@@ -112,7 +112,9 @@
File inputDirectory = entry.getKey();
List<File> files = entry.getValue();
- getLog().info("Expanding " + files.size() + " xmi file(s) from " + inputDirectory);
+ if (configuration.isVerbose()) {
+ getLog().info("Expanding " + files.size() + " xmi file(s) from " + inputDirectory);
+ }
for (File file : files) {
@@ -161,7 +163,7 @@
WriterReport writerReport = getWriterReport();
if (writerReport != null) {
- writerReport.addFile(getClass().getName(), dstFile, true);
+ writerReport.addFile(getClass().getName(), dstFile, false);
}
PluginHelper.createDirectoryIfNecessary(dst);
1
0