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 2015/10/22 21:14:56 UTC
[1/2] isis git commit: ISIS-1218: allow autoComplete to return
Collection or Set
Repository: isis
Updated Branches:
refs/heads/master da9321109 -> 9a632804f
ISIS-1218: allow autoComplete to return Collection<T> or Set<T>
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d4c5dbcf
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d4c5dbcf
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d4c5dbcf
Branch: refs/heads/master
Commit: d4c5dbcf55eb81661e981161b418b52d9747374d
Parents: da93211
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 22 20:14:14 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 22 20:14:14 2015 +0100
----------------------------------------------------------------------
adocs/documentation/Gemfile.lock | 3 +++
...rg_methods_prefixes_manpage-autoComplete.adoc | 9 +++++++--
...ctionParameterAutoCompleteFacetViaMethod.java | 3 ---
...rameterAutoCompleteFacetViaMethodFactory.java | 19 +++++++++++--------
4 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/d4c5dbcf/adocs/documentation/Gemfile.lock
----------------------------------------------------------------------
diff --git a/adocs/documentation/Gemfile.lock b/adocs/documentation/Gemfile.lock
index 6a495d9..808cd9a 100644
--- a/adocs/documentation/Gemfile.lock
+++ b/adocs/documentation/Gemfile.lock
@@ -43,3 +43,6 @@ DEPENDENCIES
tilt
wdm (>= 0.1.0)
webrick
+
+BUNDLED WITH
+ 1.10.6
http://git-wip-us.apache.org/repos/asf/isis/blob/d4c5dbcf/adocs/documentation/src/main/asciidoc/guides/_rg_methods_prefixes_manpage-autoComplete.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_prefixes_manpage-autoComplete.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_prefixes_manpage-autoComplete.adoc
index 43b47a7..f91cd09 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_methods_prefixes_manpage-autoComplete.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_methods_prefixes_manpage-autoComplete.adoc
@@ -22,9 +22,11 @@ For an action parameter in (0-based) position _N_, and of type `T`, the signatur
[source,java]
----
-public Collection<T> autoCompleteNXxx(String search) { ... }
+public List<T> autoCompleteNXxx(String search) { ... }
----
+It is also valid to return `T[]` or (from `1.10.0-SNAPSHOT onwards`) either `Set<T>` or `Collection<T>`.
+
For example:
@@ -60,15 +62,18 @@ public class ShoppingCartItem {
+
+
== Properties
For a property of type `T`, the signature is:
[source,java]
----
-public Collection<T> autoCompleteXxx(String search) { ... }
+public List<T> autoCompleteXxx(String search) { ... }
----
+(As for action parameters) it is also valid to return `T[]` or (from `1.10.0-SNAPSHOT onwards`) either `Set<T>` or `Collection<T>`.
For example:
http://git-wip-us.apache.org/repos/asf/isis/blob/d4c5dbcf/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
index 3ccd57d..1249e93 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
@@ -26,7 +26,6 @@ import java.util.List;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -95,8 +94,6 @@ public class ActionParameterAutoCompleteFacetViaMethod extends ActionParameterAu
final FacetedMethodParameter facetedMethodParameter = (FacetedMethodParameter) getFacetHolder();
final Class<?> parameterType = facetedMethodParameter.getType();
- final AuthenticationSession authenticationSession = getAuthenticationSession();
- final DeploymentCategory deploymentCategory = getDeploymentCategory();
final List<ObjectAdapter> visibleAdapters =
ObjectAdapter.Util.visibleAdapters(
collectionAdapter,
http://git-wip-us.apache.org/repos/asf/isis/blob/d4c5dbcf/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index 9edb76d..c9090d6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -21,7 +21,9 @@ package org.apache.isis.core.metamodel.facets.param.autocomplete.method;
import java.lang.reflect.Array;
import java.lang.reflect.Method;
+import java.util.Collection;
import java.util.List;
+import java.util.Set;
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -30,10 +32,10 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
-import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterManagerAware {
@@ -73,10 +75,8 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
final Class<?> paramType = params[i];
final Class<?> arrayOfParamType = (Array.newInstance(paramType, 0)).getClass();
- Method autoCompleteMethod = findAutoCompleteNumMethodReturning(processMethodContext, i, arrayOfParamType);
- if (autoCompleteMethod == null) {
- autoCompleteMethod = findAutoCompleteNumMethodReturning(processMethodContext, i, List.class);
- }
+ final Class[] returnTypes = { arrayOfParamType, List.class, Set.class, Collection.class };
+ Method autoCompleteMethod = findAutoCompleteNumMethodReturning(processMethodContext, i, returnTypes);
if (autoCompleteMethod == null) {
continue;
}
@@ -92,13 +92,16 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
}
}
- private Method findAutoCompleteNumMethodReturning(final ProcessMethodContext processMethodContext, final int i, final Class<?> paramType) {
+ private Method findAutoCompleteNumMethodReturning(
+ final ProcessMethodContext processMethodContext,
+ final int paramNum,
+ final Class<?>[] returnTypes) {
final Class<?> cls = processMethodContext.getCls();
final Method actionMethod = processMethodContext.getMethod();
final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
- final String name = MethodPrefixConstants.AUTO_COMPLETE_PREFIX + i + capitalizedName;
- return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, paramType, new Class[]{String.class});
+ final String name = MethodPrefixConstants.AUTO_COMPLETE_PREFIX + paramNum + capitalizedName;
+ return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, returnTypes, new Class[]{String.class});
}
// ///////////////////////////////////////////////////////////////
[2/2] isis git commit: ISIS-1195: adding comments only to
QueryResultsCache.
Posted by da...@apache.org.
ISIS-1195: adding comments only to QueryResultsCache.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9a632804
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9a632804
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9a632804
Branch: refs/heads/master
Commit: 9a632804fcd07c79bb49f758ce5f97efeb2a88bd
Parents: d4c5dbc
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 22 20:14:45 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 22 20:14:45 2015 +0100
----------------------------------------------------------------------
.../services/queryresultscache/QueryResultsCache.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9a632804/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index ed2330d..d6cd6af 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -142,9 +142,18 @@ public class QueryResultsCache {
if(cacheValue != null) {
return (T) cacheValue.getResult();
}
- // cache miss, so get the result, and cache
+
+ // cache miss, so get the result...
T result = callable.call();
+
+ // ... and cache
+ //
+ // (it is possible that the callable just invoked might also have updated the cache, eg if there was
+ // some sort of recursion. However, Map#put(...) is idempotent, so valid to call more than once.
+ //
+ // note: there's no need for thread-safety synchronization... remember that QueryResultsCache is @RequestScoped
put(cacheKey, result);
+
return result;
} catch (Exception e) {
throw new RuntimeException(e);