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>