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/03/06 06:04:47 UTC
[isis] branch master updated: ISIS-1841 applib: makes core-plugin
scanning more verbose on failure
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 de11fe0 ISIS-1841 applib: makes core-plugin scanning more verbose on failure
de11fe0 is described below
commit de11fe0fb527fd858ad291d8a595ec888127997d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Mar 6 07:04:42 2018 +0100
ISIS-1841 applib: makes core-plugin scanning more verbose on failure
---
.../isis/applib/internal/context/_Plugin.java | 26 ++++++++++++
.../services/eventbus/EventBusImplementation.java | 47 ++++++++++++++--------
.../core/metamodel/IsisJdoMetamodelPlugin.java | 7 ++--
.../isis/core/metamodel/IsisJdoRuntimePlugin.java | 5 +--
.../services/eventbus/EventBusServiceDefault.java | 10 +----
.../applib/client/UriBuilderPlugin.java | 7 ++--
.../server/IsisJaxrsServerPlugin.java | 7 ++--
7 files changed, 68 insertions(+), 41 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Plugin.java b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Plugin.java
index 395c1e0..65c149a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Plugin.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Plugin.java
@@ -24,7 +24,10 @@ import java.util.ServiceLoader;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import org.apache.isis.applib.NonRecoverableException;
+import org.apache.isis.applib.internal.base._NullSafe;
import org.apache.isis.applib.internal.collections._Sets;
/**
@@ -94,8 +97,31 @@ public final class _Plugin {
});
+ }
+
+ // -- CONVENIENT EXCEPTION FACTORIES
+
+ public static <T> NonRecoverableException ambiguityNonRecoverable(
+ Class<T> pluginInterfaceClass,
+ Set<? extends T> ambigousPlugins) {
+ return new NonRecoverableException(
+ String.format("Ambigous plugins implementing %s found on class path.\n{%s}",
+ pluginInterfaceClass.getName(),
+
+ _NullSafe.stream(ambigousPlugins)
+ .map(Object::getClass)
+ .map(Class::getName)
+ .collect(Collectors.joining(", "))
+
+ ));
+ }
+
+ public static NonRecoverableException absenceNonRecoverable(Class<?> pluginInterfaceClass) {
+ return new NonRecoverableException(
+ String.format("No plugin implementing %s found on class path.",
+ pluginInterfaceClass.getName() ));
}
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusImplementation.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusImplementation.java
index 6b9df50..0f2fb9e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusImplementation.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/EventBusImplementation.java
@@ -16,6 +16,7 @@
*/
package org.apache.isis.applib.services.eventbus;
+import org.apache.isis.applib.internal.context._Plugin;
/**
* Common interface for all Event Bus implementations.
@@ -31,22 +32,34 @@ package org.apache.isis.applib.services.eventbus;
*/
public interface EventBusImplementation {
- /**
- * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
- * {@link org.apache.isis.applib.services.eventbus.EventBusService#register(Object)}.
- */
- void register(Object domainService);
-
- /**
- * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
- * {@link org.apache.isis.applib.services.eventbus.EventBusService#unregister(Object)}.
- */
- void unregister(Object domainService);
-
- /**
- * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
- * {@link org.apache.isis.applib.services.eventbus.EventBusService#post(Object)}.
- */
- void post(Object event);
+ /**
+ * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
+ * {@link org.apache.isis.applib.services.eventbus.EventBusService#register(Object)}.
+ */
+ void register(Object domainService);
+
+ /**
+ * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
+ * {@link org.apache.isis.applib.services.eventbus.EventBusService#unregister(Object)}.
+ */
+ void unregister(Object domainService);
+
+ /**
+ * For {@link org.apache.isis.applib.services.eventbus.EventBusService} to call on
+ * {@link org.apache.isis.applib.services.eventbus.EventBusService#post(Object)}.
+ */
+ void post(Object event);
+
+ // -- LOOKUP
+
+ public static EventBusImplementation get() {
+ return _Plugin.getOrElse(EventBusImplementation.class,
+ ambigousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(EventBusImplementation.class, ambigousPlugins);
+ },
+ ()->{
+ throw _Plugin.absenceNonRecoverable(EventBusImplementation.class);
+ });
+ }
}
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisJdoMetamodelPlugin.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisJdoMetamodelPlugin.java
index 41f2a24..fa79f1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisJdoMetamodelPlugin.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisJdoMetamodelPlugin.java
@@ -4,7 +4,6 @@ import java.lang.reflect.Method;
import javax.annotation.Nullable;
-import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.internal.context._Plugin;
public interface IsisJdoMetamodelPlugin {
@@ -29,11 +28,11 @@ public interface IsisJdoMetamodelPlugin {
public static IsisJdoMetamodelPlugin get() {
return _Plugin.getOrElse(IsisJdoMetamodelPlugin.class,
ambigousPlugins->{
- throw new NonRecoverableException("Ambigous plugins implementing IsisJdoMetamodelPlugin found on class path.");
+ throw _Plugin.ambiguityNonRecoverable(IsisJdoMetamodelPlugin.class, ambigousPlugins);
},
()->{
- throw new NonRecoverableException("No plugin implementing IsisJdoMetamodelPlugin found on class path.");
- });
+ throw _Plugin.absenceNonRecoverable(IsisJdoMetamodelPlugin.class);
+ });
}
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/metamodel/IsisJdoRuntimePlugin.java b/core/runtime/src/main/java/org/apache/isis/core/metamodel/IsisJdoRuntimePlugin.java
index cf028b8..a40cad1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/metamodel/IsisJdoRuntimePlugin.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/metamodel/IsisJdoRuntimePlugin.java
@@ -1,6 +1,5 @@
package org.apache.isis.core.metamodel;
-import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.internal.context._Plugin;
import org.apache.isis.core.metamodel.services.configinternal.ConfigurationServiceInternal;
import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory;
@@ -16,10 +15,10 @@ public interface IsisJdoRuntimePlugin {
public static IsisJdoRuntimePlugin get() {
return _Plugin.getOrElse(IsisJdoRuntimePlugin.class,
ambigousPlugins->{
- throw new NonRecoverableException("Ambigous plugins implementing IsisJdoRuntimePlugin found on class path.");
+ throw _Plugin.ambiguityNonRecoverable(IsisJdoRuntimePlugin.class, ambigousPlugins);
},
()->{
- throw new NonRecoverableException("No plugin implementing IsisJdoRuntimePlugin found on class path.");
+ throw _Plugin.absenceNonRecoverable(IsisJdoRuntimePlugin.class);
});
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
index 8733648..249d8a1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
@@ -23,7 +23,6 @@ import javax.enterprise.context.RequestScoped;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.internal.context._Plugin;
import org.apache.isis.applib.services.eventbus.EventBusImplementation;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
@@ -135,14 +134,7 @@ public abstract class EventBusServiceDefault extends EventBusService {
if( "plugin".equals(implementation) || "auto".equals(implementation) ) {
- return _Plugin.getOrElse(EventBusImplementation.class,
- ambiguousPlugins->{
- throw new NonRecoverableException(
- "Ambiguity: Could not instantiate event bus implementation '" + implementation + "'");
- }, ()->{
- throw new NonRecoverableException(
- "Missing Plugin: Could not instantiate event bus implementation '" + implementation + "'");
- });
+ return EventBusImplementation.get();
} else if("guava".equals(implementation)) {
// legacy of return new EventBusImplementationForGuava();
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/UriBuilderPlugin.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/UriBuilderPlugin.java
index 63bf33b..baf85ac 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/UriBuilderPlugin.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/UriBuilderPlugin.java
@@ -2,7 +2,6 @@ package org.apache.isis.viewer.restfulobjects.applib.client;
import javax.ws.rs.core.UriBuilder;
-import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.internal.context._Plugin;
public interface UriBuilderPlugin {
@@ -16,11 +15,11 @@ public interface UriBuilderPlugin {
public static UriBuilderPlugin get() {
return _Plugin.getOrElse(UriBuilderPlugin.class,
ambigousPlugins->{
- throw new NonRecoverableException("Ambigous plugins implementing UriBuilderPlugin found on class path.");
+ throw _Plugin.ambiguityNonRecoverable(UriBuilderPlugin.class, ambigousPlugins);
},
()->{
- throw new NonRecoverableException("No plugin implementing UriBuilderPlugin found on class path.");
- });
+ throw _Plugin.absenceNonRecoverable(UriBuilderPlugin.class);
+ });
}
}
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/IsisJaxrsServerPlugin.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/IsisJaxrsServerPlugin.java
index c09281d..5eafa72 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/IsisJaxrsServerPlugin.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/IsisJaxrsServerPlugin.java
@@ -1,6 +1,5 @@
package org.apache.isis.viewer.restfulobjects.server;
-import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.internal.context._Plugin;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
@@ -17,11 +16,11 @@ public interface IsisJaxrsServerPlugin {
public static IsisJaxrsServerPlugin get() {
return _Plugin.getOrElse(IsisJaxrsServerPlugin.class,
ambigousPlugins->{
- throw new NonRecoverableException("Ambigous plugins implementing IsisJaxrsServerPlugin found on class path.");
+ throw _Plugin.ambiguityNonRecoverable(IsisJaxrsServerPlugin.class, ambigousPlugins);
},
()->{
- throw new NonRecoverableException("No plugin implementing IsisJaxrsServerPlugin found on class path.");
- });
+ throw _Plugin.absenceNonRecoverable(IsisJaxrsServerPlugin.class);
+ });
}
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.