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/23 23:16:47 UTC

[1/4] git commit: ISIS-651: minor improvements to core

Updated Branches:
  refs/heads/master a6aafd316 -> 5a7379335


ISIS-651: minor improvements to core

... to better support JRebel (in testing Estatio).


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/2483ca66
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/2483ca66
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/2483ca66

Branch: refs/heads/master
Commit: 2483ca661ff9536cbaf4b0a94aa6bb9d6922959d
Parents: a6aafd3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jan 23 17:08:03 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jan 23 17:08:03 2014 +0000

----------------------------------------------------------------------
 .../metamodel/spec/SpecificationLoaderSpi.java  |  2 +
 .../specloader/ObjectReflectorDefault.java      | 40 ++++++++++++++++++--
 .../specloader/SpecificationCacheDefault.java   | 14 ++++++-
 .../progmodel/facets/ProgrammableReflector.java |  5 ++-
 4 files changed, 55 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/2483ca66/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
index 7ad423d..affc3e2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
@@ -51,4 +51,6 @@ public interface SpecificationLoaderSpi extends ApplicationScopedComponent, Debu
     void invalidateCacheFor(Object domainObject);
     
     void invalidateCache(Class<?> domainClass);
+    
+    boolean isInitialized();
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/2483ca66/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 426521f..d83d2fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -54,6 +54,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
 import org.apache.isis.core.metamodel.facetdecorator.FacetDecoratorSet;
 import org.apache.isis.core.metamodel.facets.object.bounded.ChoicesFacetUtils;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
@@ -183,6 +184,8 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
     private final SpecificationCacheDefault cache = new SpecificationCacheDefault();
     private final ServiceInitializer serviceInitializer = new ServiceInitializer();
 
+    private boolean initialized = false;
+
 
     // /////////////////////////////////////////////////////////////
     // Constructor
@@ -242,6 +245,13 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
         validationFailures.assertNone();
         
         cacheBySpecId();
+        
+        initialized = true;
+    }
+
+    @Override
+    public boolean isInitialized() {
+        return initialized;
     }
 
     /**
@@ -335,6 +345,8 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
     public void shutdown() {
         LOG.info("shutting down " + this);
 
+        initialized = false;
+        
         getCache().clear();
         facetDecoratorSet.shutdown();
     }
@@ -347,13 +359,27 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
 
     @Override
     public void invalidateCache(final Class<?> cls) {
+        
+        if(!getCache().isInitialized()) {
+            // could be called by JRebel plugin, before we are up-and-running
+            // just ignore.
+            return;
+        }
         final Class<?> substitutedType = getClassSubstitutor().getClass(cls);
         
+        if(substitutedType.isAnonymousClass()) {
+            // JRebel plugin might call us... just ignore 'em.
+            return;
+        }
+        
         ObjectSpecification spec = loadSpecification(substitutedType);
         while(spec != null) {
             final Class<?> type = spec.getCorrespondingClass();
             getCache().remove(type.getName());
-            recache(spec);
+            if(spec.containsDoOpFacet(ObjectSpecIdFacet.class)) {
+                // umm.  Some specs do not have an ObjectSpecIdFacet...
+                recache(spec);
+            }
             spec = spec.superclass(); 
         }
     }
@@ -396,8 +422,15 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
         if(spec == null) {
             return null;
         }
-        if(getCache().isInitialized() && getCache().getByObjectType(spec.getSpecId()) == null) {
-            getCache().recache(spec);
+        if(getCache().isInitialized()) {
+            // umm.  It turns out that anonymous inner classes (eg org.estatio.dom.WithTitleGetter$ToString$1)
+            // don't have an ObjectSpecId; hence the guard.
+            if(spec.containsDoOpFacet(ObjectSpecIdFacet.class)) {
+                ObjectSpecId specId = spec.getSpecId();
+                if (getCache().getByObjectType(specId) == null) {
+                    getCache().recache(spec);
+                }
+            }
         }
         return spec;
     }
@@ -723,4 +756,5 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
     }
 
 
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/2483ca66/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
index 03a95e2..41c0b7c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import com.google.common.collect.Maps;
 
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
@@ -69,16 +70,25 @@ class SpecificationCacheDefault {
     public ObjectSpecification remove(String typeName) {
         ObjectSpecification removed = specByClassName.remove(typeName);
         if(removed != null) {
-            specById.remove(removed.getSpecId());
+            if(removed.containsDoOpFacet(ObjectSpecIdFacet.class)) {
+                // umm.  It turns out that anonymous inner classes (eg org.estatio.dom.WithTitleGetter$ToString$1)
+                // don't have an ObjectSpecId; hence the guard.
+                ObjectSpecId specId = removed.getSpecId();
+                specById.remove(specId);
+            }
         }
         return removed;
     }
 
     /**
-     * 
      * @param spec
      */
     public void recache(ObjectSpecification spec) {
+        if(!isInitialized()) {
+            // JRebel plugin might call this before we are actually up and running;
+            // just ignore.
+            return;
+        }
         specById.put(spec.getSpecId(), spec);
     }
     

http://git-wip-us.apache.org/repos/asf/isis/blob/2483ca66/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java
index c5e52f3..0064b0f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/ProgrammableReflector.java
@@ -160,6 +160,9 @@ public class ProgrammableReflector implements SpecificationLoaderSpi, Applicatio
     public void invalidateCache(Class<?> domainClass) {
     }
 
-
+    @Override
+    public boolean isInitialized() {
+        return false;
+    }
 
 }


[3/4] git commit: ISIS-651: adding a .launch for todo app also.

Posted by da...@apache.org.
ISIS-651: adding a .launch for todo app also.

In addition:
- delete the rebel.xml files checked in for simple app
- update .gitignore to ignore rebel.xml files.
- minor tidy up of ToDoItem


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e59219c6
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e59219c6
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e59219c6

Branch: refs/heads/master
Commit: e59219c6c08f313f293e0c6cc2c39e8eb8e8eb39
Parents: 9b937be
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jan 23 21:58:55 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jan 23 21:58:55 2014 +0000

----------------------------------------------------------------------
 .gitignore                                      |  2 ++
 .../dom/src/main/java/dom/todo/ToDoItem.java    | 23 +++++++++++++------
 .../launch/ToDoApp-PROTOTYPE-jrebel.launch      | 24 ++++++++++++++++++++
 .../dom/src/main/resources/rebel.xml            |  9 --------
 .../launch/SimpleApp-PROTOTYPE-jrebel.launch    |  2 +-
 .../webapp/src/main/resources/rebel.xml         | 21 -----------------
 6 files changed, 43 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index ab593ae..14dfced 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,5 @@ pom.xml.versionsBackup
 JArchitectOut/
 
 core/integtestsupport/fixture-data
+
+rebel.xml

http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index 24ae46b..3dbd130 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -50,6 +50,7 @@ import org.apache.isis.applib.annotation.Bulk.AppliesTo;
 import org.apache.isis.applib.annotation.Bulk.InteractionContext;
 import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
 import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.MinLength;
 import org.apache.isis.applib.annotation.Named;
@@ -63,6 +64,8 @@ import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.applib.annotation.SortedBy;
 import org.apache.isis.applib.annotation.TypicalLength;
 import org.apache.isis.applib.clock.Clock;
+import org.apache.isis.applib.security.RoleMemento;
+import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.applib.services.scratchpad.Scratchpad;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.TitleBuffer;
@@ -604,8 +607,21 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         this.scratchpad = scratchpad;
     }
     
+
     
     // //////////////////////////////////////
+    // OpenSourceCodeOnGithub (action)
+    // //////////////////////////////////////
+    
+    @Prototype
+    @ActionSemantics(Of.SAFE)
+    @MemberOrder(sequence="94")
+    public URL openSourceCodeOnGithub() throws MalformedURLException {
+        return new URL("https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java");
+    }
+
+
+    // //////////////////////////////////////
     // Programmatic Helpers
     // //////////////////////////////////////
 
@@ -762,12 +778,5 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
 //        this.location = location;
 //    }
 
-    
-    @Prototype
-    @ActionSemantics(Of.SAFE)
-    @MemberOrder(name="Prototyping", sequence="94")
-    public URL openSourceCodeOnGithub() throws MalformedURLException {
-        return new URL("https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java");
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/example/application/quickstart_wicket_restful_jdo/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch b/example/application/quickstart_wicket_restful_jdo/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
new file mode 100644
index 0000000..e511fc0
--- /dev/null
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/ide/eclipse/launch/ToDoApp-PROTOTYPE-jrebel.launch
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/isis-core-webserver/src/main/java/org/apache/isis/WebServer.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
+<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--port 8080 --type SERVER_PROTOTYPE"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="quickstart_wicket_restful_jdo-webapp"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="${jrebel_args} -Drebel.log=true -Drebel.plugins=c:/github/danhaywood/isis-jrebel-plugin/target/danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar -Disis-jrebel-plugin.packagePrefix=dom.todo -Disis-jrebel-plugin.loggingLevel=warn"/>
+</launchConfiguration>

http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/example/application/simple_wicket_restful_jdo/dom/src/main/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/dom/src/main/resources/rebel.xml b/example/application/simple_wicket_restful_jdo/dom/src/main/resources/rebel.xml
deleted file mode 100644
index 7fcb2f4..0000000
--- a/example/application/simple_wicket_restful_jdo/dom/src/main/resources/rebel.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
-
-	<classpath>
-		<dir name="C:/APACHE/isis-git-rw/example/application/simple_wicket_restful_jdo/dom/target-ide/classes">
-		</dir>
-	</classpath>
-
-</application>

http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/example/application/simple_wicket_restful_jdo/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-jrebel.launch
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-jrebel.launch b/example/application/simple_wicket_restful_jdo/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-jrebel.launch
index 6cb899f..5fb0838 100644
--- a/example/application/simple_wicket_restful_jdo/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-jrebel.launch
+++ b/example/application/simple_wicket_restful_jdo/webapp/ide/eclipse/launch/SimpleApp-PROTOTYPE-jrebel.launch
@@ -27,5 +27,5 @@
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--port 8080 --type PROTOTYPE"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="simple_wicket_restful_jdo-webapp"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="${jrebel_args} -Drebel.log=false -Drebel.plugins=c:/github/danhaywood/isis-jrebel-plugin/target/danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar -Disis-jrebel-plugin.packagePrefix=dom.simple"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="${jrebel_args} -Drebel.log=false -Drebel.plugins=c:/github/danhaywood/isis-jrebel-plugin/target/danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar -Disis-jrebel-plugin.packagePrefix=dom.simple -Disis-jrebel-plugin.loggingLevel=warn"/>
 </launchConfiguration>

http://git-wip-us.apache.org/repos/asf/isis/blob/e59219c6/example/application/simple_wicket_restful_jdo/webapp/src/main/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/webapp/src/main/resources/rebel.xml b/example/application/simple_wicket_restful_jdo/webapp/src/main/resources/rebel.xml
deleted file mode 100644
index c65bad2..0000000
--- a/example/application/simple_wicket_restful_jdo/webapp/src/main/resources/rebel.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
-
-	<classpath>
-		<dir name="C:/APACHE/isis-git-rw/example/application/simple_wicket_restful_jdo/webapp/target-ide/classes">
-		</dir>
-	</classpath>
-
-	<web>
-		<link target="/">
-			<dir name="C:/APACHE/isis-git-rw/example/application/simple_wicket_restful_jdo/webapp/target-ide/m2e-wtp/web-resources">
-				<exclude name="/"/>
-			</dir>
-		</link>
-		<link target="/">
-			<dir name="C:/APACHE/isis-git-rw/example/application/simple_wicket_restful_jdo/webapp/src/main/webapp">
-			</dir>
-		</link>
-	</web>
-
-</application>


[4/4] git commit: ISIS-656: fixing role memento for shiro

Posted by da...@apache.org.
ISIS-656: fixing role memento for shiro


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5a737933
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5a737933
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5a737933

Branch: refs/heads/master
Commit: 5a7379335f59e408b5a28ceb488e2d3ef6e65a03
Parents: e59219c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jan 23 22:16:05 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jan 23 22:16:05 2014 +0000

----------------------------------------------------------------------
 .../isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/5a737933/component/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
----------------------------------------------------------------------
diff --git a/component/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java b/component/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
index b08cd1a..39e2fd6 100644
--- a/component/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
+++ b/component/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
@@ -166,7 +166,7 @@ public class ShiroAuthenticatorOrAuthorizor implements Authenticator, Authorizor
     /**
      * This method has protected visibility to allow for custom implementations
      * in the future that might obtain the list of roles for a principal from
-     * somewherte other than Shiro's {@link RealmSecurityManager}.
+     * somewhere other than Shiro's {@link RealmSecurityManager}.
      */
     protected List<String> getRoles(final AuthenticationToken token) {
         final List<String> roles = Lists.newArrayList();
@@ -178,7 +178,7 @@ public class ShiroAuthenticatorOrAuthorizor implements Authenticator, Authorizor
         
         final Collection<Realm> realms = securityManager.getRealms();
         for (final Realm realm : realms) {
-            if(realm.supports(token)) {
+            if(!realm.supports(token)) {
                 continue;
             }
             final AuthenticationInfo authenticationInfo = realm.getAuthenticationInfo(token);


[2/4] git commit: ISIS-486: double checking URL return value...

Posted by da...@apache.org.
ISIS-486: double checking URL return value...

... for actions that take params.

Have done this by minor refactor to the ToDo app.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9b937be9
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9b937be9
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9b937be9

Branch: refs/heads/master
Commit: 9b937be97f92e50fe4bc1f9762572a343e92adb1
Parents: 2483ca6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jan 23 17:10:12 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jan 23 17:10:12 2014 +0000

----------------------------------------------------------------------
 .../prototyping/ExternalLinksService.java       | 33 ++++++++++++++------
 1 file changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/9b937be9/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
index 29dbc07..cf4b797 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/prototyping/ExternalLinksService.java
@@ -20,24 +20,39 @@ import java.net.MalformedURLException;
 import java.net.URL;
 
 import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.MemberOrder;
 
 public class ExternalLinksService {
 
-    @Prototype
-    @ActionSemantics(Of.SAFE)
-    @MemberOrder(name="Prototyping", sequence="93")
-    public URL openIsisDocumentation() throws MalformedURLException {
-        return new URL("http://isis.apache.org/documentation.html");
+    public static enum ExternalLink {
+        ISIS_DOCUMENTATION("Apache Isis docs", "http://isis.apache.org/documentation.html"),
+        PROJECT_ON_GITHUB("Project source code on Github", "https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/");
+        
+        private final String title;
+        private final String url;
+        
+        private ExternalLink(final String title, final String url) {
+            this.title = title;
+            this.url = url;
+        }
+        
+        public URL open() throws MalformedURLException {
+            return new URL(url);
+        }
+        
+        public String toString() {
+            return title;
+        }
     }
-
+    
     @Prototype
     @ActionSemantics(Of.SAFE)
-    @MemberOrder(name="Prototyping", sequence="94")
-    public URL openProjectOnGithub() throws MalformedURLException {
-        return new URL("https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/");
+    @MemberOrder(name="Prototyping", sequence="93")
+    public URL goToDocs(@Named("Link") ExternalLink link) throws MalformedURLException {
+        return link.open();
     }
 
 }