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/02/28 15:03:44 UTC
[isis] 02/03: ISIS-1841 make class discovery a plugin
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 f058eacb356a1a8df4a2a397ce70b06d764ff3a0
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Feb 28 15:59:06 2018 +0100
ISIS-1841 make class discovery a plugin
---
.../isis/applib/internal/discover/_Discover.java | 85 +++++++++++++++++++++
.../{reflection => discover}/package-info.java | 2 +-
.../isis/applib/internal/reflection/_Reflect.java | 83 --------------------
.../classdiscovery/ClassDiscovery.java} | 43 +++++++++--
.../classdiscovery/ClassDiscoveryPlugin.java | 69 +++++++++++++++++
...ions.java => ClassDiscoveryServiceDefault.java} | 6 +-
core/plugins/discovery-reflections/.gitignore | 1 +
core/plugins/discovery-reflections/pom.xml | 89 ++++++++++++++++++++++
.../ClassDiscoveryUsingReflectionsPlugin.java | 36 +++++++++
.../reflections/ReflectDiscovery.java} | 22 +++---
.../reflections/ReflectManifest.java} | 6 +-
.../services/ServicesInstallerFromAnnotation.java | 6 +-
.../IsisComponentProvider.java | 6 +-
.../PersistenceCapableTypeFinder.java | 4 +-
14 files changed, 341 insertions(+), 117 deletions(-)
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
new file mode 100644
index 0000000..19730b0
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/discover/_Discover.java
@@ -0,0 +1,85 @@
+/*
+ * 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.discover;
+
+import java.util.List;
+import java.util.Set;
+
+import org.apache.isis.applib.internal.context._Context;
+import org.apache.isis.applib.internal.context._Plugin;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
+import org.apache.isis.applib.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 _Context.computeIfAbsent(ClassDiscoveryPlugin.class, __->loadPluginsPickAny());
+ }
+
+ private static ClassDiscoveryPlugin loadPluginsPickAny() {
+ final Set<ClassDiscoveryPlugin> plugins = _Plugin.load(ClassDiscoveryPlugin.class);
+
+ if(plugins.isEmpty()) {
+ return ClassDiscoveryPlugin.nop();
+ }
+
+ if(plugins.size()>1) {
+ final Logger LOG = LoggerFactory.getLogger(ClassDiscoveryPlugin.class);
+ LOG.warn("you have more than one ClassDiscoveryPlugin on your class path, just picking one");
+ }
+
+ return plugins.iterator().next();
+ }
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/internal/discover/package-info.java
similarity index 95%
copy from core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java
copy to core/applib/src/main/java/org/apache/isis/applib/internal/discover/package-info.java
index 49537d2..7dccefa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/discover/package-info.java
@@ -25,4 +25,4 @@
* Do NOT use any of the classes provided by this package!
* </p>
*/
-package org.apache.isis.applib.internal.reflection;
\ No newline at end of file
+package org.apache.isis.applib.internal.discover;
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java b/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
deleted file mode 100644
index 589cf31..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
+++ /dev/null
@@ -1,83 +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.reflection;
-
-import java.lang.annotation.Annotation;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.isis.applib.internal.context._Context;
-import org.reflections.scanners.SubTypesScanner;
-import org.reflections.util.ClasspathHelper;
-
-/**
- * <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 _Reflect {
-
- private _Reflect(){}
-
- // -- REFLECTIVE CLASS DISCOVERY
-
- /**
- * Provides search-methods on class hierarchies.
- */
- public static interface Discovery {
-
- //TODO missing java-doc
- public Set<Class<?>> getTypesAnnotatedWith(Class<? extends Annotation> annotation);
-
- //TODO missing java-doc
- public <T> Set<Class<? extends T>> getSubTypesOf(Class<T> type);
- }
-
- //TODO missing java-doc
- public static Discovery discover(String packageNamePrefix) {
- _Reflect_Manifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
- return _Reflect_Discovery.of(packageNamePrefix);
- }
-
- //TODO missing java-doc
- public static Discovery discover(List<String> packageNamePrefixes) {
- _Reflect_Manifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
- return _Reflect_Discovery.of(packageNamePrefixes);
- }
-
- //TODO missing java-doc
- //TODO [ahuber] REVIEW how is this different from discover(String)
- public static Discovery discoverFullscan(String packageNamePrefix) {
- _Reflect_Manifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
- return _Reflect_Discovery.of(
- ClasspathHelper.forClassLoader(_Context.getDefaultClassLoader()),
- ClasspathHelper.forClass(Object.class),
- ClasspathHelper.forPackage(packageNamePrefix),
- new SubTypesScanner(false)
- );
- }
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscovery.java
similarity index 50%
rename from core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java
rename to core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscovery.java
index 49537d2..b9e07f9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscovery.java
@@ -16,13 +16,40 @@
* specific language governing permissions and limitations
* under the License.
*/
+
+package org.apache.isis.applib.plugins.classdiscovery;
+
+import java.lang.annotation.Annotation;
+import java.util.Collections;
+import java.util.Set;
+
/**
- * <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>
+ * Provides search-methods on class hierarchies.
+ *
+ * @since 2.0.0
*/
-package org.apache.isis.applib.internal.reflection;
\ No newline at end of file
+public interface ClassDiscovery {
+
+ //TODO missing java-doc
+ public Set<Class<?>> getTypesAnnotatedWith(Class<? extends Annotation> annotation);
+
+ //TODO missing java-doc
+ public <T> Set<Class<? extends T>> getSubTypesOf(Class<T> type);
+
+ public static ClassDiscovery empty() {
+
+ return new ClassDiscovery() {
+
+ @Override
+ public Set<Class<?>> getTypesAnnotatedWith(Class<? extends Annotation> annotation) {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public <T> Set<Class<? extends T>> getSubTypesOf(Class<T> type) {
+ return Collections.emptySet();
+ }
+ };
+ }
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscoveryPlugin.java b/core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscoveryPlugin.java
new file mode 100644
index 0000000..f320b06
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/plugins/classdiscovery/ClassDiscoveryPlugin.java
@@ -0,0 +1,69 @@
+/*
+ * 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.plugins.classdiscovery;
+
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public interface ClassDiscoveryPlugin {
+
+ //TODO missing java-doc
+ public ClassDiscovery discover(String packageNamePrefix);
+
+ //TODO missing java-doc
+ public ClassDiscovery discover(List<String> packageNamePrefixes);
+
+ //TODO missing java-doc
+ //TODO [ahuber] REVIEW how is this different from discover(String)
+ public ClassDiscovery discoverFullscan(String packageNamePrefix);
+
+ // -- 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/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
similarity index 92%
rename from core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java
rename to core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
index ff48a8e..acd27f3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.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.applib.internal.base._Casts;
-import org.apache.isis.applib.internal.reflection._Reflect;
+import org.apache.isis.applib.internal.discover._Discover;
/**
* This utility service supports the dynamic discovery of classes from the classpath. One service that uses this
@@ -44,7 +44,7 @@ import org.apache.isis.applib.internal.reflection._Reflect;
nature = NatureOfService.DOMAIN,
menuOrder = "" + Integer.MAX_VALUE
)
-public class ClassDiscoveryServiceUsingReflections
+public class ClassDiscoveryServiceDefault
extends AbstractService
implements ClassDiscoveryService {
@@ -57,7 +57,7 @@ implements ClassDiscoveryService {
}
// no appManifest or not asking for FixtureScripts
- return _Reflect.discoverFullscan(packageNamePrefix).getSubTypesOf(type);
+ return _Discover.discoverFullscan(packageNamePrefix).getSubTypesOf(type);
}
// -- HELPER
diff --git a/core/plugins/discovery-reflections/.gitignore b/core/plugins/discovery-reflections/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/plugins/discovery-reflections/.gitignore
@@ -0,0 +1 @@
+/target-ide
diff --git a/core/plugins/discovery-reflections/pom.xml b/core/plugins/discovery-reflections/pom.xml
new file mode 100644
index 0000000..760e67d
--- /dev/null
+++ b/core/plugins/discovery-reflections/pom.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis</artifactId>
+ <version>2.0.0-M1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>isis-core-plugins-discovery-reflections</artifactId>
+
+ <name>Apache Isis Discovery Plugin</name>
+ <description>
+ Class discovery plugin using reflections.org.
+ </description>
+
+ <properties>
+ <jar-plugin.automaticModuleName>org.apache.isis.plugins.discovery-reflections</jar-plugin.automaticModuleName>
+ <git-plugin.propertiesDir>org/apache/isis/plugins/discovery-reflections</git-plugin.propertiesDir>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+
+ <dependencies>
+ <!-- compile dependencies -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-applib</artifactId>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- as used by internal API,
+ also provides com.google.code.findbugs/annotations @Nullable,
+ but not transitive -->
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ <!--
+ ideally we would like to make this optional (to enforce usage of internal
+ reflective API, with only applib is allowed to access reflections directly.
+ HOWEVER, there is also a runtime dependency on org.reflections.vfs.Vfs.UrlType. -->
+ <optional>false</optional>
+ <exclusions>
+ <exclusion>
+ <!-- whatever reflections is dependent on, it should not be transitive -->
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ClassDiscoveryUsingReflectionsPlugin.java b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ClassDiscoveryUsingReflectionsPlugin.java
new file mode 100644
index 0000000..54bd85c
--- /dev/null
+++ b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ClassDiscoveryUsingReflectionsPlugin.java
@@ -0,0 +1,36 @@
+package org.apache.isis.applib.plugins.classdiscovery.reflections;
+
+import java.util.List;
+
+import org.apache.isis.applib.internal.context._Context;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscoveryPlugin;
+import org.reflections.scanners.SubTypesScanner;
+import org.reflections.util.ClasspathHelper;
+
+public class ClassDiscoveryUsingReflectionsPlugin implements ClassDiscoveryPlugin {
+
+ @Override
+ public ClassDiscovery discover(String packageNamePrefix) {
+ ReflectManifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
+ return ReflectDiscovery.of(packageNamePrefix);
+ }
+
+ @Override
+ public ClassDiscovery discover(List<String> packageNamePrefixes) {
+ ReflectManifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
+ return ReflectDiscovery.of(packageNamePrefixes);
+ }
+
+ @Override
+ public ClassDiscovery discoverFullscan(String packageNamePrefix) {
+ ReflectManifest.prepareDiscovery(); //TODO [ahuber] REVIEW why is this required?
+ return ReflectDiscovery.of(
+ ClasspathHelper.forClassLoader(_Context.getDefaultClassLoader()),
+ ClasspathHelper.forClass(Object.class),
+ ClasspathHelper.forPackage(packageNamePrefix),
+ new SubTypesScanner(false)
+ );
+ }
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectDiscovery.java
similarity index 71%
rename from core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
rename to core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectDiscovery.java
index 9059e05..0d04799 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
+++ b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectDiscovery.java
@@ -1,4 +1,4 @@
-package org.apache.isis.applib.internal.reflection;
+package org.apache.isis.applib.plugins.classdiscovery.reflections;
import java.lang.annotation.Annotation;
import java.util.HashSet;
@@ -11,35 +11,35 @@ import java.util.stream.Stream;
import javax.validation.constraints.NotNull;
import org.apache.isis.applib.internal.base._NullSafe;
-import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
import org.reflections.Reflections;
/**
*
- * package private mixin for utility class {@link _Reflect}
+ * package private utility class
*
*/
-class _Reflect_Discovery implements _Reflect.Discovery {
+class ReflectDiscovery implements ClassDiscovery {
private final Reflections reflections;
// -- CONSTRUCTORS
- public static Discovery of(List<String> packagePrefixes) {
- return new _Reflect_Discovery(packagePrefixes);
+ public static ReflectDiscovery of(List<String> packagePrefixes) {
+ return new ReflectDiscovery(packagePrefixes);
}
- public static Discovery of(String packageNamePrefix) {
- return new _Reflect_Discovery(packageNamePrefix);
+ public static ReflectDiscovery of(String packageNamePrefix) {
+ return new ReflectDiscovery(packageNamePrefix);
}
- public static Discovery of(final Object... params) {
- return new _Reflect_Discovery(params);
+ public static ReflectDiscovery of(final Object... params) {
+ return new ReflectDiscovery(params);
}
// -- HIDDEN CONSTRUCTOR
- private _Reflect_Discovery(final Object... params) {
+ private ReflectDiscovery(final Object... params) {
this.reflections = new Reflections(params);
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Manifest.java b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectManifest.java
similarity index 96%
rename from core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Manifest.java
rename to core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectManifest.java
index 5deadce..6538d6e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Manifest.java
+++ b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/applib/plugins/classdiscovery/reflections/ReflectManifest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.applib.internal.reflection;
+package org.apache.isis.applib.plugins.classdiscovery.reflections;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
@@ -16,10 +16,10 @@ import com.google.common.collect.Lists;
/**
*
- * package private mixin for utility class {@link _Reflect}
+ * package private utility class
*
*/
-class _Reflect_Manifest {
+class ReflectManifest {
/*
* If this static reference survives ApplicationScope life-cycles, thats ok.
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 1d0a0f3..36c19c8 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,8 +33,8 @@ 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.applib.internal.reflection._Reflect;
-import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+import org.apache.isis.applib.internal.discover._Discover;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
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;
@@ -211,7 +211,7 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
Set<Class<?>> domainServiceTypes = AppManifest.Registry.instance().getDomainServiceTypes();
if(domainServiceTypes == null) {
// if no appManifest
- final Discovery discovery = _Reflect.discover(packagePrefixList);
+ final ClassDiscovery discovery = _Discover.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 9b2936a..140f337 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,8 +32,8 @@ 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.applib.internal.reflection._Reflect;
-import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+import org.apache.isis.applib.internal.discover._Discover;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.core.commons.factory.InstanceUtil;
@@ -133,7 +133,7 @@ public abstract class IsisComponentProvider {
moduleAndFrameworkPackages.addAll(AppManifest.Registry.FRAMEWORK_PROVIDED_SERVICES);
Iterables.addAll(moduleAndFrameworkPackages, modulePackages);
- final Discovery discovery = _Reflect.discover(moduleAndFrameworkPackages);
+ final ClassDiscovery discovery = _Discover.discover(moduleAndFrameworkPackages);
final Set<Class<?>> domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
final Set<Class<?>> persistenceCapableTypes = PersistenceCapableTypeFinder.find(discovery);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
index a736018..32a67e2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
@@ -26,7 +26,7 @@ import java.util.Set;
import javax.jdo.annotations.PersistenceCapable;
import org.apache.isis.applib.internal.base._Casts;
-import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+import org.apache.isis.applib.plugins.classdiscovery.ClassDiscovery;
/**
*
@@ -35,7 +35,7 @@ import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
*/
class PersistenceCapableTypeFinder {
- static Set<Class<?>> find(Discovery discovery) {
+ static Set<Class<?>> find(ClassDiscovery discovery) {
final Set<Class<?>> types = new LinkedHashSet<>();
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.