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/19 09:37:28 UTC
[isis] 07/13: ISIS-1948: reverts introduction of _Proxies
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
commit c85a1c5f329854be3c16ebd3970037d595de13ad
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 19 09:06:48 2018 +0200
ISIS-1948: reverts introduction of _Proxies
instead introduces plugin API (runtime): ProxyFactoryPlugin
Task-Url: https://issues.apache.org/jira/browse/ISIS-1948
---
.../isis/applib/internal/context/_Plugin.java | 26 ++++-
.../isis/applib/internal/discover/_Discover.java | 8 +-
.../internal/proxy/ProxyFactory_Default.java | 110 ---------------------
.../isis/applib/internal/proxy/package-info.java | 28 ------
.../services/eventbus/EventBusImplementation.java | 4 +-
.../core/metamodel/IsisJdoMetamodelPlugin.java | 4 +-
.../isis/core/metamodel/IsisJdoRuntimePlugin.java | 4 +-
.../core/runtime/plugins/codegen/ProxyFactory.java | 65 ++++++++++++
.../plugins/codegen/ProxyFactoryPlugin.java} | 49 ++++-----
.../core/runtime/services/ServiceInstantiator.java | 8 +-
.../background/BackgroundServiceDefault.java | 14 ++-
.../applib/client/UriBuilderPlugin.java | 4 +-
.../server/IsisJaxrsServerPlugin.java | 4 +-
.../isis/core/wrapper/proxy/ProxyCreator.java | 8 +-
14 files changed, 146 insertions(+), 190 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 65c149a..e0ba274 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
@@ -29,6 +29,8 @@ 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;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* <h1>- internal use only -</h1>
@@ -99,17 +101,33 @@ public final class _Plugin {
}
+ // -- CONVENIENT PICK ANY
+
+ public static <T> T pickAnyAndWarn(Class<T> pluginInterfaceClass, Set<T> ambiguousPlugins) {
+ final Logger log = LoggerFactory.getLogger(pluginInterfaceClass);
+ final T any = ambiguousPlugins.iterator().next();
+
+ log.warn(String.format("You have more than one plugin implementing '%s' on your class-path [%s], "
+ + "just picking one: '%s'",
+ pluginInterfaceClass.getName(),
+ ambiguousPlugins.stream().map(p->p.getClass().getName()).collect(Collectors.joining(", ")),
+ any.getClass().getName()
+ ));
+
+ return any;
+ }
+
// -- CONVENIENT EXCEPTION FACTORIES
public static <T> NonRecoverableException ambiguityNonRecoverable(
Class<T> pluginInterfaceClass,
- Set<? extends T> ambigousPlugins) {
+ Set<? extends T> ambiguousPlugins) {
return new NonRecoverableException(
- String.format("Ambigous plugins implementing %s found on class path.\n{%s}",
+ String.format("Ambiguous plugins implementing %s found on class path.\n{%s}",
pluginInterfaceClass.getName(),
- _NullSafe.stream(ambigousPlugins)
+ _NullSafe.stream(ambiguousPlugins)
.map(Object::getClass)
.map(Class::getName)
.collect(Collectors.joining(", "))
@@ -123,5 +141,7 @@ public final class _Plugin {
String.format("No plugin implementing %s found on class path.",
pluginInterfaceClass.getName() ));
}
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/discover/_Discover.java b/core/applib/src/main/java/org/apache/isis/applib/internal/discover/_Discover.java
index 48109b3..d9b0c32 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/discover/_Discover.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/discover/_Discover.java
@@ -62,11 +62,9 @@ public final class _Discover {
// -- HELPER
private static ClassDiscoveryPlugin getPlugin() {
- return _Plugin.getOrElse(ClassDiscoveryPlugin.class,
- ambiguosPlugins->{
- final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
- LOG.warn("You have more than one ClassDiscoveryPlugin on your class path, just picking one!");
- return ambiguosPlugins.iterator().next();
+ return _Plugin.getOrElse(ClassDiscoveryPlugin.class,
+ ambiguousPlugins->{
+ return _Plugin.pickAnyAndWarn(ClassDiscoveryPlugin.class, ambiguousPlugins);
},
()->{
final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/ProxyFactory_Default.java b/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/ProxyFactory_Default.java
deleted file mode 100644
index 37709c7..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/ProxyFactory_Default.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.applib.internal.proxy;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationHandler;
-
-import org.apache.isis.applib.internal.exceptions._Exceptions;
-import org.apache.isis.applib.internal.proxy._Proxies.ProxyFactory;
-
-/**
- *
- * package private mixin for utility class {@link _Proxies}
- *
- * ProxyFactory default implementation.
- *
- */
-class ProxyFactory_Default<T> implements ProxyFactory<T> {
-
- private final Class<?> extending;
- private final Class<?>[] implementing;
-
- ProxyFactory_Default(Class<?> extending, Class<?>[] implementing) {
- this.extending = extending;
- this.implementing = implementing;
-
- // TODO ignore return !m.getName().equals("finalize") || m.isBridge();
-
- // this is the default, I believe
- // calling it here only because I know that it will throw an exception if the code were
- // in the future changed such that caching is invalid
- // (ie fail fast if future change could introduce a bug)
- //TODO proxyFactory.setUseCache(true);
-
- }
-
- @Override
- public T createInstance(InvocationHandler handler) {
-
-// final Class<T> enhancedClass = proxyFactory.createClass();
-// final Proxy proxy = (Proxy) Util.createInstance(enhancedClass);
-//
-// proxy.setHandler(new MethodHandler() {
-// @Override
-// public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {
-// return handler.invoke(self, thisMethod, args);
-// }
-// });
-//
-// return (T) proxy;
-
- //TODO
-// } catch (final InstantiationException |
-// IllegalAccessException |
-// InvocationTargetException e) {
-// throw new IsisException(e);
-//}
-
- // TODO Auto-generated method stub
- _Exceptions.throwNotImplemented();
- return null;
- }
-
-
-// final Class<T> proxySubclass = proxyFactory.createClass();
-//
-// final T newInstance;
-// if(mixedInIfAny == null) {
-// newInstance = proxySubclass.newInstance();
-// } else {
-// Constructor<?> constructor = findConstructor(proxySubclass, mixedInIfAny);
-// newInstance = (T) constructor.newInstance(mixedInIfAny);
-// }
-// final ProxyObject proxyObject = (ProxyObject) newInstance;
-// proxyObject.setHandler(methodHandler);
-//
-// return newInstance;
-
- private <T> Constructor<?> findConstructor(final Class<T> proxySubclass, final Object mixedInIfAny) {
- final Constructor<?>[] constructors = proxySubclass.getConstructors();
- for (Constructor<?> constructor : constructors) {
- final Class<?>[] parameterTypes = constructor.getParameterTypes();
- if(parameterTypes.length == 1 && parameterTypes[0].isAssignableFrom(mixedInIfAny.getClass())) {
- return constructor;
- }
- }
- throw new IllegalArgumentException( String.format(
- "Could not locate 1-arg constructor for mixin type of '%s' accepting an instance of '%s'",
- proxySubclass, mixedInIfAny.getClass().getName()));
- }
-
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/package-info.java
deleted file mode 100644
index cf818dc..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/package-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * <h1>Internal API</h1>
- * Internal classes, contributing to the internal proprietary API.
- * These may be changed or removed without notice!
- * <p>
- * <b>WARNING</b>:
- * Do NOT use any of the classes provided by this package!
- * </p>
- */
-package org.apache.isis.applib.internal.proxy;
\ No newline at end of file
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 ab6dcce..f2834cf 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
@@ -76,8 +76,8 @@ public interface EventBusImplementation {
public static EventBusImplementation get() {
return _Plugin.getOrElse(EventBusImplementation.class,
- ambigousPlugins->{
- throw _Plugin.ambiguityNonRecoverable(EventBusImplementation.class, ambigousPlugins);
+ ambiguousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(EventBusImplementation.class, ambiguousPlugins);
},
()->{
throw _Plugin.absenceNonRecoverable(EventBusImplementation.class);
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 fa79f1d..cad9a87 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
@@ -27,8 +27,8 @@ public interface IsisJdoMetamodelPlugin {
public static IsisJdoMetamodelPlugin get() {
return _Plugin.getOrElse(IsisJdoMetamodelPlugin.class,
- ambigousPlugins->{
- throw _Plugin.ambiguityNonRecoverable(IsisJdoMetamodelPlugin.class, ambigousPlugins);
+ ambiguousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(IsisJdoMetamodelPlugin.class, ambiguousPlugins);
},
()->{
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 a40cad1..d59776f 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
@@ -14,8 +14,8 @@ public interface IsisJdoRuntimePlugin {
public static IsisJdoRuntimePlugin get() {
return _Plugin.getOrElse(IsisJdoRuntimePlugin.class,
- ambigousPlugins->{
- throw _Plugin.ambiguityNonRecoverable(IsisJdoRuntimePlugin.class, ambigousPlugins);
+ ambiguousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(IsisJdoRuntimePlugin.class, ambiguousPlugins);
},
()->{
throw _Plugin.absenceNonRecoverable(IsisJdoRuntimePlugin.class);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactory.java
new file mode 100644
index 0000000..df7754b
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactory.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.runtime.plugins.codegen;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.util.function.Predicate;
+
+public interface ProxyFactory<T> {
+
+ // -- INTERFACE
+
+ public T createInstance(InvocationHandler handler);
+ public T createInstance(InvocationHandler handler, Object[] constructorArgs);
+
+ // -- BUILDER (uses plugin)
+
+ public static class ProxyFactoryBuilder<T> {
+ private static final Predicate<Method> DEFAULT_METHOD_FILTER =
+ m->!m.getName().equals("finalize") || m.isBridge();
+ private final Class<T> base;
+ private Class<?>[] interfaces;
+ private Predicate<Method> methodFilter = DEFAULT_METHOD_FILTER;
+ private Class<?>[] constructorArgTypes;
+ private ProxyFactoryBuilder(Class<T> base) {
+ this.base = base;
+ }
+ public ProxyFactoryBuilder<T> interfaces(Class<?>[] interfaces) {
+ this.interfaces = interfaces;
+ return this;
+ }
+ public ProxyFactoryBuilder<T> methodFilter(Predicate<Method> methodFilter) {
+ this.methodFilter = methodFilter;
+ return this;
+ }
+ public ProxyFactoryBuilder<T> constructorArgTypes(Class<?>[] constructorArgTypes) {
+ this.constructorArgTypes = constructorArgTypes;
+ return this;
+ }
+ public ProxyFactory<T> build() {
+ return ProxyFactoryPlugin.get().factory(base, interfaces, methodFilter, constructorArgTypes);
+ }
+ }
+
+ public static <T> ProxyFactoryBuilder<T> builder(Class<T> base) {
+ return new ProxyFactoryBuilder<T>(base);
+ }
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/_Proxies.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactoryPlugin.java
similarity index 52%
rename from core/applib/src/main/java/org/apache/isis/applib/internal/proxy/_Proxies.java
rename to core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactoryPlugin.java
index d2dd1df..dfadc62 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/proxy/_Proxies.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/plugins/codegen/ProxyFactoryPlugin.java
@@ -16,32 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.isis.core.runtime.plugins.codegen;
-package org.apache.isis.applib.internal.proxy;
+import java.lang.reflect.Method;
+import java.util.function.Predicate;
-import java.lang.reflect.InvocationHandler;
+import javax.annotation.Nullable;
-/**
- * <h1>- internal use only -</h1>
- * <p>
- * Provides framework internal proxy support.
- * </p>
- * <p>
- * <b>WARNING</b>: Do <b>NOT</b> use any of the classes provided by this package! <br/>
- * These may be changed or removed without notice!
- * </p>
- *
- * @since 2.0.0
- */
-public class _Proxies {
-
- public static interface ProxyFactory<T> {
-
- public T createInstance(InvocationHandler handler);
- }
+import org.apache.isis.applib.internal.context._Plugin;
- public static <T> ProxyFactory<T> factory(Class<T> extending, Class<?> ... implementing) {
- return new ProxyFactory_Default<T>(extending, implementing);
- }
+public interface ProxyFactoryPlugin {
+
+ // -- INTERFACE
+ public <T> ProxyFactory<T> factory(
+ Class<T> base,
+ @Nullable Class<?>[] interfaces,
+ @Nullable Predicate<Method> methodFilter,
+ @Nullable Class<?>[] constructorArgTypes);
+
+
+ // -- LOOKUP
+
+ public static ProxyFactoryPlugin get() {
+ return _Plugin.getOrElse(ProxyFactoryPlugin.class,
+ ambiguousPlugins->{
+ return _Plugin.pickAnyAndWarn(ProxyFactoryPlugin.class, ambiguousPlugins);
+ },
+ ()->{
+ throw _Plugin.absenceNonRecoverable(ProxyFactoryPlugin.class);
+ });
+ }
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
index 1ae7bb5..55f608f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.core.runtime.services;
import java.lang.reflect.InvocationHandler;
@@ -30,8 +29,6 @@ import javax.annotation.PreDestroy;
import javax.enterprise.context.RequestScoped;
import org.apache.isis.applib.internal.context._Context;
-import org.apache.isis.applib.internal.proxy._Proxies;
-import org.apache.isis.applib.internal.proxy._Proxies.ProxyFactory;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.factory.InstanceCreationClassException;
import org.apache.isis.core.commons.factory.InstanceCreationException;
@@ -39,6 +36,7 @@ import org.apache.isis.core.commons.lang.ArrayExtensions;
import org.apache.isis.core.commons.lang.MethodExtensions;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
+import org.apache.isis.core.runtime.plugins.codegen.ProxyFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -145,7 +143,9 @@ public final class ServiceInstantiator {
cls.getInterfaces(),
new Class<?>[] { RequestScopedService.class, ProxyEnhanced.class });
- final ProxyFactory<T> proxyFactory = _Proxies.factory(cls, interfaces);
+ final ProxyFactory<T> proxyFactory = ProxyFactory.builder(cls)
+ .interfaces(interfaces)
+ .build();
final InvocationHandler handler = new InvocationHandler() {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
index fe45ef8..d3242fe 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundServiceDefault.java
@@ -28,9 +28,8 @@ import javax.annotation.PreDestroy;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.internal._Constants;
import org.apache.isis.applib.internal.base._Casts;
-import org.apache.isis.applib.internal.proxy._Proxies;
-import org.apache.isis.applib.internal.proxy._Proxies.ProxyFactory;
import org.apache.isis.applib.services.background.BackgroundCommandService;
import org.apache.isis.applib.services.background.BackgroundCommandService2;
import org.apache.isis.applib.services.background.BackgroundService2;
@@ -50,6 +49,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
+import org.apache.isis.core.runtime.plugins.codegen.ProxyFactory;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
import org.apache.isis.schema.cmd.v1.CommandDto;
@@ -123,9 +123,15 @@ public class BackgroundServiceDefault implements BackgroundService2 {
cls.getInterfaces(),
new Class<?>[] { ProxyEnhanced.class });
- final ProxyFactory<T> proxyFactory = _Proxies.factory(cls, interfaces);
+ final Class<?>[] constructorArgTypes = mixedInIfAny!=null ? new Class<?>[] {mixedInIfAny.getClass()} : _Constants.emptyClasses;
+ final Object[] constructorArgs = mixedInIfAny!=null ? new Object[] {mixedInIfAny} : _Constants.emptyObjects;
- return proxyFactory.createInstance(methodHandler);
+ final ProxyFactory<T> proxyFactory = ProxyFactory.builder(cls)
+ .interfaces(interfaces)
+ .constructorArgTypes(constructorArgTypes)
+ .build();
+
+ return proxyFactory.createInstance(methodHandler, constructorArgs);
}
/**
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 baf85ac..76e86d9 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
@@ -14,8 +14,8 @@ public interface UriBuilderPlugin {
public static UriBuilderPlugin get() {
return _Plugin.getOrElse(UriBuilderPlugin.class,
- ambigousPlugins->{
- throw _Plugin.ambiguityNonRecoverable(UriBuilderPlugin.class, ambigousPlugins);
+ ambiguousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(UriBuilderPlugin.class, ambiguousPlugins);
},
()->{
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 5eafa72..a6d3a75 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
@@ -15,8 +15,8 @@ public interface IsisJaxrsServerPlugin {
public static IsisJaxrsServerPlugin get() {
return _Plugin.getOrElse(IsisJaxrsServerPlugin.class,
- ambigousPlugins->{
- throw _Plugin.ambiguityNonRecoverable(IsisJaxrsServerPlugin.class, ambigousPlugins);
+ ambiguousPlugins->{
+ throw _Plugin.ambiguityNonRecoverable(IsisJaxrsServerPlugin.class, ambiguousPlugins);
},
()->{
throw _Plugin.absenceNonRecoverable(IsisJaxrsServerPlugin.class);
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/proxy/ProxyCreator.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/proxy/ProxyCreator.java
index 94cd799..69c11f9 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/proxy/ProxyCreator.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/proxy/ProxyCreator.java
@@ -22,11 +22,10 @@ package org.apache.isis.core.wrapper.proxy;
import java.util.Map;
import org.apache.isis.applib.internal.base._Casts;
-import org.apache.isis.applib.internal.proxy._Proxies;
-import org.apache.isis.applib.internal.proxy._Proxies.ProxyFactory;
import org.apache.isis.applib.services.wrapper.WrappingObject;
import org.apache.isis.core.commons.lang.ArrayExtensions;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
+import org.apache.isis.core.runtime.plugins.codegen.ProxyFactory;
import org.apache.isis.core.wrapper.handlers.DelegatingInvocationHandler;
import org.apache.isis.core.wrapper.internal.util.Util;
@@ -55,6 +54,7 @@ public class ProxyCreator {
final Class<T> clazz = (Class<T>) toProxy.getClass();
if (clazz.isInterface()) {
+ //TODO [ahuber] move this logic to ProxyFactory
return Util.createInstance(clazz, handler, WrappingObject.class);
} else {
final ProxyFactory<T> proxyFactory = proxyFactoryFor(clazz);
@@ -77,7 +77,9 @@ public class ProxyCreator {
toProxyClass.getInterfaces(),
new Class<?>[] { ProxyEnhanced.class, WrappingObject.class });
- final ProxyFactory<T> proxyFactory = _Proxies.factory(toProxyClass, interfaces);
+ final ProxyFactory<T> proxyFactory = ProxyFactory.builder(toProxyClass)
+ .interfaces(interfaces)
+ .build();
return proxyFactory;
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.