You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/02/14 09:46:01 UTC

[3/3] git commit: ISIS-697: DeveloperUtilitiesService (refreshServices, refreshLayout deprecated)

ISIS-697: DeveloperUtilitiesService (refreshServices, refreshLayout deprecated)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dd39f14b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dd39f14b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dd39f14b

Branch: refs/heads/master
Commit: dd39f14b329496af76441ac9c0eca3ef5e4b2fe5
Parents: e84537f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Feb 14 08:05:41 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Feb 14 08:05:41 2014 +0000

----------------------------------------------------------------------
 .../devutils/DeveloperUtilitiesService.java       | 18 +++++++++++++++++-
 .../DeveloperUtilitiesServiceDefault.java         | 13 +++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/dd39f14b/core/applib/src/main/java/org/apache/isis/applib/services/devutils/DeveloperUtilitiesService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/devutils/DeveloperUtilitiesService.java b/core/applib/src/main/java/org/apache/isis/applib/services/devutils/DeveloperUtilitiesService.java
index 3b7c9ea..6a25cfc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/devutils/DeveloperUtilitiesService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/devutils/DeveloperUtilitiesService.java
@@ -18,6 +18,7 @@ package org.apache.isis.applib.services.devutils;
 
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
+import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.NotInServiceMenu;
@@ -33,6 +34,7 @@ public interface DeveloperUtilitiesService {
     @Prototype
     public Clob downloadMetaModel();
 
+
     /**
      * Downloads a zip of the layout of all domain classes.
      */
@@ -42,6 +44,14 @@ public interface DeveloperUtilitiesService {
     public Blob downloadLayouts();
 
     /**
+     * Rebuilds the metamodel of all registered domain services.
+     */
+    @ActionSemantics(Of.SAFE)
+    @MemberOrder(sequence="3")
+    @Prototype
+    public void refreshServices();
+
+    /**
      * Download the JSON layout of the domain object's type.
      */
     @NotInServiceMenu
@@ -49,7 +59,13 @@ public interface DeveloperUtilitiesService {
     @MemberOrder(sequence="2")
     @Prototype
     public Clob downloadLayout(Object domainObject);
-    
+
+    /**
+     * @deprecated - in prototype mode the Wicket viewer (at least) will automatically invalidate 
+     *               the Isis metamodel whenever the object is re-rendered.
+     */
+    @Deprecated
+    @Hidden
     @NotInServiceMenu
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence="99")

http://git-wip-us.apache.org/repos/asf/isis/blob/dd39f14b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
index 7239695..e88217c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
@@ -141,6 +141,18 @@ public class DeveloperUtilitiesServiceDefault implements DeveloperUtilitiesServi
     }
 
     // //////////////////////////////////////
+    
+    @Override
+    public void refreshServices() {
+        Collection<ObjectSpecification> specifications = Lists.newArrayList(specificationLoader.allSpecifications());
+        for (ObjectSpecification objectSpec : specifications) {
+            if(objectSpec.isService()){
+                specificationLoader.invalidateCache(objectSpec.getCorrespondingClass());
+            }
+        }
+    }
+
+    // //////////////////////////////////////
 
     @Override
     public Object refreshLayout(Object domainObject) {
@@ -215,4 +227,5 @@ public class DeveloperUtilitiesServiceDefault implements DeveloperUtilitiesServi
         this.adapterManager = adapterManager;
     }
 
+
 }