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/05/17 11:07:31 UTC

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

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 <ah...@apache.org>
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
ahuber@apache.org.