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 2018/01/04 19:23:46 UTC
[isis] 08/10: ISIS-1465: recreating helloworld archetype
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch release-1.16.0-RC1
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 2a0b21fe5f1981c938b90879d2008b402d7b13c6
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 4 19:13:55 2018 +0000
ISIS-1465: recreating helloworld archetype
---
example/archetype/helloworld/pom.xml | 7 +-
.../src/main/resources/archetype-resources/pom.xml | 76 +++++++++++---
.../application/HelloWorldAppManifest.java | 8 +-
...sis.properties => isis-non-changing.properties} | 10 +-
.../java/domainapp/application/menubars.layout.xml | 112 +++++++++++++++++++++
.../main/java/domainapp/dom/HelloWorldModule.java | 6 +-
.../java/domainapp/dom/impl/HelloWorldObject.java | 41 ++++----
.../java/domainapp/dom/impl/HelloWorldObjects.java | 24 ++---
.../src/main/webapp/WEB-INF/isis.properties | 22 ++--
.../src/main/webapp/WEB-INF/logging.properties | 28 ++++--
.../src/main/webapp/about/index.html | 2 +-
.../src/main/webapp/swagger-ui/index.html | 6 +-
.../dom/impl/HelloWorldObjectTest_delete.java | 2 +-
.../dom/impl/HelloWorldObjectTest_updateName.java | 2 +-
.../resources/projects/basic/archetype.properties | 2 +-
15 files changed, 262 insertions(+), 86 deletions(-)
diff --git a/example/archetype/helloworld/pom.xml b/example/archetype/helloworld/pom.xml
index f10a2c3..a978be8 100644
--- a/example/archetype/helloworld/pom.xml
+++ b/example/archetype/helloworld/pom.xml
@@ -17,7 +17,7 @@
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/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.isis.archetype</groupId>
<artifactId>helloworld-archetype</artifactId>
@@ -65,12 +65,11 @@
<connection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</connection>
<developerConnection>scm:git:git@github.com:incodehq/incode-build.git/helloworld</developerConnection>
<url>git@github.com:incodehq/incode-build.git/helloworld</url>
- <tag>HEAD</tag>
- </scm>
+ </scm>
<parent>
<groupId>org.apache.isis.core</groupId>
<artifactId>isis</artifactId>
- <version>1.15.1</version>
+ <version>1.16.0</version>
<relativePath>../../../core/pom.xml</relativePath>
</parent>
<properties>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
index c11f281..d1a1371 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml
@@ -34,9 +34,7 @@
<packaging>war</packaging>
<properties>
- <isis.version>1.15.1</isis.version>
-
- <lombok.version>1.16.18</lombok.version>
+ <isis.version>1.16.0</isis.version>
<compiler-plugin.source>1.8</compiler-plugin.source>
<compiler-plugin.target>1.8</compiler-plugin.target>
@@ -44,7 +42,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <maven-war-plugin.warName>${project.parent.artifactId}</maven-war-plugin.warName>
+ <maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
</properties>
<build>
@@ -89,6 +87,52 @@
</plugins>
</build>
+ <repositories>
+ <repository>
+ <id>apache.snapshots</id>
+ <name>Apache Snapshots</name>
+ <url>https://repository.apache.org/content/repositories/snapshots/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>cloudbees.estatio.snapshots</id>
+ <url>http://repository-estatio.forge.cloudbees.com/snapshot/</url>
+ <name>CloudBees Snapshots (and Interim Releases)</name>
+ <releases>
+ <updatePolicy>never</updatePolicy>
+ <checksumPolicy>fail</checksumPolicy>
+ </releases>
+ <snapshots>
+ <updatePolicy>never</updatePolicy>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <layout>default</layout>
+ </repository>
+ <repository>
+ <id>sonatype-snapshots</id>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ <snapshots>
+ </snapshots>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>cloudbees.estatio.snapshots</id>
+ <name>CloudBees Snapshots (and Interim Releases)</name>
+ <releases>
+ <updatePolicy>never</updatePolicy>
+ <checksumPolicy>fail</checksumPolicy>
+ </releases>
+ <url>http://repository-estatio.forge.cloudbees.com/snapshot/</url>
+ <layout>default</layout>
+ </pluginRepository>
+ </pluginRepositories>
+
<dependencyManagement>
<dependencies>
<dependency>
@@ -114,11 +158,6 @@
</dependency>
<dependency>
<groupId>org.apache.isis.mavendeps</groupId>
- <artifactId>isis-mavendeps-intellij</artifactId>
- <type>pom</type>
- </dependency>
- <dependency>
- <groupId>org.apache.isis.mavendeps</groupId>
<artifactId>isis-mavendeps-testing</artifactId>
<scope>test</scope>
<type>pom</type>
@@ -129,12 +168,6 @@
<artifactId>hsqldb</artifactId>
</dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>${lombok.version}</version>
- <scope>provided</scope>
- </dependency>
</dependencies>
<profiles>
@@ -147,7 +180,18 @@
</activation>
<build>
<directory>target-ide</directory>
- </build>
+ <plugins>
+ <!-- eclipse doesn't seem to support maven mixins config, so repeat here -->
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${compiler-plugin.source}</source>
+ <target>${compiler-plugin.target}</target>
+ <compilerArgument />
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java
index a594a3a..b9c28c7 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java
@@ -21,18 +21,18 @@
*/
package domainapp.application;
-import org.apache.isis.applib.AppManifestAbstract;
+import org.apache.isis.applib.AppManifestAbstract2;
import domainapp.dom.HelloWorldModule;
/**
* Bootstrap the application.
*/
-public class HelloWorldAppManifest extends AppManifestAbstract {
+public class HelloWorldAppManifest extends AppManifestAbstract2 {
public static final Builder BUILDER = Builder
- .forModules(HelloWorldModule.class)
- .withConfigurationPropertiesFile(HelloWorldAppManifest.class, "isis.properties")
+ .forModule(new HelloWorldModule())
+ .withConfigurationPropertiesFile(HelloWorldAppManifest.class, "isis-non-changing.properties")
.withAuthMechanism("shiro");
public HelloWorldAppManifest() {
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
similarity index 85%
rename from example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties
rename to example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
index 2d1507f..5cb1658 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
@@ -19,7 +19,9 @@ ${symbol_pound} specific language governing permissions and limitations
${symbol_pound} under the License.
-isis.appManifest=domainapp.application.HelloWorldAppManifest
+
+${symbol_pound}isis.services.eventbus.implementation=guava
+isis.services.eventbus.implementation=axon
isis.reflector.validator.allowDeprecated=false
isis.reflector.validator.noParamsOnly=true
@@ -27,6 +29,9 @@ isis.reflector.validator.explicitObjectType=true
isis.reflector.validator.serviceActionsOnly=true
isis.reflector.validator.mixinsOnly=true
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.titleUiEvent.postForDefault=true
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.iconUiEvent.postForDefault=true
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.cssClassUiEvent.postForDefault=true
isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
new.*:fa-plus,${symbol_escape}
@@ -40,8 +45,9 @@ isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
isis.reflector.facet.cssClass.patterns=${symbol_escape}
delete.*:btn-danger
-isis.objects.editing=false
+isis.reflector.explicitAnnotations.action=true
+isis.objects.editing=false
isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
isis.viewer.wicket.maxTitleLengthInParentedTables=0
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/menubars.layout.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/menubars.layout.xml
new file mode 100644
index 0000000..d81fde6
--- /dev/null
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/menubars.layout.xml
@@ -0,0 +1,112 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ 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.
+-->
+<mb3:menuBars xsi:schemaLocation="http://isis.apache.org/applib/layout/menubars/bootstrap3 http://isis.apache.org/applib/layout/menubars/bootstrap3/menubars.xsd http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/links http://isis.apache.org/applib/layout/links/links.xsd" xmlns:cpt="http://isis.apache.org/applib/layout/component" xmlns:lnk="http://isis.apache.org/applib/layout/links" xmlns:mb3="h [...]
+ <mb3:primary>
+ <mb3:menu>
+ <mb3:named>Hello World Objects</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="${artifactId}.HelloWorldObjects" id="create">
+ <cpt:named>Create</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="${artifactId}.HelloWorldObjects" id="findByName">
+ <cpt:named>Find By Name</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="${artifactId}.HelloWorldObjects" id="listAll">
+ <cpt:named>List All</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ <mb3:menu unreferencedActions="true">
+ <mb3:named>Other</mb3:named>
+ </mb3:menu>
+ </mb3:primary>
+ <mb3:secondary>
+ <mb3:menu>
+ <mb3:named>Prototyping</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="runFixtureScript">
+ <cpt:named>Run Fixture Script</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="runFixtureScriptWithAutoComplete">
+ <cpt:named>Run Fixture Script</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="recreateObjectsAndReturnFirst">
+ <cpt:named>Recreate Objects And Return First</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.LayoutServiceMenu" id="downloadLayouts">
+ <cpt:named>Download Object Layouts (ZIP)</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.LayoutServiceMenu" id="downloadMenuBarsLayout">
+ <cpt:named>Download Menu Bars Layout (XML)</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.MetaModelServicesMenu" id="downloadMetaModel">
+ <cpt:named>Download Meta Model (CSV)</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="openSwaggerUi">
+ <cpt:named>Open Swagger Ui</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="openRestApi">
+ <cpt:named>Open Rest Api</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="downloadSwaggerSchemaDefinition">
+ <cpt:named>Download Swagger Schema Definition</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="downloadTranslations">
+ <cpt:named>Download Translations</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="resetTranslationCache">
+ <cpt:named>Clear translation cache</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="switchToReadingTranslations">
+ <cpt:named>Switch To Reading Translations</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="switchToWritingTranslations">
+ <cpt:named>Switch To Writing Translations</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.HsqlDbManagerMenu" id="hsqlDbManager">
+ <cpt:named>HSQL DB Manager</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ </mb3:secondary>
+ <mb3:tertiary>
+ <mb3:menu>
+ <mb3:named>Configuration Service Menu</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.ConfigurationServiceMenu" id="configuration">
+ <cpt:named>Configuration</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ </mb3:tertiary>
+</mb3:menuBars>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java
index 04bee0c..80257f7 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java
@@ -21,6 +21,8 @@
*/
package domainapp.dom;
-public final class HelloWorldModule {
- private HelloWorldModule(){}
+import org.apache.isis.applib.ModuleAbstract;
+
+public class HelloWorldModule extends ModuleAbstract {
+
}
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index 6d7850c..6217c1f 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -25,7 +25,7 @@ import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.VersionStrategy;
-import com.google.common.collect.Ordering;
+import com.google.common.collect.ComparisonChain;
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.Auditing;
@@ -43,36 +43,30 @@ import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
-import lombok.AccessLevel;
-
@javax.jdo.annotations.PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "${artifactId}" )
@javax.jdo.annotations.DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column ="version")
-@javax.jdo.annotations.Queries({
- @javax.jdo.annotations.Query(
- name = "findByName",
- value = "SELECT "
- + "FROM domainapp.dom.impl.HelloWorldObject "
- + "WHERE name.indexOf(:name) >= 0 ")
-})
@javax.jdo.annotations.Unique(name="HelloWorldObject_name_UNQ", members = {"name"})
@DomainObject(auditing = Auditing.ENABLED)
-@DomainObjectLayout() // trigger events etc.
-@lombok.RequiredArgsConstructor(staticName = "create")
-@lombok.Getter @lombok.Setter
+@DomainObjectLayout() // causes UI events to be triggered
public class HelloWorldObject implements Comparable<HelloWorldObject> {
+ public HelloWorldObject(final String name) {
+ this.name = name;
+ }
@javax.jdo.annotations.Column(allowsNull = "false", length = 40)
- @lombok.NonNull
@Property(editing = Editing.DISABLED)
@Title(prepend = "Object: ")
private String name;
-
+ public String getName() { return name; }
+ public void setName(final String name) { this.name = name; }
@javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
@Property(editing = Editing.ENABLED)
private String notes;
+ public String getNotes() { return notes; }
+ public void setNotes(final String notes) { this.notes = notes; }
@Action(semantics = SemanticsOf.IDEMPOTENT, command = CommandReification.ENABLED, publishing = Publishing.ENABLED)
@@ -83,7 +77,6 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
setName(name);
return this;
}
-
public String default0UpdateName() {
return getName();
}
@@ -96,25 +89,29 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
repositoryService.removeAndFlush(this);
}
+ @Override
+ public String toString() {
+ return getName();
+ }
@Override
public int compareTo(final HelloWorldObject other) {
- return Ordering.natural().onResultOf(HelloWorldObject::getName).compare(this, other);
+ return ComparisonChain.start()
+ .compare(this.getName(), other.getName())
+ .result();
}
- //region > injected services
+ @javax.jdo.annotations.NotPersistent
@javax.inject.Inject
- @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
RepositoryService repositoryService;
+ @javax.jdo.annotations.NotPersistent
@javax.inject.Inject
- @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
TitleService titleService;
+ @javax.jdo.annotations.NotPersistent
@javax.inject.Inject
- @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
MessageService messageService;
- //endregion
}
\ No newline at end of file
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index b27729a..24da58a 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -23,6 +23,8 @@ package domainapp.dom.impl;
import java.util.List;
+import org.datanucleus.query.typesafe.TypesafeQuery;
+
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.MemberOrder;
@@ -31,8 +33,7 @@ import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.query.QueryDefault;
-import org.apache.isis.applib.services.registry.ServiceRegistry2;
+import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
import org.apache.isis.applib.services.repository.RepositoryService;
@DomainService(
@@ -47,17 +48,19 @@ public class HelloWorldObjects {
@Parameter(maxLength = 40)
@ParameterLayout(named = "Name")
final String name) {
- return repositoryService.persist(HelloWorldObject.create(name));
+ return repositoryService.persist(new HelloWorldObject(name));
}
@Action(semantics = SemanticsOf.SAFE)
@MemberOrder(sequence = "2")
public List<HelloWorldObject> findByName(final String name) {
- return repositoryService.allMatches(
- new QueryDefault<>(
- HelloWorldObject.class,
- "findByName",
- "name", name));
+ TypesafeQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
+ final QHelloWorldObject cand = QHelloWorldObject.candidate();
+ q = q.filter(
+ cand.name.indexOf(q.stringParameter("name")).ne(-1)
+ );
+ return q.setParameter("name", name)
+ .executeList();
}
@Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING)
@@ -66,13 +69,10 @@ public class HelloWorldObjects {
return repositoryService.allInstances(HelloWorldObject.class);
}
-
- //region > injected services
@javax.inject.Inject
RepositoryService repositoryService;
@javax.inject.Inject
- ServiceRegistry2 serviceRegistry;
- //endregion
+ IsisJdoSupport isisJdoSupport;
}
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties
index 111f5ce..51c4ee2 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties
@@ -19,21 +19,31 @@ ${symbol_pound} specific language governing permissions and limitations
${symbol_pound} under the License.
-
-
+${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_pou [...]
${symbol_pound}
-${symbol_pound} Specify the modules (= entities + services) and other components that make up
-${symbol_pound} this application.
+${symbol_pound} AppManifest specifies the modules, system components and fixtures of the app
${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_pou [...]
+
isis.appManifest=domainapp.application.HelloWorldAppManifest
-${symbol_pound}isis.services.eventbus.implementation=guava
-isis.services.eventbus.implementation=axon
+${symbol_pound}
+${symbol_pound} The properties listed in this file vary between dev/test/prod.
+${symbol_pound} All remaining properties (which are static and don't vary between dev/test/prod)
+${symbol_pound} are loaded in programmatically by the AppManifest, see isis-non-changing.properties
+${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_pou [...]
+${symbol_pound}
+${symbol_pound} JDBC connection details
+${symbol_pound} (also update the pom.xml to reference the appropriate JDBC driver)
+${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_pou [...]
isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver
isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:hsqldb:mem:test
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
index ae3070e..c2ca289 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties
@@ -47,11 +47,17 @@ log4j.appender.File.append=false
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
-log4j.appender.sql=org.apache.log4j.RollingFileAppender
-log4j.appender.sql.File=./logs/sql.log
-log4j.appender.sql.Append=false
-log4j.appender.sql.layout=org.apache.log4j.PatternLayout
-log4j.appender.sql.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+log4j.appender.sql-dml=org.apache.log4j.RollingFileAppender
+log4j.appender.sql-dml.File=./logs/sql-dml.log
+log4j.appender.sql-dml.Append=false
+log4j.appender.sql-dml.layout=org.apache.log4j.PatternLayout
+log4j.appender.sql-dml.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+
+log4j.appender.sql-ddl=org.apache.log4j.RollingFileAppender
+log4j.appender.sql-ddl.File=./logs/sql-ddl.log
+log4j.appender.sql-ddl.Append=false
+log4j.appender.sql-ddl.layout=org.apache.log4j.PatternLayout
+log4j.appender.sql-ddl.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
log4j.appender.sqltiming=org.apache.log4j.RollingFileAppender
log4j.appender.sqltiming.File=./logs/sqltiming.log
@@ -108,10 +114,10 @@ ${symbol_pound}log4j.debug=true
${symbol_pound} DataNucleus
${symbol_pound} the first two log the DML and DDL (if set to DEBUG)
-log4j.logger.DataNucleus.Datastore.Native=DEBUG, Console, sql
-log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console, sql
-${symbol_pound}log4j.logger.DataNucleus.Datastore.Native=WARN, Console
-${symbol_pound}log4j.logger.DataNucleus.Datastore.Schema=WARN, Console
+log4j.logger.DataNucleus.Datastore.Native=DEBUG, Console, sql-dml
+log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console, sql-ddl
+${symbol_pound}log4j.logger.DataNucleus.Datastore.Native=WARN, Console, sql-dml
+${symbol_pound}log4j.logger.DataNucleus.Datastore.Schema=WARN, Console, sql-ddl
${symbol_pound} the remainder can probably be left to WARN
log4j.logger.DataNucleus.Persistence=WARN, Console
log4j.logger.DataNucleus.Transaction=WARN, Console
@@ -155,7 +161,7 @@ log4j.additivity.DataNucleus.Datastore.IDE=false
${symbol_pound} if using log4jdbc-remix as JDBC driver
-${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql-dml, Console
${symbol_pound}log4j.additivity.jdbc.sqlonly=false
${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
${symbol_pound}log4j.additivity.jdbc.resultsettable=false
@@ -228,5 +234,5 @@ log4j.additivity.dom.simple.SimpleObject=false
${symbol_pound} ERROR to suppress the WARNings we get as of 1.15.0
-log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,console
+log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,Console
log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/index.html b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/index.html
index 299fb64..f726b1c 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/index.html
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/index.html
@@ -61,7 +61,7 @@ ${symbol_pound}wrapper {
<p>
This app has been generated using Apache Isis'
- <a href="http://isis.apache.org/guides/ugfun.html${symbol_pound}_ugfun_getting-started_hellow%6Frld-archetype" target="_blank">Hello World</a> archetype. Hello World is a tiny application, intended to make it easy to start learning how to write apps on top of the framework.
+ <a href="http://isis.apache.org/guides/ugfun/ugfun.html${symbol_pound}_ugfun_getting-started_hellow%6Frld-archetype" target="_blank">Hello World</a> archetype. Hello World is a tiny application, intended to make it easy to start learning how to write apps on top of the framework.
<br/>
</p>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/swagger-ui/index.html b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/swagger-ui/index.html
index 59f8d6d..a1edaf3 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/swagger-ui/index.html
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/swagger-ui/index.html
@@ -153,9 +153,9 @@
<div class='input'><input placeholder="pass" id="input_pass" name="pass" type="password" size="10"/></div>
<select id="input_baseUrl" name="baseUrl" style="height: 26px;">
- <option id="private" label="private" value="/restful/swagger/private"></option>
- <option id="public" label="public" value="/restful/swagger/public"></option>
- <option id="prototyping" label="prototyping" value="/restful/swagger/prototyping"></option>
+ <option id="private" label="private" value="../../restful/swagger/private"></option>
+ <option id="public" label="public" value="../../restful/swagger/public"></option>
+ <option id="prototyping" label="prototyping" value="../../restful/swagger/prototyping"></option>
</select>
</div>
<div class='input' style="display:none;"><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
index 4adb55a..da9d6f2 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
@@ -51,7 +51,7 @@ public class HelloWorldObjectTest_delete {
public void happy_case() throws Exception {
// given
- final HelloWorldObject object = HelloWorldObject.create("Foo");
+ final HelloWorldObject object = new HelloWorldObject("Foo");
object.titleService = mockTitleService;
object.messageService = mockMessageService;
object.repositoryService = mockRepositoryService;
diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
index 287187f..4f5a1f2 100644
--- a/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
+++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
@@ -30,7 +30,7 @@ public class HelloWorldObjectTest_updateName {
@Test
public void happy_case() throws Exception {
// given
- final HelloWorldObject object = HelloWorldObject.create("Foo");
+ final HelloWorldObject object = new HelloWorldObject("Foo");
assertThat(object.getName()).isEqualTo("Foo");
// when
diff --git a/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties b/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
index 7582506..1d3452a 100644
--- a/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/helloworld/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Fri Sep 22 00:27:13 BST 2017
+#Thu Jan 04 19:13:48 GMT 2018
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.