You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2017/03/11 09:55:45 UTC
[1/2] polygene-java git commit: Fixing the Value,
Tranisent and Object templates, so they compile.
Repository: polygene-java
Updated Branches:
refs/heads/develop a7bdc4086 -> 0c7ee1909
Fixing the Value, Tranisent and Object templates, so they compile.
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/284fb8ee
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/284fb8ee
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/284fb8ee
Branch: refs/heads/develop
Commit: 284fb8eef861f28189397e101a016ee400d8fa16
Parents: a7bdc40
Author: niclas <ni...@spicter.com>
Authored: Sat Mar 11 13:41:20 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Sat Mar 11 13:41:20 2017 +0800
----------------------------------------------------------------------
.../DomainLayer/DomainModule/Object.tmpl | 4 +-
.../DomainLayer/DomainModule/Transient.tmpl | 47 ++++++++++++++++++++
.../DomainLayer/DomainModule/Value.tmpl | 2 +-
.../DomainLayer/DomainModule/bootstrap.tmpl | 2 +-
4 files changed, 52 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/284fb8ee/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Object.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Object.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Object.tmpl
index 27d6119..9ff4e00 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Object.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Object.tmpl
@@ -19,8 +19,10 @@
-%>
package <%= packageName %>.model.<%= polygene.current.name %>;
-import org.apache.polygene.api.injection.scope.This
+import org.apache.polygene.api.injection.scope.Structure;
+import org.apache.polygene.api.injection.scope.Uses;
import org.apache.polygene.api.mixin.Mixins;
+import org.apache.polygene.api.value.ValueBuilderFactory;
public class <%= polygene.current.clazz.name %>
{
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/284fb8ee/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
new file mode 100644
index 0000000..29f32e2
--- /dev/null
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
@@ -0,0 +1,47 @@
+<%#
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *
+-%>
+package <%= packageName %>.model.<%= polygene.current.name %>;
+
+import org.apache.polygene.api.injection.scope.Uses;
+import org.apache.polygene.api.mixin.Mixins;
+import org.apache.polygene.api.property.Property;
+
+@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
+public interface <%= polygene.current.clazz.name %>
+{
+ Property<String> name(); // Sample hidden property
+
+ // If Property declarations are public, the Mixin must be abstract, because PropertyMixin will implement those methods.
+ abstract class Mixin
+ implements <%= polygene.current.clazz.name %>
+ {
+ // Transients supports @Uses injection
+ //
+ // Socket socket = serverSockete.accept();
+ // TransientBuilder<<%= polygene.current.clazz.name %>> builder = transientBuilderFactory.newTransientBuilder(<%= polygene.current.clazz.name %>.class);
+ // builder.use( socket );
+ // builder.prototype().name().set( name + counter++ );
+ // <%= polygene.current.clazz.name %> <%= polygene.current.clazz.name.toLowerCase() %> = builder.newInstance();
+
+// @Uses
+// private Socket items;
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/284fb8ee/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
index 60e117d..95eed76 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
@@ -19,7 +19,7 @@
-%>
package <%= packageName %>.model.<%= polygene.current.name %>;
-import org.apache.polygene.api.injection.scope.This
+import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
import org.apache.polygene.api.property.Property;
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/284fb8ee/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
index cbab067..3ee206c 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
@@ -54,7 +54,7 @@ public class <%- firstUpper(polygene.current.name) %>Module
<% } %>
<% if( polygene.current.values ) { %>
<% for( var value in polygene.current.values ) { %>
- <% var v = polygene.current.current[value]; %>
+ <% var v = polygene.current.values[value]; %>
module.values(<%= v.name + ".class" %>)<% if( v.visibility ) {%><%-".visibleIn(" + v.visibility +")"%><% } %>;
<% } %>
<% } %>
[2/2] polygene-java git commit: Added support for
properties/associations/manyassociations/namedassociations for incoming
domain model composites. name/type
Posted by ni...@apache.org.
Added support for properties/associations/manyassociations/namedassociations for incoming domain model composites. name/type
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/0c7ee190
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/0c7ee190
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/0c7ee190
Branch: refs/heads/develop
Commit: 0c7ee1909ce7e317182f34f011199276b5eeb18c
Parents: 284fb8e
Author: niclas <ni...@spicter.com>
Authored: Sat Mar 11 17:55:36 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Sat Mar 11 17:55:36 2017 +0800
----------------------------------------------------------------------
tools/generator-polygene/app/index.js | 73 +++++++++++
.../DomainLayer/DomainModule/Configuration.tmpl | 37 ++++++
.../DomainLayer/DomainModule/Crud.tmpl | 10 +-
.../DomainLayer/DomainModule/Entity.tmpl | 10 +-
.../DomainLayer/DomainModule/Service.tmpl | 16 +++
.../DomainLayer/DomainModule/Transient.tmpl | 10 +-
.../DomainLayer/DomainModule/Value.tmpl | 13 +-
.../DomainLayer/DomainModule/bootstrap.tmpl | 131 ++++++++++++-------
.../DomainLayer/DomainModule/module.js | 9 +-
.../app/templates/DomainLayer/bootstrap.tmpl | 17 ++-
10 files changed, 263 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/index.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/index.js b/tools/generator-polygene/app/index.js
index a13be9d..7f76c10 100644
--- a/tools/generator-polygene/app/index.js
+++ b/tools/generator-polygene/app/index.js
@@ -287,4 +287,77 @@ function assignFunctions(polygene) {
polygene.firstUpper = function (text) {
return text.charAt(0).toUpperCase() + text.substring(1);
};
+ polygene.typeNameOnly = function(text) {
+ var lastPos = text.lastIndexOf(".");
+ if( lastPos < 0 ) {
+ return text;
+ }
+ return text.substring(lastPos + 1);
+ };
+
+ polygene.configurationClassName = function( clazzName ) {
+ if( clazzName.endsWith( "Service" )) {
+ clazzName = clazzName.substring(0, clazzName.length - 7 );
+ }
+ return clazzName + "Configuration";
+ };
+
+ polygene.prepareClazz = function (current) {
+ var state = [];
+ var imported = {};
+ var props = current.clazz.properties;
+ if( props ) {
+ for( var idx in props ) {
+ var prop = props[idx];
+ state.push( 'Property' + '<' + polygene.typeNameOnly(prop.type) + "> " + prop.name + "();")
+ imported[prop.type] = imported[prop.type];
+ }
+ } else {
+ state.push( 'Property<String> name(); // TODO: remove sample property')
+ }
+ var assocs = current.clazz.associations;
+ if( assocs ) {
+ for( var idx in assocs ) {
+ var assoc = assocs[idx];
+ state.push("Association" + '<' + polygene.typeNameOnly(assoc.type) + '>' + assoc.name + "();")
+ imported[assoc.type] = imported[assoc.type] ;
+ }
+ }
+ assocs = current.clazz.manyassociations;
+ if( assocs ) {
+ for( var idx in assocs ) {
+ var assoc = assocs[idx];
+ state.push("ManyAssociation<" + polygene.typeNameOnly(assoc.type) + ">" + assoc.name + "();")
+ imported[assoc.type] = imported[assoc.type] ;
+ }
+ }
+ assocs = current.clazz.namedassociations;
+ if( assocs ) {
+ for( var idx in assocs ) {
+ var assoc = assocs[idx];
+ state.push("NamedAssociation<" + polygene.typeNameOnly(assoc.type) + ">" + assoc.name + "();")
+ imported[assoc.type] = imported[assoc.type];
+ }
+ }
+ current.state = state;
+ current.imported = imported;
+ };
+
+ polygene.prepareConfigClazz = function (current) {
+ var state = [];
+ var imported = {};
+ var props = current.clazz.configuration;
+ if( props ) {
+ for( var idx in props ) {
+ var prop = props[idx];
+ state.push( 'Property' + '<' + polygene.typeNameOnly(prop.type) + "> " + prop.name + "();")
+ imported[prop.type] = imported[prop.type];
+ }
+ } else {
+ state.push( 'Property<String> name(); // TODO: remove sample property')
+ }
+ current.state = state;
+ current.imported = imported;
+ };
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Configuration.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Configuration.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Configuration.tmpl
new file mode 100644
index 0000000..14c9735
--- /dev/null
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Configuration.tmpl
@@ -0,0 +1,37 @@
+<%#
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *
+-%>
+package <%= packageName %>.model.<%= polygene.current.name %>;
+
+import org.apache.polygene.api.injection.scope.This;
+import org.apache.polygene.api.mixin.Mixins;
+import org.apache.polygene.api.property.Property;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
+
+public interface <%= polygene.current.clazz.name %>
+{
+<% for( var idx in polygene.current.state ) { %>
+ <%- polygene.current.state[idx]; %>
+<% } %>
+}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Crud.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Crud.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Crud.tmpl
index 95eed76..ecec763 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Crud.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Crud.tmpl
@@ -22,13 +22,21 @@ package <%= packageName %>.model.<%= polygene.current.name %>;
import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
import org.apache.polygene.api.property.Property;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %>
{
interface State
{
- Property<String> name(); // Sample hidden property
+<% for( var idx in polygene.current.state ) { %>
+ <%- polygene.current.state[idx]; %>
+<% } %>
}
class Mixin
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Entity.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Entity.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Entity.tmpl
index 95eed76..ecec763 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Entity.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Entity.tmpl
@@ -22,13 +22,21 @@ package <%= packageName %>.model.<%= polygene.current.name %>;
import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
import org.apache.polygene.api.property.Property;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %>
{
interface State
{
- Property<String> name(); // Sample hidden property
+<% for( var idx in polygene.current.state ) { %>
+ <%- polygene.current.state[idx]; %>
+<% } %>
}
class Mixin
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Service.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Service.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Service.tmpl
index 0edefdc..5710441 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Service.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Service.tmpl
@@ -19,18 +19,34 @@
-%>
package <%= packageName %>.model.<%= polygene.current.name %>;
+import org.apache.polygene.api.configuration.Configuration;
import org.apache.polygene.api.injection.scope.Structure;
+import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
+import org.apache.polygene.api.unitofwork.UnitOfWorkFactory;
import org.apache.polygene.api.value.ValueBuilderFactory;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %>
{
+
class Mixin
implements <%= polygene.current.clazz.name %>
{
+ @This
+ private Configuration<<%- polygene.configurationClassName( polygene.current.clazz.name ); %>> configuration;
+
@Structure
private ValueBuilderFactory vbf;
+
+ @Structure
+ private UnitOfWorkFactory uowf;
}
}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
index 29f32e2..1fae121 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Transient.tmpl
@@ -22,11 +22,19 @@ package <%= packageName %>.model.<%= polygene.current.name %>;
import org.apache.polygene.api.injection.scope.Uses;
import org.apache.polygene.api.mixin.Mixins;
import org.apache.polygene.api.property.Property;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %>
{
- Property<String> name(); // Sample hidden property
+<% for( var idx in polygene.current.state ) { %>
+ <%- polygene.current.state[idx]; %>
+<% } %>
// If Property declarations are public, the Mixin must be abstract, because PropertyMixin will implement those methods.
abstract class Mixin
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
index 95eed76..c4194e7 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/Value.tmpl
@@ -22,20 +22,27 @@ package <%= packageName %>.model.<%= polygene.current.name %>;
import org.apache.polygene.api.injection.scope.This;
import org.apache.polygene.api.mixin.Mixins;
import org.apache.polygene.api.property.Property;
+<%
+for( var prop in polygene.current.imported ) {
+ if( !prop.startsWith( "java.lang" )) {
+ %><%- "import " + prop + ";"; %><%
+ }
+} %>
@Mixins( { <%= polygene.current.clazz.name %>.Mixin.class } )
public interface <%= polygene.current.clazz.name %>
{
interface State
{
- Property<String> name(); // Sample hidden property
+<% for( var idx in polygene.current.state ) { %>
+ <%- polygene.current.state[idx]; %>
+<% } %>
}
class Mixin
implements <%= polygene.current.clazz.name %>
{
@This
- private State state; // Sample reference to hidden property
-
+ private State state; // Reference to private State instance
}
}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
index 3ee206c..17b391a 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/bootstrap.tmpl
@@ -23,14 +23,36 @@ import org.apache.polygene.bootstrap.AssemblyException;
import org.apache.polygene.bootstrap.LayerAssembly;
import org.apache.polygene.bootstrap.ModuleAssembly;
import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-<% for( var idx in polygene.current.cruds) { %>
-<%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.cruds[idx].name + ";" %>
-<% } %>
-<% for( var idx in polygene.current.values) { %><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.values[idx].name + ";" %><% } %>
-<% for( var idx in polygene.current.entities) { %><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.entities[idx].name + ";" %><% } %>
-<% for( var idx in polygene.current.transients) { %><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.transients[idx].name + ";" %><% } %>
-<% for( var idx in polygene.current.objects) { %><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.objects[idx].name + ";" %><% } %>
-<% for( var idx in polygene.current.services) { %><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.services[idx].name + ";" %><% } %>
+
+<% for( var idx in polygene.current.cruds) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.cruds[idx].name + ";" %>
+<%
+}
+
+for( var idx in polygene.current.values) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.values[idx].name + ";" %>
+<%
+}
+for( var idx in polygene.current.entities) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.entities[idx].name + ";" %>
+<%
+}
+
+for( var idx in polygene.current.transients) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.transients[idx].name + ";" %>
+<%
+}
+
+for( var idx in polygene.current.objects) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.objects[idx].name + ";" %>
+<%
+}
+
+for( var idx in polygene.current.services) {
+%><%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.current.services[idx].name + ";" %>
+<%= "import " + packageName + ".model." + polygene.current.name + "." + polygene.configurationClassName(polygene.current.services[idx].name) + ";" %>
+<%
+} %>
import static org.apache.polygene.api.common.Visibility.layer;
import static org.apache.polygene.api.common.Visibility.application;
@@ -42,46 +64,57 @@ public class <%- firstUpper(polygene.current.name) %>Module
public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
throws AssemblyException
{
-<% if( polygene.current.cruds ) { %>
- <% for( var value in polygene.current.cruds ) { %>
- <% var crud1 = polygene.current.cruds[value]; %>
- module.values(<%- crud1.name + ".class" %>)<% if( crud1.visibility ) {%><%-".visibleIn(" + crud1.visibility +")"%><% } %>;
- <% } %>
- <% for( var value in polygene.current.cruds ) { %>
- <% var crud2 = polygene.current.cruds[value]; %>
- module.entities(<%= crud2.name + ".class" %>)<% if( crud2.visibility ) {%><%-".visibleIn(" + crud2.visibility +")"%><% } %>;
- <% } %>
-<% } %>
-<% if( polygene.current.values ) { %>
- <% for( var value in polygene.current.values ) { %>
- <% var v = polygene.current.values[value]; %>
- module.values(<%= v.name + ".class" %>)<% if( v.visibility ) {%><%-".visibleIn(" + v.visibility +")"%><% } %>;
- <% } %>
-<% } %>
-<% if( polygene.current.entities ) { %>
- <% for( var value in polygene.current.entities ) { %>
- <% var entity = polygene.current.entities[value]; %>
- module.values(<%= entity.name + ".class" %>)<% if( entity.visibility ) {%><%-".visibleIn(" + entity.visibility +")"%><% } %>;
- <% } %>
-<% } %>
-<% if( polygene.current.transients ) { %>
- <% for( var value in polygene.current.transients ) { %>
- <% var trans = polygene.current.transients[value]; %>
- module.values(<%= trans.name + ".class" %>)<% if( trans.visibility ) {%><%-".visibleIn(" + trans.visibility +")"%><% } %>;
- <% } %>
-<% } %>
-<% if( polygene.current.objects ) { %>
- <% for( var value in polygene.current.objects ) { %>
- <% var obj = polygene.current.objects[value]; %>
- module.values(<%= obj.name + ".class" %>)<% if( obj.visibility ) {%><%-".visibleIn(" + obj.visibility +")"%><% } %>;
- <% } %>
-<% } %>
-<% if( polygene.current.services ) { %>
- <% for( var value in polygene.current.services ) { %>
- <% var service = polygene.current.services[value]; %>
- module.values(<%= service.name + ".class" %>)<% if( service.visibility ) {%><%-".visibleIn(" + service.visibility +")"%><% } %>;
- <% } %>
-<% } %>
+<%
+if( polygene.current.cruds ) {
+ for( var value in polygene.current.cruds ) {
+ var crud = polygene.current.cruds[value];
+%>
+ <%- "module.values( " + crud.name + ".class )" + (crud.visibility ? ".visibleIn(" + crud.visibility +")" : "" ) %>;
+ <%- "module.entities( " + crud.name + ".class )" + (crud.visibility ? ".visibleIn(" + crud.visibility +")" : "" ) %>;
+<%
+ }
+}
+if( polygene.current.values ) {
+ for( var value in polygene.current.values ) {
+ var v = polygene.current.values[value];
+%>
+ <%- "module.values( " + v.name + ".class )" + (v.visibility ? ".visibleIn(" + v.visibility +")" : "" ) %>;
+<%
+ }
+}
+if( polygene.current.entities ) {
+ for( var value in polygene.current.entities ) {
+ var entity = polygene.current.entities[value];
+%>
+ <%- "module.entities( " + entity.name + ".class )" + (entity.visibility ? ".visibleIn(" + entity.visibility +")" : "" ) %>;
+<%
+ }
+}
+if( polygene.current.transients ) {
+ for( var value in polygene.current.transients ) {
+ var trans = polygene.current.transients[value];
+%>
+ <%- "module.transients( " + trans.name + ".class )" + (trans.visibility ? ".visibleIn(" + trans.visibility +")" : "" ) %>;
+<%
+ }
+}
+if( polygene.current.objects ) {
+ for( var value in polygene.current.objects ) {
+ var obj = polygene.current.objects[value];
+%>
+ <%- "module.objects( " + obj.name + ".class )" + (obj.visibility ? ".visibleIn(" + obj.visibility +")" : "" ) %>;
+<%
+ }
+}
+if( polygene.current.services ) {
+ for( var value in polygene.current.services ) {
+ var service = polygene.current.services[value];
+%>
+ <%- "module.services( " + service.name + ".class )" + (service.visibility ? ".visibleIn(" + service.visibility + ")" : "" ) %>;
+ <%- "module.entities( " + polygene.configurationClassName(service.name) + ".class )" %>;
+<%
+ }
+} %>
return module;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/DomainModule/module.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/module.js b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/module.js
index 2ceeaa5..3aea91c 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/DomainModule/module.js
+++ b/tools/generator-polygene/app/templates/DomainLayer/DomainModule/module.js
@@ -28,12 +28,19 @@ function copyPolygeneDomainModule(p, moduleName, moduleDef) {
copyComposites(p, moduleDef.transients, "Transient");
copyComposites(p, moduleDef.objects, "Object");
copyComposites(p, moduleDef.services, "Service");
+ copyComposites(p, moduleDef.services, "Configuration");
}
function copyComposites(p, composites, type) {
for (var idx in composites) {
if (composites.hasOwnProperty(idx)) {
- p.current.clazz = composites[idx];
+ if( type === "Configuration"){
+ p.current.clazz.name = p.configurationClassName(composites[idx].name);
+ p.prepareConfigClazz(p.current);
+ } else {
+ p.current.clazz = composites[idx];
+ p.prepareClazz(p.current);
+ }
p.copyTemplate(p.ctx,
'DomainLayer/DomainModule/' + type + '.tmpl',
'model/src/main/java/' + p.javaPackageDir + '/model/' + p.current.name + '/' + p.current.clazz.name + '.java');
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0c7ee190/tools/generator-polygene/app/templates/DomainLayer/bootstrap.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/DomainLayer/bootstrap.tmpl b/tools/generator-polygene/app/templates/DomainLayer/bootstrap.tmpl
index 63401be..68be6f3 100644
--- a/tools/generator-polygene/app/templates/DomainLayer/bootstrap.tmpl
+++ b/tools/generator-polygene/app/templates/DomainLayer/bootstrap.tmpl
@@ -28,15 +28,18 @@ public class DomainLayer extends LayeredLayerAssembler
implements LayerAssembler
{
@Override
- public LayerAssembly assemble(LayerAssembly layer)
+ public LayerAssembly assemble( LayerAssembly layer )
throws AssemblyException
{
-<% if( hasFeature( 'rest api' ) ) { %>
- createModule( layer, CrudModule.class );
-<% } %>
-<% if( hasFeature( 'security' ) ) { %>
- createModule( layer, SecurityModule.class );
-<% } %>
+<% if( hasFeature( 'rest api' ) ) {
+%> createModule( layer, CrudModule.class );<%
+}
+for( var mod in polygene.modules ) {%>
+<%- " createModule( layer, " + polygene.firstUpper(mod) + "Module.class );" %><%
+}
+if( hasFeature( 'security' ) ) {
+%> createModule( layer, SecurityModule.class );<%
+} %>
return layer;
}
}
\ No newline at end of file