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 2020/01/16 21:43:34 UTC

[isis] branch master updated (72b2efe -> e6f0dbb)

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

danhaywood pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 72b2efe  ISIS-2265: simplifies CollectionFacet
     new 9a88502  ISIS-2266: adds back in Clock#getTimeAsJodDateTime
     new 2cd1116  ISIS-2266: adds in ClockService#nowAsJodaDateTime
     new a076139  ISIS-2266: adds back in JodaXxx for fake data.
     new fab53af  ISIS-2265: fixes unit test
     new 7260f12  ISIS-2264: isis.timezone -> isis.core.runtime.timezone
     new e6f0dbb  ISIS-2264: removes IsisConfiguration.Viewers

The 6 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.


Summary of changes:
 .../modules/mignotes/pages/migrating-to-2.0.0.adoc |  3 ++
 .../java/org/apache/isis/applib/clock/Clock.java   | 15 +++++++--
 .../isis/applib/services/clock/ClockService.java   | 19 ++++++++---
 .../apache/isis/core/config/IsisConfiguration.java | 15 ++-------
 .../collections/JavaCollectionFacetTest.java       |  3 +-
 .../session/init/IsisTimeZoneInitializer.java      |  2 +-
 .../fakedata/applib/services/FakeDataService.java  | 39 +++++++++++++++++-----
 .../fakedata/applib/services/J8DateTimes.java      |  2 +-
 .../fakedata/applib/services/J8LocalDates.java     |  2 +-
 .../fakedata/applib/services/JavaSqlDates.java     |  2 +-
 .../fakedata/applib/services/JavaUtilDates.java    |  2 +-
 .../fakedata/applib/services/JodaDateTimes.java    | 36 ++++++++++++++++++++
 .../fakedata/applib/services/JodaLocalDates.java   | 35 +++++++++++++++++++
 .../services/{J8Periods.java => JodaPeriods.java}  | 14 ++++----
 .../applib/services/FakeDataServiceTest.java       |  4 +--
 ...eDataDemoObjectWithAll_update_withFakeData.java |  4 +--
 16 files changed, 153 insertions(+), 44 deletions(-)
 create mode 100644 testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
 create mode 100644 testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
 copy testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/{J8Periods.java => JodaPeriods.java} (68%)


[isis] 01/06: ISIS-2266: adds back in Clock#getTimeAsJodDateTime

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 9a88502b1ff2411b0be5b7f98c596c7c624dc140
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 21:43:01 2020 +0100

    ISIS-2266: adds back in Clock#getTimeAsJodDateTime
---
 .../src/main/java/org/apache/isis/applib/clock/Clock.java | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/Clock.java b/api/applib/src/main/java/org/apache/isis/applib/clock/Clock.java
index 8b5c47a..a5fbf61 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/Clock.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/Clock.java
@@ -26,6 +26,9 @@ import java.time.OffsetDateTime;
 import java.time.ZoneId;
 import java.util.Date;
 
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+
 import lombok.val;
 
 /**
@@ -90,8 +93,8 @@ public abstract class Clock {
     }
 
     /**
-     * Returns the {@link #getTime() time} as {@link OffsetDateTime},
-     * using the {@link ZoneId.systemDefault()} timezone.
+     * Returns the time as {@link OffsetDateTime},
+     * using the {@link ZoneId#systemDefault() system default} timezone.
      */
     public static OffsetDateTime getTimeAsOffsetDateTime() {
         val zoneId = ZoneId.systemDefault();
@@ -103,6 +106,14 @@ public abstract class Clock {
         return new java.sql.Timestamp(getEpochMillis());
     }
 
+    /**
+     * Returns the time as a Joda {@link DateTime},
+     * using the {@link ZoneId#systemDefault() system default} timezone.
+     */
+    public static DateTime getTimeAsJodaDateTime() {
+        final ZoneId zoneId = ZoneId.systemDefault();
+        return new DateTime(getInstance().now().toEpochMilli(), DateTimeZone.forID(zoneId.getId()));
+    }
 
     /**
      * Allows subclasses to remove their implementation.


[isis] 06/06: ISIS-2264: removes IsisConfiguration.Viewers

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit e6f0dbb5b477f00ee61af85f887b9393f63ea5d9
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:35:19 2020 +0100

    ISIS-2264: removes IsisConfiguration.Viewers
    
    ... unused nested static class.
---
 .../java/org/apache/isis/core/config/IsisConfiguration.java    | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index aca6764..1939625 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -1164,16 +1164,6 @@ public class IsisConfiguration {
         }
     }
 
-    private final Viewers viewers = new Viewers();
-    @Data
-    public static class Viewers {
-
-
-
-
-    }
-
-
 
     //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
     private final Value value = new Value();


[isis] 02/06: ISIS-2266: adds in ClockService#nowAsJodaDateTime

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2cd1116dc9e374b823d66b6d1aa78e004484a3ac
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 21:43:27 2020 +0100

    ISIS-2266: adds in ClockService#nowAsJodaDateTime
---
 .../org/apache/isis/applib/services/clock/ClockService.java | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index e1b1663..55db9b8 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -25,6 +25,7 @@ import java.time.OffsetDateTime;
 
 import javax.inject.Named;
 
+import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
@@ -46,19 +47,19 @@ import org.apache.isis.applib.clock.Clock;
 @Qualifier("Default")
 public class ClockService {
 
-    public LocalDate now() {
+    public java.time.LocalDate now() {
         return Clock.getTimeAsLocalDate();
     }
 
-    public LocalDateTime nowAsLocalDateTime() {
+    public java.time.LocalDateTime nowAsLocalDateTime() {
         return Clock.getTimeAsLocalDateTime();
     }
 
-    public OffsetDateTime nowAsOffsetDateTime() {
+    public java.time.OffsetDateTime nowAsOffsetDateTime() {
         return Clock.getTimeAsOffsetDateTime();
     }
 
-    public Timestamp nowAsJavaSqlTimestamp() {
+    public java.sql.Timestamp nowAsJavaSqlTimestamp() {
         return Clock.getTimeAsJavaSqlTimestamp();
     }
 
@@ -70,4 +71,8 @@ public class ClockService {
         return new java.util.Date(nowAsMillis());
     }
 
+    public org.joda.time.DateTime nowAsJodaDateTime() {
+        return Clock.getTimeAsJodaDateTime();
+    }
+
 }


[isis] 05/06: ISIS-2264: isis.timezone -> isis.core.runtime.timezone

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7260f127fa6181642d00c18bb8bf1d7bca5c4d7a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:34:36 2020 +0100

    ISIS-2264: isis.timezone -> isis.core.runtime.timezone
---
 .../components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc  | 3 +++
 .../main/java/org/apache/isis/core/config/IsisConfiguration.java   | 7 ++++---
 .../isis/core/runtime/session/init/IsisTimeZoneInitializer.java    | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
index 9662614..e28a3cc 100644
--- a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
+++ b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
@@ -614,6 +614,9 @@ standalone-collection.bulk-load
 {nbsp}{nbsp}.propertyLayout.label
 |(removed)
 
+|isis.timezone
+|isis.core.runtime.timezone
+
 
 |
 |
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index 56d4f74..aca6764 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -437,6 +437,9 @@ public class IsisConfiguration {
              */
             private Optional<String> locale = Optional.empty();
 
+            //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
+            private String timezone;
+
         }
 
         private final RuntimeServices runtimeServices = new RuntimeServices();
@@ -1171,9 +1174,7 @@ public class IsisConfiguration {
     }
 
 
-    //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
-    private String timezone;
-    
+
     //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
     private final Value value = new Value();
     @Data
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/IsisTimeZoneInitializer.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/IsisTimeZoneInitializer.java
index 0ad0960..d2a0c42 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/IsisTimeZoneInitializer.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/IsisTimeZoneInitializer.java
@@ -29,7 +29,7 @@ import lombok.extern.log4j.Log4j2;
 public class IsisTimeZoneInitializer {
 
     public void initTimeZone(final IsisConfiguration configuration) {
-        final String timeZoneSpec = configuration.getTimezone();
+        final String timeZoneSpec = configuration.getCore().getRuntime().getTimezone();
         if (timeZoneSpec != null) {
             TimeZone timeZone;
             timeZone = TimeZone.getTimeZone(timeZoneSpec);


[isis] 04/06: ISIS-2265: fixes unit test

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit fab53af79ffbb715f45e9a09e8521bc89774b6d5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:34:09 2020 +0100

    ISIS-2265: fixes unit test
---
 .../core/metamodel/facets/collections/JavaCollectionFacetTest.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
index 49503cd..71d6fd0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.metamodel.facets.collections;
 
 import java.util.Collection;
+import java.util.Optional;
 import java.util.stream.Stream;
 
 import org.jmock.Expectations;
@@ -84,7 +85,7 @@ public class JavaCollectionFacetTest {
 
             }
         });
-        assertThat(facet.firstElement(mockCollection), is(nullValue()));
+        assertThat(facet.firstElement(mockCollection), is(Optional.empty()));
     }
 
 }


[isis] 03/06: ISIS-2266: adds back in JodaXxx for fake data.

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

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a076139789669a85c12809089a1d59c54759ef79
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:04:28 2020 +0100

    ISIS-2266: adds back in JodaXxx for fake data.
---
 .../isis/applib/services/clock/ClockService.java   |  6 +++
 .../fakedata/applib/services/FakeDataService.java  | 39 +++++++++++++++-----
 .../fakedata/applib/services/J8DateTimes.java      |  2 +-
 .../fakedata/applib/services/J8LocalDates.java     |  2 +-
 .../fakedata/applib/services/JavaSqlDates.java     |  2 +-
 .../fakedata/applib/services/JavaUtilDates.java    |  2 +-
 .../fakedata/applib/services/JodaDateTimes.java    | 36 ++++++++++++++++++
 .../fakedata/applib/services/JodaLocalDates.java   | 35 ++++++++++++++++++
 .../fakedata/applib/services/JodaPeriods.java      | 43 ++++++++++++++++++++++
 .../applib/services/FakeDataServiceTest.java       |  4 +-
 ...eDataDemoObjectWithAll_update_withFakeData.java |  4 +-
 11 files changed, 158 insertions(+), 17 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index 55db9b8..4efb886 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -22,10 +22,12 @@ import java.sql.Timestamp;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
+import java.util.TimeZone;
 
 import javax.inject.Named;
 
 import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
@@ -75,4 +77,8 @@ public class ClockService {
         return Clock.getTimeAsJodaDateTime();
     }
 
+    public org.joda.time.LocalDate nowAsJodaLocalDate() {
+        final DateTimeZone timeZone = DateTimeZone.forTimeZone(TimeZone.getDefault());
+        return new org.joda.time.LocalDate(nowAsMillis(), timeZone);
+    }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
index b349e1c..f7620ac 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
@@ -91,9 +91,14 @@ public class FakeDataService {
         this.javaUtilDates = new JavaUtilDates(this);
         this.javaSqlDates = new JavaSqlDates(this);
         this.javaSqlTimestamps = new JavaSqlTimestamps(this);
-        this.jodaDateTimes = new J8DateTimes(this);
-        this.jodaLocalDates = new J8LocalDates(this);
-        this.jodaPeriods = new J8Periods(this);
+
+        this.j8DateTimes = new J8DateTimes(this);
+        this.j8LocalDates = new J8LocalDates(this);
+        this.j8Periods = new J8Periods(this);
+
+        this.jodaDateTimes = new JodaDateTimes(this);
+        this.jodaLocalDates = new JodaLocalDates(this);
+        this.jodaPeriods = new JodaPeriods(this);
 
         this.bigDecimals = new BigDecimals(this);
         this.bigIntegers = new BigIntegers(this);
@@ -130,9 +135,13 @@ public class FakeDataService {
     private JavaSqlDates javaSqlDates;
     private JavaSqlTimestamps javaSqlTimestamps;
 
-    private J8DateTimes jodaDateTimes;
-    private J8LocalDates jodaLocalDates;
-    private J8Periods jodaPeriods;
+    private J8DateTimes j8DateTimes;
+    private J8LocalDates j8LocalDates;
+    private J8Periods j8Periods;
+
+    private JodaDateTimes jodaDateTimes;
+    private JodaLocalDates jodaLocalDates;
+    private JodaPeriods jodaPeriods;
 
     private BigDecimals bigDecimals;
     private BigIntegers bigIntegers;
@@ -231,15 +240,27 @@ public class FakeDataService {
         return javaSqlTimestamps;
     }
 
-    public J8LocalDates jodaLocalDates() {
+    public J8LocalDates j8LocalDates() {
+        return j8LocalDates;
+    }
+
+    public J8DateTimes j8DateTimes() {
+        return j8DateTimes;
+    }
+
+    public J8Periods j8Periods() {
+        return j8Periods;
+    }
+
+    public JodaLocalDates jodaLocalDates() {
         return jodaLocalDates;
     }
 
-    public J8DateTimes jodaDateTimes() {
+    public JodaDateTimes jodaDateTimes() {
         return jodaDateTimes;
     }
 
-    public J8Periods jodaPeriods() {
+    public JodaPeriods jodaPeriods() {
         return jodaPeriods;
     }
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
index 4a031a2..9cb1ae8 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
@@ -30,7 +30,7 @@ public class J8DateTimes extends AbstractRandomValueGenerator {
 
     @Programmatic
     public OffsetDateTime any() {
-        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        final Period upTo5Years = fake.j8Periods().yearsUpTo(5);
         return around(upTo5Years);
     }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
index f91b9ef..9848b45 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
@@ -30,7 +30,7 @@ public class J8LocalDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public LocalDate any() {
-        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        final Period upTo5Years = fake.j8Periods().yearsUpTo(5);
         return around(upTo5Years);
     }
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
index 9f7d1c6..cb24104 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
@@ -13,7 +13,7 @@ public class JavaSqlDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public java.sql.Date any() {
-        final OffsetDateTime dateTime = fake.jodaDateTimes().any();
+        final OffsetDateTime dateTime = fake.j8DateTimes().any();
         final Date sqldt = asSqlDate(dateTime);
         return sqldt;
     }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
index 32696a0..cca5a1a 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
@@ -14,7 +14,7 @@ public class JavaUtilDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public java.util.Date any() {
-        final OffsetDateTime dateTime = fake.jodaDateTimes().any();
+        final OffsetDateTime dateTime = fake.j8DateTimes().any();
         val epochMillis = dateTime.toInstant().toEpochMilli();
         return new java.util.Date(epochMillis); 
     }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
new file mode 100644
index 0000000..09326bc
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
@@ -0,0 +1,36 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+import org.joda.time.DateTime;
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaDateTimes extends AbstractRandomValueGenerator{
+
+    public JodaDateTimes(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public DateTime around(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return fake.booleans().coinFlip() ? before(period) : after(period);
+    }
+
+    @Programmatic
+    public DateTime before(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return now.minus(period);
+    }
+
+    @Programmatic
+    public DateTime after(final Period period) {
+        final DateTime now = fake.clockService.nowAsJodaDateTime();
+        return now.plus(period);
+    }
+
+    @Programmatic
+    public DateTime any() {
+        final Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        return around(upTo5Years);
+    }
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
new file mode 100644
index 0000000..55af76e
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
@@ -0,0 +1,35 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+import org.joda.time.LocalDate;
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaLocalDates extends AbstractRandomValueGenerator{
+
+    public JodaLocalDates(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public LocalDate around(final Period period) {
+        return fake.booleans().coinFlip() ? before(period) : after(period);
+    }
+
+    @Programmatic
+    public org.joda.time.LocalDate before(final Period period) {
+        final org.joda.time.LocalDate now = fake.clockService.nowAsJodaLocalDate();
+        return now.minus(period);
+    }
+
+    @Programmatic
+    public org.joda.time.LocalDate after(final Period period) {
+        final org.joda.time.LocalDate now = fake.clockService.nowAsJodaLocalDate();
+        return now.plus(period);
+    }
+
+    @Programmatic
+    public LocalDate any() {
+        final org.joda.time.Period upTo5Years = fake.jodaPeriods().yearsUpTo(5);
+        return around(upTo5Years);
+    }
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
new file mode 100644
index 0000000..2b9d711
--- /dev/null
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
@@ -0,0 +1,43 @@
+package org.apache.isis.testing.fakedata.applib.services;
+
+
+import org.joda.time.Period;
+import org.apache.isis.applib.annotation.Programmatic;
+
+public class JodaPeriods extends AbstractRandomValueGenerator{
+
+    public JodaPeriods(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    @Programmatic
+    public Period daysBetween(final int minDays, final int maxDays) {
+        return Period.days(fake.ints().between(minDays, maxDays));
+    }
+
+    @Programmatic
+    public Period daysUpTo(final int maxDays) {
+        return daysBetween(0, maxDays);
+    }
+
+    @Programmatic
+    public Period monthsBetween(final int minMonths, final int maxMonths) {
+        return Period.months(fake.ints().between(minMonths, maxMonths));
+    }
+
+    @Programmatic
+    public Period monthsUpTo(final int months) {
+        return monthsBetween(0, months);
+    }
+
+    @Programmatic
+    public Period yearsBetween(final int minYears, final int maxYears) {
+        return Period.years(fake.ints().between(minYears, maxYears));
+    }
+
+    @Programmatic
+    public Period yearsUpTo(final int years) {
+        return yearsBetween(0, years);
+    }
+
+}
\ No newline at end of file
diff --git a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
index 4942ee9..8b1d586 100644
--- a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
+++ b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
@@ -220,13 +220,13 @@ public class FakeDataServiceTest {
 
     @Test
     public void jodaDateTimes_any() throws Exception {
-        final OffsetDateTime any = fakeDataService.jodaDateTimes().any();
+        final OffsetDateTime any = fakeDataService.j8DateTimes().any();
         assertThat(any).isNotNull();
     }
 
     @Test
     public void jodaLocalDates_any() throws Exception {
-        final LocalDate any = fakeDataService.jodaLocalDates().any();
+        final LocalDate any = fakeDataService.j8LocalDates().any();
         assertThat(any).isNotNull();
     }
 
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
index c58f5e4..41e47bf 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
@@ -127,8 +127,8 @@ public class FakeDataDemoObjectWithAll_update_withFakeData extends FixtureScript
 
         this.defaultParam("someJavaUtilDate", executionContext, fakeDataService.javaUtilDates().any());
         this.defaultParam("someJavaSqlDate", executionContext, fakeDataService.javaSqlDates().any());
-        this.defaultParam("someJodaLocalDate", executionContext, fakeDataService.jodaLocalDates().any());
-        this.defaultParam("someJodaDateTime", executionContext, fakeDataService.jodaDateTimes().any());
+        this.defaultParam("someJodaLocalDate", executionContext, fakeDataService.j8LocalDates().any());
+        this.defaultParam("someJodaDateTime", executionContext, fakeDataService.j8DateTimes().any());
         this.defaultParam("someJavaSqlTimestamp", executionContext, fakeDataService.javaSqlTimestamps().any());
 
         this.defaultParam("someBigDecimal", executionContext, fakeDataService.bigDecimals().any(14,4));