You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/02/28 12:28:46 UTC

[isis] branch master updated (a5b8134 -> 8d1dc93)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from a5b8134  ISIS-1841 Internal API: _Multimaps refactor method names
     new d1f8945  ISIS-1841 integrate new metamodel-legacy module
     new 28dbe93  ISIS-1841 make ProgrammingModel + SwaggerValueProperties plug-able
     new 8d1dc93  ISIS-1841 move deprecated classes to deprecated modules

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/isis/applib/fixtures/LogonFixture.java  |   0
 .../services/actinvoc/ActionInvocationContext.java |   0
 .../applib/services/actinvoc/package-info.java     |   0
 core/{metamodel => metamodel-legacy}/pom.xml       |  11 +-
 ...ateValueFacetUsingSemanticsProviderFactory.java |   0
 .../value/date/DateValueSemanticsProvider.java     |   0
 ...imeValueFacetUsingSemanticsProviderFactory.java |   0
 .../datetime/DateTimeValueSemanticsProvider.java   |   0
 ...imeValueFacetUsingSemanticsProviderFactory.java |   0
 .../value/time/TimeValueSemanticsProvider.java     |   0
 ...ampValueFacetUsingSemanticsProviderFactory.java |   0
 .../timestamp/TimeStampValueSemanticsProvider.java |   0
 .../TimeStampValueSemanticsProviderAbstract.java   |   0
 ...ampValueFacetUsingSemanticsProviderFactory.java |   3 +-
 .../JavaSqlTimeStampValueSemanticsProvider.java    |   3 +-
 .../RepositoryServiceLegacyInternalDefault.java    |   0
 .../plugins/IsisTimeValuePropertyPlugin.java       |  18 ++
 .../plugins/ProgrammingModelIsisTimePlugin.java    |  25 +++
 ...core.metamodel.progmodel.ProgrammingModelPlugin |   1 +
 ...l.services.swagger.internal.ValuePropertyPlugin |   1 +
 .../value/DateTimeValueSemanticsProviderTest.java  |   0
 .../value/DateValueSemanticsProviderTest.java      |   0
 ...JavaSqlTimeStampValueSemanticsProviderTest.java |   0
 .../value/TimeStampValueSemanticsProviderTest.java |   0
 .../value/TimeValueSemanticsProviderTest.java      |   0
 core/metamodel/pom.xml                             |   4 -
 .../progmodel/ProgrammingModelPlugin.java          |  92 +++++++++++
 .../swagger/internal/ValuePropertyFactory.java     | 182 ++++++++-------------
 .../swagger/internal/ValuePropertyPlugin.java      |  45 +++++
 .../dflt/ProgrammingModelFacetsJava5.java          |  38 +++--
 core/pom.xml                                       |  36 +++-
 core/runtime/pom.xml                               |  11 ++
 32 files changed, 323 insertions(+), 147 deletions(-)
 rename core/{applib-legacy => applib}/src/main/java/org/apache/isis/applib/fixtures/LogonFixture.java (100%)
 rename core/{applib-legacy => applib}/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java (100%)
 rename core/{applib-legacy => applib}/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java (100%)
 copy core/{metamodel => metamodel-legacy}/pom.xml (94%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacetUsingSemanticsProviderFactory.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProvider.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueFacetUsingSemanticsProviderFactory.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueSemanticsProvider.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueFacetUsingSemanticsProviderFactory.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProvider.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueFacetUsingSemanticsProviderFactory.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProvider.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java (96%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java (95%)
 rename core/{metamodel => metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java (100%)
 create mode 100644 core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/swagger/plugins/IsisTimeValuePropertyPlugin.java
 create mode 100644 core/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java
 create mode 100644 core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
 create mode 100644 core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin
 rename core/{metamodel => metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/value/DateTimeValueSemanticsProviderTest.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/value/DateValueSemanticsProviderTest.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeStampValueSemanticsProviderTest.java (100%)
 rename core/{metamodel => metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeValueSemanticsProviderTest.java (100%)
 create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelPlugin.java
 create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyPlugin.java

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 03/03: ISIS-1841 move deprecated classes to deprecated modules

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 8d1dc93856e51d461c2be890fdc1e522c7fc5432
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Feb 28 13:28:42 2018 +0100

    ISIS-1841 move deprecated classes to deprecated modules
    
    and vice versa to reinstate successful build
---
 .../org/apache/isis/applib/fixtures/LogonFixture.java  |  0
 .../services/actinvoc/ActionInvocationContext.java     |  0
 .../isis/applib/services/actinvoc/package-info.java    |  0
 .../DateValueFacetUsingSemanticsProviderFactory.java   |  0
 .../facets/value/date/DateValueSemanticsProvider.java  |  0
 ...ateTimeValueFacetUsingSemanticsProviderFactory.java |  0
 .../value/datetime/DateTimeValueSemanticsProvider.java |  0
 .../TimeValueFacetUsingSemanticsProviderFactory.java   |  0
 .../facets/value/time/TimeValueSemanticsProvider.java  |  0
 ...meStampValueFacetUsingSemanticsProviderFactory.java |  0
 .../timestamp/TimeStampValueSemanticsProvider.java     |  0
 .../TimeStampValueSemanticsProviderAbstract.java       |  0
 ...meStampValueFacetUsingSemanticsProviderFactory.java |  3 ++-
 .../JavaSqlTimeStampValueSemanticsProvider.java        |  3 ++-
 .../RepositoryServiceLegacyInternalDefault.java        |  0
 .../swagger/plugins/IsisTimeValuePropertyPlugin.java   | 18 ++++++++++++++++++
 .../value/DateTimeValueSemanticsProviderTest.java      |  0
 .../facets/value/DateValueSemanticsProviderTest.java   |  0
 .../JavaSqlTimeStampValueSemanticsProviderTest.java    |  0
 .../value/TimeStampValueSemanticsProviderTest.java     |  0
 .../facets/value/TimeValueSemanticsProviderTest.java   |  0
 21 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/core/applib-legacy/src/main/java/org/apache/isis/applib/fixtures/LogonFixture.java b/core/applib/src/main/java/org/apache/isis/applib/fixtures/LogonFixture.java
similarity index 100%
rename from core/applib-legacy/src/main/java/org/apache/isis/applib/fixtures/LogonFixture.java
rename to core/applib/src/main/java/org/apache/isis/applib/fixtures/LogonFixture.java
diff --git a/core/applib-legacy/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
similarity index 100%
rename from core/applib-legacy/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
rename to core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java
diff --git a/core/applib-legacy/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java
similarity index 100%
rename from core/applib-legacy/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java
rename to core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacetUsingSemanticsProviderFactory.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacetUsingSemanticsProviderFactory.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacetUsingSemanticsProviderFactory.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacetUsingSemanticsProviderFactory.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProvider.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProvider.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProvider.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProvider.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueFacetUsingSemanticsProviderFactory.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueFacetUsingSemanticsProviderFactory.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueFacetUsingSemanticsProviderFactory.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueSemanticsProvider.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueSemanticsProvider.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueSemanticsProvider.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/datetime/DateTimeValueSemanticsProvider.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueFacetUsingSemanticsProviderFactory.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueFacetUsingSemanticsProviderFactory.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueFacetUsingSemanticsProviderFactory.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueFacetUsingSemanticsProviderFactory.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProvider.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProvider.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProvider.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProvider.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueFacetUsingSemanticsProviderFactory.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueFacetUsingSemanticsProviderFactory.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueFacetUsingSemanticsProviderFactory.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueFacetUsingSemanticsProviderFactory.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProvider.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProvider.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProvider.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProvider.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java
similarity index 96%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java
index 62e7999..d90d03d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java
+++ b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.java
@@ -23,7 +23,8 @@ import java.sql.Timestamp;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
 
-public class JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory extends ValueFacetUsingSemanticsProviderFactory<Timestamp> {
+public class JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory 
+extends ValueFacetUsingSemanticsProviderFactory<Timestamp> {
 
     public JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory() {
         super(); // as per inherited
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
similarity index 95%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
index 2c2b5af..c43e4f4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
+++ b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
@@ -35,7 +35,8 @@ import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefault
 import org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueSemanticsProviderAbstract;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 
-public class JavaSqlTimeStampValueSemanticsProvider extends TimeStampValueSemanticsProviderAbstract<java.sql.Timestamp> {
+public class JavaSqlTimeStampValueSemanticsProvider 
+extends TimeStampValueSemanticsProviderAbstract<java.sql.Timestamp> {
 
     public static final boolean isAPropertyDefaultFacet() {
         return PropertyDefaultFacet.class.isAssignableFrom(JavaSqlTimeStampValueSemanticsProvider.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
rename to core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
diff --git a/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/swagger/plugins/IsisTimeValuePropertyPlugin.java b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/swagger/plugins/IsisTimeValuePropertyPlugin.java
new file mode 100644
index 0000000..789ea82
--- /dev/null
+++ b/core/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/swagger/plugins/IsisTimeValuePropertyPlugin.java
@@ -0,0 +1,18 @@
+package org.apache.isis.core.metamodel.services.swagger.plugins;
+
+import org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin;
+
+import io.swagger.models.properties.DateProperty;
+import io.swagger.models.properties.DateTimeProperty;
+
+public class IsisTimeValuePropertyPlugin implements ValuePropertyPlugin {
+
+	@Override
+	public void plugin(ValuePropertyCollector collector) {
+
+		collector.addValueProperty(org.apache.isis.applib.value.DateTime.class, DateTimeProperty::new);
+		collector.addValueProperty(org.apache.isis.applib.value.Date.class, DateProperty::new);
+		
+	}
+
+}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DateTimeValueSemanticsProviderTest.java b/core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/DateTimeValueSemanticsProviderTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DateTimeValueSemanticsProviderTest.java
rename to core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/DateTimeValueSemanticsProviderTest.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DateValueSemanticsProviderTest.java b/core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/DateValueSemanticsProviderTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DateValueSemanticsProviderTest.java
rename to core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/DateValueSemanticsProviderTest.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java b/core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java
rename to core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeStampValueSemanticsProviderTest.java b/core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeStampValueSemanticsProviderTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeStampValueSemanticsProviderTest.java
rename to core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeStampValueSemanticsProviderTest.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeValueSemanticsProviderTest.java b/core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeValueSemanticsProviderTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeValueSemanticsProviderTest.java
rename to core/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/value/TimeValueSemanticsProviderTest.java

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 02/03: ISIS-1841 make ProgrammingModel + SwaggerValueProperties plug-able

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 28dbe93816a513f667ab7967f61101b4cb6f3af9
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Feb 28 13:26:42 2018 +0100

    ISIS-1841 make ProgrammingModel + SwaggerValueProperties plug-able
---
 .../plugins/ProgrammingModelIsisTimePlugin.java    |  25 +++
 ...core.metamodel.progmodel.ProgrammingModelPlugin |   1 +
 ...l.services.swagger.internal.ValuePropertyPlugin |   1 +
 .../progmodel/ProgrammingModelPlugin.java          |  92 +++++++++++
 .../swagger/internal/ValuePropertyFactory.java     | 182 ++++++++-------------
 .../swagger/internal/ValuePropertyPlugin.java      |  45 +++++
 .../dflt/ProgrammingModelFacetsJava5.java          |  38 +++--
 7 files changed, 254 insertions(+), 130 deletions(-)

diff --git a/core/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java b/core/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java
new file mode 100644
index 0000000..e9588ff
--- /dev/null
+++ b/core/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java
@@ -0,0 +1,25 @@
+package org.apache.isis.progmodels.plugins;
+
+import org.apache.isis.core.metamodel.facets.value.date.DateValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.datetime.DateTimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.time.TimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin;
+
+public class ProgrammingModelIsisTimePlugin implements ProgrammingModelPlugin {
+
+	@Override
+	public void plugin(FactoryCollector collector) {
+		
+		collector.addFactory(new DateValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
+		collector.addFactory(new DateTimeValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
+        
+		collector.addFactory(new TimeStampValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
+		collector.addFactory(new TimeValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
+		
+		collector.addFactory(new JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
+
+	}
+
+}
diff --git a/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin b/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
new file mode 100644
index 0000000..4a74f84
--- /dev/null
+++ b/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
@@ -0,0 +1 @@
+org.apache.isis.progmodels.plugins.ProgrammingModelIsisTimePlugin
\ No newline at end of file
diff --git a/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin b/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin
new file mode 100644
index 0000000..9161c26
--- /dev/null
+++ b/core/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin
@@ -0,0 +1 @@
+org.apache.isis.core.metamodel.services.swagger.plugins.IsisTimeValuePropertyPlugin
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelPlugin.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelPlugin.java
new file mode 100644
index 0000000..2ea8a81
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelPlugin.java
@@ -0,0 +1,92 @@
+/*
+ *  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 org.apache.isis.core.metamodel.progmodel;
+
+import java.util.Collections;
+import java.util.Objects;
+import java.util.Set;
+
+import org.apache.isis.applib.internal.collections._Multimaps;
+import org.apache.isis.applib.internal.collections._Multimaps.SetMultimap;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+
+public interface ProgrammingModelPlugin {
+	
+	// -- CONTRACT
+	
+	/**
+	 * Guides the priority at which facet factories are registered.
+	 * There is no other use.
+	 */
+	public static enum FacetFactoryCategory {
+		// extend as needed ...
+		VALUE
+		;
+	}
+	
+	public static interface FactoryCollector {
+		
+		/**
+		 * 
+		 * @param factoryClass
+		 * @param category
+		 */
+	    public void addFactory(FacetFactory facetFactory, final FacetFactoryCategory category);
+	    
+	    /**
+	     * 
+	     * @param category
+	     * @return
+	     */
+	    public Set<FacetFactory> getFactories(FacetFactoryCategory category);
+	    
+	}
+	
+	public static FactoryCollector collector() {
+    	return new FactoryCollector() {
+			
+			final SetMultimap<FacetFactoryCategory, FacetFactory> factoriesByCategory =
+					_Multimaps.newSetMultimap();
+
+			@Override
+			public void addFactory(FacetFactory factory, FacetFactoryCategory category) {
+				Objects.requireNonNull(factory);
+				Objects.requireNonNull(category);
+				factoriesByCategory.putElement(category, factory);
+			}
+
+			@Override
+			public Set<FacetFactory> getFactories(final FacetFactoryCategory category) {
+				if(category==null) {
+					return Collections.emptySet();
+				}
+				return Collections.unmodifiableSet(
+						factoriesByCategory.getOrDefault(category, Collections.emptySet())	);
+						
+			}
+    	};
+    }
+	
+	// -- INTERFACE 
+	
+    public void plugin(FactoryCollector collector);
+    
+    // -- 
+	
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
index 4d966bf..e76fd93 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
@@ -23,19 +23,23 @@ import java.math.BigInteger;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
+import java.util.function.Supplier;
 
 import javax.annotation.Nullable;
 
+import org.apache.isis.applib.internal.context._Plugin;
+import org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin.ValuePropertyCollector;
+import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalDateTime;
+
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-
 import io.swagger.models.properties.BooleanProperty;
 import io.swagger.models.properties.ByteArrayProperty;
 import io.swagger.models.properties.DateProperty;
@@ -51,120 +55,55 @@ import io.swagger.models.properties.UUIDProperty;
 
 public class ValuePropertyFactory {
 
-    private final Map<Class, Factory> propertyFactoryByClass = Maps.newHashMap();
+    private final Map<Class<?>, Factory> propertyFactoryByClass = Maps.newHashMap();
 
-    static interface Factory {
-        Property newProperty();
-    }
+    public static interface Factory extends Supplier<Property> {};
+    
     public ValuePropertyFactory() {
 
-        final Factory booleanFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new BooleanProperty();
-            }
-        };
-        propertyFactoryByClass.put(boolean.class, booleanFactory);
-        propertyFactoryByClass.put(Boolean.class, booleanFactory);
-
-        final Factory integerFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new IntegerProperty();
-            }
-        };
-        propertyFactoryByClass.put(byte.class, integerFactory);
-        propertyFactoryByClass.put(Byte.class, integerFactory);
-        propertyFactoryByClass.put(short.class, integerFactory);
-        propertyFactoryByClass.put(Short.class, integerFactory);
-        propertyFactoryByClass.put(int.class, integerFactory);
-        propertyFactoryByClass.put(Integer.class, integerFactory);
-        propertyFactoryByClass.put(BigInteger.class, integerFactory);
-
-        final Factory longFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new LongProperty();
-            }
-        };
-        propertyFactoryByClass.put(long.class, longFactory);
-        propertyFactoryByClass.put(Long.class, longFactory);
-        propertyFactoryByClass.put(java.sql.Timestamp.class, longFactory);
-
-        final Factory decimalFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new DecimalProperty();
-            }
-        };
-        propertyFactoryByClass.put(BigDecimal.class, decimalFactory);
-
-        final Factory floatFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new FloatProperty();
-            }
-        };
-        propertyFactoryByClass.put(float.class, floatFactory);
-        propertyFactoryByClass.put(Float.class, floatFactory);
-
-        final Factory doubleFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new DoubleProperty();
-            }
-        };
-        propertyFactoryByClass.put(double.class, doubleFactory);
-        propertyFactoryByClass.put(Double.class, doubleFactory);
-
-        final Factory stringFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new StringProperty();
-            }
-        };
-        propertyFactoryByClass.put(char.class, stringFactory);
-        propertyFactoryByClass.put(Character.class, stringFactory);
-        propertyFactoryByClass.put(char[].class, stringFactory);
-        propertyFactoryByClass.put(String.class, stringFactory);
-
-        final Factory uuidFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new UUIDProperty();
-            }
-        };
-        propertyFactoryByClass.put(UUID.class, uuidFactory);
-
-        final Factory dateTimeFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new DateTimeProperty();
-            }
-        };
-        propertyFactoryByClass.put(java.util.Date.class, dateTimeFactory);
-        propertyFactoryByClass.put(DateTime.class, dateTimeFactory);
-        propertyFactoryByClass.put(LocalDateTime.class, dateTimeFactory);
-        propertyFactoryByClass.put(org.apache.isis.applib.value.DateTime.class, dateTimeFactory);
-
-        final Factory dateFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new DateProperty();
-            }
-        };
-        propertyFactoryByClass.put(java.sql.Date.class, dateFactory);
-        propertyFactoryByClass.put(LocalDate.class, dateFactory);
-        propertyFactoryByClass.put(org.apache.isis.applib.value.Date.class, dateFactory);
-
-        final Factory byteArrayFactory = new Factory() {
-            @Override
-            public Property newProperty() {
-                return new ByteArrayProperty();
-            }
-        };
-        propertyFactoryByClass.put(byte[].class, byteArrayFactory);
-        propertyFactoryByClass.put(org.apache.isis.applib.value.Blob.class, byteArrayFactory);
+        propertyFactoryByClass.put(boolean.class, BooleanProperty::new);
+        propertyFactoryByClass.put(Boolean.class, BooleanProperty::new);
+
+        propertyFactoryByClass.put(byte.class, IntegerProperty::new);
+        propertyFactoryByClass.put(Byte.class, IntegerProperty::new);
+        propertyFactoryByClass.put(short.class, IntegerProperty::new);
+        propertyFactoryByClass.put(Short.class, IntegerProperty::new);
+        propertyFactoryByClass.put(int.class, IntegerProperty::new);
+        propertyFactoryByClass.put(Integer.class, IntegerProperty::new);
+        propertyFactoryByClass.put(BigInteger.class, IntegerProperty::new);
+
+        propertyFactoryByClass.put(long.class, LongProperty::new);
+        propertyFactoryByClass.put(Long.class, LongProperty::new);
+        propertyFactoryByClass.put(java.sql.Timestamp.class, LongProperty::new);
+
+        propertyFactoryByClass.put(BigDecimal.class, DecimalProperty::new);
+
+        propertyFactoryByClass.put(float.class, FloatProperty::new);
+        propertyFactoryByClass.put(Float.class, FloatProperty::new);
+
+        propertyFactoryByClass.put(double.class, DoubleProperty::new);
+        propertyFactoryByClass.put(Double.class, DoubleProperty::new);
+
+        propertyFactoryByClass.put(char.class, StringProperty::new);
+        propertyFactoryByClass.put(Character.class, StringProperty::new);
+        propertyFactoryByClass.put(char[].class, StringProperty::new);
+        propertyFactoryByClass.put(String.class, StringProperty::new);
+
+        propertyFactoryByClass.put(UUID.class, UUIDProperty::new);
+
+        propertyFactoryByClass.put(java.util.Date.class, DateTimeProperty::new);
+        propertyFactoryByClass.put(DateTime.class, DateTimeProperty::new);
+        propertyFactoryByClass.put(LocalDateTime.class, DateTimeProperty::new);
+
+        propertyFactoryByClass.put(java.sql.Date.class, DateProperty::new);
+        propertyFactoryByClass.put(LocalDate.class, DateProperty::new);
+
+        propertyFactoryByClass.put(byte[].class, ByteArrayProperty::new);
+        propertyFactoryByClass.put(org.apache.isis.applib.value.Blob.class, ByteArrayProperty::new);
+        
+        // add propertyFactories from plugins
+        discoverValueProperties().visitEntries(propertyFactoryByClass::put);        
+        
     }
 
     public Property newProperty(Class<?> cls) {
@@ -174,7 +113,7 @@ public class ValuePropertyFactory {
 
         final Factory factory = propertyFactoryByClass.get(cls);
         if(factory != null) {
-            return factory.newProperty();
+            return factory.get();
         }
 
         // special case, want to treat as a value
@@ -194,5 +133,16 @@ public class ValuePropertyFactory {
 
         return null;
     }
+    
+    // -- HELPER
+    
+    private static ValuePropertyCollector discoverValueProperties() {
+	    final Set<ValuePropertyPlugin> plugins = _Plugin.load(ValuePropertyPlugin.class);
+	    final ValuePropertyCollector collector = ValuePropertyPlugin.collector();
+	    plugins.forEach(plugin->{
+	    	plugin.plugin(collector);
+	    });
+	    return collector;
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyPlugin.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyPlugin.java
new file mode 100644
index 0000000..b55cb6b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyPlugin.java
@@ -0,0 +1,45 @@
+package org.apache.isis.core.metamodel.services.swagger.internal;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.BiConsumer;
+
+import org.apache.isis.applib.internal.collections._Maps;
+import org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyFactory.Factory;
+
+public interface ValuePropertyPlugin {
+
+	// -- CONTRACT
+	
+	public static interface ValuePropertyCollector {
+	    public void addValueProperty(final Class<?> cls, final ValuePropertyFactory.Factory factory);
+	    public void visitEntries(BiConsumer<Class<?>, ValuePropertyFactory.Factory> visitor);
+	}
+	
+	public static ValuePropertyCollector collector() {
+		
+		return new ValuePropertyCollector() {
+			
+			final Map<Class<?>, Factory> entries = _Maps.newHashMap();
+			
+			@Override
+			public void visitEntries(BiConsumer<Class<?>, Factory> visitor) {
+				Objects.requireNonNull(visitor);
+				entries.forEach(visitor);
+			}
+			
+			@Override
+			public void addValueProperty(Class<?> cls, Factory factory) {
+				Objects.requireNonNull(cls);
+				Objects.requireNonNull(factory);
+				entries.put(cls, factory);
+			}
+		};
+		
+	}
+	
+	// -- INTERFACE
+	
+	public void plugin(ValuePropertyCollector collector);
+	
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index 11ac0e1..57f3760 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -18,7 +18,9 @@
 package org.apache.isis.progmodels.dflt;
 
 import java.util.List;
+import java.util.Set;
 
+import org.apache.isis.applib.internal.context._Plugin;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionChoicesForCollectionParameterFacetFactory;
@@ -132,11 +134,9 @@ import org.apache.isis.core.metamodel.facets.value.chars.CharPrimitiveValueFacet
 import org.apache.isis.core.metamodel.facets.value.chars.CharWrapperValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.clobs.ClobValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.color.ColorValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.date.DateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datejdk8local.Jdk8LocalDateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datejodalocal.JodaLocalDateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datesql.JavaSqlDateValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.datetime.DateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetimejdk8local.Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetimejdk8offset.Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetimejoda.JodaDateTimeValueFacetUsingSemanticsProviderFactory;
@@ -159,15 +159,15 @@ import org.apache.isis.core.metamodel.facets.value.percentage.PercentageValueFac
 import org.apache.isis.core.metamodel.facets.value.shortint.ShortPrimitiveValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.shortint.ShortWrapperValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.string.StringValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.time.TimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.url.URLValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.uuid.UUIDValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.postprocessors.param.ActionCollectionParameterDefaultsAndChoicesPostProcessor;
 import org.apache.isis.core.metamodel.progmodel.ObjectSpecificationPostProcessor;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin.FacetFactoryCategory;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin.FactoryCollector;
 
 import com.google.common.collect.Lists;
 
@@ -179,7 +179,9 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
 
     public ProgrammingModelFacetsJava5(final DeprecatedPolicy deprecatedPolicy) {
         super(deprecatedPolicy);
-
+        
+        final FactoryCollector factoriesFromPlugins = discoverFactories();
+        
         // must be first, so any Facets created can be replaced by other
         // FacetFactorys later.
         addFactory(new FallbackFacetFactory());
@@ -348,8 +350,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(new TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory());
         addFactory(new TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory());
 
-        
-
 
         // built-in value types for Java language
         addFactory(new BooleanPrimitiveValueFacetUsingSemanticsProviderFactory());
@@ -373,7 +373,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(new JavaSqlDateValueFacetUsingSemanticsProviderFactory());
         addFactory(new JavaSqlTimeValueFacetUsingSemanticsProviderFactory());
         addFactory(new JavaUtilDateValueFacetUsingSemanticsProviderFactory());
-        addFactory(new JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory());
         addFactory(new StringValueFacetUsingSemanticsProviderFactory());
         addFactory(new URLValueFacetUsingSemanticsProviderFactory());
         addFactory(new LocalResourcePathValueFacetUsingSemanticsProviderFactory());
@@ -384,16 +383,12 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         // applib values
         addFactory(new BlobValueFacetUsingSemanticsProviderFactory());
         addFactory(new ClobValueFacetUsingSemanticsProviderFactory());
-        addFactory(new DateValueFacetUsingSemanticsProviderFactory());
-        addFactory(new DateTimeValueFacetUsingSemanticsProviderFactory());
         addFactory(new ColorValueFacetUsingSemanticsProviderFactory());
         addFactory(new MoneyValueFacetUsingSemanticsProviderFactory());
         addFactory(new PasswordValueFacetUsingSemanticsProviderFactory());
         addFactory(new PercentageValueFacetUsingSemanticsProviderFactory());
-        addFactory(new TimeStampValueFacetUsingSemanticsProviderFactory());
-        addFactory(new TimeValueFacetUsingSemanticsProviderFactory());
         addFactory(new ImageValueFacetUsingSemanticsProviderFactory());
-
+        
         // jodatime values
         addFactory(new JodaLocalDateValueFacetUsingSemanticsProviderFactory());
         addFactory(new JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory());
@@ -404,6 +399,9 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(new Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory());
         addFactory(new Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory());
         
+        // plugin value factories 
+        factoriesFromPlugins.getFactories(FacetFactoryCategory.VALUE).forEach(this::addFactory);
+        
         // written to not trample over TypeOf if already installed
         addFactory(new CollectionFacetFactory());
         // must come after CollectionFacetFactory
@@ -435,4 +433,16 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
             new ActionCollectionParameterDefaultsAndChoicesPostProcessor()
         );
     }
+    
+    // -- HELPER
+    
+    private static FactoryCollector discoverFactories() {
+	    final Set<ProgrammingModelPlugin> plugins = _Plugin.load(ProgrammingModelPlugin.class);
+	    final FactoryCollector collector = ProgrammingModelPlugin.collector();
+	    plugins.forEach(plugin->{
+	    	plugin.plugin(collector);
+	    });
+	    return collector;
+    }
+    
 }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 01/03: ISIS-1841 integrate new metamodel-legacy module

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit d1f894556fa9449af22d45fc9ac2b90d36c14aab
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Feb 28 13:23:56 2018 +0100

    ISIS-1841 integrate new metamodel-legacy module
---
 core/{metamodel => metamodel-legacy}/pom.xml | 11 +++++----
 core/metamodel/pom.xml                       |  4 ----
 core/pom.xml                                 | 36 +++++++++++++++++++++++-----
 core/runtime/pom.xml                         | 11 +++++++++
 4 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/core/metamodel/pom.xml b/core/metamodel-legacy/pom.xml
similarity index 94%
copy from core/metamodel/pom.xml
copy to core/metamodel-legacy/pom.xml
index 8d40918..3d6063b 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel-legacy/pom.xml
@@ -26,8 +26,8 @@
         <version>2.0.0-M1-SNAPSHOT</version>
     </parent>
 
-    <artifactId>isis-core-metamodel</artifactId>
-    <name>Apache Isis MetaModel</name>
+    <artifactId>isis-core-metamodel-legacy</artifactId>
+    <name>Apache Isis MetaModel Legacy</name>
 
     <properties>
         <jar-plugin.automaticModuleName>org.apache.isis.core.metamodel</jar-plugin.automaticModuleName>
@@ -62,17 +62,18 @@
 
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib</artifactId>
+            <artifactId>isis-core-applib-legacy</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib</artifactId>
+            <artifactId>isis-core-applib-legacy</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib-legacy</artifactId>
+            <artifactId>isis-core-metamodel</artifactId>
         </dependency>
 
         <dependency>
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 8d40918..697eb3d 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -70,10 +70,6 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib-legacy</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>commons-codec</groupId>
diff --git a/core/pom.xml b/core/pom.xml
index da255fc..6845514 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1175,12 +1175,6 @@ ${license.additional-notes}
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
-            <!-- provides @Nullable -->
-	        <dependency>
-	        	<groupId>com.google.code.findbugs</groupId>
-	        	<artifactId>annotations</artifactId>
-	        	<version>${findbugs-annotations.version}</version>
-	        </dependency>
 	        
 	        <!-- applib-legacy -->
 	        <dependency>
@@ -1190,6 +1184,20 @@ ${license.additional-notes}
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
+            <dependency>
+                <groupId>org.apache.isis.core</groupId>
+                <artifactId>isis-core-applib-legacy</artifactId>
+                <version>${core-version}</version>
+                <type>test-jar</type>
+                <scope>test</scope>
+            </dependency>
+            
+            <!-- provides @Nullable -->
+	        <dependency>
+	        	<groupId>com.google.code.findbugs</groupId>
+	        	<artifactId>annotations</artifactId>
+	        	<version>${findbugs-annotations.version}</version>
+	        </dependency>
             
             <!--  reflections/applib -->
             <dependency>
@@ -1238,6 +1246,22 @@ ${license.additional-notes}
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
+            
+            <!-- metamodel legacy -->
+            <dependency>
+                <groupId>org.apache.isis.core</groupId>
+                <artifactId>isis-core-metamodel-legacy</artifactId>
+                <version>${core-version}</version>
+                <type>jar</type>
+                <scope>compile</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.isis.core</groupId>
+                <artifactId>isis-core-metamodel-legacy</artifactId>
+                <version>${core-version}</version>
+                <type>test-jar</type>
+                <scope>test</scope>
+            </dependency>
 
             <!-- runtime -->
             <dependency>
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 0aa0361..a687569 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -98,6 +98,17 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-metamodel-legacy</artifactId>
+		</dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-metamodel-legacy</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.isis.core</groupId>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.