You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/08/06 19:01:52 UTC
[3/3] isis git commit: ISIS-848: renaming GlobSpec to AppManifest.
ISIS-848: renaming GlobSpec to AppManifest.
nb: incomplete at this point, need to handle AppManifest#getServices() ... pushing to back up work.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b134bdad
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b134bdad
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b134bdad
Branch: refs/heads/ISIS-848
Commit: b134bdad6a3ccd27dd6bb7f35abe2b485473a1c9
Parents: 3491249
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Aug 6 18:01:40 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Aug 6 18:01:40 2015 +0100
----------------------------------------------------------------------
..._ug_getting-started_simpleapp-archetype.adoc | 5 +
.../org/apache/isis/applib/AppManifest.java | 161 +++++++++++++++++++
.../java/org/apache/isis/applib/GlobSpec.java | 143 ----------------
.../IsisComponentProviderDefault.java | 16 +-
.../integtestsupport/IsisSystemForTest.java | 24 +--
.../core/runtime/system/SystemConstants.java | 3 +-
.../IsisComponentProviderAbstract.java | 20 +--
.../IsisComponentProviderUsingInstallers.java | 18 +--
example/application/simpleapp/fixture/pom.xml | 7 +
.../fixture/DomainAppFixtureModule.java | 24 +++
...nAppFixtureScriptsSpecificationProvider.java | 44 +++++
.../fixture/DomainAppFixturesProvider.java | 44 -----
example/application/simpleapp/glob/pom.xml | 77 ---------
.../java/domainapp/glob/DomainAppGlobSpec.java | 91 -----------
.../domainapp/glob/DomainAppGlobSpecBypass.java | 35 ----
.../glob/DomainAppGlobSpecNoFixtures.java | 36 -----
.../glob/app/homepage/HomePageService.java | 51 ------
.../glob/app/homepage/HomePageViewModel.java | 50 ------
.../app/homepage/HomePageViewModel.layout.json | 43 -----
.../glob/app/homepage/HomePageViewModel.png | Bin 456 -> 0 bytes
example/application/simpleapp/home/pom.xml | 68 ++++++++
.../java/domainapp/home/SimpleAppManifest.java | 100 ++++++++++++
.../domainapp/home/SimpleAppManifestBypass.java | 35 ++++
.../home/SimpleAppManifestNoFixtures.java | 36 +++++
.../home/services/homepage/HomePageService.java | 51 ++++++
.../services/homepage/HomePageViewModel.java | 50 ++++++
.../homepage/HomePageViewModel.layout.json | 43 +++++
.../services/homepage/HomePageViewModel.png | Bin 0 -> 456 bytes
.../application/simpleapp/integtests/pom.xml | 11 +-
.../bootstrap/SimpleAppSystemInitializer.java | 4 +-
example/application/simpleapp/pom.xml | 4 +-
example/application/simpleapp/webapp/pom.xml | 12 +-
.../src/main/webapp/WEB-INF/isis.properties | 6 +-
33 files changed, 674 insertions(+), 638 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/adocs/documentation/src/main/asciidoc/guides/_ug_getting-started_simpleapp-archetype.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ug_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/_ug_getting-started_simpleapp-archetype.adoc
index 00378ee..8b050e3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ug_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ug_getting-started_simpleapp-archetype.adoc
@@ -288,6 +288,11 @@ As noted above, the generated app is a very simple application consisting of a s
|`myapp-fixture`
|Domain object fixtures used for initializing the system when being demo'ed or for unit testing.
+|`myapp-home`
+|(1.9.0) The "home" module, containing the (optional) app manifest and any application-level services. +
+
+The app manifest partially replaces the
+
|`myapp-integtests`
|End-to-end xref:ug.adoc#_ug_testing_integ-test-support[integration tests] that exercise from the UI through to the database
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/applib/src/main/java/org/apache/isis/applib/AppManifest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AppManifest.java b/core/applib/src/main/java/org/apache/isis/applib/AppManifest.java
new file mode 100644
index 0000000..1f39e01
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/AppManifest.java
@@ -0,0 +1,161 @@
+/*
+ * 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;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.jdo.annotations.PersistenceCapable;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+/**
+ * Programmatic specification of the constituent parts of an application, most specifically the modules that contain
+ * domain services and possibly entities.
+ *
+ * <p>
+ * The modules are specified as classes; the framework uses the packages of these classes as the locations on the
+ * classpath to search for domain services (annotated with {@link org.apache.isis.applib.annotation.DomainService})
+ * and entities (annotated with {@link PersistenceCapable}).
+ * </p>
+ *
+ * <p>
+ * The interface also allows certain other aspects of the runtime to be specified:
+ * <ul>
+ * <li>which authentication and/or authorization mechanism to be used (useful to disable security when developing/demoing)</li>
+ * <li>which fixtures to run by default</li>
+ * <li>overriding of arbitrary other configuration properties</li>
+ * <li>which modules to load (useful when developing, to reduce startup times; just load the modules required)</li>
+ * </ul>
+ * </p>
+ *
+ * <p>
+ * To use, implement this interface and then define as the <tt>isis.appManifest</tt> key within the
+ * <tt>isis.properties</tt> configuration file, or specify programmatically when running integration tests.
+ * </p>
+ *
+ * <p>
+ * By convention the class implementing this interface reside in a <tt>xxx-home</tt> Maven module. This
+ * can be referenced by both the <tt>xxx-integtests</tt> (Maven) module and the <tt>xxx-webapp</tt> (Maven) module,
+ * allowing configuration to be centralized.
+ * </p>
+ *
+ * <p>
+ * There are a number of subsidiary goals (not yet implemented):
+ * <ul>
+ * <li>
+ * <p>Allow different integration tests to run with different manifests. Normally the running application is
+ * shared (on a thread-local) between integration tests. What the framework could do is to be intelligent
+ * enough to keep track of the manifest in use for each integration test and tear down
+ * the shared state if the "next" test uses a different manifest</p>
+ * </li>
+ * <li>
+ * Speed up bootstrapping by only scanning for classes annotated by
+ * {@link org.apache.isis.applib.annotation.DomainService} and {@link javax.jdo.annotations.PersistenceCapable}
+ * once.
+ * </li>
+ * <li>
+ * Provide a programmatic way to contribute elements of `web.xml`.
+ * </li>
+ * <li>
+ * Provide a programmatic way to configure Shiro security.
+ * </li>
+ * <li>
+ * <p>Anticipate the module changes forthcoming in Java 9. Eventually we see that the AppManifest class acting
+ * as an "aggregator", with the list of modules will become Java 9 modules each advertising the types that they
+ * export. It might even be possible for AppManifests to be switched on and off dynamically (eg if Java9 is
+ * compatible with OSGi, being one of the design goals).</p>
+ * </li>
+ * </ul>
+ * </p>
+ */
+public interface AppManifest {
+
+ /**
+ * A list of classes, each of which representing the root of one of the modules containing services and possibly
+ * entities, which together makes up the running application.
+ *
+ * <p>
+ * The package of each such class is used as the basis for searching for domain services and registered
+ * entities. As such it replaces and overrides both the
+ * <tt>isis.services.ServicesInstallerFromAnnotation.packagePrefix</tt> key (usually found in the
+ * <tt>isis.properties</tt> file) and the
+ * <tt>isis.persistor.datanucleus.RegisterEntities.packagePrefix</tt> key (usually found in the
+ * <tt>persistor_datanucleus.properties</tt> file).
+ * </p>
+ *
+ * <p>
+ * If a manifest has been provided then the value of <tt>isis.services-installer</tt> configuration property
+ * will be ignored and the <tt>isis.services.ServicesInstallerFromAnnotation.packagePrefix</tt>
+ * configuration property will be ignored.
+ * </p>
+ *
+ * <p>
+ * Note: the class implementing this interface will typically include itself in the list of classes, so that any
+ * "global" services (for example an application home page) are also picked up.
+ * </p>
+ */
+ public List<Class<?>> getModules();
+
+ /**
+ * If non-null, overrides the value of <tt>isis.services</tt> configuration property to specify a list of
+ * additional classes to be instantiated as domain services (over and above the {@link DomainService}-annotated
+ * services defined via {@link #getModules()}.
+ *
+ * <p>
+ * Normally we recommend services are defined exclusively through {@link #getModules()}, and that this metho
+ * should return an empty list. However, this method exists to support those use cases where either the
+ * service required does not have a {@link DomainService} annotation, or where it does have the annotation
+ * but its containing module cannot (for whatever reason) be listed under {@link #getModules()}.
+ * </p>
+ */
+ public List<Class<?>> getAdditionalServices();
+
+ /**
+ * If non-null, overrides the value of <tt>isis.authentication</tt> configuration property to specify the
+ * authentication mechanism.
+ *
+ * <p>
+ * Ignored for integration tests (which always uses the 'bypass' mechanism).
+ * </p>
+ */
+ public String getAuthenticationMechanism();
+
+ /**
+ * If non-null, overrides the value of <tt>isis.authorization</tt> configuration property.
+ *
+ * <p>
+ * Ignored for integration tests (which always uses the 'bypass' mechanism).
+ * </p>
+ */
+ public String getAuthorizationMechanism();
+
+ /**
+ * If non-null, overrides the value of <tt>isis.fixtures</tt> configuration property.
+ */
+ public List<Class<? extends FixtureScript>> getFixtures();
+
+ /**
+ * Overrides for any other configuration properties.
+ */
+ public Map<String,String> getConfigurationProperties();
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/applib/src/main/java/org/apache/isis/applib/GlobSpec.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/GlobSpec.java b/core/applib/src/main/java/org/apache/isis/applib/GlobSpec.java
deleted file mode 100644
index ef245e2..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/GlobSpec.java
+++ /dev/null
@@ -1,143 +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;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.applib.fixturescripts.FixtureScript;
-
-/**
- * Specifies the "glob", in other words the set of modules (containing domain services and possibly entities), that
- * together make up the running application.
- *
- * <p>
- * To use, implement this interface and then define as the <tt>isis.globspec</tt> key within the
- * <tt>isis.properties</tt> configuration file, or programmatically.
- * </p>
- *
- * <p>
- * The intention is to centralize, so far as possible, the configuration that previously has been duplicated between
- * the <tt>xxx-integtests</tt> (Maven) module and the <tt>xxx-webapp</tt> integtests.
- * </p>
- *
- * <p>
- * There are a number of subsidiary goals:
- * <ul>
- * <li>
- * <p>
- * by having multiple classes implementing this interface, it allows separate "profiles" of the application
- * to be run.
- * </p>
- * <p>For example, a developer could define a globspec that</p>
- * <ul>
- * <li>uses the <tt>bypass</tt> security rather than the full-blown Shiro security</li>
- * <li>excludes some or all addon modules, eg auditing and security</li>
- * <li>for a large app whose domain has been broken out into multiple <tt>dom-xxx</tt> (Maven) modules, to
- * run subsets of the application</li>
- * </ul>
- * <p>This applies to both running the main app and also the integration tests.</p>
- * </li>
- * <li>
- * <p>Allow different integration tests to run with different globspecs. Normally the running application is
- * shared (on a thread-local) between integration tests. What the framework could do is to be intelligent
- * enough to keep track of the globspec used for each integration test and tear down
- * the shared state if the "next" test uses a different globspec</p>
- * </li>
- * <li>
- * Speed up bootstrapping by only scanning for classes annotated by
- * {@link org.apache.isis.applib.annotation.DomainService} and {@link javax.jdo.annotations.PersistenceCapable}
- * once.
- * </li>
- * <li>
- * Provide a programmatic way to contribute elements of `web.xml`. This is not yet implemented.
- * </li>
- * <li>
- * Provide a programmatic way to configure Shiro security. This is not yet implemented.
- * </li>
- * <li>
- * <p>Anticipate the module changes forthcoming in Java 9. Eventually we see that the globspec class will
- * become an application manifest, while the list of modules will become Java 9 modules each advertising the
- * types that they export.</p>
- * </li>
- * </ul>
- * </p>
- * <p>
- * <b>Note:</b> at this time the integration tests do not keep track of different globspecs; rather the
- * globspec used for the first test is used for all subsequent tests.
- * </p>
- */
-public interface GlobSpec {
-
- /**
- * A list of classes, each of which representing the root of one of the modules containing services and possibly
- * entities, which together makes up the running application.
- *
- * <p>
- * The package of each such class is used as the basis for searching for domain services and registered
- * entities. As such it replaces and overrides both the
- * <tt>isis.services.ServicesInstallerFromAnnotation.packagePrefix</tt> key (usually found in the
- * <tt>isis.properties</tt> file) and the
- * <tt>isis.persistor.datanucleus.RegisterEntities.packagePrefix</tt> key (usually found in the
- * <tt>persistor_datanucleus.properties</tt> file).
- * </p>
- *
- * <p>
- * If a globspec has been provided then the value of <tt>isis.services-installer</tt> configuration property
- * will be ignored and the <tt>isis.services</tt> configuration property will also be ignored.
- * </p>
- *
- * <p>
- * Note: the class implementing this interface will typically include itself in the list of classes, so that any
- * "global" services (for example an application home page) are also picked up.
- * </p>
- */
- public List<Class<?>> getModules();
-
- /**
- * If non-null, overrides the value of <tt>isis.authentication</tt> configuration property to specify the
- * authentication mechanism.
- *
- * <p>
- * Ignored for integration tests (which always uses the 'bypass' mechanism).
- * </p>
- */
- public String getAuthenticationMechanism();
-
- /**
- * If non-null, overrides the value of <tt>isis.authorization</tt> configuration property.
- *
- * <p>
- * Ignored for integration tests (which always uses the 'bypass' mechanism).
- * </p>
- */
- public String getAuthorizationMechanism();
-
- /**
- * If non-null, overrides the value of <tt>isis.fixtures</tt> configuration property.
- */
- public List<Class<? extends FixtureScript>> getFixtures();
-
- /**
- * Overrides for any other configuration properties.
- */
- public Map<String,String> getConfigurationProperties();
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
index 8fc168d..da0ec2e 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisComponentProviderDefault.java
@@ -26,7 +26,7 @@ import java.util.Set;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import org.apache.isis.applib.GlobSpec;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixtures.InstallableFixture;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -68,32 +68,32 @@ public class IsisComponentProviderDefault extends IsisComponentProviderAbstract
public IsisComponentProviderDefault(
final DeploymentType deploymentType,
- final GlobSpec globSpecIfAny,
+ final AppManifest appManifestIfAny,
final List<Object> servicesOverride,
final List<InstallableFixture> fixturesOverride,
final IsisConfiguration configurationOverride,
final ProgrammingModel programmingModelOverride,
final MetaModelValidator metaModelValidatorOverride) {
- super(deploymentType, globSpecIfAny);
+ super(deploymentType, appManifestIfAny);
this.configuration = elseDefault(configurationOverride);
final String fixtureClassNamesCsv;
- if(globSpec != null) {
+ if(appManifest != null) {
- specifyServicesAndRegisteredEntitiesUsing(globSpec);
+ specifyServicesAndRegisteredEntitiesUsing(appManifest);
// required to prevent RegisterEntities validation from complaining
// if it can't find any @PersistenceCapable entities in a module
// that contains only services.
putConfigurationProperty(
- "isis.globSpec", globSpecIfAny.getClass().getName()
+ "isis.globSpec", appManifestIfAny.getClass().getName()
);
- List<Class<? extends FixtureScript>> fixtureClasses = globSpec.getFixtures();
+ List<Class<? extends FixtureScript>> fixtureClasses = appManifest.getFixtures();
fixtureClassNamesCsv = fixtureClassNamesFrom(fixtureClasses);
- overrideConfigurationUsing(globSpec);
+ overrideConfigurationUsing(appManifest);
this.services = createServices(configuration);
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
index 673f509..6c7d6d8 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
@@ -32,7 +32,7 @@ import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.GlobSpec;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixtures.FixtureClock;
import org.apache.isis.applib.fixtures.InstallableFixture;
import org.apache.isis.applib.services.command.Command;
@@ -153,7 +153,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
// these fields 'xxxForComponentProvider' are used to initialize the IsisComponentProvider, but shouldn't be used thereafter.
- private final GlobSpec globSpecForComponentProvider;
+ private final AppManifest appManifestForComponentProvider;
private final IsisConfiguration configurationForComponentProvider;
private final List<Object> servicesForComponentProvider;
private final List<InstallableFixture> fixturesForComponentProvider;
@@ -181,7 +181,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
private IsisConfigurationDefault configuration = new IsisConfigurationDefault();
private final IsisConfigurationDefault configurationAsPerGlobSpec = new IsisConfigurationDefault();
- private GlobSpec globSpecIfAny;
+ private AppManifest appManifestIfAny;
private MetaModelValidator metaModelValidatorOverride;
private ProgrammingModel programmingModelOverride;
@@ -221,13 +221,13 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
return this;
}
- public Builder with(GlobSpec globSpec) {
- this.globSpecIfAny = globSpec;
+ public Builder with(AppManifest appManifest) {
+ this.appManifestIfAny = appManifest;
return this;
}
public Builder withServicesIn(String... packagePrefixes ) {
- if(globSpecIfAny != null) {
+ if(appManifestIfAny != null) {
throw new IllegalStateException("A globSpec has already been provided");
}
if(packagePrefixes.length == 0) {
@@ -249,7 +249,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
}
public Builder withServices(Object... services) {
- if(globSpecIfAny != null) {
+ if(appManifestIfAny != null) {
throw new IllegalStateException("A globSpec has already been provided");
}
this.services.addAll(Arrays.asList(services));
@@ -261,7 +261,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
*/
@Deprecated
public Builder withFixtures(InstallableFixture... fixtures) {
- if(globSpecIfAny != null) {
+ if(appManifestIfAny != null) {
throw new IllegalStateException("A globSpec has already been provided");
}
this.fixtures.addAll(Arrays.asList(fixtures));
@@ -276,7 +276,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
public IsisSystemForTest build() {
final IsisSystemForTest isisSystem =
new IsisSystemForTest(
- globSpecIfAny,
+ appManifestIfAny,
configuration,
programmingModelOverride,
metaModelValidatorOverride,
@@ -332,7 +332,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
}
private IsisSystemForTest(
- final GlobSpec globSpecIfAny,
+ final AppManifest appManifestIfAny,
final IsisConfiguration configurationOverride,
final ProgrammingModel programmingModelOverride,
final MetaModelValidator metaModelValidatorOverride,
@@ -340,7 +340,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
final List<Object> servicesIfAny,
final List<InstallableFixture> fixtures,
final List<Listener> listeners) {
- this.globSpecForComponentProvider = globSpecIfAny;
+ this.appManifestForComponentProvider = appManifestIfAny;
this.configurationForComponentProvider = configurationOverride;
this.programmingModelForComponentProvider = programmingModelOverride;
this.metaModelValidatorForComponentProvider = metaModelValidatorOverride;
@@ -395,7 +395,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
componentProvider = new IsisComponentProviderDefault(
DeploymentType.UNIT_TESTING,
- globSpecForComponentProvider,
+ appManifestForComponentProvider,
servicesForComponentProvider,
fixturesForComponentProvider,
configurationForComponentProvider,
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
index ce36840..619d9cb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.runtime.system;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.core.commons.config.ConfigurationConstants;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -68,7 +69,7 @@ public final class SystemConstants {
/**
- * Key used to lookup {@link org.apache.isis.applib.GlobSpec} (if any) from the {@link IsisConfiguration}.
+ * Key used to lookup {@link AppManifest} (if any) from the {@link IsisConfiguration}.
*/
public static final String GLOB_SPEC_KEY = ConfigurationConstants.ROOT + "globSpec";
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
index 9db01cc..3030a94 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderAbstract.java
@@ -28,7 +28,7 @@ import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
-import org.apache.isis.applib.GlobSpec;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.lang.ClassUtil;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
@@ -49,7 +49,7 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
/**
* may be null.
*/
- protected final GlobSpec globSpec;
+ protected final AppManifest appManifest;
/**
* populated by subclass, in its constructor.
@@ -74,10 +74,10 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
public IsisComponentProviderAbstract(
final DeploymentType deploymentType,
- final GlobSpec globSpec) {
+ final AppManifest appManifest) {
this.deploymentType = deploymentType;
- this.globSpec = globSpec;
+ this.appManifest = appManifest;
}
/**
@@ -93,15 +93,15 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
//region > globSpec helpers
- protected void specifyServicesAndRegisteredEntitiesUsing(final GlobSpec globSpec) {
- final String packageNamesCsv = modulePackageNamesFrom(globSpec);
+ protected void specifyServicesAndRegisteredEntitiesUsing(final AppManifest appManifest) {
+ final String packageNamesCsv = modulePackageNamesFrom(appManifest);
putConfigurationProperty(ServicesInstallerFromAnnotation.PACKAGE_PREFIX_KEY, packageNamesCsv);
putConfigurationProperty(RegisterEntities.PACKAGE_PREFIX_KEY, packageNamesCsv);
}
- private String modulePackageNamesFrom(final GlobSpec globSpec) {
- List<Class<?>> modules = globSpec.getModules();
+ private String modulePackageNamesFrom(final AppManifest appManifest) {
+ List<Class<?>> modules = appManifest.getModules();
if (modules == null || modules.isEmpty()) {
throw new IllegalArgumentException(
"If a globSpec is provided then it must return a non-empty set of modules");
@@ -129,8 +129,8 @@ public abstract class IsisComponentProviderAbstract implements IsisComponentProv
};
}
- protected void overrideConfigurationUsing(final GlobSpec globSpec) {
- final Map<String, String> configurationProperties = globSpec.getConfigurationProperties();
+ protected void overrideConfigurationUsing(final AppManifest appManifest) {
+ final Map<String, String> configurationProperties = appManifest.getConfigurationProperties();
if (configurationProperties != null) {
for (Map.Entry<String, String> configProp : configurationProperties.entrySet()) {
putConfigurationProperty(configProp.getKey(), configProp.getValue());
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
index fc9ef58..80576f8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.runtime.systemusinginstallers;
import java.util.Collection;
import java.util.List;
-import org.apache.isis.applib.GlobSpec;
+import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
@@ -65,25 +65,25 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
this.installerLookup = installerLookup;
- if(globSpec != null) {
+ if(appManifest != null) {
- specifyServicesAndRegisteredEntitiesUsing(globSpec);
+ specifyServicesAndRegisteredEntitiesUsing(appManifest);
// by using the annotations installer (as opposed to the configuration-and-annotations installer),
// any services defined with the "isis.services" key will be IGNORED.
putConfigurationProperty(SystemConstants.SERVICES_INSTALLER_KEY, ServicesInstallerFromAnnotation.NAME);
- final String authenticationMechanism = globSpec.getAuthenticationMechanism();
+ final String authenticationMechanism = appManifest.getAuthenticationMechanism();
putConfigurationProperty(SystemConstants.AUTHENTICATION_INSTALLER_KEY, authenticationMechanism);
- final String authorizationMechanism = globSpec.getAuthorizationMechanism();
+ final String authorizationMechanism = appManifest.getAuthorizationMechanism();
putConfigurationProperty(SystemConstants.AUTHORIZATION_INSTALLER_KEY, authorizationMechanism);
- List<Class<? extends FixtureScript>> fixtureClasses = globSpec.getFixtures();
+ List<Class<? extends FixtureScript>> fixtureClasses = appManifest.getFixtures();
final String fixtureClassNamesCsv = fixtureClassNamesFrom(fixtureClasses);
putConfigurationProperty(FixturesInstallerFromConfiguration.FIXTURES, fixtureClassNamesCsv);
- overrideConfigurationUsing(globSpec);
+ overrideConfigurationUsing(appManifest);
}
// loading installers causes the configuration to be appended to successively
@@ -143,9 +143,9 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProviderA
ensureInitialized();
}
- private static GlobSpec globSpecIfAny(final InstallerLookup installerLookup) {
+ private static AppManifest globSpecIfAny(final InstallerLookup installerLookup) {
final String globSpecIfAny = installerLookup.getConfiguration().getString(SystemConstants.GLOB_SPEC_KEY);
- return globSpecIfAny != null? InstanceUtil.createInstance(globSpecIfAny, GlobSpec.class): null;
+ return globSpecIfAny != null? InstanceUtil.createInstance(globSpecIfAny, AppManifest.class): null;
}
protected void doPutConfigurationProperty(final String key, final String value) {
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/fixture/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/fixture/pom.xml b/example/application/simpleapp/fixture/pom.xml
index b1435ed..664b98e 100644
--- a/example/application/simpleapp/fixture/pom.xml
+++ b/example/application/simpleapp/fixture/pom.xml
@@ -34,6 +34,13 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>simpleapp-dom</artifactId>
+ <exclusions>
+ <exclusion>
+ <!-- so don't pick up transitive dependency to asm 4.0.0 -->
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-enhancer</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureModule.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureModule.java b/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureModule.java
new file mode 100644
index 0000000..8a707e6
--- /dev/null
+++ b/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureModule.java
@@ -0,0 +1,24 @@
+/*
+ * 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 domainapp.fixture;
+
+public final class DomainAppFixtureModule {
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureScriptsSpecificationProvider.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureScriptsSpecificationProvider.java b/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureScriptsSpecificationProvider.java
new file mode 100644
index 0000000..92f56cd
--- /dev/null
+++ b/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixtureScriptsSpecificationProvider.java
@@ -0,0 +1,44 @@
+/*
+ * 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 domainapp.fixture;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
+import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecificationProvider;
+
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+
+/**
+ * Specifies where to find fixtures, and other settings.
+ */
+@DomainService(nature = NatureOfService.DOMAIN)
+public class DomainAppFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
+ @Override
+ public FixtureScriptsSpecification getSpecification() {
+ return FixtureScriptsSpecification
+ .builder(DomainAppFixtureScriptsSpecificationProvider.class)
+ .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
+ .withRunScriptDefault(RecreateSimpleObjects.class)
+ .withRunScriptDropDown(FixtureScriptsSpecification.DropDownPolicy.CHOICES)
+ .withRecreate(RecreateSimpleObjects.class)
+ .build();
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java b/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java
deleted file mode 100644
index ab6b6b4..0000000
--- a/example/application/simpleapp/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java
+++ /dev/null
@@ -1,44 +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 domainapp.fixture;
-
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.fixturescripts.FixtureScripts;
-import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
-import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecificationProvider;
-
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-
-/**
- * Specifies where to find fixtures, and other settings.
- */
-@DomainService(nature = NatureOfService.DOMAIN)
-public class DomainAppFixturesProvider implements FixtureScriptsSpecificationProvider {
- @Override
- public FixtureScriptsSpecification getSpecification() {
- return FixtureScriptsSpecification
- .builder(DomainAppFixturesProvider.class)
- .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
- .withRunScriptDefault(RecreateSimpleObjects.class)
- .withRunScriptDropDown(FixtureScriptsSpecification.DropDownPolicy.CHOICES)
- .withRecreate(RecreateSimpleObjects.class)
- .build();
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/pom.xml b/example/application/simpleapp/glob/pom.xml
deleted file mode 100644
index 0281d43..0000000
--- a/example/application/simpleapp/glob/pom.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?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.example.application</groupId>
- <artifactId>simpleapp</artifactId>
- <version>1.9.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>simpleapp-glob</artifactId>
- <name>Simple App Glob</name>
-
- <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>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-dom</artifactId>
- <exclusions>
- <exclusion>
- <!-- so don't pick up transitive dependency to asm 4.0.0 -->
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-enhancer</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-fixture</artifactId>
- <exclusions>
- <exclusion>
- <!-- so don't pick up transitive dependency to asm 4.0.0 -->
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-enhancer</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- </dependencies>
-
-</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpec.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpec.java b/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpec.java
deleted file mode 100644
index 14a6896..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpec.java
+++ /dev/null
@@ -1,91 +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 domainapp.glob;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.collect.Lists;
-
-import org.apache.isis.applib.GlobSpec;
-import org.apache.isis.applib.fixturescripts.FixtureScript;
-
-import domainapp.dom.DomainAppDomainModule;
-import domainapp.fixture.DomainAppFixturesProvider;
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-
-/**
- * Bootstrap the application.
- */
-public class DomainAppGlobSpec implements GlobSpec {
-
- /**
- * Load all services and entities found in (the packages and subpackages within) these modules
- */
- @Override
- public List<Class<?>> getModules() {
- return Arrays.asList(
- DomainAppDomainModule.class, // entities and repositories
- DomainAppFixturesProvider.class, // fixture configuration
- DomainAppGlobSpec.class // home page service
- );
- }
-
- /**
- * Use shiro for authentication.
- *
- * <p>
- * NB: this is ignored for integration tests, which always use "bypass".
- * </p>
- */
- @Override
- public String getAuthenticationMechanism() {
- return "shiro";
- }
-
- /**
- * Use shiro for authorization.
- *
- * <p>
- * NB: this is ignored for integration tests, which always use "bypass".
- * </p>
- */
- @Override
- public String getAuthorizationMechanism() {
- return "shiro";
- }
-
- /**
- * Run these fixtures.
- */
- @Override
- public List<Class<? extends FixtureScript>> getFixtures() {
- return Lists.newArrayList(RecreateSimpleObjects.class);
- }
-
- /**
- * No additional overrides
- */
- @Override
- public Map<String, String> getConfigurationProperties() {
- return null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecBypass.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecBypass.java b/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecBypass.java
deleted file mode 100644
index 9e3fe00..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecBypass.java
+++ /dev/null
@@ -1,35 +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 domainapp.glob;
-
-/**
- * Bypasses security, meaning any user/password combination can be used to login.
- */
-public class DomainAppGlobSpecBypass extends DomainAppGlobSpec {
-
- @Override
- public String getAuthenticationMechanism() {
- return "bypass";
- }
-
- @Override
- public String getAuthorizationMechanism() {
- return "bypass";
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecNoFixtures.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecNoFixtures.java b/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecNoFixtures.java
deleted file mode 100644
index 24f221a..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/DomainAppGlobSpecNoFixtures.java
+++ /dev/null
@@ -1,36 +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 domainapp.glob;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.applib.fixturescripts.FixtureScript;
-
-/**
- * Run the app but without setting up any fixtures.
- */
-public class DomainAppGlobSpecNoFixtures extends DomainAppGlobSpec {
-
- @Override
- public List<Class<? extends FixtureScript>> getFixtures() {
- return Collections.emptyList();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageService.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageService.java b/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageService.java
deleted file mode 100644
index 3870c27..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageService.java
+++ /dev/null
@@ -1,51 +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 domainapp.glob.app.homepage;
-
-import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.HomePage;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-@DomainService(
- nature = NatureOfService.VIEW_CONTRIBUTIONS_ONLY // trick to suppress the actions from the top-level menu
-)
-public class HomePageService {
-
- //region > homePage (action)
-
- @Action(
- semantics = SemanticsOf.SAFE
- )
- @HomePage
- public HomePageViewModel homePage() {
- return container.injectServicesInto(new HomePageViewModel());
- }
-
- //endregion
-
- //region > injected services
-
- @javax.inject.Inject
- DomainObjectContainer container;
-
- //endregion
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.java b/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.java
deleted file mode 100644
index c7c584c..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.java
+++ /dev/null
@@ -1,50 +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 domainapp.glob.app.homepage;
-
-import java.util.List;
-
-import org.apache.isis.applib.annotation.ViewModel;
-
-import domainapp.dom.simple.SimpleObject;
-import domainapp.dom.simple.SimpleObjects;
-
-@ViewModel
-public class HomePageViewModel {
-
- //region > title
- public String title() {
- return getObjects().size() + " objects";
- }
- //endregion
-
- //region > object (collection)
- @org.apache.isis.applib.annotation.HomePage
- public List<SimpleObject> getObjects() {
- return simpleObjects.listAll();
- }
- //endregion
-
- //region > injected services
-
- @javax.inject.Inject
- SimpleObjects simpleObjects;
-
- //endregion
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.layout.json
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.layout.json b/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.layout.json
deleted file mode 100644
index 34f78e0..0000000
--- a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.layout.json
+++ /dev/null
@@ -1,43 +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.
- */
-{
- "columns": [
- {
- "span": 0,
- "memberGroups": {}
- },
- {
- "span": 0,
- "memberGroups": {}
- },
- {
- "span": 0,
- "memberGroups": {}
- },
- {
- "span": 12,
- "collections": {
- "objects": {
- "collectionLayout": {
- "render": "EAGERLY"
- }
- }
- }
- }
- ],
- "actions": {}
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.png
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.png b/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.png
deleted file mode 100644
index cb03785..0000000
Binary files a/example/application/simpleapp/glob/src/main/java/domainapp/glob/app/homepage/HomePageViewModel.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/pom.xml b/example/application/simpleapp/home/pom.xml
new file mode 100644
index 0000000..f9bf5a2
--- /dev/null
+++ b/example/application/simpleapp/home/pom.xml
@@ -0,0 +1,68 @@
+<?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.example.application</groupId>
+ <artifactId>simpleapp</artifactId>
+ <version>1.9.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>simpleapp-home</artifactId>
+ <name>Simple App Home</name>
+
+ <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>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>simpleapp-fixture</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-wrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-runtime</artifactId>
+ </dependency>
+
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifest.java b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifest.java
new file mode 100644
index 0000000..f821bc0
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifest.java
@@ -0,0 +1,100 @@
+/*
+ * 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 domainapp.home;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.collect.Lists;
+
+import org.apache.isis.applib.AppManifest;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+import domainapp.dom.DomainAppDomainModule;
+import domainapp.fixture.DomainAppFixtureModule;
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+
+/**
+ * Bootstrap the application.
+ */
+public class SimpleAppManifest implements AppManifest {
+
+ /**
+ * Load all services and entities found in (the packages and subpackages within) these modules
+ */
+ @Override
+ public List<Class<?>> getModules() {
+ return Arrays.asList(
+ DomainAppDomainModule.class, // domain (entities and repositories)
+ DomainAppFixtureModule.class, // fixtures
+ SimpleAppManifest.class // home page service
+ );
+ }
+
+ /**
+ * No additional services.
+ */
+ @Override
+ public List<Class<?>> getAdditionalServices() {
+ return Collections.emptyList();
+ }
+
+ /**
+ * Use shiro for authentication.
+ *
+ * <p>
+ * NB: this is ignored for integration tests, which always use "bypass".
+ * </p>
+ */
+ @Override
+ public String getAuthenticationMechanism() {
+ return "shiro";
+ }
+
+ /**
+ * Use shiro for authorization.
+ *
+ * <p>
+ * NB: this is ignored for integration tests, which always use "bypass".
+ * </p>
+ */
+ @Override
+ public String getAuthorizationMechanism() {
+ return "shiro";
+ }
+
+ /**
+ * Run these fixtures.
+ */
+ @Override
+ public List<Class<? extends FixtureScript>> getFixtures() {
+ return Lists.newArrayList(RecreateSimpleObjects.class);
+ }
+
+ /**
+ * No additional overrides
+ */
+ @Override
+ public Map<String, String> getConfigurationProperties() {
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestBypass.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestBypass.java b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestBypass.java
new file mode 100644
index 0000000..97298a3
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestBypass.java
@@ -0,0 +1,35 @@
+/*
+ * 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 domainapp.home;
+
+/**
+ * Bypasses security, meaning any user/password combination can be used to login.
+ */
+public class SimpleAppManifestBypass extends SimpleAppManifest {
+
+ @Override
+ public String getAuthenticationMechanism() {
+ return "bypass";
+ }
+
+ @Override
+ public String getAuthorizationMechanism() {
+ return "bypass";
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestNoFixtures.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestNoFixtures.java b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestNoFixtures.java
new file mode 100644
index 0000000..b13c15d
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/SimpleAppManifestNoFixtures.java
@@ -0,0 +1,36 @@
+/*
+ * 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 domainapp.home;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+/**
+ * Run the app but without setting up any fixtures.
+ */
+public class SimpleAppManifestNoFixtures extends SimpleAppManifest {
+
+ @Override
+ public List<Class<? extends FixtureScript>> getFixtures() {
+ return Collections.emptyList();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageService.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageService.java b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageService.java
new file mode 100644
index 0000000..17a9c79
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageService.java
@@ -0,0 +1,51 @@
+/*
+ * 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 domainapp.home.services.homepage;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.HomePage;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+@DomainService(
+ nature = NatureOfService.VIEW_CONTRIBUTIONS_ONLY // trick to suppress the actions from the top-level menu
+)
+public class HomePageService {
+
+ //region > homePage (action)
+
+ @Action(
+ semantics = SemanticsOf.SAFE
+ )
+ @HomePage
+ public HomePageViewModel homePage() {
+ return container.injectServicesInto(new HomePageViewModel());
+ }
+
+ //endregion
+
+ //region > injected services
+
+ @javax.inject.Inject
+ DomainObjectContainer container;
+
+ //endregion
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.java b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.java
new file mode 100644
index 0000000..d20c432
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.java
@@ -0,0 +1,50 @@
+/*
+ * 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 domainapp.home.services.homepage;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.ViewModel;
+
+import domainapp.dom.simple.SimpleObject;
+import domainapp.dom.simple.SimpleObjects;
+
+@ViewModel
+public class HomePageViewModel {
+
+ //region > title
+ public String title() {
+ return getObjects().size() + " objects";
+ }
+ //endregion
+
+ //region > object (collection)
+ @org.apache.isis.applib.annotation.HomePage
+ public List<SimpleObject> getObjects() {
+ return simpleObjects.listAll();
+ }
+ //endregion
+
+ //region > injected services
+
+ @javax.inject.Inject
+ SimpleObjects simpleObjects;
+
+ //endregion
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.layout.json
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.layout.json b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.layout.json
new file mode 100644
index 0000000..34f78e0
--- /dev/null
+++ b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.layout.json
@@ -0,0 +1,43 @@
+/**
+ * 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.
+ */
+{
+ "columns": [
+ {
+ "span": 0,
+ "memberGroups": {}
+ },
+ {
+ "span": 0,
+ "memberGroups": {}
+ },
+ {
+ "span": 0,
+ "memberGroups": {}
+ },
+ {
+ "span": 12,
+ "collections": {
+ "objects": {
+ "collectionLayout": {
+ "render": "EAGERLY"
+ }
+ }
+ }
+ }
+ ],
+ "actions": {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.png
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.png b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.png
new file mode 100644
index 0000000..cb03785
Binary files /dev/null and b/example/application/simpleapp/home/src/main/java/domainapp/home/services/homepage/HomePageViewModel.png differ
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/integtests/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/integtests/pom.xml b/example/application/simpleapp/integtests/pom.xml
index d40db1d..dade0b3 100644
--- a/example/application/simpleapp/integtests/pom.xml
+++ b/example/application/simpleapp/integtests/pom.xml
@@ -85,7 +85,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-glob</artifactId>
+ <artifactId>simpleapp-home</artifactId>
</dependency>
<dependency>
@@ -108,15 +108,6 @@
</dependency>
<dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-wrapper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java
index 85a92f7..135a71a 100644
--- a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java
+++ b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java
@@ -21,7 +21,7 @@ package domainapp.integtests.bootstrap;
import org.apache.isis.core.integtestsupport.IsisSystemForTest;
import org.apache.isis.objectstore.jdo.datanucleus.IsisConfigurationForJdoIntegTests;
-import domainapp.glob.DomainAppGlobSpec;
+import domainapp.home.SimpleAppManifest;
public class SimpleAppSystemInitializer {
@@ -30,7 +30,7 @@ public class SimpleAppSystemInitializer {
if(isft == null) {
isft = new IsisSystemForTest.Builder()
.withLoggingAt(org.apache.log4j.Level.INFO)
- .with(new DomainAppGlobSpec())
+ .with(new SimpleAppManifest())
.with(new IsisConfigurationForJdoIntegTests())
.build()
.setUpSystem();
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index 9ac4077..d62bd19 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -334,7 +334,7 @@
<modules>
<module>dom</module>
<module>fixture</module>
- <module>glob</module>
+ <module>home</module>
<module>integtests</module>
<module>webapp</module>
</modules>
@@ -378,7 +378,7 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-glob</artifactId>
+ <artifactId>simpleapp-home</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml
index 006583c..dcf16c9 100644
--- a/example/application/simpleapp/webapp/pom.xml
+++ b/example/application/simpleapp/webapp/pom.xml
@@ -145,7 +145,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-glob</artifactId>
+ <artifactId>simpleapp-home</artifactId>
</dependency>
<!-- other isis components -->
@@ -162,22 +162,12 @@
<artifactId>isis-core-security-shiro</artifactId>
</dependency>
-
<!-- isis core -->
<dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-wrapper</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
<artifactId>isis-core-security</artifactId>
</dependency>
-
<!-- to run using WebServer (optional) -->
<dependency>
<groupId>org.apache.isis.core</groupId>
http://git-wip-us.apache.org/repos/asf/isis/blob/b134bdad/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 330c5b1..825ed7d 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -23,9 +23,9 @@
#################################################################################
-isis.globSpec=domainapp.glob.DomainAppGlobSpec
-#isis.globSpec=domainapp.glob.DomainAppGlobSpecBypass
-#isis.globSpec=domainapp.glob.DomainAppGlobSpecNoFixtures
+isis.globSpec=domainapp.home.SimpleAppManifest
+#isis.globSpec=domainapp.home.SimpleAppAppManifestBypass
+#isis.globSpec=domainapp.home.SimpleAppManifestNoFixtures