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 2017/08/02 14:42:22 UTC
isis git commit: ISIS-1686: simpleapp archetype now uses new
AppManifestAbstract etc.
Repository: isis
Updated Branches:
refs/heads/master 98048bb90 -> 28fdfeb5e
ISIS-1686: simpleapp archetype now uses new AppManifestAbstract etc.
also renames the Builder's withModules to forModules, to avoid possible confusion with the withAdditionalModules method
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/28fdfeb5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/28fdfeb5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/28fdfeb5
Branch: refs/heads/master
Commit: 28fdfeb5e92885804ae549f8f0723c83ee1eb945
Parents: 98048bb
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Aug 2 15:41:52 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Aug 2 15:41:52 2017 +0100
----------------------------------------------------------------------
.../apache/isis/applib/AppManifestAbstract.java | 6 +-
.../IntegrationTestAbstract2.java | 9 ++
.../application/HelloWorldAppManifest.java | 2 +-
.../manifest/DomainAppAppManifest.java | 126 ++-----------------
.../DomainAppAppManifestBypassSecurity.java | 4 +-
.../DomainAppAppManifestWithFixtures.java | 10 +-
...ppAppManifestWithFixturesBypassSecurity.java | 5 +-
.../integtests/DomainAppIntegTestAbstract.java | 33 +----
.../modules/simple/SimpleModuleManifest.java | 48 ++-----
.../SimpleModuleIntegTestAbstract.java | 34 +----
10 files changed, 44 insertions(+), 233 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
index 9c3fb0b..78df5f3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
@@ -194,11 +194,11 @@ public abstract class AppManifestAbstract implements AppManifest {
/**
* Factory method.
*/
- public static Builder withModules(final List<Class<?>> modules) {
+ public static Builder forModules(final List<Class<?>> modules) {
return new Builder().withAdditionalModules(modules);
}
- public static Builder withModules(final Class<?>... modules) {
- return withModules(Arrays.asList(modules));
+ public static Builder forModules(final Class<?>... modules) {
+ return forModules(Arrays.asList(modules));
}
public Builder withAdditionalModules(final Class<?>... modules) {
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract2.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract2.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract2.java
index 240d739..6f50644 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract2.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract2.java
@@ -31,6 +31,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.applib.AppManifest;
+import org.apache.isis.applib.AppManifestAbstract;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
import org.apache.isis.applib.services.xactn.TransactionService;
@@ -45,6 +46,14 @@ public abstract class IntegrationTestAbstract2 extends IntegrationTestAbstract {
private static final Logger LOG = LoggerFactory.getLogger(IntegrationTestAbstract2.class);
/**
+ * Convenience, will call {@link AppManifestAbstract.Builder#build() build} on the provided
+ * {@link AppManifestAbstract.Builder Builder}, then delegate to {@link #bootstrapUsing(AppManifest)}.
+ */
+ protected static void bootstrapUsing(final AppManifestAbstract.Builder builder) {
+ bootstrapUsing(builder.build());
+ }
+
+ /**
* Intended to be called from the subclass' <code>@BeforeClass init()</code> method.
*/
protected static void bootstrapUsing(final AppManifest appManifest) {
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java b/example/application/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
index 1357540..b35c7f2 100644
--- a/example/application/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
+++ b/example/application/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
@@ -28,7 +28,7 @@ import domainapp.dom.HelloWorldModule;
public class HelloWorldAppManifest extends AppManifestAbstract {
public HelloWorldAppManifest() {
- super(Builder.withModules(HelloWorldModule.class)
+ super(Builder.forModules(HelloWorldModule.class)
.withPropertiesFile("isis-non-changing.properties"));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
index 8d9afea..d0aedff 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
@@ -18,19 +18,7 @@
*/
package domainapp.application.manifest;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import org.apache.isis.applib.AppManifest;
-import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.AppManifestAbstract;
import domainapp.application.fixture.DomainAppApplicationModuleFixtureSubmodule;
import domainapp.application.services.DomainAppApplicationModuleServicesSubmodule;
@@ -39,113 +27,17 @@ import domainapp.modules.simple.dom.SimpleModuleDomSubmodule;
/**
* Bootstrap the application.
*/
-public class DomainAppAppManifest implements AppManifest {
+public class DomainAppAppManifest extends AppManifestAbstract {
- private final List<Class<? extends FixtureScript>> fixtureScripts;
- private final String authMechanism;
- private final List<Class<?>> additionalModules;
+ public static final Builder BUILDER = Builder.forModules(
+ SimpleModuleDomSubmodule.class,
+ DomainAppApplicationModuleFixtureSubmodule.class,
+ DomainAppApplicationModuleServicesSubmodule.class
+ )
+ .withPropertiesFile("isis-non-changing.properties", DomainAppAppManifest.class);
public DomainAppAppManifest() {
- this(
- Collections.<Class<? extends FixtureScript>>emptyList(),
- null,
- Collections.<Class<?>>emptyList()
- );
- }
-
- public DomainAppAppManifest(
- final List<Class<? extends FixtureScript>> fixtureScripts,
- final String authMechanism,
- final List<Class<?>> additionalModules) {
- this.fixtureScripts = elseEmptyIfNull(fixtureScripts);
- this.authMechanism = authMechanism != null ? authMechanism : "shiro";
- this.additionalModules = elseEmptyIfNull(additionalModules);
- }
-
- private static <T> List<T> elseEmptyIfNull(final List<T> list) {
- return list == null ? Collections.<T>emptyList() : list;
- }
-
- /**
- * Load all services and entities found in (the packages and subpackages within) these modules
- */
- @Override
- public List<Class<?>> getModules() {
- List<Class<?>> modules = Lists.newArrayList();
- modules.addAll(Arrays.asList(
- SimpleModuleDomSubmodule.class,
- DomainAppApplicationModuleFixtureSubmodule.class,
- DomainAppApplicationModuleServicesSubmodule.class
- ));
- modules.addAll(additionalModules);
- return modules;
- }
-
- /**
- * No additional services.
- */
- @Override
- public List<Class<?>> getAdditionalServices() {
- return Collections.emptyList();
- }
-
- /**
- * Use shiro for authentication.
- */
- @Override
- public String getAuthenticationMechanism() {
- return authMechanism;
- }
-
- /**
- * Use shiro for authorization.
- */
- @Override
- public String getAuthorizationMechanism() {
- return authMechanism;
- }
-
- /**
- * No fixtures.
- */
- @Override
- public List<Class<? extends FixtureScript>> getFixtures() {
- return fixtureScripts;
- }
-
- /**
- * No overrides.
- */
- @Override
- public Map<String, String> getConfigurationProperties() {
- final Map<String, String> props = Maps.newHashMap();
-
- loadPropsInto(props, "isis-non-changing.properties");
-
- if(!fixtureScripts.isEmpty()) {
- props.put("isis.persistor.datanucleus.install-fixtures", "true");
- }
-
- return props;
- }
-
- static void loadPropsInto(final Map<String, String> props, final String propertiesFile) {
- final Properties properties = new Properties();
- try {
- try (final InputStream stream =
- DomainAppAppManifest.class.getResourceAsStream(propertiesFile)) {
- properties.load(stream);
- for (Object key : properties.keySet()) {
- final Object value = properties.get(key);
- if(key instanceof String && value instanceof String) {
- props.put((String)key, (String)value);
- }
- }
- }
- } catch (IOException e) {
- throw new RuntimeException(
- String.format("Failed to load '%s' file ", propertiesFile), e);
- }
+ super(BUILDER);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
index cc96674..f4bb9ef 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
@@ -23,7 +23,7 @@ package domainapp.application.manifest;
*/
public class DomainAppAppManifestBypassSecurity extends DomainAppAppManifest {
- public DomainAppAppManifestBypassSecurity() {
- super(null, "bypass", null);
+ @Override protected String overrideAuthMechanism() {
+ return "bypass";
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
index 79d0ce1..b6313d9 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
@@ -20,7 +20,7 @@ package domainapp.application.manifest;
import java.util.List;
-import com.google.common.collect.Lists;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
@@ -29,12 +29,8 @@ import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
*/
public class DomainAppAppManifestWithFixtures extends DomainAppAppManifest {
- public DomainAppAppManifestWithFixtures() {
- this(null);
- }
-
- public DomainAppAppManifestWithFixtures(final String authMechanism) {
- super((List)Lists.newArrayList(CreateSimpleObjects.class), authMechanism, null);
+ @Override protected void overrideFixtures(final List<Class<? extends FixtureScript>> fixtureScripts) {
+ fixtureScripts.add(CreateSimpleObjects.class);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
index 5390109..e0b772a 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
@@ -23,7 +23,8 @@ package domainapp.application.manifest;
*/
public class DomainAppAppManifestWithFixturesBypassSecurity extends DomainAppAppManifestWithFixtures {
- public DomainAppAppManifestWithFixturesBypassSecurity() {
- super("bypass");
+ @Override protected String overrideAuthMechanism() {
+ return "bypass";
}
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java b/example/application/simpleapp/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
index ac4bca3..02ee1e1 100644
--- a/example/application/simpleapp/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
+++ b/example/application/simpleapp/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
@@ -18,44 +18,17 @@
*/
package domainapp.application.integtests;
-import java.util.Map;
-
-import com.google.common.collect.Maps;
-
import org.junit.BeforeClass;
-import org.apache.isis.core.integtestsupport.IntegrationTestAbstract;
-import org.apache.isis.core.integtestsupport.IsisSystemForTest;
-import org.apache.isis.core.integtestsupport.scenarios.ScenarioExecutionForIntegration;
+import org.apache.isis.core.integtestsupport.IntegrationTestAbstract2;
import domainapp.application.manifest.DomainAppAppManifest;
-public abstract class DomainAppIntegTestAbstract extends IntegrationTestAbstract {
+public abstract class DomainAppIntegTestAbstract extends IntegrationTestAbstract2 {
@BeforeClass
public static void initSystem() {
- org.apache.log4j.PropertyConfigurator.configure("logging-integtest.properties");
- IsisSystemForTest isft = IsisSystemForTest.getElseNull();
- if(isft == null) {
- isft = new IsisSystemForTest.Builder()
- .withLoggingAt(org.apache.log4j.Level.INFO)
- .with(new DomainAppAppManifest() {
- @Override
- public Map<String, String> getConfigurationProperties() {
- final Map<String, String> map = Maps.newHashMap();
- Util.withJavaxJdoRunInMemoryProperties(map);
- Util.withDataNucleusProperties(map);
- Util.withIsisIntegTestProperties(map);
- return map;
- }
- })
- .build();
- isft.setUpSystem();
- IsisSystemForTest.set(isft);
- }
-
- // instantiating will install onto ThreadLocal
- new ScenarioExecutionForIntegration();
+ bootstrapUsing(new DomainAppAppManifest());
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
index 9d305d1..961695d 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
@@ -18,13 +18,7 @@
*/
package domainapp.modules.simple;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.applib.AppManifest;
-import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.AppManifestAbstract;
import domainapp.modules.simple.dom.SimpleModuleDomSubmodule;
import domainapp.modules.simple.fixture.SimpleModuleFixtureSubmodule;
@@ -32,42 +26,16 @@ import domainapp.modules.simple.fixture.SimpleModuleFixtureSubmodule;
/**
* Used by <code>isis-maven-plugin</code> (build-time validation of the module) and also by module-level integration tests.
*/
-public class SimpleModuleManifest implements AppManifest {
+public class SimpleModuleManifest extends AppManifestAbstract {
- @Override
- public List<Class<?>> getModules() {
- return Arrays.<Class<?>>asList(
- SimpleModuleDomSubmodule.class,
- SimpleModuleFixtureSubmodule.class
- );
- }
+ public static final Builder BUILDER = Builder.forModules(
+ SimpleModuleDomSubmodule.class,
+ SimpleModuleFixtureSubmodule.class
+ );
- @Override
- public List<Class<?>> getAdditionalServices() {
- return Collections.emptyList();
+ public SimpleModuleManifest() {
+ super(BUILDER);
}
- @Override
- public String getAuthenticationMechanism() {
- return null;
- }
-
- @Override
- public String getAuthorizationMechanism() {
- return null;
- }
-
- @Override
- public List<Class<? extends FixtureScript>> getFixtures() {
- return null;
- }
-
- /**
- * No overrides.
- */
- @Override
- public Map<String, String> getConfigurationProperties() {
- return null;
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/28fdfeb5/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index ebd601d..57f0cb6 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -31,45 +31,17 @@ 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 org.apache.isis.core.integtestsupport.IntegrationTestAbstract;
+import org.apache.isis.core.integtestsupport.IntegrationTestAbstract2;
import org.apache.isis.core.integtestsupport.IsisSystemForTest;
import org.apache.isis.core.integtestsupport.scenarios.ScenarioExecutionForIntegration;
import domainapp.modules.simple.SimpleModuleManifest;
-public abstract class SimpleModuleIntegTestAbstract extends IntegrationTestAbstract {
+public abstract class SimpleModuleIntegTestAbstract extends IntegrationTestAbstract2 {
@BeforeClass
public static void initSystem() {
- org.apache.log4j.PropertyConfigurator.configure("logging-integtest.properties");
- IsisSystemForTest isft = IsisSystemForTest.getElseNull();
- if(isft == null) {
- isft = new IsisSystemForTest.Builder()
- .withLoggingAt(org.apache.log4j.Level.INFO)
- .with(new SimpleModuleManifest() {
- @Override
- public Map<String, String> getConfigurationProperties() {
- final Map<String, String> map = Maps.newHashMap();
- Util.withJavaxJdoRunInMemoryProperties(map);
- Util.withDataNucleusProperties(map);
- Util.withIsisIntegTestProperties(map);
- // same as in isis.properties
- map.put("isis.objects.editing","false");
- return map;
- }
-
- @Override public List<Class<?>> getAdditionalServices() {
- return (List)Lists.newArrayList(ModuleFixtureScriptsSpecificationProvider.class);
- }
- })
-
- .build();
- isft.setUpSystem();
- IsisSystemForTest.set(isft);
- }
-
- // instantiating will install onto ThreadLocal
- new ScenarioExecutionForIntegration();
+ bootstrapUsing(SimpleModuleManifest.BUILDER.withConfigurationProperty("isis.objects.editing","false"));
}
@DomainService(nature = NatureOfService.DOMAIN)