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 2014/12/17 21:56:59 UTC
[1/4] isis git commit: ISIS-284: moved isis-maven-plugin into core;
deleted unused code;
todoapp example now references the plugin in its webapp project.
Repository: isis
Updated Branches:
refs/heads/master d17f5a9a3 -> f76185ded
ISIS-284: moved isis-maven-plugin into core; deleted unused code; todoapp example now references the plugin in its webapp project.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e08e261a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e08e261a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e08e261a
Branch: refs/heads/master
Commit: e08e261a099546e22f3991474ae6f7092e44dbf0
Parents: d17f5a9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 17 13:54:53 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 17 13:54:53 2014 +0000
----------------------------------------------------------------------
core/applib/pom.xml | 88 +++---
core/maven-plugin/pom.xml | 310 +++++++++++++++++++
.../appended-resources/supplemental-models.xml | 106 +++++++
.../isis/tool/mavenplugin/ValidateMojo.java | 171 ++++++++++
.../tool/mavenplugin/util/IsisMetaModels.java | 36 +++
.../isis/tool/mavenplugin/util/Log4j.java | 48 +++
.../tool/mavenplugin/util/MavenProjects.java | 43 +++
.../isis/tool/mavenplugin/util/Xpp3Doms.java | 36 +++
core/pom.xml | 78 +++--
example/application/todoapp/webapp/pom.xml | 32 ++
pom.xml | 2 -
tool/maven-plugin/pom.xml | 302 ------------------
.../appended-resources/supplemental-models.xml | 106 -------
.../isis/tool/mavenplugin/ValidateMojo.java | 172 ----------
.../isis/tool/mavenplugin/util/ClassRealms.java | 23 --
.../isis/tool/mavenplugin/util/ClassWorlds.java | 22 --
.../tool/mavenplugin/util/IsisMetaModels.java | 18 --
.../isis/tool/mavenplugin/util/Log4j.java | 30 --
.../tool/mavenplugin/util/MavenProjects.java | 25 --
.../isis/tool/mavenplugin/util/Xpp3Doms.java | 18 --
20 files changed, 874 insertions(+), 792 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index f3f85d2..a852e60 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -17,55 +17,56 @@
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>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis</artifactId>
+ <parent>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis</artifactId>
<version>1.8.0-SNAPSHOT</version>
- </parent>
+ </parent>
- <artifactId>isis-core-applib</artifactId>
+ <artifactId>isis-core-applib</artifactId>
- <name>Isis Core AppLib</name>
- <description>
- Isis application library, defining annotations and utilities for the
- default (Java) programming model.
- </description>
+ <name>Isis Core AppLib</name>
+ <description>
+ Isis application library, defining annotations and utilities for the
+ default (Java) programming model.
+ </description>
- <properties>
+ <properties>
<siteBaseDir>..</siteBaseDir>
- <relativeUrl>applib/</relativeUrl>
- </properties>
+ <relativeUrl>applib/</relativeUrl>
+ </properties>
<!-- used in Site generation for relative references. -->
<url>http://isis.apache.org/${relativeUrl}</url>
- <reporting>
- <excludeDefaults>true</excludeDefaults>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-project-info-reports-plugin</artifactId>
- <inherited>false</inherited>
+ <reporting>
+ <excludeDefaults>true</excludeDefaults>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <inherited>false</inherited>
<configuration>
- <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+ <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
- <reportSets>
- <reportSet>
- <inherited>true</inherited>
- <reports>
- <report>dependencies</report>
- <report>dependency-convergence</report>
- <report>plugins</report>
+ <reportSets>
+ <reportSet>
+ <inherited>true</inherited>
+ <reports>
+ <report>dependencies</report>
+ <report>dependency-convergence</report>
+ <report>plugins</report>
<report>summary</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin>
- </plugins>
- </reporting>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
<build>
<resources>
@@ -129,7 +130,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <ignore />
+ <ignore/>
</action>
</pluginExecution>
</pluginExecutions>
@@ -140,11 +141,11 @@
</pluginManagement>
</build>
- <dependencies>
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
+ <dependencies>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-atinject_1.0_spec</artifactId>
@@ -171,7 +172,6 @@
</dependency>
-
<dependency>
<groupId>org.apache.isis.core</groupId>
<artifactId>isis-core-unittestsupport</artifactId>
@@ -185,6 +185,6 @@
<optional>true</optional>
</dependency>
- </dependencies>
+ </dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/core/maven-plugin/pom.xml b/core/maven-plugin/pom.xml
new file mode 100644
index 0000000..f9e60fe
--- /dev/null
+++ b/core/maven-plugin/pom.xml
@@ -0,0 +1,310 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+
+ <packaging>maven-plugin</packaging>
+
+ <name>Isis Maven Plugin (isis-maven-plugin)</name>
+ <description>
+ Maven plugin for Apache Isis, allowing the metamodel to be validated as part of the build process.
+ </description>
+
+ <properties>
+ <siteBaseDir>..</siteBaseDir>
+ <relativeUrl>maven-plugin/</relativeUrl>
+ </properties>
+
+ <!-- used in Site generation for relative references. -->
+ <url>http://isis.apache.org/${relativeUrl}</url>
+
+ <prerequisites>
+ <maven>3.0.4</maven>
+ </prerequisites>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <!-- Apache Release Audit Tool -->
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.10</version>
+ <configuration>
+ <excludes>
+ <!--
+ overriding inherited excludes from oia.core:isis
+ with a more specific set for this component
+ -->
+ <exclude>**/target/**</exclude>
+ <exclude>**/target-ide/**</exclude>
+
+ <exclude>**/*.project</exclude>
+ <exclude>**/.classpath</exclude>
+ <exclude>**/.settings/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <configuration>
+ <goalPrefix>configurator</goalPrefix>
+ </configuration>
+ <executions>
+ <execution>
+ <id>default-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ <execution>
+ <id>help-descriptor</id>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-toolchains-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>toolchain</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <toolchains>
+ <jdk>
+ <version>1.5</version>
+ </jdk>
+ </toolchains>
+ </configuration>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-runtime</artifactId>
+ </dependency>
+
+ <!--
+ the plethora of exclusions in the following dependencies
+ are to ensure dependency convergence.
+
+ In some cases, what would have been a transitive dependency
+ is added as a direct dependency in order that its divergent dependency
+ can be excluded.
+
+ It's all a bit of a pig's ear...
+ -->
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>3.0.5</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>2.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>3.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-builder</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-settings</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>3.0-alpha-2</version>
+ <exclusions>
+ <!-- for dependency convergence -->
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-compat</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-interpolation</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-compat</artifactId>
+ <version>3.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.5.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-classworlds</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.collections</groupId>
+ <artifactId>google-collections</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-sec-dispatcher</artifactId>
+ <version>1.3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-toolchain</artifactId>
+ <version>3.0-alpha-2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-compat</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/appended-resources/supplemental-models.xml
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/appended-resources/supplemental-models.xml b/core/maven-plugin/src/main/appended-resources/supplemental-models.xml
new file mode 100644
index 0000000..ecd3906
--- /dev/null
+++ b/core/maven-plugin/src/main/appended-resources/supplemental-models.xml
@@ -0,0 +1,106 @@
+<?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. -->
+<supplementalDataModels xmlns="http://maven.apache.org/supplemental-model/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
+
+ <supplement>
+ <project>
+ <groupId>aopalliance</groupId>
+ <artifactId>aopalliance</artifactId>
+ <version>1.0</version>
+ <licenses>
+ <license>
+ <name>Public Domain</name>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+ <supplement>
+ <!-- not quite sure why licenses:download-license flags this, since license info seems to be in its POM -->
+ <project>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-jodatime</artifactId>
+ <version>3.1.1</version>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+ <supplement>
+ <project>
+ <groupId>org.scannotation</groupId>
+ <artifactId>scannotation</artifactId>
+ <version>1.0.3</version>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+ <supplement>
+ <project>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ <licenses>
+ <license>
+ <name>BSD License</name>
+ <url>http://dom4j.sourceforge.net/dom4j-1.6.1/license.html</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+ <supplement>
+ <project>
+ <groupId>net.jcip</groupId>
+ <artifactId>jcip-annotations</artifactId>
+ <version>1.0</version>
+ <licenses>
+ <license>
+ <name>Creative Commons Attribution 2.5 License</name>
+ <url>http://creativecommons.org/licenses/by/2.5/</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+
+ <supplement>
+ <project>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.0</version>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ </project>
+ </supplement>
+
+
+</supplementalDataModels>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
new file mode 100644
index 0000000..49041ad
--- /dev/null
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.tool.mavenplugin;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
+import org.apache.isis.core.metamodel.app.IsisMetaModel;
+import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
+import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
+import org.apache.isis.core.runtime.system.DeploymentType;
+import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
+import org.apache.isis.tool.mavenplugin.util.IsisMetaModels;
+import org.apache.isis.tool.mavenplugin.util.MavenProjects;
+import org.apache.isis.tool.mavenplugin.util.Xpp3Doms;
+
+/**
+ *
+ *
+ *
+ */
+@Mojo(
+ name = "validate",
+ defaultPhase = LifecyclePhase.TEST,
+ requiresProject = true,
+ requiresDependencyResolution = ResolutionScope.COMPILE,
+ requiresDependencyCollection = ResolutionScope.COMPILE
+)
+public class ValidateMojo extends AbstractMojo {
+
+ private static final String CURRENT_PLUGIN_KEY = "org.apache.isis.tool:isis-maven-plugin";
+
+ @Component
+ protected MavenProject mavenProject;
+
+ public void execute() throws MojoExecutionException, MojoFailureException {
+
+ final List<Object> serviceList = getServiceList();
+ if(serviceList.size() == 0) {
+ return;
+ }
+ getLog().info("Found " + serviceList.size() + " services");
+
+ final ValidationFailures validationFailures = bootIsisThenShutdown(serviceList);
+ if (validationFailures.occurred()) {
+ throwFailureException(validationFailures.getNumberOfMessages() + " problems found.", validationFailures.getMessages());
+ }
+ }
+
+ private ValidationFailures bootIsisThenShutdown(List<Object> serviceList) throws MojoExecutionException, MojoFailureException {
+ IsisMetaModel isisMetaModel = null;
+ try {
+ isisMetaModel = bootstrapIsis(serviceList);
+ final Collection<ObjectSpecification> objectSpecifications = isisMetaModel.getSpecificationLoader().allSpecifications();
+ for (ObjectSpecification objectSpecification : objectSpecifications) {
+ getLog().debug("loaded: " + objectSpecification.getFullIdentifier());
+ }
+ return isisMetaModel.getValidationFailures();
+
+ } finally {
+ IsisMetaModels.disposeSafely(isisMetaModel);
+ }
+ }
+
+
+ private List<Object> getServiceList() throws MojoFailureException {
+ IsisConfiguration isisConfiguration = getIsisConfiguration();
+ if(isisConfiguration == null) {
+ return Collections.emptyList();
+ }
+
+ final ServicesInstallerFromConfigurationAndAnnotation servicesInstaller = new ServicesInstallerFromConfigurationAndAnnotation();
+ servicesInstaller.setIgnoreFailures(true);
+ servicesInstaller.setConfiguration(isisConfiguration);
+ servicesInstaller.init();
+ return servicesInstaller.getServices(DeploymentType.SERVER_PROTOTYPE);
+ }
+
+ private IsisConfiguration getIsisConfiguration() throws MojoFailureException {
+ final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
+ if(plugin == null) {
+ return null;
+ }
+ final Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
+ if (configuration == null) {
+ throwFailureException("Configuration error", "No <configuration> element found");
+ }
+ final Xpp3Dom servicesEl = configuration.getChild("isisConfigDir");
+ if (servicesEl == null) {
+ throwFailureException("Configuration error", "No <configuration>/<isisConfigDir> element found");
+ }
+ final String isisConfigDir = Xpp3Doms.GET_VALUE.apply(servicesEl);
+
+ final File basedir = mavenProject.getBasedir();
+ final String absoluteConfigDir = new File(basedir, isisConfigDir).getAbsolutePath();
+ final IsisConfigurationBuilderDefault configBuilder = new IsisConfigurationBuilderDefault(absoluteConfigDir);
+
+ configBuilder.addDefaultConfigurationResources();
+ return configBuilder.getConfiguration();
+ }
+
+ private static IsisMetaModel bootstrapIsis(List<Object> serviceList) {
+
+ IsisMetaModel isisMetaModel = new IsisMetaModel(
+ new RuntimeContextNoRuntime(),
+ new ProgrammingModelFacetsJava5(),
+ serviceList);
+ isisMetaModel.init();
+ return isisMetaModel;
+ }
+
+ private void throwFailureException(String errorMessage, Set<String> logMessages) throws MojoFailureException {
+ logErrors(logMessages);
+ throw new MojoFailureException(errorMessage);
+ }
+
+ private void throwFailureException(String errorMessage, String... logMessages) throws MojoFailureException {
+ logErrors(logMessages);
+ throw new MojoFailureException(errorMessage);
+ }
+
+ private void throwExecutionException(String errorMessage, Exception e) throws MojoExecutionException {
+ logErrors(errorMessage);
+ throw new MojoExecutionException(errorMessage, e);
+ }
+
+ private void logErrors(String... logMessages) {
+ getLog().error("");
+ for (String logMessage : logMessages) {
+ getLog().error(logMessage);
+ }
+ getLog().error("");
+ }
+
+ private void logErrors(Set<String> logMessages) {
+ logErrors(logMessages.toArray(new String[] {}));
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
new file mode 100644
index 0000000..9d6cc50
--- /dev/null
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.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 org.apache.isis.tool.mavenplugin.util;
+
+import org.apache.isis.core.metamodel.app.IsisMetaModel;
+
+public final class IsisMetaModels {
+
+ private IsisMetaModels(){}
+
+ public static void disposeSafely(IsisMetaModel isisMetaModel) {
+ if (isisMetaModel == null) {
+ return;
+ }
+ isisMetaModel.shutdown();
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
new file mode 100644
index 0000000..9f09d63
--- /dev/null
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.tool.mavenplugin.util;
+
+import java.util.Enumeration;
+
+public final class Log4j {
+
+ private Log4j(){}
+
+ public static void configureIfRequired() {
+ if(isConfigured()) return;
+ org.apache.log4j.BasicConfigurator.configure();
+ org.apache.log4j.LogManager.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
+ }
+
+ private static boolean isConfigured() {
+ Enumeration<?> appenders = org.apache.log4j.LogManager.getRootLogger().getAllAppenders();
+ if (appenders.hasMoreElements()) {
+ return true;
+ }
+ Enumeration<?> loggers = org.apache.log4j.LogManager.getCurrentLoggers();
+ while (loggers.hasMoreElements()) {
+ org.apache.log4j.Logger c = (org.apache.log4j.Logger) loggers.nextElement();
+ if (c.getAllAppenders().hasMoreElements())
+ return true;
+ }
+ return false;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
new file mode 100644
index 0000000..d74dcdb
--- /dev/null
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.tool.mavenplugin.util;
+
+import java.util.List;
+
+import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
+
+public final class MavenProjects {
+
+ private MavenProjects(){}
+
+ public static Plugin lookupPlugin(MavenProject mavenProject, String key) {
+
+ @SuppressWarnings("unchecked")
+ List<Plugin> plugins = mavenProject.getBuildPlugins();
+
+ for (Plugin plugin : plugins) {
+ if (key.equalsIgnoreCase(plugin.getKey())) {
+ return plugin;
+ }
+ }
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
new file mode 100644
index 0000000..ebb9f81
--- /dev/null
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.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 org.apache.isis.tool.mavenplugin.util;
+
+import com.google.common.base.Function;
+
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+public final class Xpp3Doms {
+
+ private Xpp3Doms(){}
+
+ public static Function<Xpp3Dom, String> GET_VALUE = new Function<Xpp3Dom, String>(){
+
+ public String apply(Xpp3Dom el) {
+ return el.getValue();
+ }};
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index bc1a720..5debabc 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -188,62 +188,62 @@
<timezone>+0</timezone>
</developer>
<developer>
- <id>rcmatthews</id>
- <name>Robert Matthews</name>
- <email>rmatthews@apache.org</email>
+ <id>dslaughter</id>
+ <name>Dave Slaughter</name>
+ <email>dslaughter@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
- <timezone>+0</timezone>
+ <timezone>-6</timezone>
</developer>
<developer>
- <id>kevin</id>
- <name>Kevin Meyer</name>
- <email>kevin@apache.org</email>
+ <id>jcvanderwal</id>
+ <name>Jeroen van der Wal</name>
+ <email>jeroen@stromboli.it</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
- <timezone>+2</timezone>
+ <timezone>+1</timezone>
</developer>
<developer>
- <id>themalkolm</id>
- <name>Alexander Krasnuhkin</name>
- <email>themalkolm@apache.org</email>
+ <id>kevin</id>
+ <name>Kevin Meyer</name>
+ <email>kevin@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
- <timezone>+3</timezone>
+ <timezone>+2</timezone>
</developer>
<developer>
- <id>dslaughter</id>
- <name>Dave Slaughter</name>
- <email>dslaughter@apache.org</email>
+ <id>madytyoo</id>
+ <name>Maurizio Taverna</name>
+ <email>tavernamaurizio@gmail.com</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
- <timezone>-6</timezone>
+ <timezone>+1</timezone>
</developer>
<developer>
- <id>jcvanderwal</id>
- <name>Jeroen van der Wal</name>
- <email>jeroen@stromboli.it</email>
+ <id>mgrigorov</id>
+ <name>Martin Grigorov</name>
+ <email>mgrigorov@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
- <timezone>+1</timezone>
+ <timezone>-6</timezone>
</developer>
<developer>
- <id>madytyoo</id>
- <name>Maurizio Taverna</name>
- <email>tavernamaurizio@gmail.com</email>
+ <id>mnour</id>
+ <name>Mohammad Nour El-Din</name>
+ <email>mnour@apache.org</email>
<roles>
<role>pmc</role>
- <role>committer</role>
+ <role>mentor while incubating</role>
</roles>
<timezone>+1</timezone>
</developer>
@@ -258,14 +258,14 @@
<timezone>+1</timezone>
</developer>
<developer>
- <id>mnour</id>
- <name>Mohammad Nour El-Din</name>
- <email>mnour@apache.org</email>
+ <id>rcmatthews</id>
+ <name>Robert Matthews</name>
+ <email>rmatthews@apache.org</email>
<roles>
<role>pmc</role>
- <role>mentor while incubating</role>
+ <role>committer</role>
</roles>
- <timezone>+1</timezone>
+ <timezone>+0</timezone>
</developer>
<developer>
<id>struberg</id>
@@ -277,6 +277,16 @@
</roles>
<timezone>+1</timezone>
</developer>
+ <developer>
+ <id>themalkolm</id>
+ <name>Alexander Krasnuhkin</name>
+ <email>themalkolm@apache.org</email>
+ <roles>
+ <role>pmc</role>
+ <role>committer</role>
+ </roles>
+ <timezone>+3</timezone>
+ </developer>
</developers>
@@ -1153,7 +1163,6 @@ ${license.additional-notes}
<scope>test</scope>
</dependency>
-
<!-- security implementation(s) -->
<dependency>
<groupId>org.apache.isis.core</groupId>
@@ -1166,6 +1175,13 @@ ${license.additional-notes}
<version>1.8.0-SNAPSHOT</version>
</dependency>
+ <!-- Maven plugin -->
+ <dependency>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+
<!-- JodaTime -->
<dependency>
<groupId>joda-time</groupId>
@@ -1863,6 +1879,8 @@ ${license.additional-notes}
<module>viewer-restfulobjects-applib</module>
<module>viewer-restfulobjects-rendering</module>
<module>viewer-restfulobjects-server</module>
+
+ <module>maven-plugin</module>
</modules>
</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/example/application/todoapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/pom.xml b/example/application/todoapp/webapp/pom.xml
index 7ea3bac..269f9cc 100644
--- a/example/application/todoapp/webapp/pom.xml
+++ b/example/application/todoapp/webapp/pom.xml
@@ -39,6 +39,38 @@
<build>
<plugins>
<plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <configuration>
+ <isisConfigDir>src\main\webapp\WEB-INF</isisConfigDir>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>todoapp-fixture</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+ <!--
+ ... workaround to avoid conflict with plexus-default (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+ -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0.1</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0163bca..c24b464 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,8 +60,6 @@
<module>example/archetype/todoapp</module>
<module>example/archetype/simpleapp</module>
- <module>tool/maven-plugin</module>
-
<module>component/viewer/scimpi</module>
</modules>
</profile>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/pom.xml b/tool/maven-plugin/pom.xml
deleted file mode 100644
index 2e2e789..0000000
--- a/tool/maven-plugin/pom.xml
+++ /dev/null
@@ -1,302 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis</artifactId>
- <version>1.8.0-SNAPSHOT</version>
- <relativePath>../../core/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.isis.tool</groupId>
- <artifactId>isis-maven-plugin</artifactId>
- <version>1.0.0-SNAPSHOT</version>
-
- <packaging>maven-plugin</packaging>
-
- <name>Isis Maven Mojo (isis-maven-plugin)</name>
- <url>http://maven.apache.org</url>
-
- <prerequisites>
- <maven>3.0.4</maven>
- </prerequisites>
-
- <build>
-
- <pluginManagement>
- <plugins>
- <!-- Apache Release Audit Tool -->
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.10</version>
- <configuration>
- <excludes>
- <!--
- overriding inherited excludes from oia.core:isis
- with a more specific set for this component
- -->
- <exclude>**/target/**</exclude>
- <exclude>**/target-ide/**</exclude>
-
- <exclude>**/*.project</exclude>
- <exclude>**/.classpath</exclude>
- <exclude>**/.settings/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-plugin-plugin</artifactId>
- <configuration>
- <goalPrefix>configurator</goalPrefix>
- </configuration>
- <executions>
- <execution>
- <id>default-descriptor</id>
- <goals>
- <goal>descriptor</goal>
- </goals>
- <phase>process-classes</phase>
- </execution>
- <execution>
- <id>help-descriptor</id>
- <goals>
- <goal>helpmojo</goal>
- </goals>
- <phase>process-classes</phase>
- </execution>
- </executions>
- </plugin>
- <!--
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-toolchains-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <phase>validate</phase>
- <goals>
- <goal>toolchain</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <toolchains>
- <jdk>
- <version>1.5</version>
- </jdk>
- </toolchains>
- </configuration>
- </plugin>
- -->
- </plugins>
- </build>
-
- <dependencies>
-
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-runtime</artifactId>
- </dependency>
-
- <!--
- all the plethora of exclusions in the following dependencies
- are to ensure dependency convergence.
-
- In some cases, what would have been a transitive dependency
- is added as a direct dependency in order that its divergent dependency
- can be excluded.
-
- It's all a bit of a pig's ear...
- -->
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- <version>3.0.5</version>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- <version>2.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-annotations</artifactId>
- <version>3.2</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-core</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model-builder</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-settings</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- <version>3.0-alpha-2</version>
- <exclusions>
- <!-- for dependency convergence -->
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-compat</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-interpolation</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-compat</artifactId>
- <version>3.0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
- <version>1.5.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-classworlds</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.collections</groupId>
- <artifactId>google-collections</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.sonatype.plexus</groupId>
- <artifactId>plexus-sec-dispatcher</artifactId>
- <version>1.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-toolchain</artifactId>
- <version>3.0-alpha-2</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-compat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/appended-resources/supplemental-models.xml
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/appended-resources/supplemental-models.xml b/tool/maven-plugin/src/main/appended-resources/supplemental-models.xml
deleted file mode 100644
index ecd3906..0000000
--- a/tool/maven-plugin/src/main/appended-resources/supplemental-models.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
- license agreements. See the NOTICE file distributed with this work for additional
- information regarding copyright ownership. The ASF licenses this file to
- you under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
- by applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
- OF ANY KIND, either express or implied. See the License for the specific
- language governing permissions and limitations under the License. -->
-<supplementalDataModels xmlns="http://maven.apache.org/supplemental-model/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
-
- <supplement>
- <project>
- <groupId>aopalliance</groupId>
- <artifactId>aopalliance</artifactId>
- <version>1.0</version>
- <licenses>
- <license>
- <name>Public Domain</name>
- </license>
- </licenses>
- </project>
- </supplement>
-
- <supplement>
- <!-- not quite sure why licenses:download-license flags this, since license info seems to be in its POM -->
- <project>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-jodatime</artifactId>
- <version>3.1.1</version>
- <licenses>
- <license>
- <name>The Apache Software License, Version 2.0</name>
- <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
- </license>
- </licenses>
- </project>
- </supplement>
-
- <supplement>
- <project>
- <groupId>org.scannotation</groupId>
- <artifactId>scannotation</artifactId>
- <version>1.0.3</version>
- <licenses>
- <license>
- <name>The Apache Software License, Version 2.0</name>
- <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
- </project>
- </supplement>
-
- <supplement>
- <project>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- <licenses>
- <license>
- <name>BSD License</name>
- <url>http://dom4j.sourceforge.net/dom4j-1.6.1/license.html</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
- </project>
- </supplement>
-
- <supplement>
- <project>
- <groupId>net.jcip</groupId>
- <artifactId>jcip-annotations</artifactId>
- <version>1.0</version>
- <licenses>
- <license>
- <name>Creative Commons Attribution 2.5 License</name>
- <url>http://creativecommons.org/licenses/by/2.5/</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
- </project>
- </supplement>
-
-
- <supplement>
- <project>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
- <version>2.7.0</version>
- <licenses>
- <license>
- <name>The Apache Software License, Version 2.0</name>
- <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
- </project>
- </supplement>
-
-
-</supplementalDataModels>
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
deleted file mode 100644
index 47b4bea..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package org.apache.isis.tool.mavenplugin;
-
-/*
- * 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.
- */
-
-import java.io.File;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
-import org.apache.isis.core.metamodel.app.IsisMetaModel;
-import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
-import org.apache.isis.core.runtime.system.DeploymentType;
-import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
-import org.apache.isis.tool.mavenplugin.util.IsisMetaModels;
-import org.apache.isis.tool.mavenplugin.util.MavenProjects;
-import org.apache.isis.tool.mavenplugin.util.Xpp3Doms;
-
-/**
- *
- *
- *
- */
-@Mojo(
- name = "validate",
- defaultPhase = LifecyclePhase.TEST,
- requiresProject = true,
- requiresDependencyResolution = ResolutionScope.COMPILE,
- requiresDependencyCollection = ResolutionScope.COMPILE
-)
-public class ValidateMojo extends AbstractMojo {
-
- private static final String CURRENT_PLUGIN_KEY = "org.apache.isis.tool:isis-maven-plugin";
-
- @Component
- protected MavenProject mavenProject;
-
- public void execute() throws MojoExecutionException, MojoFailureException {
-
- final List<Object> serviceList = getServiceList();
- if(serviceList.size() == 0) {
- return;
- }
- getLog().info("Found " + serviceList.size() + " services");
-
- final ValidationFailures validationFailures = bootIsisThenShutdown(serviceList);
- if (validationFailures.occurred()) {
- throwFailureException(validationFailures.getNumberOfMessages() + " problems found.", validationFailures.getMessages());
- }
- }
-
- private ValidationFailures bootIsisThenShutdown(List<Object> serviceList) throws MojoExecutionException, MojoFailureException {
- IsisMetaModel isisMetaModel = null;
- try {
- isisMetaModel = bootstrapIsis(serviceList);
- final Collection<ObjectSpecification> objectSpecifications = isisMetaModel.getSpecificationLoader().allSpecifications();
- for (ObjectSpecification objectSpecification : objectSpecifications) {
- getLog().debug("loaded: " + objectSpecification.getFullIdentifier());
- }
- return isisMetaModel.getValidationFailures();
-
- } finally {
- IsisMetaModels.disposeSafely(isisMetaModel);
- }
- }
-
-
- private List<Object> getServiceList() throws MojoFailureException {
- IsisConfiguration isisConfiguration = getIsisConfiguration();
- if(isisConfiguration == null) {
- return Collections.emptyList();
- }
-
- final ServicesInstallerFromConfigurationAndAnnotation servicesInstaller = new ServicesInstallerFromConfigurationAndAnnotation();
- servicesInstaller.setIgnoreFailures(true);
- servicesInstaller.setConfiguration(isisConfiguration);
- servicesInstaller.init();
- return servicesInstaller.getServices(DeploymentType.SERVER_PROTOTYPE);
- }
-
- private IsisConfiguration getIsisConfiguration() throws MojoFailureException {
- final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
- if(plugin == null) {
- return null;
- }
- final Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
- if (configuration == null) {
- throwFailureException("Configuration error", "No <configuration> element found");
- }
- final Xpp3Dom servicesEl = configuration.getChild("isisConfigDir");
- if (servicesEl == null) {
- throwFailureException("Configuration error", "No <configuration>/<isisConfigDir> element found");
- }
- final String isisConfigDir = Xpp3Doms.GET_VALUE.apply(servicesEl);
-
- final File basedir = mavenProject.getBasedir();
- final String absoluteConfigDir = new File(basedir, isisConfigDir).getAbsolutePath();
- final IsisConfigurationBuilderDefault configBuilder = new IsisConfigurationBuilderDefault(absoluteConfigDir);
-
- configBuilder.addDefaultConfigurationResources();
- return configBuilder.getConfiguration();
- }
-
- private static IsisMetaModel bootstrapIsis(List<Object> serviceList) {
-
- IsisMetaModel isisMetaModel = new IsisMetaModel(
- new RuntimeContextNoRuntime(),
- new ProgrammingModelFacetsJava5(),
- serviceList);
- isisMetaModel.init();
- return isisMetaModel;
- }
-
- private void throwFailureException(String errorMessage, Set<String> logMessages) throws MojoFailureException {
- logErrors(logMessages);
- throw new MojoFailureException(errorMessage);
- }
-
- private void throwFailureException(String errorMessage, String... logMessages) throws MojoFailureException {
- logErrors(logMessages);
- throw new MojoFailureException(errorMessage);
- }
-
- private void throwExecutionException(String errorMessage, Exception e) throws MojoExecutionException {
- logErrors(errorMessage);
- throw new MojoExecutionException(errorMessage, e);
- }
-
- private void logErrors(String... logMessages) {
- getLog().error("");
- for (String logMessage : logMessages) {
- getLog().error(logMessage);
- }
- getLog().error("");
- }
-
- private void logErrors(Set<String> logMessages) {
- logErrors(logMessages.toArray(new String[] {}));
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassRealms.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassRealms.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassRealms.java
deleted file mode 100644
index a51c595..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassRealms.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.apache.maven.plugin.logging.Log;
-import org.codehaus.classworlds.ClassRealm;
-
-public final class ClassRealms {
-
- private ClassRealms(){}
-
- public static void addFileToRealm(ClassRealm isisRealm, final File file, Log log) throws IOException, MalformedURLException {
- log.info(file.getCanonicalPath());
-
- final URL url = file.toURI().toURL();
- isisRealm.addConstituent(url);
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassWorlds.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassWorlds.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassWorlds.java
deleted file mode 100644
index 2388df6..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/ClassWorlds.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import org.codehaus.classworlds.ClassWorld;
-import org.codehaus.classworlds.NoSuchRealmException;
-
-public final class ClassWorlds {
-
- private ClassWorlds(){}
-
- public static void disposeSafely(ClassWorld classWorld, String realmId) {
- if (classWorld == null) {
- return;
- }
- try {
- classWorld.disposeRealm(realmId);
- } catch (NoSuchRealmException e) {
- // ignore
- }
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
deleted file mode 100644
index 49c49d8..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import org.apache.isis.core.metamodel.app.IsisMetaModel;
-
-public final class IsisMetaModels {
-
- private IsisMetaModels(){}
-
- public static void disposeSafely(IsisMetaModel isisMetaModel) {
- if (isisMetaModel == null) {
- return;
- }
- isisMetaModel.shutdown();
- }
-
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
deleted file mode 100644
index 38d4c66..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Log4j.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import java.util.Enumeration;
-
-public final class Log4j {
-
- private Log4j(){}
-
- public static void configureIfRequired() {
- if(isConfigured()) return;
- org.apache.log4j.BasicConfigurator.configure();
- org.apache.log4j.LogManager.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
- }
-
- private static boolean isConfigured() {
- Enumeration<?> appenders = org.apache.log4j.LogManager.getRootLogger().getAllAppenders();
- if (appenders.hasMoreElements()) {
- return true;
- }
- Enumeration<?> loggers = org.apache.log4j.LogManager.getCurrentLoggers();
- while (loggers.hasMoreElements()) {
- org.apache.log4j.Logger c = (org.apache.log4j.Logger) loggers.nextElement();
- if (c.getAllAppenders().hasMoreElements())
- return true;
- }
- return false;
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
deleted file mode 100644
index f604251..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/MavenProjects.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import java.util.List;
-
-import org.apache.maven.model.Plugin;
-import org.apache.maven.project.MavenProject;
-
-public final class MavenProjects {
-
- private MavenProjects(){}
-
- public static Plugin lookupPlugin(MavenProject mavenProject, String key) {
-
- @SuppressWarnings("unchecked")
- List<Plugin> plugins = mavenProject.getBuildPlugins();
-
- for (Plugin plugin : plugins) {
- if (key.equalsIgnoreCase(plugin.getKey())) {
- return plugin;
- }
- }
- return null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/e08e261a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
----------------------------------------------------------------------
diff --git a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java b/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
deleted file mode 100644
index dc26f29..0000000
--- a/tool/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.apache.isis.tool.mavenplugin.util;
-
-import com.google.common.base.Function;
-
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-
-public final class Xpp3Doms {
-
- private Xpp3Doms(){}
-
- public static Function<Xpp3Dom, String> GET_VALUE = new Function<Xpp3Dom, String>(){
-
- public String apply(Xpp3Dom el) {
- return el.getValue();
- }};
-
-
-}
[2/4] isis git commit: ISIS-284: moving isis-maven-plugin from todo
app's webapp module and instead in the dom module. Supported this by
extending the ServicesInstaller API, adding setIgnoreFailures.
Posted by da...@apache.org.
ISIS-284: moving isis-maven-plugin from todo app's webapp module and instead in the dom module. Supported this by extending the ServicesInstaller API, adding setIgnoreFailures.
Also added into simpleapp example.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6ef5a7df
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6ef5a7df
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6ef5a7df
Branch: refs/heads/master
Commit: 6ef5a7df6f3249ef2744d5583b81d477f759efcd
Parents: e08e261
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 17 17:43:32 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 17 17:43:32 2014 +0000
----------------------------------------------------------------------
.../ServicesInstallerAnnotatedClass.java | 4 ++
.../isis/tool/mavenplugin/ValidateMojo.java | 43 ++++++++++----------
.../ResourceStreamSourceFileSystem.java | 20 ++++++++-
.../runtime/services/ServicesInstaller.java | 2 +
.../ServicesInstallerFromAnnotation.java | 5 +++
.../ServicesInstallerFromConfiguration.java | 5 +++
example/application/simpleapp/dom/pom.xml | 32 +++++++++++++++
example/application/todoapp/dom/pom.xml | 33 +++++++++++++++
example/application/todoapp/webapp/pom.xml | 32 ---------------
9 files changed, 121 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/legacy/components/ServicesInstallerAnnotatedClass.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/legacy/components/ServicesInstallerAnnotatedClass.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/legacy/components/ServicesInstallerAnnotatedClass.java
index 5208c88..3d6fec2 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/legacy/components/ServicesInstallerAnnotatedClass.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/legacy/components/ServicesInstallerAnnotatedClass.java
@@ -84,4 +84,8 @@ public class ServicesInstallerAnnotatedClass extends ServicesInstallerAbstract {
return listOf(List.class); // ie List<Object.class>, of services
}
+ @Override
+ public void setIgnoreFailures(boolean ignoreFailures) {
+ // no-op
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
index 49041ad..1db4ed2 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/ValidateMojo.java
@@ -20,7 +20,6 @@ package org.apache.isis.tool.mavenplugin;
import java.io.File;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.apache.maven.model.Plugin;
@@ -39,6 +38,8 @@ import org.apache.isis.core.metamodel.app.IsisMetaModel;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
+import org.apache.isis.core.runtime.services.ServicesInstaller;
+import org.apache.isis.core.runtime.services.ServicesInstallerFromAnnotation;
import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
@@ -46,11 +47,6 @@ import org.apache.isis.tool.mavenplugin.util.IsisMetaModels;
import org.apache.isis.tool.mavenplugin.util.MavenProjects;
import org.apache.isis.tool.mavenplugin.util.Xpp3Doms;
-/**
- *
- *
- *
- */
@Mojo(
name = "validate",
defaultPhase = LifecyclePhase.TEST,
@@ -67,8 +63,9 @@ public class ValidateMojo extends AbstractMojo {
public void execute() throws MojoExecutionException, MojoFailureException {
- final List<Object> serviceList = getServiceList();
- if(serviceList.size() == 0) {
+ final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
+ final List<Object> serviceList = plugin != null ? serviceListFor(plugin) : null;
+ if(serviceList == null || serviceList.size() == 0) {
return;
}
getLog().info("Found " + serviceList.size() + " services");
@@ -88,35 +85,35 @@ public class ValidateMojo extends AbstractMojo {
getLog().debug("loaded: " + objectSpecification.getFullIdentifier());
}
return isisMetaModel.getValidationFailures();
-
} finally {
IsisMetaModels.disposeSafely(isisMetaModel);
}
}
+ private List<Object> serviceListFor(Plugin plugin) throws MojoFailureException {
+ IsisConfiguration isisConfiguration = isisConfigurationFor(plugin);
- private List<Object> getServiceList() throws MojoFailureException {
- IsisConfiguration isisConfiguration = getIsisConfiguration();
+ final ServicesInstaller servicesInstaller;
if(isisConfiguration == null) {
- return Collections.emptyList();
+ servicesInstaller = new ServicesInstallerFromAnnotation();
+ } else {
+ final ServicesInstallerFromConfigurationAndAnnotation servicesInstallerFromConfigurationAndAnnotation = new ServicesInstallerFromConfigurationAndAnnotation();
+ servicesInstallerFromConfigurationAndAnnotation.setConfiguration(isisConfiguration);
+ servicesInstaller = servicesInstallerFromConfigurationAndAnnotation;
}
- final ServicesInstallerFromConfigurationAndAnnotation servicesInstaller = new ServicesInstallerFromConfigurationAndAnnotation();
servicesInstaller.setIgnoreFailures(true);
- servicesInstaller.setConfiguration(isisConfiguration);
servicesInstaller.init();
+
return servicesInstaller.getServices(DeploymentType.SERVER_PROTOTYPE);
}
- private IsisConfiguration getIsisConfiguration() throws MojoFailureException {
- final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
- if(plugin == null) {
- return null;
- }
+ private IsisConfiguration isisConfigurationFor(final Plugin plugin) throws MojoFailureException {
final Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
if (configuration == null) {
throwFailureException("Configuration error", "No <configuration> element found");
}
+
final Xpp3Dom servicesEl = configuration.getChild("isisConfigDir");
if (servicesEl == null) {
throwFailureException("Configuration error", "No <configuration>/<isisConfigDir> element found");
@@ -124,9 +121,13 @@ public class ValidateMojo extends AbstractMojo {
final String isisConfigDir = Xpp3Doms.GET_VALUE.apply(servicesEl);
final File basedir = mavenProject.getBasedir();
- final String absoluteConfigDir = new File(basedir, isisConfigDir).getAbsolutePath();
+ final File file = new File(basedir, isisConfigDir);
+ final String absoluteConfigDir = file.getAbsolutePath();
+ if(!file.exists() || !file.isDirectory()) {
+ throwFailureException("Configuration error",
+ String.format("isisConfigDir (%s) does not exist or is not a directory", absoluteConfigDir));
+ }
final IsisConfigurationBuilderDefault configBuilder = new IsisConfigurationBuilderDefault(absoluteConfigDir);
-
configBuilder.addDefaultConfigurationResources();
return configBuilder.getConfiguration();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceFileSystem.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceFileSystem.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceFileSystem.java
index 1c497fb..cec06d8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceFileSystem.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceFileSystem.java
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -31,8 +32,23 @@ public class ResourceStreamSourceFileSystem extends ResourceStreamSourceAbstract
/**
* Factory method to guard against nulls
*/
- public static ResourceStreamSource create(final String directory2) {
- return directory2 != null ? new ResourceStreamSourceFileSystem(directory2) : null;
+ public static ResourceStreamSource create(final String directory) {
+ if(directory == null) {
+ return null;
+ }
+ final File file = new File(directory);
+ if(!file.exists()) {
+ return null;
+ }
+ if (!file.isDirectory()) {
+ return null;
+ }
+ try {
+ return new ResourceStreamSourceFileSystem(file.getCanonicalPath());
+ } catch (IOException e) {
+ // shouldn't happen given earlier checks.
+ throw new RuntimeException(e);
+ }
}
private final String directory;
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstaller.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstaller.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstaller.java
index 0c1e88f..250a60c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstaller.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstaller.java
@@ -34,4 +34,6 @@ public interface ServicesInstaller extends Installer {
static String TYPE = "services-installer";
List<Object> getServices(DeploymentType deploymentType);
+
+ void setIgnoreFailures(boolean ignoreFailures);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
index a14ed16..1a20925 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
@@ -100,6 +100,11 @@ public class ServicesInstallerFromAnnotation extends InstallerAbstract implement
this.packagePrefixes = Joiner.on(",").join(packagePrefixes);
}
+ @Override
+ public void setIgnoreFailures(boolean ignoreFailures) {
+ // no-op
+ }
+
public void init() {
initIfRequired();
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
index 8d3b602..dff7bd0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
@@ -66,6 +66,10 @@ public class ServicesInstallerFromConfiguration extends InstallerAbstract implem
private Map<DeploymentType, List<Object>> servicesByDeploymentType = Maps.newHashMap();
+ @Override
+ public void setIgnoreFailures(boolean ignoreFailures) {
+ // no-op
+ }
public void init() {
initIfRequired();
@@ -109,6 +113,7 @@ public class ServicesInstallerFromConfiguration extends InstallerAbstract implem
return serviceList;
}
+
// //////////////////////////////////////
public void appendServices(
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/example/application/simpleapp/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/pom.xml b/example/application/simpleapp/dom/pom.xml
index 3956909..6b8dbdb 100644
--- a/example/application/simpleapp/dom/pom.xml
+++ b/example/application/simpleapp/dom/pom.xml
@@ -48,6 +48,38 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <configuration>
+ <isisConfigDir>..\webapp\src\main\webapp\WEB-INF</isisConfigDir>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>todoapp-dom</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+ <!--
+ ... workaround to avoid conflict with plexus-default
+ (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+ -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0.1</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>${datanucleus-maven-plugin.version}</version>
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/example/application/todoapp/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/pom.xml b/example/application/todoapp/dom/pom.xml
index cd4ffc3..c58f4c8 100644
--- a/example/application/todoapp/dom/pom.xml
+++ b/example/application/todoapp/dom/pom.xml
@@ -48,6 +48,39 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <configuration>
+ <isisConfigDir>..\webapp\src\main\webapp\WEB-INF</isisConfigDir>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>todoapp-dom</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+ <!--
+ ... workaround to avoid conflict with plexus-default
+ (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+ -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0.1</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>${datanucleus-maven-plugin.version}</version>
http://git-wip-us.apache.org/repos/asf/isis/blob/6ef5a7df/example/application/todoapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/pom.xml b/example/application/todoapp/webapp/pom.xml
index 269f9cc..7ea3bac 100644
--- a/example/application/todoapp/webapp/pom.xml
+++ b/example/application/todoapp/webapp/pom.xml
@@ -39,38 +39,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.isis.tool</groupId>
- <artifactId>isis-maven-plugin</artifactId>
- <version>1.8.0-SNAPSHOT</version>
- <configuration>
- <isisConfigDir>src\main\webapp\WEB-INF</isisConfigDir>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.apache.isis.example.application</groupId>
- <artifactId>todoapp-fixture</artifactId>
- <version>1.8.0-SNAPSHOT</version>
- </dependency>
- <!--
- ... workaround to avoid conflict with plexus-default (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
- -->
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>16.0.1</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <phase>test</phase>
- <goals>
- <goal>validate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
[4/4] isis git commit: ISIS-928: recreating todoapp archetype
Posted by da...@apache.org.
ISIS-928: recreating todoapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f76185de
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f76185de
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f76185de
Branch: refs/heads/master
Commit: f76185dedbb83b0cf68c7412e9445cd114d9b4b7
Parents: 857e356
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 17 18:15:02 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 17 18:15:02 2014 +0000
----------------------------------------------------------------------
.../resources/archetype-resources/dom/pom.xml | 33 +++++++++++++++++
.../dom/src/main/java/app/ToDoItemAnalysis.java | 6 ++--
.../java/app/ToDoItemsByCategoryViewModel.java | 6 ++--
.../java/app/ToDoItemsByDateRangeViewModel.java | 4 +--
.../dom/src/main/java/dom/todo/ToDoItem.java | 10 +++---
.../java/dom/todo/ToDoItemSubscriptions.java | 10 +++---
.../dom/src/main/java/dom/todo/ToDoItems.java | 37 ++++++++++++--------
.../fixture/todo/ToDoItemsFixturesService.java | 22 ++++++------
.../integtests/ToDoItemsIntegTestFixture.java | 2 +-
.../complete/ToDoItemCompleteAbstract.java | 20 +----------
.../complete/ToDoItemCompleteForBuyStamps.java | 5 ---
.../ToDoItemCompleteForWriteBlogPost.java | 5 ---
.../todo/items/create/ToDoItemAbstract.java | 2 +-
.../todo/items/delete/ToDoItemsDelete.java | 15 --------
.../todo/scenarios/ToDoItemsRecreate.java | 26 +++++++-------
.../ToDoItemsRecreateAndCompleteSeveral.java | 34 +++++++++++++++---
.../tests/ToDoItemContributionsIntegTest.java | 10 +++---
.../integration/tests/ToDoItemIntegTest.java | 10 +++---
.../main/java/webapp/CustomMementoService.java | 2 +-
.../prototyping/ExternalLinksService.java | 5 +--
.../prototyping/WicketDeveloperUtilities.java | 4 ++-
.../src/main/webapp/WEB-INF/isis.properties | 18 ++++++----
.../projects/basic/archetype.properties | 2 +-
23 files changed, 161 insertions(+), 127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
index 271e198..740c4c8 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/pom.xml
@@ -45,6 +45,39 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <configuration>
+ <isisConfigDir>..\webapp\src\main\webapp\WEB-INF</isisConfigDir>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>todoapp-dom</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+ <!--
+ ... workaround to avoid conflict with plexus-default
+ (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+ -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0.1</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>${datanucleus-maven-plugin.version}</version>
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
index 0937878..094b9f3 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemAnalysis.java
@@ -33,13 +33,13 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.ActionSemantics.Of;
import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
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.Programmatic;
-@ClassLayout(named="Analysis")
-@DomainService(menuOrder = "20")
+@DomainServiceLayout(named="Analysis", menuOrder = "20")
+@DomainService()
public class ToDoItemAnalysis {
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
index 97e39d5..fda72fc 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
@@ -34,7 +34,7 @@ import com.google.common.collect.Lists;
import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Render;
import org.apache.isis.applib.annotation.Render.Type;
@@ -42,8 +42,8 @@ import org.apache.isis.applib.annotation.Title;
import org.apache.isis.applib.annotation.ViewModel;
import org.apache.isis.applib.util.ObjectContracts;
-@ClassLayout(
- named="By Category"
+@DomainObjectLayout(
+ named="By Category"
)
@Bookmarkable
@ViewModel
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
index 7166028..001bdf4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
@@ -32,7 +32,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.joda.time.DateTime;
import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.applib.annotation.Render;
import org.apache.isis.applib.annotation.Render.Type;
import org.apache.isis.applib.annotation.Title;
@@ -40,7 +40,7 @@ import org.apache.isis.applib.annotation.ViewModel;
import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.util.ObjectContracts;
-@ClassLayout(
+@DomainObjectLayout(
named="By Date Range"
)
@Bookmarkable
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
index 2e4dd33..27749f4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
@@ -51,10 +51,10 @@ import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.Bulk.AppliesTo;
import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
import org.apache.isis.applib.annotation.CollectionInteraction;
+import org.apache.isis.applib.annotation.CollectionLayout;
import org.apache.isis.applib.annotation.Disabled;
import org.apache.isis.applib.annotation.Hidden;
import org.apache.isis.applib.annotation.MinLength;
-import org.apache.isis.applib.annotation.Named;
import org.apache.isis.applib.annotation.ObjectType;
import org.apache.isis.applib.annotation.Optional;
import org.apache.isis.applib.annotation.ParameterLayout;
@@ -62,7 +62,6 @@ import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.annotation.PropertyInteraction;
import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.annotation.RegEx;
-import org.apache.isis.applib.annotation.SortedBy;
import org.apache.isis.applib.annotation.TypicalLength;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.applib.services.eventbus.ActionInteractionEvent;
@@ -212,7 +211,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
Professional {
@Override
public List<Subcategory> subcategories() {
- return Arrays.asList(null, Subcategory.OpenSource, Subcategory.Consulting, Subcategory.Education);
+ return Arrays.asList(null, Subcategory.OpenSource, Subcategory.Consulting, Subcategory.Education, Subcategory.Marketing);
}
}, Domestic {
@Override
@@ -498,7 +497,7 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
private SortedSet<ToDoItem> dependencies = new TreeSet<ToDoItem>();
@CollectionInteraction
- @SortedBy(DependenciesComparator.class)
+ @CollectionLayout(sortedBy = DependenciesComparator.class)
public SortedSet<ToDoItem> getDependencies() {
return dependencies;
}
@@ -659,7 +658,8 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
@Prototype
@ActionSemantics(Of.SAFE)
- public void demoException(final @Named("Type") DemoExceptionType type) {
+ public void demoException(
+ final @ParameterLayout(named="Type") DemoExceptionType type) {
switch(type) {
case NonRecoverableException:
throw new NonRecoverableException("Demo throwing " + type.name());
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
index b018f07..f8cacc4 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
@@ -35,11 +35,11 @@ import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.ActionSemantics;
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.Named;
import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.services.eventbus.ActionInteractionEvent;
import org.apache.isis.applib.services.eventbus.CollectionInteractionEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
@@ -59,7 +59,8 @@ import static com.google.common.collect.Lists.newArrayList;
* vetoing the change).
* </p>
*/
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "30")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "30")
public class ToDoItemSubscriptions {
//region > LOG
@@ -135,7 +136,8 @@ public class ToDoItemSubscriptions {
)
@NotContributed
@ActionSemantics(ActionSemantics.Of.IDEMPOTENT)
- public void subscriberBehaviour(@Named("Behaviour") Behaviour behaviour) {
+ public void subscriberBehaviour(
+ @ParameterLayout(named="Behaviour") Behaviour behaviour) {
this.behaviour = behaviour;
container.informUser("Subscriber behaviour set to: " + behaviour);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
index 6bbcf10..aaabb71 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItems.java
@@ -29,28 +29,28 @@ import java.util.List;
import com.google.common.base.Predicates;
import org.joda.time.LocalDate;
import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.ActionSemantics.Of;
import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.ClassLayout;
-import org.apache.isis.applib.annotation.CssClassFa;
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.Named;
import org.apache.isis.applib.annotation.Optional;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.annotation.RegEx;
import org.apache.isis.applib.query.QueryDefault;
import org.apache.isis.applib.services.clock.ClockService;
-@ClassLayout(named="ToDos")
-@DomainService(menuOrder = "10", repositoryFor = ToDoItem.class)
+@DomainServiceLayout(named="ToDos", menuOrder = "10")
+@DomainService(repositoryFor = ToDoItem.class)
public class ToDoItems {
//region > notYetComplete (action)
- @CssClassFa("fa fa-thumbs-down")
+ @ActionLayout(
+ cssClassFa = "fa fa-thumbs-down"
+ )
@Bookmarkable
@ActionSemantics(Of.SAFE)
@MemberOrder(sequence = "10")
@@ -72,7 +72,9 @@ public class ToDoItems {
//endregion
//region > complete (action)
- @CssClassFa("fa fa-thumbs-up")
+ @ActionLayout(
+ cssClassFa = "fa fa-thumbs-up"
+ )
@ActionSemantics(Of.SAFE)
@MemberOrder(sequence = "20")
public List<ToDoItem> complete() {
@@ -93,11 +95,13 @@ public class ToDoItems {
//endregion
//region > categorized (action)
- @SuppressWarnings("unchecked")
- @Bookmarkable
+ @SuppressWarnings("unchecked")
+ @Bookmarkable
@ActionSemantics(Of.SAFE)
@MemberOrder(sequence = "40")
- @CssClassFa("fa fa-question")
+ @ActionLayout(
+ cssClassFa = "fa fa-question"
+ )
public List<ToDoItem> categorized(
@ParameterLayout(named="Category") final Category category,
@ParameterLayout(named="Subcategory") final Subcategory subcategory,
@@ -131,10 +135,11 @@ public class ToDoItems {
//endregion
//region > newToDo (action)
- @CssClassFa("fa fa-plus")
+ @ActionLayout(cssClassFa = "fa fa-plus")
@MemberOrder(sequence = "5")
public ToDoItem newToDo(
- final @RegEx(validation = "${symbol_escape}${symbol_escape}w[@&:${symbol_escape}${symbol_escape}-${symbol_escape}${symbol_escape},${symbol_escape}${symbol_escape}.${symbol_escape}${symbol_escape}+ ${symbol_escape}${symbol_escape}w]*") @Named("Description") String description,
+ final @RegEx(validation = "${symbol_escape}${symbol_escape}w[@&:${symbol_escape}${symbol_escape}-${symbol_escape}${symbol_escape},${symbol_escape}${symbol_escape}.${symbol_escape}${symbol_escape}+ ${symbol_escape}${symbol_escape}w]*")
+ @ParameterLayout(named="Description") String description,
final @ParameterLayout(named="Category") Category category,
final @Optional @ParameterLayout(named="Subcategory") Subcategory subcategory,
final @Optional @ParameterLayout(named="Due by") LocalDate dueBy,
@@ -163,8 +168,10 @@ public class ToDoItems {
//endregion
//region > allToDos (action)
- @CssClassFa("fa fa-globe")
- @Prototype
+ @ActionLayout(
+ cssClassFa = "fa fa-globe",
+ prototype = true
+ )
@ActionSemantics(Of.SAFE)
@MemberOrder(sequence = "50")
public List<ToDoItem> allToDos() {
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
index 27fa0eb..6bad4ef 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
@@ -24,13 +24,12 @@ package fixture.todo;
import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
import java.util.List;
-import org.apache.isis.applib.annotation.ClassLayout;
-import org.apache.isis.applib.annotation.CssClassFa;
+import org.apache.isis.applib.annotation.ActionLayout;
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.Optional;
import org.apache.isis.applib.annotation.ParameterLayout;
-import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.applib.fixturescripts.FixtureResult;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
@@ -38,17 +37,18 @@ import org.apache.isis.applib.fixturescripts.FixtureScripts;
/**
* Enables fixtures to be installed from the application.
*/
-@ClassLayout(
- named = "Prototyping"
-)
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "10")
+@DomainService
+@DomainServiceLayout(named = "Prototyping", menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "10")
public class ToDoItemsFixturesService extends FixtureScripts {
public ToDoItemsFixturesService() {
super("fixture.todo");
}
- @CssClassFa("fa fa-bolt")
+ @ActionLayout(
+ cssClassFa="fa fa-bolt",
+ prototype = true
+ )
@Override
public List<FixtureResult> runFixtureScript(
final FixtureScript fixtureScript,
@@ -78,8 +78,10 @@ public class ToDoItemsFixturesService extends FixtureScripts {
// //////////////////////////////////////
- @Prototype
- @CssClassFa("fa fa-list")
+ @ActionLayout(
+ cssClassFa="fa fa-list",
+ prototype = true
+ )
@MemberOrder(sequence="20")
public Object recreateToDoItemsReturnFirst() {
final List<FixtureResult> run = findFixtureScriptFor(ToDoItemsRecreateAndCompleteSeveral.class).run(null);
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
index d8743b5..eb2c28f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/integtests/ToDoItemsIntegTestFixture.java
@@ -37,7 +37,7 @@ public class ToDoItemsIntegTestFixture extends FixtureScript {
@Override
protected void execute(ExecutionContext executionContext) {
- executeChild(new ToDoItemsRecreateAndCompleteSeveral(), executionContext);
+ executionContext.executeChild(this, new ToDoItemsRecreateAndCompleteSeveral());
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
index 383dee9..b1ffcd1 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteAbstract.java
@@ -31,23 +31,6 @@ import org.apache.isis.applib.fixturescripts.FixtureScript;
public abstract class ToDoItemCompleteAbstract extends FixtureScript {
- @Override
- protected void execute(ExecutionContext executionContext) {
- validateParameters(executionContext);
-
-
- }
-
- /**
- * Subclasses should call from within {@link ${symbol_pound}execute(org.apache.isis.applib.fixturescripts.FixtureScript.ExecutionContext)}.
- */
- protected void validateParameters(ExecutionContext executionContext) {
- final String ownedBy = executionContext.getParameter("ownedBy");
- if(ownedBy == null) {
- throw new IllegalArgumentException("'ownedBy' must be specified");
- }
- }
-
/**
* Looks up item from repository, and completes.
*/
@@ -55,10 +38,9 @@ public abstract class ToDoItemCompleteAbstract extends FixtureScript {
String ownedBy = executionContext.getParameter("ownedBy");
final ToDoItem toDoItem = findToDoItem(description, ownedBy);
toDoItem.setComplete(true);
- executionContext.add(this, toDoItem);
+ executionContext.addResult(this, toDoItem);
}
-
private ToDoItem findToDoItem(final String description, final String ownedBy) {
final Collection<ToDoItem> filtered = Collections2.filter(getContainer().allInstances(ToDoItem.class), new Predicate<ToDoItem>() {
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
index 7f2bb5b..3a5d149 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForBuyStamps.java
@@ -27,11 +27,6 @@ public class ToDoItemCompleteForBuyStamps extends ToDoItemCompleteAbstract {
@Override
protected void execute(ExecutionContext executionContext) {
-
- // prereqs
- executeChild(new ToDoItemForBuyStamps(), executionContext);
-
- // this fixture
complete(ToDoItemForBuyStamps.DESCRIPTION, executionContext);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
index 1288528..14e417f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/actions/complete/ToDoItemCompleteForWriteBlogPost.java
@@ -27,11 +27,6 @@ public class ToDoItemCompleteForWriteBlogPost extends ToDoItemCompleteAbstract {
@Override
protected void execute(ExecutionContext executionContext) {
-
- // prereqs
- executeChild(new ToDoItemForWriteBlogPost(), executionContext);
-
- // this fixture
complete(ToDoItemForWriteBlogPost.DESCRIPTION, executionContext);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
index b9ce83a..305cef7 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/create/ToDoItemAbstract.java
@@ -49,7 +49,7 @@ public abstract class ToDoItemAbstract extends FixtureScript {
// execute
ToDoItem newToDo = toDoItems.newToDo(
description, category, subcategory, ownedBy, dueBy, cost);
- return executionContext.add(this, newToDo);
+ return executionContext.addResult(this, newToDo);
}
protected LocalDate nowPlusDays(int days) {
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
index 656d625..429d596 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/items/delete/ToDoItemsDelete.java
@@ -26,26 +26,11 @@ import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
public class ToDoItemsDelete extends FixtureScript {
- //region > ownedBy (optional)
- private String ownedBy;
-
- public String getOwnedBy() {
- return ownedBy;
- }
-
- public void setOwnedBy(String ownedBy) {
- this.ownedBy = ownedBy;
- }
- //endregion
-
//region > execute
protected void execute(ExecutionContext executionContext) {
-
final String ownedBy = executionContext.getParameter("ownedBy");
-
isisJdoSupport.executeUpdate("delete from ${symbol_escape}"ToDoItem${symbol_escape}" where ${symbol_escape}"ownedBy${symbol_escape}" = '" + ownedBy + "'");
}
-
//endregion
//region > injected services
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
index d7b758d..a1bb33f 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreate.java
@@ -65,20 +65,20 @@ public class ToDoItemsRecreate extends FixtureScript {
Util.coalesce(getOwnedBy(), getContainer().getUser().getName()));
// prereqs
- executeChild(new ToDoItemsDelete(), executionContext);
+ executionContext.executeChild(this, new ToDoItemsDelete());
// create items
- executeChild(new ToDoItemForBuyMilk(), executionContext);
- executeChild(new ToDoItemForBuyBread(), executionContext);
- executeChild(new ToDoItemForBuyStamps(), executionContext);
- executeChild(new ToDoItemForPickUpLaundry(), executionContext);
- executeChild(new ToDoItemForMowLawn(), executionContext);
- executeChild(new ToDoItemForVacuumHouse(), executionContext);
- executeChild(new ToDoItemForSharpenKnives(), executionContext);
- executeChild(new ToDoItemForWriteToPenPal(), executionContext);
- executeChild(new ToDoItemForWriteBlogPost(), executionContext);
- executeChild(new ToDoItemForOrganizeBrownBag(), executionContext);
- executeChild(new ToDoItemForSubmitConferenceSession(), executionContext);
- executeChild(new ToDoItemForStageIsisRelease(), executionContext);
+ executionContext.executeChild(this, new ToDoItemForBuyMilk());
+ executionContext.executeChild(this, new ToDoItemForBuyBread());
+ executionContext.executeChild(this, new ToDoItemForBuyStamps());
+ executionContext.executeChild(this, new ToDoItemForPickUpLaundry());
+ executionContext.executeChild(this, new ToDoItemForMowLawn());
+ executionContext.executeChild(this, new ToDoItemForVacuumHouse());
+ executionContext.executeChild(this, new ToDoItemForSharpenKnives());
+ executionContext.executeChild(this, new ToDoItemForWriteToPenPal());
+ executionContext.executeChild(this, new ToDoItemForWriteBlogPost());
+ executionContext.executeChild(this, new ToDoItemForOrganizeBrownBag());
+ executionContext.executeChild(this, new ToDoItemForSubmitConferenceSession());
+ executionContext.executeChild(this, new ToDoItemForStageIsisRelease());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
index 7ae2d7f..3d790b7 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/scenarios/ToDoItemsRecreateAndCompleteSeveral.java
@@ -23,6 +23,19 @@ package fixture.todo.scenarios;
import fixture.todo.items.actions.complete.ToDoItemCompleteForBuyStamps;
import fixture.todo.items.actions.complete.ToDoItemCompleteForWriteBlogPost;
+import fixture.todo.items.create.ToDoItemForBuyBread;
+import fixture.todo.items.create.ToDoItemForBuyMilk;
+import fixture.todo.items.create.ToDoItemForBuyStamps;
+import fixture.todo.items.create.ToDoItemForMowLawn;
+import fixture.todo.items.create.ToDoItemForOrganizeBrownBag;
+import fixture.todo.items.create.ToDoItemForPickUpLaundry;
+import fixture.todo.items.create.ToDoItemForSharpenKnives;
+import fixture.todo.items.create.ToDoItemForStageIsisRelease;
+import fixture.todo.items.create.ToDoItemForSubmitConferenceSession;
+import fixture.todo.items.create.ToDoItemForVacuumHouse;
+import fixture.todo.items.create.ToDoItemForWriteBlogPost;
+import fixture.todo.items.create.ToDoItemForWriteToPenPal;
+import fixture.todo.items.delete.ToDoItemsDelete;
import fixture.todo.util.Util;
import org.apache.isis.applib.fixturescripts.FixtureScript;
@@ -53,11 +66,24 @@ public class ToDoItemsRecreateAndCompleteSeveral extends FixtureScript {
"ownedBy",
Util.coalesce(getOwnedBy(), getContainer().getUser().getName()));
- // prereqs
- executeChild(new ToDoItemsRecreate(), executionContext);
+ executionContext.executeChild(this, new ToDoItemsDelete());
+
+ // create items
+ executionContext.executeChild(this, new ToDoItemForBuyMilk());
+ executionContext.executeChild(this, new ToDoItemForBuyBread());
+ executionContext.executeChild(this, new ToDoItemForBuyStamps());
+ executionContext.executeChild(this, new ToDoItemForPickUpLaundry());
+ executionContext.executeChild(this, new ToDoItemForMowLawn());
+ executionContext.executeChild(this, new ToDoItemForVacuumHouse());
+ executionContext.executeChild(this, new ToDoItemForSharpenKnives());
+ executionContext.executeChild(this, new ToDoItemForWriteToPenPal());
+ executionContext.executeChild(this, new ToDoItemForWriteBlogPost());
+ executionContext.executeChild(this, new ToDoItemForOrganizeBrownBag());
+ executionContext.executeChild(this, new ToDoItemForSubmitConferenceSession());
+ executionContext.executeChild(this, new ToDoItemForStageIsisRelease());
// this fixture
- executeChild(new ToDoItemCompleteForBuyStamps(), executionContext);
- executeChild(new ToDoItemCompleteForWriteBlogPost(), executionContext);
+ executionContext.executeChild(this, new ToDoItemCompleteForBuyStamps());
+ executionContext.executeChild(this, new ToDoItemCompleteForWriteBlogPost());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
index 0725ca9..7440088 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemContributionsIntegTest.java
@@ -24,7 +24,7 @@ package integration.tests;
import dom.todo.ToDoItem;
import dom.todo.ToDoItemContributions;
import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
+import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
import java.util.List;
import javax.inject.Inject;
@@ -40,12 +40,12 @@ import static org.junit.Assert.assertThat;
public abstract class ToDoItemContributionsIntegTest extends AbstractToDoIntegTest {
- ToDoItemsIntegTestFixture fixture;
+ ToDoItemsRecreateAndCompleteSeveral fixtureScript;
@Before
public void setUpData() throws Exception {
- // executing the fixtures directly allows us to look up the results later.
- fixtureScripts.runFixtureScript(fixture = new ToDoItemsIntegTestFixture(), null);
+ fixtureScript = new ToDoItemsRecreateAndCompleteSeveral();
+ fixtureScripts.runFixtureScript(fixtureScript, null);
}
@Inject
@@ -61,7 +61,7 @@ public abstract class ToDoItemContributionsIntegTest extends AbstractToDoIntegTe
@Before
public void setUp() throws Exception {
- toDoItem = wrap(fixture.lookup("integ-test/to-do-items-recreate-and-complete-several/to-do-item-complete-for-buy-stamps/item-1", ToDoItem.class));
+ toDoItem = wrap(fixtureScript.lookup("to-do-items-recreate-and-complete-several/to-do-item-complete-for-buy-stamps/item-1", ToDoItem.class));
assertThat(toDoItem, is(not(nullValue())));
toDoItemContributionsWrapped = wrap(toDoItemContributions);
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
index 54f2adf..b9091fb 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
@@ -24,7 +24,7 @@ package integration.tests;
import dom.todo.ToDoItem;
import dom.todo.ToDoItemSubscriptions;
import dom.todo.ToDoItems;
-import fixture.todo.integtests.ToDoItemsIntegTestFixture;
+import fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral;
import java.math.BigDecimal;
import java.nio.charset.Charset;
@@ -64,12 +64,12 @@ import static org.junit.Assert.assertThat;
public class ToDoItemIntegTest extends AbstractToDoIntegTest {
- ToDoItemsIntegTestFixture fixture;
+ ToDoItemsRecreateAndCompleteSeveral fixtureScript;
@Before
public void setUpData() throws Exception {
- // executing the fixtures directly allows us to look up the results later.
- fixtureScripts.runFixtureScript(fixture = new ToDoItemsIntegTestFixture(), null);
+ fixtureScript = new ToDoItemsRecreateAndCompleteSeveral();
+ fixtureScripts.runFixtureScript(fixtureScript, null);
}
@Inject
@@ -103,7 +103,7 @@ public class ToDoItemIntegTest extends AbstractToDoIntegTest {
final List<ToDoItem> all = wrap(toDoItems).notYetComplete();
toDoItem = wrap(all.get(0));
- toDoItem = wrap(fixture.lookup("integ-test/to-do-items-recreate-and-complete-several/to-do-items-recreate/to-do-item-for-buy-bread/item-1", ToDoItem.class));
+ toDoItem = wrap(fixtureScript.lookup("to-do-items-recreate-and-complete-several/to-do-item-for-buy-bread/item-1", ToDoItem.class));
assertThat(toDoItem, is(not(nullValue())));
nextTransaction();
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
index 51f3db9..dc619cd 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/CustomMementoService.java
@@ -35,7 +35,7 @@ import org.apache.isis.core.runtime.services.memento.MementoServiceDefault;
* <pre>
* isis.services = ${symbol_escape}
* ...,
- * 1:webapp.MyMementoService,
+ * 1:webapp.CustomMementoService,
* ...,
* </pre>
* <p>
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
index a1edab5..828897c 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
@@ -25,11 +25,12 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.ActionSemantics.Of;
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.ParameterLayout;
-import org.apache.isis.applib.annotation.Prototype;
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "20")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "20")
public class ExternalLinksService {
public static enum ExternalLink {
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
index 5ef2093..40213a3 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/java/webapp/prototyping/WicketDeveloperUtilities.java
@@ -21,6 +21,7 @@ package webapp.prototyping;
import org.apache.isis.applib.annotation.ActionLayout;
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.viewer.wicket.viewer.applib.WicketDeveloperUtilitiesService;
@@ -28,7 +29,8 @@ import org.apache.isis.viewer.wicket.viewer.applib.WicketDeveloperUtilitiesServi
* These overrides are simply to 'move' the action underneath the
* 'Prototyping' menu.
*/
-@DomainService(menuBar = DomainService.MenuBar.SECONDARY, menuOrder = "40")
+@DomainService
+@DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "40")
public class WicketDeveloperUtilities extends WicketDeveloperUtilitiesService {
@ActionLayout(named="Clear i18n Cache")
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
index dfcbaf3..b4942ff 100644
--- a/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/archetype/todoapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -24,7 +24,7 @@ ${symbol_pound}
${symbol_pound} specify system components.
${symbol_pound}
${symbol_pound} The values correspond to the named components in the installer-registry.properties file
-${symbol_pound} in the org.apache.isis.runtimes.dflt:runtime JAR (in the org.apache.isis.runtimes.dflt.runtime package)
+${symbol_pound} in the org.apache.isis.core:isis-core-runtime JAR (in the org.apache.isis.core.runtime package)
${symbol_pound}
${symbol_pound} Although all configuration could reside in isis.properties, the recommendation is
${symbol_pound} to split out into component specific files:
@@ -35,11 +35,7 @@ ${symbol_pound} where
${symbol_pound} * xxx is the component type, and
${symbol_pound} * yyy is the component name.
${symbol_pound}
-${symbol_pound} For example, persistor_sql.properties holds configuration information specific to the
-${symbol_pound}
-${symbol_pound}
-${symbol_pound} If the components are changed, also remember to edit pom.xml (further comments can be
-${symbol_pound} found in the persistor_xxx.properties files)
+${symbol_pound} For example, viewer_wicket.properties holds configuration information specific to the Wicket viewer.
${symbol_pound}
${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
@@ -99,6 +95,14 @@ ${symbol_pound}isis.reflector.validator=
${symbol_pound}
+${symbol_pound} layoutMetadataReader(s)
+${symbol_pound}
+
+${symbol_pound} isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson
+
+
+
+${symbol_pound}
${symbol_pound} patterns for applying CssClassFa facet (font-awesome icons) to member names
${symbol_pound}
isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
@@ -194,7 +198,7 @@ ${symbol_pound} Fixtures are used to seed the object store with an initial set o
${symbol_pound} in-memory object store, the fixtures are installed on every run. For other
${symbol_pound} object stores, they are used only when the object store is first initialized.
${symbol_pound}
-isis.fixtures=fixture.todo.scenarios.ToDoItemsRecreateForSven
+${symbol_pound}isis.fixtures=fixture.todo.scenarios.ToDoItemsRecreateForSven
${symbol_pound}
http://git-wip-us.apache.org/repos/asf/isis/blob/f76185de/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
index 9d6cbff..038d8a8 100644
--- a/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/todoapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Fri Dec 05 11:57:56 GMT 2014
+#Wed Dec 17 18:14:56 GMT 2014
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
[3/4] isis git commit: ISIS-928: recreating simpleapp archetype
Posted by da...@apache.org.
ISIS-928: recreating simpleapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/857e3563
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/857e3563
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/857e3563
Branch: refs/heads/master
Commit: 857e35632a6a93d495f41fa94bc55756f57e9278
Parents: 6ef5a7d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Dec 17 18:14:49 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Dec 17 18:14:49 2014 +0000
----------------------------------------------------------------------
.../resources/archetype-resources/dom/pom.xml | 32 ++++++++++++++++++++
.../simple/SimpleObjectsFixturesService.java | 6 ++--
.../simple/objects/SimpleObjectAbstract.java | 2 +-
.../simple/scenario/SimpleObjectsFixture.java | 8 ++---
.../src/main/webapp/WEB-INF/isis.properties | 16 ++++++----
.../projects/basic/archetype.properties | 2 +-
6 files changed, 51 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/pom.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/pom.xml
index 5ab3e8b..6a10ffe 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/pom.xml
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/pom.xml
@@ -45,6 +45,38 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <configuration>
+ <isisConfigDir>..\webapp\src\main\webapp\WEB-INF</isisConfigDir>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.isis.example.application</groupId>
+ <artifactId>todoapp-dom</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ </dependency>
+ <!--
+ ... workaround to avoid conflict with plexus-default
+ (not sure why exclusions in the isis-maven-plugin aren't sufficient, though ...
+ -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0.1</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>${datanucleus-maven-plugin.version}</version>
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java
index f7f1813..22c1f7d 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java
@@ -24,8 +24,8 @@ package fixture.simple;
import fixture.simple.scenario.SimpleObjectsFixture;
import java.util.List;
-import org.apache.isis.applib.annotation.ClassLayout;
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.Prototype;
import org.apache.isis.applib.fixturescripts.FixtureResult;
@@ -36,8 +36,8 @@ import org.apache.isis.applib.fixturescripts.SimpleFixtureScript;
/**
* Enables fixtures to be installed from the application.
*/
-@ClassLayout(named="Prototyping")
-@DomainService(menuBar= DomainService.MenuBar.SECONDARY, menuOrder = "20")
+@DomainService
+@DomainServiceLayout(named="Prototyping", menuBar = DomainServiceLayout.MenuBar.SECONDARY, menuOrder = "20")
public class SimpleObjectsFixturesService extends FixtureScripts {
public SimpleObjectsFixturesService() {
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/objects/SimpleObjectAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/objects/SimpleObjectAbstract.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/objects/SimpleObjectAbstract.java
index 8f282ec..2aadd16 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/objects/SimpleObjectAbstract.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/objects/SimpleObjectAbstract.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.fixturescripts.FixtureScript;
public abstract class SimpleObjectAbstract extends FixtureScript {
protected SimpleObject create(final String name, ExecutionContext executionContext) {
- return executionContext.add(this, simpleObjects.create(name));
+ return executionContext.addResult(this, simpleObjects.create(name));
}
@javax.inject.Inject
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/scenario/SimpleObjectsFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/scenario/SimpleObjectsFixture.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/scenario/SimpleObjectsFixture.java
index f067114..f2936e0 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/scenario/SimpleObjectsFixture.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/fixture/simple/scenario/SimpleObjectsFixture.java
@@ -38,11 +38,11 @@ public class SimpleObjectsFixture extends FixtureScript {
@Override
protected void execute(ExecutionContext executionContext) {
- executeChild(new SimpleObjectsTearDownFixture(), executionContext);
+ executionContext.executeChild(this, new SimpleObjectsTearDownFixture());
- executeChild(new SimpleObjectForFoo(), executionContext);
- executeChild(new SimpleObjectForBar(), executionContext);
- executeChild(new SimpleObjectForBaz(), executionContext);
+ executionContext.executeChild(this, new SimpleObjectForFoo());
+ executionContext.executeChild(this, new SimpleObjectForBar());
+ executionContext.executeChild(this, new SimpleObjectForBaz());
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
index eae9e91..bf63c40 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -24,7 +24,7 @@ ${symbol_pound}
${symbol_pound} specify system components.
${symbol_pound}
${symbol_pound} The values correspond to the named components in the installer-registry.properties file
-${symbol_pound} in the org.apache.isis.runtimes.dflt:runtime JAR (in the org.apache.isis.runtimes.dflt.runtime package)
+${symbol_pound} in the org.apache.isis.core:isis-core-runtime JAR (in the org.apache.isis.core.runtime package)
${symbol_pound}
${symbol_pound} Although all configuration could reside in isis.properties, the recommendation is
${symbol_pound} to split out into component specific files:
@@ -35,11 +35,7 @@ ${symbol_pound} where
${symbol_pound} * xxx is the component type, and
${symbol_pound} * yyy is the component name.
${symbol_pound}
-${symbol_pound} For example, persistor_sql.properties holds configuration information specific to the
-${symbol_pound}
-${symbol_pound}
-${symbol_pound} If the components are changed, also remember to edit pom.xml (further comments can be
-${symbol_pound} found in the persistor_xxx.properties files)
+${symbol_pound} For example, viewer_wicket.properties holds configuration information specific to the Wicket viewer.
${symbol_pound}
${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
@@ -99,6 +95,14 @@ ${symbol_pound}isis.reflector.validator=
${symbol_pound}
+${symbol_pound} layoutMetadataReader(s)
+${symbol_pound}
+
+${symbol_pound} isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson
+
+
+
+${symbol_pound}
${symbol_pound} patterns for applying CssClassFa facet (font-awesome icons) to member names
${symbol_pound}
isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
http://git-wip-us.apache.org/repos/asf/isis/blob/857e3563/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
index 5957bd5..cc2c384 100644
--- a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Fri Dec 05 11:55:17 GMT 2014
+#Wed Dec 17 18:14:43 GMT 2014
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it