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/12/22 15:42:37 UTC

[isis] branch master updated: ISIS-1785: fixes comparison, the undefined value is (Integer.MAX_VALUE - 100), not Integer.MAX_VALUE (this in DomainServiceMenuOrder)

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


The following commit(s) were added to refs/heads/master by this push:
     new cb30f14  ISIS-1785: fixes comparison, the undefined value is (Integer.MAX_VALUE - 100), not Integer.MAX_VALUE  (this in DomainServiceMenuOrder)
cb30f14 is described below

commit cb30f14b9d820d3e2e5b53e1ec3e50998d7b1120
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Dec 22 15:35:05 2017 +0000

    ISIS-1785: fixes comparison, the undefined value is (Integer.MAX_VALUE - 100), not Integer.MAX_VALUE  (this in DomainServiceMenuOrder)
    
    Other changes in this commit are just cosmetic refactorings etc
---
 .../apache/isis/applib/annotation/Constants.java   | 27 ++++++++++++++++++++++
 .../isis/applib/annotation/DomainService.java      |  2 +-
 .../applib/annotation/DomainServiceLayout.java     |  2 +-
 .../isis/core/commons/compare/SequenceCompare.java |  2 ++
 .../domainservice/DomainServiceMenuOrder.java      | 16 +++++++------
 .../DomainServiceLayoutFacetFactory.java           | 13 ++---------
 ...tTest.java => DomainServiceMenuOrder_Test.java} |  2 +-
 .../DomainServiceLayoutFacetFactoryTest.java       | 12 ++--------
 .../runtime/services/DeweyOrderComparatorTest.java |  8 +++++++
 9 files changed, 53 insertions(+), 31 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Constants.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Constants.java
new file mode 100644
index 0000000..c33615f
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Constants.java
@@ -0,0 +1,27 @@
+/*
+ *  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.
+ */
+
+package org.apache.isis.applib.annotation;
+
+public class Constants {
+
+    private Constants(){}
+
+    public static final String MENU_ORDER_DEFAULT = "" + (Integer.MAX_VALUE - 100);
+}
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
index 7005d37..9f9d337 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
@@ -76,7 +76,7 @@ public @interface DomainService {
      *     default order greater than Integer.MAX_VALUE - 50).
      * </p>
      */
-    String menuOrder() default "" + (Integer.MAX_VALUE - 100)  ;
+    String menuOrder() default Constants.MENU_ORDER_DEFAULT  ;
 
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
index 66bbd5a..c0d9140 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
@@ -75,5 +75,5 @@ public @interface DomainServiceLayout {
      *     default order greater than Integer.MAX_VALUE - 50).
      * </p>
      */
-    String menuOrder() default "" + (Integer.MAX_VALUE - 100);
+    String menuOrder() default Constants.MENU_ORDER_DEFAULT;
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/compare/SequenceCompare.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/compare/SequenceCompare.java
index 39b5355..a041c43 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/compare/SequenceCompare.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/compare/SequenceCompare.java
@@ -22,6 +22,8 @@ import java.util.StringTokenizer;
 
 public class SequenceCompare {
 
+    private SequenceCompare(){}
+
     public static int compareNullLast(String sequence1, String sequence2) {
         if (sequence1 == null && sequence2 == null) {
             return 0;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
index 5443d41..1636098 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder.java
@@ -19,22 +19,24 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainservice;
 
+import org.apache.isis.applib.annotation.Constants;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.core.commons.compare.SequenceCompare;
 
 public class DomainServiceMenuOrder {
-	
-	private final static String UNDEFINED = "" + Integer.MAX_VALUE;
 
+    private DomainServiceMenuOrder(){}
+	
     public static String orderOf(final Class<?> cls) {
-        final DomainServiceLayout domainServiceLayout = cls.getAnnotation(DomainServiceLayout.class);
-        String dslayoutOrder = domainServiceLayout != null ? domainServiceLayout.menuOrder(): null;
         final DomainService domainService = cls.getAnnotation(DomainService.class);
+        final DomainServiceLayout domainServiceLayout = cls.getAnnotation(DomainServiceLayout.class);
+
         String dsOrder = domainService != null ? domainService.menuOrder() : null;
-        
+        String dslayoutOrder = domainServiceLayout != null ? domainServiceLayout.menuOrder(): null;
+
         String min = minimumOf(dslayoutOrder, dsOrder);
-        return min!=null ? min : UNDEFINED; 
+        return min!=null ? min : Constants.MENU_ORDER_DEFAULT;
     }
 
 	// -- HELPER
@@ -52,7 +54,7 @@ public class DomainServiceMenuOrder {
     }
 
     private static boolean isUndefined(final String str) {
-        return str == null || str.equals(UNDEFINED);
+        return str == null || str.equals(Constants.MENU_ORDER_DEFAULT);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
index 8054917..c920233 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.metamodel.facets.object.domainservicelayout;
 
-
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -26,6 +25,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceMenuOrder;
 import org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation;
 
 
@@ -48,15 +48,7 @@ public class DomainServiceLayoutFacetFactory extends FacetFactoryAbstract {
             return;
         }
 
-        final String domainServiceMenuOrder =
-                domainService != null && !domainService.menuOrder().equals("" + (Integer.MAX_VALUE - 100))
-                        ? domainService.menuOrder()
-                        : null;
-        final String domainServiceLayoutMenuOrder =
-                domainServiceLayout != null && !domainServiceLayout.menuOrder().equals("" + (Integer.MAX_VALUE - 100))
-                        ? domainServiceLayout.menuOrder()
-                        : null;
-        final String menuOrder = coalesce(domainServiceLayoutMenuOrder, domainServiceMenuOrder);
+        final String menuOrder = DomainServiceMenuOrder.orderOf(cls);
 
         DomainServiceLayout.MenuBar menuBar =
                 domainServiceLayout != null
@@ -71,7 +63,6 @@ public class DomainServiceLayoutFacetFactory extends FacetFactoryAbstract {
         FacetUtil.addFacet(NamedFacetForDomainServiceLayoutAnnotation.create(domainServiceLayout, facetHolder));
     }
 
-
     private static String coalesce(final String... reasons) {
         for (final String reason : reasons) {
             if(reason != null) {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_UnitTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_Test.java
similarity index 98%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_UnitTest.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_Test.java
index 0f28ed0..c4d5ef2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_UnitTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceMenuOrder_Test.java
@@ -27,7 +27,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public class DomainServiceMenuOrder_UnitTest {
+public class DomainServiceMenuOrder_Test {
 
     @DomainService(menuOrder = "100")
     public static class ServiceWithDomainService100 {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/annotation/DomainServiceLayoutFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/annotation/DomainServiceLayoutFacetFactoryTest.java
index 4460313..25d5cae 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/annotation/DomainServiceLayoutFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/annotation/DomainServiceLayoutFacetFactoryTest.java
@@ -48,8 +48,6 @@ public class DomainServiceLayoutFacetFactoryTest extends AbstractFacetFactoryTes
     }
 
     public void testAnnotationPickedUpOnClass() {
-        class Customer {
-        }
         @DomainServiceLayout(menuOrder = "123" ,menuBar = DomainServiceLayout.MenuBar.SECONDARY)
         class Customers {
         }
@@ -68,8 +66,6 @@ public class DomainServiceLayoutFacetFactoryTest extends AbstractFacetFactoryTes
 
 
     public void testDomainServiceMenuOrderAnnotationPickedUpOnClass() {
-        class Customer {
-        }
         @DomainService(menuOrder = "123")
         class Customers {
         }
@@ -86,8 +82,6 @@ public class DomainServiceLayoutFacetFactoryTest extends AbstractFacetFactoryTes
     }
 
     public void testDomainServiceAndDomainServiceLayoutAnnotationWhenCompatiblePickedUpOnClass() {
-        class Customer {
-        }
         @DomainService(menuOrder = "123")
         @DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.SECONDARY)
         class Customers {
@@ -105,9 +99,7 @@ public class DomainServiceLayoutFacetFactoryTest extends AbstractFacetFactoryTes
         assertNoMethodsRemoved();
     }
 
-    public void testDomainServiceAndDomainServiceLayoutAnnotationWhenIncompatiblePickedUpOnClass() {
-        class Customer {
-        }
+    public void testDomainServiceAndDomainServiceLayoutAnnotation_takes_the_minimum() {
         @DomainService(menuOrder = "1")
         @DomainServiceLayout(menuOrder = "123", menuBar = DomainServiceLayout.MenuBar.SECONDARY)
         class Customers {
@@ -119,7 +111,7 @@ public class DomainServiceLayoutFacetFactoryTest extends AbstractFacetFactoryTes
         assertNotNull(facet);
         assertTrue(facet instanceof DomainServiceLayoutFacetAnnotation);
         DomainServiceLayoutFacetAnnotation domainServiceLayoutFacet = (DomainServiceLayoutFacetAnnotation) facet;
-        Assert.assertThat(domainServiceLayoutFacet.getMenuOrder(), is("123"));
+        Assert.assertThat(domainServiceLayoutFacet.getMenuOrder(), is("1"));
         Assert.assertThat(domainServiceLayoutFacet.getMenuBar(), is(DomainServiceLayout.MenuBar.SECONDARY));
 
         assertNoMethodsRemoved();
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
index 71b6e01..ee4e6a0 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
@@ -90,6 +90,14 @@ public class DeweyOrderComparatorTest {
         );
     }
 
+    @Test
+    public void X() throws Exception {
+        assertThatSorting(
+                ofS("45.1", "10.10"),
+                ofL("10.10", "45.1")
+        );
+    }
+
     private static Collection<String> ofS(String... str) {
         return Arrays.asList(str);
     }

-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].