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 2013/11/21 13:22:59 UTC

[4/5] git commit: ISIS-597: now runs ok

ISIS-597: now runs ok

with services injected prior to @PostConstruct


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

Branch: refs/heads/master
Commit: 96b4b517749312a6d68f8b6e46963f6203cab28a
Parents: 9d96403
Author: Dan Haywood <da...@apache.org>
Authored: Thu Nov 21 10:31:43 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Nov 21 10:31:43 2013 +0000

----------------------------------------------------------------------
 .../RestfulObjectsSpecEventSerializer.java      | 29 ++++++++++++++++++--
 .../persistence/PersistenceSessionFactory.java  |  4 ++-
 .../session/IsisSessionFactoryDefault.java      |  1 +
 3 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/96b4b517/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
index 2fa7a2b..81edb1a 100644
--- a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
+++ b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/eventserializer/RestfulObjectsSpecEventSerializer.java
@@ -18,25 +18,33 @@
  */
 package org.apache.isis.viewer.restfulobjects.rendering.eventserializer;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+
 import java.io.IOException;
 import java.util.Map;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
+import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.map.JsonMappingException;
+
+import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.publish.EventPayload;
 import org.apache.isis.applib.services.publish.EventSerializer;
+import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.util.JsonMapper;
 import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
 import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
 
 @Hidden
 public class RestfulObjectsSpecEventSerializer implements EventSerializer {
@@ -50,6 +58,10 @@ public class RestfulObjectsSpecEventSerializer implements EventSerializer {
 
     @PostConstruct
     public void init(Map<String,String> props) {
+        // neither of these are used, but 'demonstrates' that container and services are injected prior to init.
+        Ensure.ensureThatState(container, is(not(nullValue())));
+        Ensure.ensureThatState(bookmarkService, is(not(nullValue())));
+        
         final String baseUrlFromConfig = props.get(BASE_URL_KEY);
         baseUrl = baseUrlFromConfig != null? baseUrlFromConfig: BASE_URL_DEFAULT;
     }
@@ -106,5 +118,18 @@ public class RestfulObjectsSpecEventSerializer implements EventSerializer {
         return jsonMapper;
     }
 
+    // //////////////////////////////////////
+
+    @SuppressWarnings("unused")
+    private DomainObjectContainer container;
+    public void setContainer(DomainObjectContainer container) {
+        this.container = container;
+    }
+    
+    @SuppressWarnings("unused")
+    private BookmarkService bookmarkService;
+    public void injectBookmarkService(BookmarkService bookmarkService) {
+        this.bookmarkService = bookmarkService;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/96b4b517/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index 4af5091..54791fd 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtime.system.persistence;
 
 import java.util.List;
 
+import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterFactory;
 import org.apache.isis.core.metamodel.facetapi.ClassSubstitutorFactory;
@@ -61,9 +62,10 @@ public interface PersistenceSessionFactory extends ClassSubstitutorFactory, Meta
     PersistenceSession createPersistenceSession();
 
     // //////////////////////////////////////////////////////
-    // Services
+    // Container & Services
     // //////////////////////////////////////////////////////
 
+    public void setContainer(DomainObjectContainer container);
     public void setServices(List<Object> servicesList);
 
     public List<Object> getServices();

http://git-wip-us.apache.org/repos/asf/isis/blob/96b4b517/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
index 6bc8d9f..3eef909 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
@@ -219,6 +219,7 @@ public class IsisSessionFactoryDefault implements IsisSessionFactory {
 
         // must come after init of spec loader.
         specificationLoaderSpi.injectInto(persistenceSessionFactory);
+        persistenceSessionFactory.setContainer(container);
         persistenceSessionFactory.setServices(serviceList);
         userProfileLoader.setServices(serviceList);