You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/09/21 10:41:53 UTC
[6/6] isis git commit: ISIS-1712: uses @RequiredArgsConstructor from
lombok to remove some more boilerplate from helloworld and simpleapp
ISIS-1712: uses @RequiredArgsConstructor from lombok to remove some more boilerplate from helloworld and simpleapp
Also adds enhance-all.sh to each
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ff85b71e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ff85b71e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ff85b71e
Branch: refs/heads/master
Commit: ff85b71ee89954b16fde26ba4769396fbdefc08a
Parents: 3076e5b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 21 11:27:51 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 21 11:38:09 2017 +0100
----------------------------------------------------------------------
example/application/helloworld/enhance-all.sh | 2 +
.../domainapp/dom/impl/HelloWorldObject.java | 14 +--
.../domainapp/dom/impl/HelloWorldObjects.java | 5 +-
.../dom/impl/HelloWorldObjectTest_delete.java | 2 +-
.../impl/HelloWorldObjectTest_updateName.java | 2 +-
example/application/simpleapp/enhance-all.sh | 2 +
.../modules/simple/dom/impl/SimpleObject.java | 15 ++--
.../simple/dom/impl/SimpleObjectRepository.java | 5 +-
.../dom/impl/SimpleObjectRepository_Test.java | 8 +-
.../simple/dom/impl/SimpleObject_Test.java | 2 +-
.../simpleapp/pom-jdo-enhance-all.xml | 89 --------------------
11 files changed, 27 insertions(+), 119 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/helloworld/enhance-all.sh
----------------------------------------------------------------------
diff --git a/example/application/helloworld/enhance-all.sh b/example/application/helloworld/enhance-all.sh
new file mode 100644
index 0000000..2da7b0f
--- /dev/null
+++ b/example/application/helloworld/enhance-all.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+mvn datanucleus:enhance -o
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index d06ad59..40708dd 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -40,6 +40,8 @@ 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 = "helloworld" )
@javax.jdo.annotations.DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column ="version")
@@ -53,20 +55,19 @@ import org.apache.isis.applib.services.title.TitleService;
@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
public class HelloWorldObject implements Comparable<HelloWorldObject> {
- public HelloWorldObject(final String name) {
- this.name = name;
- }
@javax.jdo.annotations.Column(allowsNull = "false", length = 40)
- @lombok.Getter @lombok.Setter
+ @lombok.NonNull
@Property(editing = Editing.DISABLED)
@Title(prepend = "Object: ")
private String name;
+
@javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
- @lombok.Getter @lombok.Setter
@Property(editing = Editing.ENABLED)
private String notes;
@@ -101,12 +102,15 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
//region > injected services
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
RepositoryService repositoryService;
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
TitleService titleService;
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
MessageService messageService;
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 5dc3e20..a8c4d39 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -44,10 +44,7 @@ public class HelloWorldObjects {
@Parameter(maxLength = 40)
@ParameterLayout(named = "Name")
final String name) {
- final HelloWorldObject object = new HelloWorldObject(name);
- serviceRegistry.injectServicesInto(object);
- repositoryService.persistAndFlush(object);
- return object;
+ return repositoryService.persist(HelloWorldObject.create(name));
}
@Action(semantics = SemanticsOf.SAFE)
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
index 43e2967..23736b9 100644
--- a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
+++ b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_delete.java
@@ -48,7 +48,7 @@ public class HelloWorldObjectTest_delete {
public void happy_case() throws Exception {
// given
- final HelloWorldObject object = new HelloWorldObject("Foo");
+ final HelloWorldObject object = HelloWorldObject.create("Foo");
object.titleService = mockTitleService;
object.messageService = mockMessageService;
object.repositoryService = mockRepositoryService;
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
----------------------------------------------------------------------
diff --git a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
index 7ae316f..96b6a12 100644
--- a/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
+++ b/example/application/helloworld/src/test/java/domainapp/dom/impl/HelloWorldObjectTest_updateName.java
@@ -27,7 +27,7 @@ public class HelloWorldObjectTest_updateName {
@Test
public void happy_case() throws Exception {
// given
- final HelloWorldObject object = new HelloWorldObject("Foo");
+ final HelloWorldObject object = HelloWorldObject.create("Foo");
assertThat(object.getName()).isEqualTo("Foo");
// when
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/enhance-all.sh
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/enhance-all.sh b/example/application/simpleapp/enhance-all.sh
new file mode 100644
index 0000000..63572d1
--- /dev/null
+++ b/example/application/simpleapp/enhance-all.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+mvn -pl module-simple datanucleus:enhance -o
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
index ed4b600..50a5a73 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
@@ -36,8 +36,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
import org.apache.isis.applib.util.ObjectContracts;
-import lombok.Getter;
-import lombok.Setter;
+import lombok.AccessLevel;
@javax.jdo.annotations.PersistenceCapable(
identityType=IdentityType.DATASTORE,
@@ -59,21 +58,18 @@ import lombok.Setter;
@javax.jdo.annotations.Unique(name="SimpleObject_name_UNQ", members = {"name"})
@DomainObject() // objectType inferred from @PersistenceCapable#schema
@DomainObjectLayout() // trigger events etc.
+@lombok.Getter @lombok.Setter
+@lombok.RequiredArgsConstructor(staticName = "create")
public class SimpleObject implements Comparable<SimpleObject> {
- public SimpleObject(final String name) {
- setName(name);
- }
-
@javax.jdo.annotations.Column(allowsNull = "false", length = 40)
+ @lombok.NonNull
@Property() // editing disabled by default, see isis.properties
- @Getter @Setter
@Title(prepend = "Object: ")
private String name;
@javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
@Property(editing = Editing.ENABLED)
- @Getter @Setter
private String notes;
@@ -120,12 +116,15 @@ public class SimpleObject implements Comparable<SimpleObject> {
//region > injected services
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
RepositoryService repositoryService;
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
TitleService titleService;
@javax.inject.Inject
+ @lombok.Getter(AccessLevel.NONE) @lombok.Setter(AccessLevel.NONE)
MessageService messageService;
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
index 5c9fc89..7a0f14e 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
@@ -45,10 +45,7 @@ public class SimpleObjectRepository {
}
public SimpleObject create(final String name) {
- final SimpleObject object = new SimpleObject(name);
- serviceRegistry.injectServicesInto(object);
- repositoryService.persist(object);
- return object;
+ return repositoryService.persist(SimpleObject.create(name));
}
@javax.inject.Inject
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java
index a81e9a3..eea0c81 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java
@@ -24,7 +24,6 @@ import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
import org.jmock.Expectations;
-import org.jmock.Sequence;
import org.jmock.auto.Mock;
import org.junit.Before;
import org.junit.Rule;
@@ -32,6 +31,7 @@ import org.junit.Test;
import org.apache.isis.applib.services.registry.ServiceRegistry2;
import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.core.unittestsupport.jmocking.JMockActions;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -65,14 +65,10 @@ public class SimpleObjectRepository_Test {
final String someName = "Foobar";
// given
- final Sequence seq = context.sequence("create");
context.checking(new Expectations() {
{
- oneOf(mockServiceRegistry).injectServicesInto(with(any(SimpleObject.class)));
- inSequence(seq);
-
oneOf(mockRepositoryService).persist(with(nameOf(someName)));
- inSequence(seq);
+ will(JMockActions.returnArgument(0));
}
});
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
index d228676..132269b 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
@@ -27,7 +27,7 @@ public class SimpleObject_Test {
@Before
public void setUp() throws Exception {
- simpleObject = new SimpleObject("Foobar");
+ simpleObject = SimpleObject.create("Foobar");
}
public static class Name extends SimpleObject_Test {
http://git-wip-us.apache.org/repos/asf/isis/blob/ff85b71e/example/application/simpleapp/pom-jdo-enhance-all.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom-jdo-enhance-all.xml b/example/application/simpleapp/pom-jdo-enhance-all.xml
deleted file mode 100644
index 3a8e457..0000000
--- a/example/application/simpleapp/pom-jdo-enhance-all.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
- license agreements. See the NOTICE file distributed with this work for additional
- information regarding copyright ownership. The ASF licenses this file to
- you under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
- by applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
- OF ANY KIND, either express or implied. See the License for the specific
- language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>13</version>
- <relativePath />
- </parent>
-
- <groupId>org.apache.isis.example.application</groupId>
- <artifactId>simpleapp-enhance-all</artifactId>
- <version>0.0.1-SNAPSHOT</version>
-
- <packaging>pom</packaging>
-
- <name>Enhance All DOM Modules</name>
-
- <description>
- Utility to enhance all Maven projects containing JDO entities with a single command:
- mvn -f pom-jdo-enhance-all.xml datanucleus:enhance -o
- </description>
-
- <properties>
- <datanucleus-maven-plugin.version>4.0.1</datanucleus-maven-plugin.version>
- </properties>
-
- <build>
- <resources>
- <resource>
- <filtering>false</filtering>
- <directory>src/main/resources</directory>
- </resource>
- <resource>
- <filtering>false</filtering>
- <directory>src/main/java</directory>
- <includes>
- <include>**</include>
- </includes>
- <excludes>
- <exclude>**/*.java</exclude>
- </excludes>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-maven-plugin</artifactId>
- <version>${datanucleus-maven-plugin.version}</version>
- <configuration>
- <fork>false</fork>
- <verbose>true</verbose>
- </configuration>
- <executions>
- <execution>
- <phase>compile</phase>
- <goals>
- <goal>enhance</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>core</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <modules>
- <module>module-simple</module>
- </modules>
- </profile>
- </profiles>
-
-</project>