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/29 20:59:13 UTC
[isis] branch master updated: ISIS-1950: cleaning up dependencies
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 07c5fcf ISIS-1950: cleaning up dependencies
07c5fcf is described below
commit 07c5fcf2d9eea3b068c76c6b68fc0191aaea6231
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue May 29 22:58:47 2018 +0200
ISIS-1950: cleaning up dependencies
Task-Url: https://issues.apache.org/jira/browse/ISIS-1950
---
.../ClassDiscoveryServiceDefault.java | 4 +-
.../isis/commons/internal/discover/_Discover.java | 76 ----------------------
.../commons/internal/discover/package-info.java | 28 --------
.../classdiscovery/ClassDiscoveryPlugin.java | 69 +++++++++++---------
core/plugins/codegen-bytebuddy/pom.xml | 2 +-
.../codegen/ProxyFactoryPluginUsingByteBuddy.java | 3 +-
core/plugins/discovery-reflections/pom.xml | 2 +-
.../services/ServicesInstallerFromAnnotation.java | 4 +-
.../IsisComponentProvider.java | 4 +-
core/unittestsupport/pom.xml | 42 +++++++-----
.../AbstractApplyToAllContractTest.java | 16 ++---
.../jmocking/DefaultImposteriserTest.java | 15 +++--
12 files changed, 93 insertions(+), 172 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
index 7be60fd..6516d14 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.commons.internal.discover._Discover;
+import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
/**
* This utility service supports the dynamic discovery of classes from the classpath. One service that uses this
@@ -57,7 +57,7 @@ implements ClassDiscoveryService {
}
// no appManifest or not asking for FixtureScripts
- return _Discover.discoverFullscan(packageNamePrefix).getSubTypesOf(type);
+ return ClassDiscoveryPlugin.get().discoverFullscan(packageNamePrefix).getSubTypesOf(type);
}
// -- HELPER
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/discover/_Discover.java b/core/commons/src/main/java/org/apache/isis/commons/internal/discover/_Discover.java
deleted file mode 100644
index a9e98bf..0000000
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/discover/_Discover.java
+++ /dev/null
@@ -1,76 +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.commons.internal.discover;
-
-import java.util.List;
-
-import org.apache.isis.commons.internal.context._Plugin;
-import org.apache.isis.core.plugins.classdiscovery.ClassDiscovery;
-import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * <h1>- internal use only -</h1>
- * <p>
- * Java reflective utilities.
- * </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 final class _Discover {
-
- private _Discover(){}
-
- // -- CLASS DISCOVERY VIA PLUGIN
-
- //TODO missing java-doc
- public static ClassDiscovery discover(String packageNamePrefix) {
- return getPlugin().discover(packageNamePrefix);
- }
-
- //TODO missing java-doc
- public static ClassDiscovery discover(List<String> packageNamePrefixes) {
- return getPlugin().discover(packageNamePrefixes);
- }
-
- //TODO missing java-doc
- public static ClassDiscovery discoverFullscan(String packageNamePrefix) {
- return getPlugin().discover(packageNamePrefix);
- }
-
- // -- HELPER
-
- private static ClassDiscoveryPlugin getPlugin() {
- return _Plugin.getOrElse(ClassDiscoveryPlugin.class,
- ambiguousPlugins->{
- return _Plugin.pickAnyAndWarn(ClassDiscoveryPlugin.class, ambiguousPlugins);
- },
- ()->{
- final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
- LOG.error("You have no ClassDiscoveryPlugin on your class path!");
- return ClassDiscoveryPlugin.nop();
- });
- }
-
-}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/discover/package-info.java b/core/commons/src/main/java/org/apache/isis/commons/internal/discover/package-info.java
deleted file mode 100644
index a969e84..0000000
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/discover/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.commons.internal.discover;
\ No newline at end of file
diff --git a/core/commons/src/main/java/org/apache/isis/core/plugins/classdiscovery/ClassDiscoveryPlugin.java b/core/commons/src/main/java/org/apache/isis/core/plugins/classdiscovery/ClassDiscoveryPlugin.java
index 0a52096..6db4a4f 100644
--- a/core/commons/src/main/java/org/apache/isis/core/plugins/classdiscovery/ClassDiscoveryPlugin.java
+++ b/core/commons/src/main/java/org/apache/isis/core/plugins/classdiscovery/ClassDiscoveryPlugin.java
@@ -21,8 +21,7 @@ package org.apache.isis.core.plugins.classdiscovery;
import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.isis.commons.internal.context._Plugin;
public interface ClassDiscoveryPlugin {
@@ -36,34 +35,46 @@ public interface ClassDiscoveryPlugin {
//TODO [ahuber] REVIEW how is this different from discover(String)
public ClassDiscovery discoverFullscan(String packageNamePrefix);
- // -- NOP IMPLEMENTATION
+ // -- LOOKUP
- public static ClassDiscoveryPlugin nop() {
- return new ClassDiscoveryPlugin() {
-
- private final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
-
- @Override
- public ClassDiscovery discoverFullscan(String packageNamePrefix) {
- return warn();
- }
-
- @Override
- public ClassDiscovery discover(List<String> packageNamePrefixes) {
- return warn();
- }
-
- @Override
- public ClassDiscovery discover(String packageNamePrefix) {
- return warn();
- }
-
- private ClassDiscovery warn() {
- LOG.error("you need a ClassDiscoveryPlugin on your class path, class discovery will not work");
- return ClassDiscovery.empty();
- }
-
- };
+ public static ClassDiscoveryPlugin get() {
+ return _Plugin.getOrElse(ClassDiscoveryPlugin.class,
+ ambiguousPlugins->{
+ return _Plugin.pickAnyAndWarn(ClassDiscoveryPlugin.class, ambiguousPlugins);
+ },
+ ()->{
+ throw _Plugin.absenceNonRecoverable(ClassDiscoveryPlugin.class);
+ });
}
+// // -- NOP IMPLEMENTATION
+//
+// public static ClassDiscoveryPlugin nop() {
+// return new ClassDiscoveryPlugin() {
+//
+// private final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
+//
+// @Override
+// public ClassDiscovery discoverFullscan(String packageNamePrefix) {
+// return warn();
+// }
+//
+// @Override
+// public ClassDiscovery discover(List<String> packageNamePrefixes) {
+// return warn();
+// }
+//
+// @Override
+// public ClassDiscovery discover(String packageNamePrefix) {
+// return warn();
+// }
+//
+// private ClassDiscovery warn() {
+// LOG.error("you need a ClassDiscoveryPlugin on your class path, class discovery will not work");
+// return ClassDiscovery.empty();
+// }
+//
+// };
+// }
+
}
diff --git a/core/plugins/codegen-bytebuddy/pom.xml b/core/plugins/codegen-bytebuddy/pom.xml
index 02c58e3..699c718 100644
--- a/core/plugins/codegen-bytebuddy/pom.xml
+++ b/core/plugins/codegen-bytebuddy/pom.xml
@@ -69,7 +69,7 @@
<dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
+ <artifactId>isis-core-commons</artifactId>
<scope>compile</scope>
</dependency>
diff --git a/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java b/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
index e9fdf46..0a43c98 100644
--- a/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
+++ b/core/plugins/codegen-bytebuddy/src/main/java/org/apache/isis/core/plugins/codegen/ProxyFactoryPluginUsingByteBuddy.java
@@ -11,6 +11,7 @@ import javax.annotation.Nullable;
import org.apache.isis.commons.internal._Constants;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.context._Context;
import org.objenesis.Objenesis;
import org.objenesis.ObjenesisStd;
@@ -40,7 +41,7 @@ public class ProxyFactoryPluginUsingByteBuddy implements ProxyFactoryPlugin {
final Function<InvocationHandler, Class<? extends T>> proxyClassFactory = handler->
proxyDef.intercept(InvocationHandlerAdapter.of(handler))
.make()
- .load(base.getClassLoader())
+ .load(_Context.getDefaultClassLoader())
.getLoaded();
return new ProxyFactory<T>() {
diff --git a/core/plugins/discovery-reflections/pom.xml b/core/plugins/discovery-reflections/pom.xml
index 9d747be..5619401 100644
--- a/core/plugins/discovery-reflections/pom.xml
+++ b/core/plugins/discovery-reflections/pom.xml
@@ -60,7 +60,7 @@
<dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-applib</artifactId>
+ <artifactId>isis-core-commons</artifactId>
<scope>compile</scope>
</dependency>
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
index e14eb19..6562d2d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
@@ -33,11 +33,11 @@ import javax.annotation.PreDestroy;
import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.commons.internal.discover._Discover;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceMenuOrder;
import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
import org.apache.isis.core.plugins.classdiscovery.ClassDiscovery;
+import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -211,7 +211,7 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
Set<Class<?>> domainServiceTypes = AppManifest.Registry.instance().getDomainServiceTypes();
if(domainServiceTypes == null) {
// if no appManifest
- final ClassDiscovery discovery = _Discover.discover(packagePrefixList);
+ final ClassDiscovery discovery = ClassDiscoveryPlugin.get().discover(packagePrefixList);
domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
index 84a86c9..9252c3b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
@@ -32,7 +32,6 @@ import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.Mixin;
import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.fixturescripts.FixtureScript;
-import org.apache.isis.commons.internal.discover._Discover;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.factory.InstanceUtil;
@@ -44,6 +43,7 @@ import org.apache.isis.core.metamodel.specloader.ReflectorConstants;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.plugins.classdiscovery.ClassDiscovery;
+import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
import org.apache.isis.core.runtime.authorization.AuthorizationManager;
import org.apache.isis.core.runtime.fixtures.FixturesInstallerFromConfiguration;
@@ -133,7 +133,7 @@ public abstract class IsisComponentProvider {
moduleAndFrameworkPackages.addAll(AppManifest.Registry.FRAMEWORK_PROVIDED_SERVICES);
Iterables.addAll(moduleAndFrameworkPackages, modulePackages);
- final ClassDiscovery discovery = _Discover.discover(moduleAndFrameworkPackages);
+ final ClassDiscovery discovery = ClassDiscoveryPlugin.get().discover(moduleAndFrameworkPackages);
final Set<Class<?>> domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
final Set<Class<?>> persistenceCapableTypes = PersistenceCapableTypeFinder.find(discovery);
diff --git a/core/unittestsupport/pom.xml b/core/unittestsupport/pom.xml
index 7b30bbf..ac3b495 100644
--- a/core/unittestsupport/pom.xml
+++ b/core/unittestsupport/pom.xml
@@ -41,18 +41,24 @@
<artifactId>isis-core-commons</artifactId>
</dependency>
- <!-- specifically to test the codegen-javassist plugin -->
+ <!-- core plugins required to run this module's own tests -->
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-discovery-reflections</artifactId>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<scope>test</scope>
<optional>true</optional>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-plugins-codegen-javassist</artifactId>
+ <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
<scope>runtime</scope>
</dependency>
+
<!-- JUPITER -->
<dependency>
@@ -103,24 +109,24 @@
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.reflections</groupId>
- <artifactId>reflections</artifactId>
- <exclusions>
- <exclusion>
+<!-- <dependency> -->
+<!-- <groupId>org.reflections</groupId> -->
+<!-- <artifactId>reflections</artifactId> -->
+<!-- <exclusions> -->
+<!-- <exclusion> -->
<!-- part of JDK 6+ the version here does not provide getUserData(),
setUserData(), as needed by xmlsnapshot functionality in isis-core-runtime. -->
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- </exclusion>
- <exclusion>
+<!-- <groupId>xml-apis</groupId> -->
+<!-- <artifactId>xml-apis</artifactId> -->
+<!-- </exclusion> -->
+<!-- <exclusion> -->
<!-- provided by plugins if required -->
- <groupId>org.javassist</groupId>
- <artifactId>javassist</artifactId>
- </exclusion>
- </exclusions>
- <optional>true</optional>
- </dependency>
+<!-- <groupId>org.javassist</groupId> -->
+<!-- <artifactId>javassist</artifactId> -->
+<!-- </exclusion> -->
+<!-- </exclusions> -->
+<!-- <optional>true</optional> -->
+<!-- </dependency> -->
</dependencies>
diff --git a/core/unittestsupport/src/main/java/org/apache/isis/core/unittestsupport/AbstractApplyToAllContractTest.java b/core/unittestsupport/src/main/java/org/apache/isis/core/unittestsupport/AbstractApplyToAllContractTest.java
index 8e80970..f821e8d 100644
--- a/core/unittestsupport/src/main/java/org/apache/isis/core/unittestsupport/AbstractApplyToAllContractTest.java
+++ b/core/unittestsupport/src/main/java/org/apache/isis/core/unittestsupport/AbstractApplyToAllContractTest.java
@@ -24,13 +24,13 @@ import java.util.Set;
import javax.jdo.annotations.PersistenceCapable;
-import com.google.common.collect.Sets;
-import com.google.common.io.ByteStreams;
-
+import org.apache.isis.core.plugins.classdiscovery.ClassDiscovery;
+import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
+import org.apache.isis.core.unittestsupport.utils.IndentPrinter;
import org.junit.Test;
-import org.reflections.Reflections;
-import org.apache.isis.core.unittestsupport.utils.IndentPrinter;
+import com.google.common.collect.Sets;
+import com.google.common.io.ByteStreams;
/**
* Provides some basic infrastructure to iterate over all entity types and
@@ -38,12 +38,12 @@ import org.apache.isis.core.unittestsupport.utils.IndentPrinter;
*/
public abstract class AbstractApplyToAllContractTest {
- protected final Reflections reflections;
+ protected final ClassDiscovery discovery;
protected IndentPrinter out;
protected AbstractApplyToAllContractTest(
final String packagePrefix) {
- reflections = new Reflections(packagePrefix);
+ discovery = ClassDiscoveryPlugin.get().discover(packagePrefix);
out = new IndentPrinter(new PrintWriter(ByteStreams.nullOutputStream()));
}
@@ -88,7 +88,7 @@ public abstract class AbstractApplyToAllContractTest {
* Can be overridden if need be.
*/
protected Set<Class<?>> findTypes() {
- return reflections.getTypesAnnotatedWith(PersistenceCapable.class);
+ return discovery.getTypesAnnotatedWith(PersistenceCapable.class);
}
protected abstract void applyContractTest(Class<?> entityType);
diff --git a/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/DefaultImposteriserTest.java b/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/DefaultImposteriserTest.java
index ba8f9f1..a4cc0ae 100644
--- a/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/DefaultImposteriserTest.java
+++ b/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/DefaultImposteriserTest.java
@@ -69,12 +69,19 @@ public class DefaultImposteriserTest {
};
// -- loading codegen plugin by name (because not configured as a maven dependency)
+// {
+// String pluginFullyQualifiedClassName = "org.apache.isis.core.plugins.codegen.ProxyFactoryPluginUsingJavassist";
+// // we are guessing where to find the pluginTarget
+// File pluginTarget = getCoreTargetFolder("/core/plugins/codegen-javassist/");
+//
+// _Plugin.load(ProxyFactoryPlugin.class, pluginTarget, pluginFullyQualifiedClassName);
+// }
+
{
- String pluginFullyQualifiedClassName = "org.apache.isis.core.plugins.codegen.ProxyFactoryPluginUsingJavassist";
// we are guessing where to find the pluginTarget
- File pluginTarget = getCoreTargetFolder("/core/plugins/codegen-javassist/");
-
- _Plugin.load(ProxyFactoryPlugin.class, pluginTarget, pluginFullyQualifiedClassName);
+ _Plugin.load(ProxyFactoryPlugin.class,
+ getCoreTargetFolder("/core/plugins/codegen-bytebuddy/"),
+ "org.apache.isis.core.plugins.codegen.ProxyFactoryPluginUsingByteBuddy");
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.