[isis] branch master updated: ISIS-1929: gives IsisWicketApplication precedence when registering CL

2018-05-17 Thread ahuber
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


The following commit(s) were added to refs/heads/master by this push:
 new 2a7c035  ISIS-1929: gives IsisWicketApplication precedence when 
registering CL
2a7c035 is described below

commit 2a7c0356b246b3922c292d8a4904bcb8c4117676
Author: Andi Huber 
AuthorDate: Thu May 17 14:35:10 2018 +0200

ISIS-1929: gives IsisWicketApplication precedence when registering CL

Task-Url: https://issues.apache.org/jira/browse/ISIS-1929
---
 .../org/apache/isis/applib/internal/context/_Context.java  | 14 ++
 .../restfulobjects/server/RestfulObjectsApplication.java   |  3 ++-
 .../isis/viewer/wicket/viewer/IsisWicketApplication.java   |  2 +-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
 
b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
index c600225..93bf27c 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
@@ -207,11 +207,17 @@ public final class _Context {

/**
 * Set by the framework's bootstrapping mechanism.
+* @param classLoader the framework's default class loader
+* @param override whether to override if already registered
 */
-   public static void setDefaultClassLoaderIfAbsent(ClassLoader 
classLoader) {
-   if(_Context.getIfAny(ClassLoader.class)==null) {
-   _Context.putSingleton(ClassLoader.class, 
Objects.requireNonNull(classLoader, "classLoader required"));  
-}
+   public static void setDefaultClassLoader(ClassLoader classLoader, 
boolean override) {
+   final boolean alreadyRegistered = 
_Context.getIfAny(ClassLoader.class)!=null; 
+   if(!alreadyRegistered || override) {
+   // let writes to the map be atomic
+   synchronized (singletonMap) {   
+   singletonMap.put(toKey(ClassLoader.class), 
Objects.requireNonNull(classLoader, "classLoader required"));
+   }
+   }
}

// -- CLASS LOADING SHORTCUTS
diff --git 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
index e82d6f0..3f5864a 100644
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
@@ -49,7 +49,8 @@ public class RestfulObjectsApplication extends 
AbstractJaxRsApplication {
 
 addClass(SwaggerSpecResource.class);
 
-
_Context.setDefaultClassLoaderIfAbsent(this.getClass().getClassLoader());
+//override=false, allows for IsisWicketApplication to take precedence
+_Context.setDefaultClassLoader(this.getClass().getClassLoader(), 
/*override*/false);
 
addSingleton(IsisJaxrsServerPlugin.get().newRestfulObjectsJaxbWriterForXml());
 
 
diff --git 
a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
 
b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 4984b24..17719fa 100644
--- 
a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ 
b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -337,7 +337,7 @@ public class IsisWicketApplication
 try {
 super.init();
 
-
_Context.setDefaultClassLoaderIfAbsent(this.getClass().getClassLoader());
+_Context.setDefaultClassLoader(this.getClass().getClassLoader(), 
true);
 
 futures = startBackgroundInitializationThreads();
 

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


[isis] branch master updated: ISIS-1929: Lets RestfulObjectsApplication also register the default CL

2018-05-17 Thread ahuber
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


The following commit(s) were added to refs/heads/master by this push:
 new 8f13a87  ISIS-1929: Lets RestfulObjectsApplication also register the 
default CL
8f13a87 is described below

commit 8f13a87c7e869e660346e04a511c05a45af97b25
Author: Andi Huber 
AuthorDate: Thu May 17 13:07:20 2018 +0200

ISIS-1929: Lets RestfulObjectsApplication also register the default CL

Who ever get bootstrapped first, RestfulObjectsApplication or
IsisWicketApplication, will regesiter the frameworks default
class-loader.

Task-Url: https://issues.apache.org/jira/browse/ISIS-1929
---
 .../org/apache/isis/applib/internal/context/_Context.java | 11 ++-
 .../restfulobjects/server/RestfulObjectsApplication.java  |  2 ++
 .../isis/viewer/wicket/viewer/IsisWicketApplication.java  |  2 +-
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
 
b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
index 85278bc..c600225 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
@@ -198,13 +198,22 @@ public final class _Context {
Thread.currentThread()::getContextClassLoader;

/**
-* Will be set by the framework's bootstrapping mechanism if required.
+* As set by the framework's bootstrapping mechanism.
 * @return the default class loader
 */
public static @NotNull ClassLoader getDefaultClassLoader() {
return getOrElse(ClassLoader.class, FALLBACK_CLASSLOADER);
}

+   /**
+* Set by the framework's bootstrapping mechanism.
+*/
+   public static void setDefaultClassLoaderIfAbsent(ClassLoader 
classLoader) {
+   if(_Context.getIfAny(ClassLoader.class)==null) {
+   _Context.putSingleton(ClassLoader.class, 
Objects.requireNonNull(classLoader, "classLoader required"));  
+}
+   }
+   
// -- CLASS LOADING SHORTCUTS

/**
diff --git 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
index f42ebbd..e82d6f0 100644
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/RestfulObjectsApplication.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.viewer.restfulobjects.server;
 
+import org.apache.isis.applib.internal.context._Context;
 import 
org.apache.isis.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest;
 import 
org.apache.isis.viewer.restfulobjects.server.mappers.ExceptionMapperForObjectNotFound;
 import 
org.apache.isis.viewer.restfulobjects.server.mappers.ExceptionMapperForRestfulObjectsApplication;
@@ -48,6 +49,7 @@ public class RestfulObjectsApplication extends 
AbstractJaxRsApplication {
 
 addClass(SwaggerSpecResource.class);
 
+
_Context.setDefaultClassLoaderIfAbsent(this.getClass().getClassLoader());
 
addSingleton(IsisJaxrsServerPlugin.get().newRestfulObjectsJaxbWriterForXml());
 
 
diff --git 
a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
 
b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 9cc168b..4984b24 100644
--- 
a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ 
b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -337,7 +337,7 @@ public class IsisWicketApplication
 try {
 super.init();
 
-_Context.putSingleton(ClassLoader.class, 
this.getClass().getClassLoader());
+
_Context.setDefaultClassLoaderIfAbsent(this.getClass().getClassLoader());
 
 futures = startBackgroundInitializationThreads();
 

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