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 2014/01/30 09:22:50 UTC
[3/5] git commit: ISIS-660, ISIS-272: fix to finder for interactions
ISIS-660, ISIS-272: fix to finder for interactions
findByGuid should've been findByTransactionId
also:
- ISIS-272: adding ValueSemanticsProvider for UUID.
- making InteractionsJdo#completedAt disabled.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dc0fb67b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dc0fb67b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dc0fb67b
Branch: refs/heads/master
Commit: dc0fb67b269359fb146866c8fa4231f02ed0d45d
Parents: 6b014b3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Jan 29 00:31:30 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Jan 29 00:31:30 2014 +0000
----------------------------------------------------------------------
.../service/interaction/InteractionJdo.java | 5 +-
.../interaction/InteractionRepository.java | 2 +-
.../interaction/InteractionServiceJdo.java | 6 +-
.../facets/value/uuid/UUIDValueFacet.java | 32 ++++++
.../value/uuid/UUIDValueSemanticsProvider.java | 113 +++++++++++++++++++
.../value/uuid/UUIDValueTypeFacetFactory.java | 44 ++++++++
.../dflt/ProgrammingModelFacetsJava5.java | 2 +
.../java/webapp/background/Interactions.java | 5 +-
8 files changed, 200 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionJdo.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionJdo.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionJdo.java
index 3798efa..71a0789 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionJdo.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionJdo.java
@@ -55,10 +55,10 @@ import org.apache.isis.applib.util.ObjectContracts;
table="IsisInteraction")
@javax.jdo.annotations.Queries( {
@javax.jdo.annotations.Query(
- name="findByGuid", language="JDOQL",
+ name="findByTransactionId", language="JDOQL",
value="SELECT "
+ "FROM org.apache.isis.objectstore.jdo.applib.service.interaction.InteractionJdo "
- + "WHERE guid == :guid"),
+ + "WHERE transactionId == :transactionId"),
@javax.jdo.annotations.Query(
name="findCurrent", language="JDOQL",
value="SELECT "
@@ -234,6 +234,7 @@ public class InteractionJdo implements Interaction, HasTransactionId {
@javax.jdo.annotations.Persistent
@javax.jdo.annotations.Column(allowsNull="true")
@MemberOrder(name="Timings", sequence = "4")
+ @Disabled
public Timestamp getCompletedAt() {
return completedAt;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionRepository.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionRepository.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionRepository.java
index b998701..6b95f3f 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionRepository.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionRepository.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.annotation.ActionSemantics.Of;
public interface InteractionRepository {
@ActionSemantics(Of.SAFE)
- InteractionJdo findByGuid(final UUID guid);
+ InteractionJdo findByTransactionId(final UUID transactionId);
@ActionSemantics(Of.SAFE)
List<InteractionJdo> currentInteractions();
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionServiceJdo.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionServiceJdo.java b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionServiceJdo.java
index 1a47743..d8d0420 100644
--- a/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionServiceJdo.java
+++ b/component/objectstore/jdo/jdo-applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/interaction/InteractionServiceJdo.java
@@ -74,12 +74,12 @@ public class InteractionServiceJdo extends AbstractService implements Interactio
}
@Override
- public InteractionJdo findByGuid(UUID guid) {
+ public InteractionJdo findByTransactionId(final UUID transactionId) {
persistCurrentInteractionIfRequired();
return firstMatch(
new QueryDefault<InteractionJdo>(InteractionJdo.class,
- "findByGuid",
- "guid", guid.toString()));
+ "findByTransactionId",
+ "transactionId", transactionId.toString()));
}
private void persistCurrentInteractionIfRequired() {
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueFacet.java
new file mode 100644
index 0000000..6e52019
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueFacet.java
@@ -0,0 +1,32 @@
+/*
+ * 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.core.progmodel.facets.value.uuid;
+
+import java.util.UUID;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+
+public interface UUIDValueFacet extends Facet {
+ UUID uuidValue(ObjectAdapter object);
+
+ ObjectAdapter createValue(UUID value);
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueSemanticsProvider.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueSemanticsProvider.java
new file mode 100644
index 0000000..917c401
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueSemanticsProvider.java
@@ -0,0 +1,113 @@
+/*
+ * 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.core.progmodel.facets.value.uuid;
+
+import java.util.UUID;
+
+import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderAndFacetAbstract;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderContext;
+
+public class UUIDValueSemanticsProvider extends ValueSemanticsProviderAndFacetAbstract<UUID> implements UUIDValueFacet {
+
+ public static Class<? extends Facet> type() {
+ return UUIDValueFacet.class;
+ }
+
+ public static final int TYPICAL_LENGTH = 36;
+ private static final UUID DEFAULT_VALUE = null; // no default
+
+ /**
+ * Required because implementation of {@link Parser} and
+ * {@link EncoderDecoder}.
+ */
+ public UUIDValueSemanticsProvider() {
+ this(null, null, null);
+ }
+
+ public UUIDValueSemanticsProvider(final FacetHolder holder, final IsisConfiguration configuration, final ValueSemanticsProviderContext context) {
+ super(type(), holder, UUID.class, TYPICAL_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE, configuration, context);
+ }
+
+ // //////////////////////////////////////////////////////////////////
+ // Parser
+ // //////////////////////////////////////////////////////////////////
+
+ @Override
+ protected UUID doParse(final Object context, final String entry) {
+ if (entry.trim().equals("")) {
+ return null;
+ } else {
+ return UUID.fromString(entry);
+ }
+ }
+
+ @Override
+ public String titleString(final Object object, final Localization localization) {
+ return object == null ? "" : object.toString();
+ }
+
+ @Override
+ public String titleStringWithMask(final Object object, final String usingMask) {
+ return titleString(object, null);
+ }
+
+ // //////////////////////////////////////////////////////////////////
+ // EncoderDecoder
+ // //////////////////////////////////////////////////////////////////
+
+ @Override
+ protected String doEncode(final Object object) {
+ return object.toString();
+ }
+
+ @Override
+ protected UUID doRestore(final String data) {
+ return UUID.fromString(data);
+ }
+
+ // //////////////////////////////////////////////////////////////////
+ // UuidValueFacet
+ // //////////////////////////////////////////////////////////////////
+
+ @Override
+ public UUID uuidValue(final ObjectAdapter object) {
+ return object == null ? null : (UUID) object.getObject();
+ }
+
+ @Override
+ public ObjectAdapter createValue(final UUID value) {
+ return getAdapterManager().adapterFor(value);
+ }
+
+ // /////// toString ///////
+
+ @Override
+ public String toString() {
+ return "UuidValueSemanticsProvider";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueTypeFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueTypeFacetFactory.java
new file mode 100644
index 0000000..1ce8cdb
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/uuid/UUIDValueTypeFacetFactory.java
@@ -0,0 +1,44 @@
+/*
+ * 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.core.progmodel.facets.value.uuid;
+
+import java.util.UUID;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
+
+public class UUIDValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<UUID> {
+
+ public UUIDValueTypeFacetFactory() {
+ super();
+ }
+
+ @Override
+ public void process(final ProcessClassContext processClassContext) {
+ final Class<?> type = processClassContext.getCls();
+ final FacetHolder holder = processClassContext.getFacetHolder();
+
+ if (type != UUID.class) {
+ return;
+ }
+ addFacets(new UUIDValueSemanticsProvider(holder, getConfiguration(), getContext()));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index b8c6967..f3fc8f8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -212,6 +212,7 @@ import org.apache.isis.core.progmodel.facets.value.timesql.JavaSqlTimeValueTypeF
import org.apache.isis.core.progmodel.facets.value.timestamp.TimeStampValueTypeFacetFactory;
import org.apache.isis.core.progmodel.facets.value.timestampsql.JavaSqlTimeStampValueTypeFacetFactory;
import org.apache.isis.core.progmodel.facets.value.url.URLValueTypeFacetFactory;
+import org.apache.isis.core.progmodel.facets.value.uuid.UUIDValueTypeFacetFactory;
public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract {
@@ -445,6 +446,7 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(JavaSqlTimeStampValueTypeFacetFactory.class);
addFactory(StringValueTypeFacetFactory.class);
addFactory(URLValueTypeFacetFactory.class);
+ addFactory(UUIDValueTypeFacetFactory.class);
addFactory(JavaAwtImageValueTypeFacetFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/dc0fb67b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/background/Interactions.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/background/Interactions.java b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/background/Interactions.java
index 3b23cd5..e132426 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/background/Interactions.java
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/background/Interactions.java
@@ -20,7 +20,6 @@ import java.util.List;
import java.util.UUID;
import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
import org.apache.isis.applib.annotation.Prototype;
import org.apache.isis.objectstore.jdo.applib.service.interaction.InteractionJdo;
import org.apache.isis.objectstore.jdo.applib.service.interaction.InteractionServiceJdo;
@@ -46,8 +45,8 @@ public class Interactions extends InteractionServiceJdo {
@MemberOrder(name="Background Tasks", sequence="10.3")
@Prototype
@Override
- public InteractionJdo findByGuid(UUID guid) {
- return super.findByGuid(guid);
+ public InteractionJdo findByTransactionId(UUID transactionId) {
+ return super.findByTransactionId(transactionId);
}
}