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>'].