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 2016/11/21 10:23:14 UTC
[2/5] isis git commit: ISIS-1538: reworks simpleapp into more modular
structure; now uses mavenmixin's.
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
new file mode 100644
index 0000000..b3e7ea4
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
@@ -0,0 +1,77 @@
+/*
+ * 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.modules.simple.dom.impl;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+
+@DomainService(
+ nature = NatureOfService.VIEW_MENU_ONLY,
+ repositoryFor = SimpleObject.class
+)
+@DomainServiceLayout(
+ named = "Simple Objects",
+ menuOrder = "10"
+)
+public class SimpleObjectMenu {
+
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
+ @MemberOrder(sequence = "1")
+ public List<SimpleObject> listAll() {
+ return simpleObjectRepository.listAll();
+ }
+
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
+ @MemberOrder(sequence = "2")
+ public List<SimpleObject> findByName(
+ @ParameterLayout(named="Name")
+ final String name
+ ) {
+ return simpleObjectRepository.findByName(name);
+ }
+
+
+ public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjectMenu> {}
+ @Action(domainEvent = CreateDomainEvent.class)
+ @MemberOrder(sequence = "3")
+ public SimpleObject create(
+ @ParameterLayout(named="Name")
+ final String name) {
+ return simpleObjectRepository.create(name);
+ }
+
+
+ @javax.inject.Inject
+ SimpleObjectRepository simpleObjectRepository;
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
new file mode 100644
index 0000000..5c9fc89
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
@@ -0,0 +1,58 @@
+/*
+ * 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.modules.simple.dom.impl;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.query.QueryDefault;
+import org.apache.isis.applib.services.registry.ServiceRegistry2;
+import org.apache.isis.applib.services.repository.RepositoryService;
+
+@DomainService(
+ nature = NatureOfService.DOMAIN,
+ repositoryFor = SimpleObject.class
+)
+public class SimpleObjectRepository {
+
+ public List<SimpleObject> listAll() {
+ return repositoryService.allInstances(SimpleObject.class);
+ }
+
+ public List<SimpleObject> findByName(final String name) {
+ return repositoryService.allMatches(
+ new QueryDefault<>(
+ SimpleObject.class,
+ "findByName",
+ "name", name));
+ }
+
+ public SimpleObject create(final String name) {
+ final SimpleObject object = new SimpleObject(name);
+ serviceRegistry.injectServicesInto(object);
+ repositoryService.persist(object);
+ return object;
+ }
+
+ @javax.inject.Inject
+ RepositoryService repositoryService;
+ @javax.inject.Inject
+ ServiceRegistry2 serviceRegistry;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleModuleFixtureSubmodule.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleModuleFixtureSubmodule.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleModuleFixtureSubmodule.java
new file mode 100644
index 0000000..0ac5838
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleModuleFixtureSubmodule.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.modules.simple.fixture;
+
+public final class SimpleModuleFixtureSubmodule {
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/data/SimpleObjectMenu_create.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/data/SimpleObjectMenu_create.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/data/SimpleObjectMenu_create.java
new file mode 100644
index 0000000..cb22a8b
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/data/SimpleObjectMenu_create.java
@@ -0,0 +1,58 @@
+/*
+ * 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.modules.simple.fixture.data;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+public class SimpleObjectMenu_create extends FixtureScript {
+
+ /**
+ * Name of the object (required)
+ */
+ @Getter @Setter
+ private String name;
+
+ /**
+ * The created simple object (output).
+ */
+ @Getter
+ private SimpleObject simpleObject;
+
+
+ @Override
+ protected void execute(final ExecutionContext ec) {
+
+ String name = checkParam("name", ec, String.class);
+
+ this.simpleObject = wrap(simpleObjectMenu).create(name);
+ ec.addResult(this, simpleObject);
+ }
+
+ @javax.inject.Inject
+ SimpleObjectMenu simpleObjectMenu;
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/RecreateSimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/RecreateSimpleObjects.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/RecreateSimpleObjects.java
new file mode 100644
index 0000000..a91b29c
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/RecreateSimpleObjects.java
@@ -0,0 +1,76 @@
+/*
+ * 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.modules.simple.fixture.scenario;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.fixture.data.SimpleObjectMenu_create;
+import domainapp.modules.simple.fixture.teardown.SimpleModuleTearDown;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+public class RecreateSimpleObjects extends FixtureScript {
+
+ public final List<String> NAMES = Collections.unmodifiableList(Arrays.asList(
+ "Foo", "Bar", "Baz", "Frodo", "Froyo", "Fizz", "Bip", "Bop", "Bang", "Boo"));
+
+ /**
+ * The number of objects to create, up to 10; optional, defaults to 3.
+ */
+ @Getter @Setter
+ private Integer number;
+
+ /**
+ * The simpleobjects created by this fixture (output).
+ */
+ @Getter
+ private final List<SimpleObject> simpleObjects = Lists.newArrayList();
+
+ @Override
+ protected void execute(final ExecutionContext ec) {
+
+ // defaults
+ final int number = defaultParam("number", ec, 3);
+
+ // validate
+ if(number < 0 || number > NAMES.size()) {
+ throw new IllegalArgumentException(String.format("number must be in range [0,%d)", NAMES.size()));
+ }
+
+ // execute
+ ec.executeChild(this, new SimpleModuleTearDown());
+ for (int i = 0; i < number; i++) {
+ final String name = NAMES.get(i);
+ final SimpleObjectMenu_create fs = new SimpleObjectMenu_create().setName(name);
+ ec.executeChild(this, fs.getName(), fs);
+ simpleObjects.add(fs.getSimpleObject());
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/teardown/SimpleModuleTearDown.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/teardown/SimpleModuleTearDown.java b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/teardown/SimpleModuleTearDown.java
new file mode 100644
index 0000000..66287bf
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/main/java/domainapp/modules/simple/fixture/teardown/SimpleModuleTearDown.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.modules.simple.fixture.teardown;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
+
+public class SimpleModuleTearDown extends FixtureScript {
+
+ @Override
+ protected void execute(ExecutionContext executionContext) {
+ isisJdoSupport.executeUpdate("delete from \"simple\".\"SimpleObject\"");
+ }
+
+
+ @javax.inject.Inject
+ private IsisJdoSupport isisJdoSupport;
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_UnitTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_UnitTest.java b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_UnitTest.java
new file mode 100644
index 0000000..3d6cf23
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_UnitTest.java
@@ -0,0 +1,126 @@
+/**
+ * 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.modules.simple.dom.impl;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.jmock.Expectations;
+import org.jmock.Sequence;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.services.registry.ServiceRegistry2;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SimpleObjectRepository_UnitTest {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ ServiceRegistry2 mockServiceRegistry;
+
+ @Mock
+ RepositoryService mockRepositoryService;
+
+ SimpleObjectRepository simpleObjectRepository;
+
+ @Before
+ public void setUp() throws Exception {
+ simpleObjectRepository = new SimpleObjectRepository();
+ simpleObjectRepository.repositoryService = mockRepositoryService;
+ simpleObjectRepository.serviceRegistry = mockServiceRegistry;
+ }
+
+ public static class Create extends SimpleObjectRepository_UnitTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ final String someName = "Foobar";
+
+ // given
+ final Sequence seq = context.sequence("create");
+ context.checking(new Expectations() {
+ {
+ oneOf(mockServiceRegistry).injectServicesInto(with(any(SimpleObject.class)));
+ inSequence(seq);
+
+ oneOf(mockRepositoryService).persist(with(nameOf(someName)));
+ inSequence(seq);
+ }
+
+ });
+
+ // when
+ final SimpleObject obj = simpleObjectRepository.create(someName);
+
+ // then
+ assertThat(obj).isNotNull();
+ assertThat(obj.getName()).isEqualTo(someName);
+ }
+
+ private static Matcher<SimpleObject> nameOf(final String name) {
+ return new TypeSafeMatcher<SimpleObject>() {
+ @Override
+ protected boolean matchesSafely(final SimpleObject item) {
+ return name.equals(item.getName());
+ }
+
+ @Override
+ public void describeTo(final Description description) {
+ description.appendText("has name of '" + name + "'");
+ }
+ };
+ }
+ }
+
+ public static class ListAll extends SimpleObjectRepository_UnitTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ // given
+ final List<SimpleObject> all = Lists.newArrayList();
+
+ context.checking(new Expectations() {
+ {
+ oneOf(mockRepositoryService).allInstances(SimpleObject.class);
+ will(returnValue(all));
+ }
+ });
+
+ // when
+ final List<SimpleObject> list = simpleObjectRepository.listAll();
+
+ // then
+ assertThat(list).isEqualTo(all);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_UnitTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_UnitTest.java b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_UnitTest.java
new file mode 100644
index 0000000..c22c1ac
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_UnitTest.java
@@ -0,0 +1,49 @@
+/**
+ * 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.modules.simple.dom.impl;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SimpleObject_UnitTest {
+
+ SimpleObject simpleObject;
+
+ @Before
+ public void setUp() throws Exception {
+ simpleObject = new SimpleObject("Foobar");
+ }
+
+ public static class Name extends SimpleObject_UnitTest {
+
+ @Test
+ public void happyCase() throws Exception {
+ // given
+ assertThat(simpleObject.getName()).isEqualTo("Foobar");
+
+ // when
+ String name = "Foobar - updated";
+ simpleObject.setName(name);
+
+ // then
+ assertThat(simpleObject.getName()).isEqualTo(name);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
new file mode 100644
index 0000000..b56a6e8
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -0,0 +1,81 @@
+/*
+ * 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.modules.simple.integtests;
+
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.junit.BeforeClass;
+
+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 org.apache.isis.core.integtestsupport.IntegrationTestAbstract;
+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 {
+
+ @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);
+ return map;
+ }
+
+ @Override public List<Class<?>> getAdditionalServices() {
+ return Lists.newArrayList(ModuleFixtureScriptsSpecificationProvider.class);
+ }
+ })
+
+ .build();
+ isft.setUpSystem();
+ IsisSystemForTest.set(isft);
+ }
+
+ // instantiating will install onto ThreadLocal
+ new ScenarioExecutionForIntegration();
+ }
+
+ @DomainService(nature = NatureOfService.DOMAIN)
+ public static class ModuleFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
+ @Override
+ public FixtureScriptsSpecification getSpecification() {
+ return FixtureScriptsSpecification.builder("domainapp.modules.simple").with(
+ FixtureScripts.MultipleExecutionStrategy.EXECUTE_ONCE_BY_VALUE).build();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java
new file mode 100644
index 0000000..e6a6700
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjectMenu_IntegTest.java
@@ -0,0 +1,149 @@
+/*
+ * 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.modules.simple.integtests.tests;
+
+import java.sql.SQLIntegrityConstraintViolationException;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import com.google.common.base.Throwables;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.junit.Test;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.services.xactn.TransactionService;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
+import domainapp.modules.simple.fixture.scenario.RecreateSimpleObjects;
+import domainapp.modules.simple.fixture.teardown.SimpleModuleTearDown;
+import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SimpleObjectMenu_IntegTest extends SimpleModuleIntegTestAbstract {
+
+ @Inject
+ FixtureScripts fixtureScripts;
+ @Inject
+ TransactionService transactionService;
+ @Inject
+ SimpleObjectMenu menu;
+ @Inject
+ RepositoryService repositoryService;
+
+ public static class ListAll extends SimpleObjectMenu_IntegTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ // given
+ RecreateSimpleObjects fs = new RecreateSimpleObjects();
+ fixtureScripts.runFixtureScript(fs, null);
+ transactionService.nextTransaction();
+
+ // when
+ final List<SimpleObject> all = wrap(menu).listAll();
+
+ // then
+ assertThat(all).hasSize(fs.getSimpleObjects().size());
+
+ SimpleObject simpleObject = wrap(all.get(0));
+ assertThat(simpleObject.getName()).isEqualTo(fs.getSimpleObjects().get(0).getName());
+ }
+
+ @Test
+ public void whenNone() throws Exception {
+
+ // given
+ FixtureScript fs = new SimpleModuleTearDown();
+ fixtureScripts.runFixtureScript(fs, null);
+ transactionService.nextTransaction();
+
+ // when
+ final List<SimpleObject> all = wrap(menu).listAll();
+
+ // then
+ assertThat(all).hasSize(0);
+ }
+ }
+
+ public static class Create extends SimpleObjectMenu_IntegTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ // given
+ FixtureScript fs = new SimpleModuleTearDown();
+ fixtureScripts.runFixtureScript(fs, null);
+ transactionService.nextTransaction();
+
+ // when
+ wrap(menu).create("Faz");
+
+ // then
+ final List<SimpleObject> all = wrap(menu).listAll();
+ assertThat(all).hasSize(1);
+ }
+
+ @Test
+ public void whenAlreadyExists() throws Exception {
+
+ // given
+ FixtureScript fs = new SimpleModuleTearDown();
+ fixtureScripts.runFixtureScript(fs, null);
+ transactionService.nextTransaction();
+ wrap(menu).create("Faz");
+ transactionService.nextTransaction();
+
+ // then
+ expectedExceptions.expectCause(causalChainContains(SQLIntegrityConstraintViolationException.class));
+
+ // when
+ wrap(menu).create("Faz");
+ transactionService.nextTransaction();
+ }
+
+ private static Matcher<? extends Throwable> causalChainContains(final Class<?> cls) {
+ return new TypeSafeMatcher<Throwable>() {
+ @Override
+ protected boolean matchesSafely(Throwable item) {
+ final List<Throwable> causalChain = Throwables.getCausalChain(item);
+ for (Throwable throwable : causalChain) {
+ if(cls.isAssignableFrom(throwable.getClass())){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("exception with causal chain containing " + cls.getSimpleName());
+ }
+ };
+ }
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
new file mode 100644
index 0000000..29d0bba
--- /dev/null
+++ b/example/application/simpleapp/modules/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -0,0 +1,153 @@
+/*
+ * 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.modules.simple.integtests.tests;
+
+import java.sql.Timestamp;
+
+import javax.inject.Inject;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.isis.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.applib.services.wrapper.DisabledException;
+import org.apache.isis.applib.services.wrapper.InvalidException;
+import org.apache.isis.applib.services.xactn.TransactionService;
+import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong;
+import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.fixture.scenario.RecreateSimpleObjects;
+import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
+
+ @Inject
+ FixtureScripts fixtureScripts;
+ @Inject
+ TransactionService transactionService;
+
+ SimpleObject simpleObject;
+
+ @Before
+ public void setUp() throws Exception {
+ // given
+ RecreateSimpleObjects fs = new RecreateSimpleObjects().setNumber(1);
+ fixtureScripts.runFixtureScript(fs, null);
+ transactionService.nextTransaction();
+
+ simpleObject = fs.getSimpleObjects().get(0);
+
+ assertThat(simpleObject).isNotNull();
+ }
+
+ public static class Name extends SimpleObject_IntegTest {
+
+ @Test
+ public void accessible() throws Exception {
+ // when
+ final String name = wrap(simpleObject).getName();
+
+ // then
+ assertThat(name).isEqualTo(simpleObject.getName());
+ }
+
+ @Test
+ public void not_editable() throws Exception {
+ // expect
+ expectedExceptions.expect(DisabledException.class);
+
+ // when
+ wrap(simpleObject).setName("new name");
+ }
+
+ }
+
+ public static class UpdateName extends SimpleObject_IntegTest {
+
+ @Test
+ public void can_be_updated_directly() throws Exception {
+
+ // when
+ wrap(mixin(SimpleObject._updateName.class, simpleObject)).$$("new name");
+ transactionService.nextTransaction();
+
+ // then
+ assertThat(wrap(simpleObject).getName()).isEqualTo("new name");
+ }
+
+ @Test
+ public void failsValidation() throws Exception {
+
+ // expect
+ expectedExceptions.expect(InvalidException.class);
+ expectedExceptions.expectMessage("Exclamation mark is not allowed");
+
+ // when
+ wrap(mixin(SimpleObject._updateName.class, simpleObject)).$$("new name!");
+ }
+ }
+
+
+ public static class Title extends SimpleObject_IntegTest {
+
+ @Inject
+ TitleService titleService;
+
+ @Test
+ public void interpolatesName() throws Exception {
+
+ // given
+ final String name = wrap(simpleObject).getName();
+
+ // when
+ final String title = titleService.titleOf(simpleObject);
+
+ // then
+ assertThat(title).isEqualTo("Object: " + name);
+ }
+ }
+
+ public static class DataNucleusId extends SimpleObject_IntegTest {
+
+ @Test
+ public void should_be_populated() throws Exception {
+ // when
+ final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).$$();
+
+ // then
+ assertThat(id).isGreaterThanOrEqualTo(0);
+ }
+ }
+
+ public static class DataNucleusVersionTimestamp extends SimpleObject_IntegTest {
+
+ @Test
+ public void should_be_populated() throws Exception {
+ // when
+ final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).$$();
+ // then
+ assertThat(timestamp).isNotNull();
+ }
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/pom-jdo-enhance-all.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom-jdo-enhance-all.xml b/example/application/simpleapp/pom-jdo-enhance-all.xml
new file mode 100644
index 0000000..db88826
--- /dev/null
+++ b/example/application/simpleapp/pom-jdo-enhance-all.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ you under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>13</version>
+ <relativePath />
+ </parent>
+
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>simpleapp-enhance-all</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <packaging>pom</packaging>
+
+ <name>Enhance All DOM Modules</name>
+
+ <description>
+ Utility to enhance all Maven projects containing JDO entities with a single command:
+ mvn -f pom-jdo-enhance-all.xml datanucleus:enhance -o
+ </description>
+
+ <properties>
+ <datanucleus-maven-plugin.version>4.0.1</datanucleus-maven-plugin.version>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-maven-plugin</artifactId>
+ <version>${datanucleus-maven-plugin.version}</version>
+ <configuration>
+ <fork>false</fork>
+ <verbose>true</verbose>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>enhance</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>core</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <modules>
+ <module>modules/module-simple</module>
+ </modules>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index 866d4e1..7c39f9d 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -23,9 +23,9 @@
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.13.1-SNAPSHOT</version>
+ <version>1.14.0-SNAPSHOT</version>
- <name>Simple App</name>
+ <name>SimpleApp Parent</name>
<packaging>pom</packaging>
@@ -34,11 +34,13 @@
</prerequisites>
<properties>
- <isis.version>1.13.1</isis.version>
+ <isis.version>1.14.0-SNAPSHOT</isis.version>
+
+ <lombok.version>1.16.10</lombok.version>
+ <assertj-core.version>2.4.0</assertj-core.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <assertj-core.version>2.4.0</assertj-core.version>
</properties>
<repositories>
@@ -81,8 +83,7 @@
<version>[1.8.0,)</version>
</requireJavaVersion>
<requirePluginVersions>
- <message>All plugin versions must be
- defined!</message>
+ <message>All plugin versions must be defined!</message>
<banLatest>true</banLatest>
<banRelease>true</banRelease>
</requirePluginVersions>
@@ -121,42 +122,6 @@
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.19.1</version>
- <configuration>
- <includes>
- <include>**/*Test.java</include>
- <include>**/*Test$*.java</include>
- <include>**/*Test_*.java</include>
- <include>**/*Spec*.java</include>
- </includes>
- <excludes>
- <exclude>**/Test*.java</exclude>
- <exclude>**/*ForTesting.java</exclude>
- <exclude>**/*Abstract*.java</exclude>
- </excludes>
- <useFile>true</useFile>
- <printSummary>true</printSummary>
- <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-report-plugin</artifactId>
- <version>2.16</version>
- <configuration>
- <showSuccess>false</showSuccess>
- </configuration>
- <executions>
- <execution>
- <phase>test</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
@@ -180,124 +145,12 @@
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
</plugin>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.4</version>
- </plugin>
-
- <plugin>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>9.3.5.v20151012</version>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
</plugin>
-
- <!-- Apache Release Audit Tool -->
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.10</version>
- <configuration>
- <addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
- <excludeSubProjects>true</excludeSubProjects>
- <excludes>
- <exclude>**/target/**</exclude>
- <exclude>**/target-ide/**</exclude>
-
- <exclude>**/*.project</exclude>
- <exclude>**/.classpath</exclude>
- <exclude>**/.settings/**</exclude>
- <exclude>**/*.launch</exclude>
- <exclude>**/ide/eclipse/launch/**</exclude>
- <exclude>**/ide/intellij/launch/**</exclude>
- <exclude>src/site/resources/ide/eclipse/**</exclude>
-
- <exclude>**/rebel.xml</exclude>
- <exclude>**/*.gitignore</exclude>
- <exclude>**/*.log</exclude>
- <exclude>**/*.pdn</exclude>
- <exclude>**/*.svg</exclude>
- <exclude>**/*.json</exclude>
- <exclude>**/*.min.js</exclude>
- <exclude>**/*.js</exclude>
-
- <exclude>**/translations.pot</exclude>
- <exclude>**/translations*.po</exclude>
- </excludes>
- <licenses>
- <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>AL2</licenseFamilyCategory>
- <licenseFamilyName>Apache License 2.0</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern>
- </patterns>
- </license>
- <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>JQRY</licenseFamilyCategory>
- <licenseFamilyName>MIT</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Dual licensed under the MIT or GPL Version 2 licenses.</pattern>
- </patterns>
- </license>
- <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>JMOCK</licenseFamilyCategory>
- <licenseFamilyName>JMock</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Copyright (c) 2000-2007, jMock.org</pattern>
- </patterns>
- </license>
- <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>DOCBK</licenseFamilyCategory>
- <licenseFamilyName>DocBook 4.5</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Permission to copy in any form is granted for use</pattern>
- <pattern>Permission to use, copy, modify and distribute the DocBook DTD</pattern>
- <pattern>is hereby granted in perpetuity, provided that the above copyright
- </pattern>
- <pattern>This is the catalog data file for DocBook XML V4.5. It is provided as
- </pattern>
- <pattern>XML Catalog data for DocBook XML V4.5</pattern>
- <pattern>DocBook additional general entities V4.5</pattern>
- <pattern>XML EXCHANGE TABLE MODEL DECLARATION MODULE</pattern>
- </patterns>
- </license>
- <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
- <licenseFamilyCategory>W3C</licenseFamilyCategory>
- <licenseFamilyName>XHTML</licenseFamilyName>
- <notes/>
- <patterns>
- <pattern>Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),</pattern>
- </patterns>
- </license>
- </licenses>
- <licenseFamilies>
- <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>Apache License 2.0</familyName>
- </licenseFamily>
- <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>MIT</familyName>
- </licenseFamily>
- <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>JMock</familyName>
- </licenseFamily>
- <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>DocBook 4.5</familyName>
- </licenseFamily>
- <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
- <familyName>XHTML</familyName>
- </licenseFamily>
- </licenseFamilies>
- </configuration>
- </plugin>
</plugins>
</pluginManagement>
<plugins>
@@ -305,18 +158,12 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-report-plugin</artifactId>
- </plugin>
</plugins>
</build>
<modules>
- <module>app</module>
- <module>dom</module>
- <module>fixture</module>
- <module>integtests</module>
+ <module>modules/module-simple</module>
+ <module>application</module>
<module>webapp</module>
</modules>
@@ -337,32 +184,40 @@
<version>${assertj-core.version}</version>
</dependency>
-
<!-- this project's own modules -->
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-app</artifactId>
+ <artifactId>simpleapp-module-simple</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-dom</artifactId>
+ <artifactId>simpleapp-application</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-fixture</artifactId>
+ <artifactId>simpleapp-webapp</artifactId>
<version>${project.version}</version>
</dependency>
+
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-webapp</artifactId>
- <version>${project.version}</version>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${lombok.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
<profiles>
<profile>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/eclipse/launch/.gitignore
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/.gitignore b/example/application/simpleapp/webapp/ide/eclipse/launch/.gitignore
deleted file mode 100644
index 1d44fd4..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/SimpleApp-PROTOTYPE-jrebel.launch
-/SimpleApp-jrebel.launch
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures-bypass-security.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures-bypass-security.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures-bypass-security.launch
deleted file mode 100644
index 91b8abb..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures-bypass-security.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
-<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 8080 --manifest domainapp.app.DomainAppAppManifestWithFixturesBypassSecurity"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures.launch
deleted file mode 100644
index a20d0ea..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-with-fixtures.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
-<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 8080 --manifest domainapp.app.DomainAppAppManifestWithFixtures"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
deleted file mode 100644
index 918c5f1..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
-<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER_PROTOTYPE --port 8080"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-SERVER.launch
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-SERVER.launch b/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-SERVER.launch
deleted file mode 100644
index a1c0e67..0000000
--- a/example/application/simpleapp/webapp/ide/eclipse/launch/SimpleApp-SERVER.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
-<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--type SERVER --port 8080"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simpleapp-webapp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/README.txt
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/README.txt b/example/application/simpleapp/webapp/ide/intellij/launch/README.txt
deleted file mode 100644
index 5f8e5ab..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Copy into workspace\.idea\runConfigurations directory, and adjust file paths for Maven tasks.
-
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE.xml b/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE.xml
deleted file mode 100644
index a226ce6..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="SimpleApp-PROTOTYPE" type="Application" factoryName="Application" singleton="true">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="org.apache.isis.WebServer" />
- <option name="VM_PARAMETERS" value="" />
- <option name="PROGRAM_PARAMETERS" value="--type SERVER_PROTOTYPE --port 8080" />
- <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" value="" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="simpleapp-webapp" />
- <envs />
- <RunnerSettings RunnerId="Debug">
- <option name="DEBUG_PORT" value="" />
- <option name="TRANSPORT" value="0" />
- <option name="LOCAL" value="true" />
- </RunnerSettings>
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Debug" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="Maven.BeforeRunTask" enabled="true" file="C:/Apache/Isis/example/application/simpleapp/dom/pom.xml" goal="datanucleus:enhance -o" />
- </method>
- </configuration>
-</component>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures-bypass-security.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures-bypass-security.xml b/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures-bypass-security.xml
deleted file mode 100644
index 9344c79..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures-bypass-security.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="SimpleApp-PROTOTYPE (domainapp.app.DomainAppAppManifestWithFixturesBypassSecurity)" type="Application" factoryName="Application" singleton="true">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="org.apache.isis.WebServer" />
- <option name="VM_PARAMETERS" value="" />
- <option name="PROGRAM_PARAMETERS" value="--type SERVER_PROTOTYPE --port 8080 --manifest domainapp.app.DomainAppAppManifestWithFixturesBypassSecurity" />
- <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" value="" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="simpleapp-webapp" />
- <envs />
- <RunnerSettings RunnerId="Debug">
- <option name="DEBUG_PORT" value="" />
- <option name="TRANSPORT" value="0" />
- <option name="LOCAL" value="true" />
- </RunnerSettings>
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Debug" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="Maven.BeforeRunTask" enabled="true" file="C:/Apache/Isis/example/application/simpleapp/dom/pom.xml" goal="datanucleus:enhance -o" />
- </method>
- </configuration>
-</component>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures.xml b/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures.xml
deleted file mode 100644
index c813235..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_PROTOTYPE_with_fixtures.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="SimpleApp-PROTOTYPE (domainapp.app.DomainAppAppManifestWithFixtures)" type="Application" factoryName="Application" singleton="true">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="org.apache.isis.WebServer" />
- <option name="VM_PARAMETERS" value="" />
- <option name="PROGRAM_PARAMETERS" value="--type SERVER_PROTOTYPE --port 8080 --manifest domainapp.app.DomainAppAppManifestWithFixtures" />
- <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" value="" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="simpleapp-webapp" />
- <envs />
- <RunnerSettings RunnerId="Debug">
- <option name="DEBUG_PORT" value="" />
- <option name="TRANSPORT" value="0" />
- <option name="LOCAL" value="true" />
- </RunnerSettings>
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Debug" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="Maven.BeforeRunTask" enabled="true" file="C:/Apache/Isis/example/application/simpleapp/dom/pom.xml" goal="datanucleus:enhance -o" />
- </method>
- </configuration>
-</component>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_SERVER.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_SERVER.xml b/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_SERVER.xml
deleted file mode 100644
index a438f54..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp_SERVER.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="SimpleApp-SERVER" type="Application" factoryName="Application" singleton="true">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="org.apache.isis.WebServer" />
- <option name="VM_PARAMETERS" value="" />
- <option name="PROGRAM_PARAMETERS" value="--type SERVER --port 8080" />
- <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" value="" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="simpleapp-webapp" />
- <envs />
- <RunnerSettings RunnerId="Debug">
- <option name="DEBUG_PORT" value="" />
- <option name="TRANSPORT" value="0" />
- <option name="LOCAL" value="true" />
- </RunnerSettings>
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Debug" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="Maven.BeforeRunTask" enabled="true" file="C:/Apache/Isis/example/application/simpleapp/dom/pom.xml" goal="datanucleus:enhance -o" />
- </method>
- </configuration>
-</component>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp__enhance_only_.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp__enhance_only_.xml b/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp__enhance_only_.xml
deleted file mode 100644
index d3bfe6d..0000000
--- a/example/application/simpleapp/webapp/ide/intellij/launch/SimpleApp__enhance_only_.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="SimpleApp (enhance only)" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="org.apache.isis.Dummy" />
- <option name="VM_PARAMETERS" value="" />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" value="" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="simpleapp-webapp" />
- <envs />
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="Maven.BeforeRunTask" enabled="true" file="C:/Apache/Isis/example/application/simpleapp/dom/pom.xml" goal="datanucleus:enhance -o" />
- </method>
- </configuration>
-</component>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml
index d866717..246d842 100644
--- a/example/application/simpleapp/webapp/pom.xml
+++ b/example/application/simpleapp/webapp/pom.xml
@@ -23,23 +23,47 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.13.1-SNAPSHOT</version>
+ <version>1.14.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-webapp</artifactId>
- <name>Simple App Webapp</name>
+ <name>SimpleApp Webapp</name>
- <description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
+ <description>This assemblies and runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
<packaging>war</packaging>
+ <properties>
+ <danhaywood-mavenmixin-isisswagger.appManifest>
+ domainapp.application.manifest.DomainAppAppManifest
+ </danhaywood-mavenmixin-isisswagger.appManifest>
+ <danhaywood-mavenmixin-isisswagger.format>
+ JSON
+ </danhaywood-mavenmixin-isisswagger.format>
+ <danhaywood-mavenmixin-jettywar.warName>
+ simpleapp
+ </danhaywood-mavenmixin-jettywar.warName>
+ </properties>
+
<build>
+ <resources>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
<plugins>
<plugin>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- </plugin>
- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
@@ -52,14 +76,35 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>com.github.odavid.maven.plugins</groupId>
+ <artifactId>mixin-maven-plugin</artifactId>
+ <version>0.1-alpha-39</version>
+ <extensions>true</extensions>
+ <configuration>
+ <mixins>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>isisswagger</artifactId>
+ <version>0.0.1</version>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>jettywar</artifactId>
+ <version>0.0.1</version>
+ </mixin>
+ </mixins>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>simpleapp-app</artifactId>
+ <artifactId>simpleapp-application</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.isis.viewer</groupId>
<artifactId>isis-viewer-wicket-impl</artifactId>
@@ -72,51 +117,14 @@
<groupId>org.apache.isis.core</groupId>
<artifactId>isis-core-security-shiro</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-security</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_3.0_spec</artifactId>
</dependency>
-
</dependencies>
<profiles>
- <profile>
- <id>package-war</id>
- <activation>
- <property>
- <name>!skip.package-war</name>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <warName>simpleapp</warName>
- <archive>
- <manifest>
- <addClasspath>false</addClasspath>
- </manifest>
- <manifestEntries>
- <Build-Time>${maven.build.timestamp}</Build-Time>
- <Build-Host>${agent.name}</Build-Host>
- <Build-User>${user.name}</Build-User>
- <Build-Maven>Maven ${maven.version}</Build-Maven>
- <Build-Java>${java.version}</Build-Java>
- <Build-OS>${os.name}</Build-OS>
- <Build-Label>${project.version}</Build-Label>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
<profile>
<id>jdbc-hsqldb</id>
@@ -208,58 +216,6 @@
</dependency>
</dependencies>
</profile>
-
- <profile>
- <id>eclipse-m2e</id>
- <activation>
- <property>
- <name>m2e.version</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-webserver</artifactId>
- </dependency>
- </dependencies>
- <build>
- <pluginManagement>
- <plugins>
- <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>
- org.codehaus.mojo
- </groupId>
- <artifactId>
- build-helper-maven-plugin
- </artifactId>
- <versionRange>
- [1.5,)
- </versionRange>
- <goals>
- <goal>maven-version</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- </profile>
</profiles>
</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/e35c1539/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.properties b/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.properties
new file mode 100644
index 0000000..21b122b
--- /dev/null
+++ b/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.properties
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+
+#
+# This file is used by the Wicket viewer, acting as an app-level override for localized messages.
+#
+# Note that as of 1.11.0 it is possible to read localized messages from Isis' own translations.po file instead,
+# so there is much less reason to use this file.
+#
+
+