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 2021/10/05 15:15:28 UTC

[isis-app-demo] tag tags/05-02-visit-entity-key-properties created (now 8654067)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to tag tags/05-02-visit-entity-key-properties
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git.


      at 8654067  (commit)
This tag includes the following new commits:

     new ee7749a  adds Visit entity
     new eb36637  updates teardown fixture for VisitsModule
     new 141acc8  adds VisitRepository
     new 8654067  adds visits schema for application.yml configuration

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[isis-app-demo] 03/04: adds VisitRepository

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to tag tags/05-02-visit-entity-key-properties
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git

commit 141acc8abf2b337925325c8631aac4133f9ece14
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 15:16:12 2021 +0100

    adds VisitRepository
---
 .../modules/visits/dom/visit/VisitRepository.java         | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/module-visits/src/main/java/petclinic/modules/visits/dom/visit/VisitRepository.java b/module-visits/src/main/java/petclinic/modules/visits/dom/visit/VisitRepository.java
new file mode 100644
index 0000000..ab83b5f
--- /dev/null
+++ b/module-visits/src/main/java/petclinic/modules/visits/dom/visit/VisitRepository.java
@@ -0,0 +1,15 @@
+package petclinic.modules.visits.dom.visit;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.springframework.data.repository.Repository;
+
+import petclinic.modules.pets.dom.pet.Pet;
+import petclinic.modules.pets.dom.petowner.PetOwner;
+
+public interface VisitRepository extends Repository<Visit, Long> {
+
+    List<Visit> findByPetOrderByVisitAtDesc(Pet pet);
+
+}

[isis-app-demo] 04/04: adds visits schema for application.yml configuration

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to tag tags/05-02-visit-entity-key-properties
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git

commit 8654067878681ed04f911c763ff9cdb3702a7ebb
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 15:15:02 2021 +0100

    adds visits schema for application.yml configuration
---
 webapp/src/main/resources/config/application.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/webapp/src/main/resources/config/application.properties b/webapp/src/main/resources/config/application.properties
index a5d4679..9c9143c 100644
--- a/webapp/src/main/resources/config/application.properties
+++ b/webapp/src/main/resources/config/application.properties
@@ -15,7 +15,7 @@ spring.datasource.url=jdbc:h2:mem:petclinic;DATABASE_TO_UPPER=false
 spring.datasource.driver-class-name=org.h2.Driver
 
 isis.persistence.schema.create-schema-sql-template=CREATE SCHEMA IF NOT EXISTS %s
-isis.persistence.schema.auto-create-schemas=pets
+isis.persistence.schema.auto-create-schemas=pets,visits
 
 #eclipselink.weaving=true
 eclipselink.deploy-on-startup=true

[isis-app-demo] 01/04: adds Visit entity

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to tag tags/05-02-visit-entity-key-properties
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git

commit ee7749a3c7d21caf7ec8109ff4032bc100ad00bb
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 16:13:27 2021 +0100

    adds Visit entity
    
    
    uses (transient) TitleService to determine title of referenced Pet
---
 .../petclinic/modules/visits/dom/visit/Visit.java  | 108 +++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/module-visits/src/main/java/petclinic/modules/visits/dom/visit/Visit.java b/module-visits/src/main/java/petclinic/modules/visits/dom/visit/Visit.java
new file mode 100644
index 0000000..bd3d3e2
--- /dev/null
+++ b/module-visits/src/main/java/petclinic/modules/visits/dom/visit/Visit.java
@@ -0,0 +1,108 @@
+package petclinic.modules.visits.dom.visit;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Comparator;
+
+import javax.inject.Inject;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EntityListeners;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import javax.persistence.UniqueConstraint;
+import javax.persistence.Version;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Publishing;
+import org.apache.isis.applib.jaxb.PersistentEntityAdapter;
+import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+
+import petclinic.modules.pets.dom.pet.Pet;
+import petclinic.modules.pets.dom.pet.PetSpecies;
+import petclinic.modules.pets.dom.petowner.PetOwner;
+import petclinic.modules.pets.types.FirstName;
+import petclinic.modules.pets.types.Notes;
+import petclinic.modules.pets.types.PetName;
+
+
+@Entity
+@Table(
+    schema="visits",
+    name = "Visit",
+    uniqueConstraints = {
+        @UniqueConstraint(name = "Visit__pet_visitAt__UNQ", columnNames = {"owner_id", "name"})
+    }
+)
+@EntityListeners(IsisEntityListener.class)
+@DomainObject(logicalTypeName = "visits.Visit", entityChangePublishing = Publishing.ENABLED)
+@DomainObjectLayout()
+@NoArgsConstructor(access = AccessLevel.PUBLIC)
+@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
+@ToString(onlyExplicitlyIncluded = true)
+public class Visit implements Comparable<Visit> {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id", nullable = false)
+    @Getter @Setter
+    @PropertyLayout(fieldSetId = "metadata", sequence = "1")
+    private Long id;
+
+    @Version
+    @Column(name = "version", nullable = false)
+    @PropertyLayout(fieldSetId = "metadata", sequence = "999")
+    @Getter @Setter
+    private long version;
+
+
+    Visit(Pet pet, LocalDateTime visitAt) {
+        this.pet = pet;
+        this.visitAt = visitAt;
+    }
+
+
+    public String title() {
+        return titleService.titleOf(getPet()) + " @ " + getVisitAt().format(DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm"));
+    }
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "pet_id")
+    @PropertyLayout(fieldSetId = "name", sequence = "1")
+    @Getter @Setter
+    private Pet pet;
+
+    @Column(name = "visitAt", nullable = false)
+    @Getter @Setter
+    @PropertyLayout(fieldSetId = "name", sequence = "2")
+    private LocalDateTime visitAt;
+
+
+    private final static Comparator<Visit> comparator =
+            Comparator.comparing(Visit::getPet).thenComparing(Visit::getVisitAt);
+
+    @Override
+    public int compareTo(final Visit other) {
+        return comparator.compare(this, other);
+    }
+
+    @Inject @Transient TitleService titleService;
+}

[isis-app-demo] 02/04: updates teardown fixture for VisitsModule

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to tag tags/05-02-visit-entity-key-properties
in repository https://gitbox.apache.org/repos/asf/isis-app-demo.git

commit eb3663789d5744b49ef47d4bc0f6a50c1fa76bac
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 5 15:14:43 2021 +0100

    updates teardown fixture for VisitsModule
---
 module-visits/src/main/java/petclinic/modules/visits/VisitsModule.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/module-visits/src/main/java/petclinic/modules/visits/VisitsModule.java b/module-visits/src/main/java/petclinic/modules/visits/VisitsModule.java
index 3363c8d..29b941d 100644
--- a/module-visits/src/main/java/petclinic/modules/visits/VisitsModule.java
+++ b/module-visits/src/main/java/petclinic/modules/visits/VisitsModule.java
@@ -11,6 +11,7 @@ import org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 
 import petclinic.modules.pets.PetsModule;
 import petclinic.modules.pets.dom.petowner.PetOwner;
+import petclinic.modules.visits.dom.visit.Visit;
 
 @Configuration
 @ComponentScan
@@ -24,7 +25,7 @@ public class VisitsModule implements ModuleWithFixtures {
         return new FixtureScript() {
             @Override
             protected void execute(ExecutionContext executionContext) {
-                // nothing to do
+                repositoryService.removeAll(Visit.class);
             }
         };
     }