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 2012/03/24 15:01:52 UTC

svn commit: r1304796 [16/16] - in /incubator/isis/trunk/framework: applib/src/main/java/org/apache/isis/applib/ applib/src/test/java/org/apache/isis/applib/ core/commons/src/main/java/org/apache/isis/core/commons/config/ core/commons/src/main/java/org/...

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java Sat Mar 24 14:01:35 2012
@@ -26,6 +26,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import com.google.common.collect.Lists;
+
 import org.apache.log4j.Logger;
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -33,23 +35,20 @@ import org.json.JSONObject;
 
 import org.apache.isis.core.commons.debug.DebugBuilder;
 import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.commons.factory.InstanceUtil;
-import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
-import org.apache.isis.core.metamodel.adapter.oid.stringable.directly.DirectlyStringableOidWithSpecification;
-import org.apache.isis.core.metamodel.adapter.oid.stringable.directly.OidWithSpecification;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
+import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification.CreationMode;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
@@ -69,7 +68,7 @@ public class DefaultOidObjectMapping imp
     }
 
     protected void append(final DebugBuilder debug, final Map<String, TransientObjectMapping> transients, final String type) {
-        final Iterator<String> ids = new HashSet(transients.keySet()).iterator();
+        final Iterator<String> ids = new HashSet<String>(transients.keySet()).iterator();
         if (ids.hasNext()) {
             debug.appendTitle("Transient objects (" + type + ")");
             while (ids.hasNext()) {
@@ -87,9 +86,10 @@ public class DefaultOidObjectMapping imp
     public void clear() {
         requestTransients.clear();
 
-        final List<String> remove = new ArrayList<String>();
+        final List<String> remove = Lists.newArrayList();
         for (final String id : sessionTransients.keySet()) {
-            if (!sessionTransients.get(id).getOid().isTransient()) {
+            final Oid oid = sessionTransients.get(id).getOid();
+            if (!oid.isTransient()) {
                 remove.add(id);
                 sessionTransients.put(id, null);
             }
@@ -140,7 +140,7 @@ public class DefaultOidObjectMapping imp
                 }
                 data.put(fieldName, collection);
             } else {
-                if (fieldValue.isTransient() || fieldValue.isAggregated()) {
+                if (fieldValue.isTransient() || fieldValue.isParented()) {
                     final JSONObject saveData = encodeTransientData(fieldValue, savedObject);
                     if (saveData == null) {
                         data.put(fieldName, mapObject(fieldValue, Scope.INTERACTION));
@@ -161,32 +161,29 @@ public class DefaultOidObjectMapping imp
         final Oid oid = adapter.getOid();
         data.put("_oidType", oid.getClass().getName());
         
-        if(oid instanceof OidWithSpecification) {
-            OidWithSpecification ows = (OidWithSpecification) oid;
-            data.put("_class", ows.getClassName());
+        if(oid instanceof RootOid) {
+            RootOid ows = (RootOid) oid;
+            data.put("_objectType", ows.getObjectType());
             data.put("_id", enString(ows)); // can be used to recreate
             return data;
         }
         
         // original behaviour, deals with SerialOid and also enhanced to handles if the parentOid is an OWS
         final ObjectSpecification objectSpec = adapter.getSpecification();
-        data.put("_class", objectSpec.getFullIdentifier());
+        data.put("_objectType", objectSpec.getObjectType());
 
-        String encodedOid;
-        if (oid instanceof AggregatedOid) {
-            final AggregatedOid aoid = (AggregatedOid) oid;
-            final Oid parentOid = aoid.getParentOid();
-            final String aggregatedId = aoid.getId();
-            
-            encodedOid = enString(parentOid, aggregatedId);
-        } else if (oid instanceof SerialOid) {
-            encodedOid = Long.toString(((SerialOid) oid).getSerialNo(), 16);
-        } else {
+        if (!(oid instanceof AggregatedOid)) {
             throw new ScimpiException("Unsupported OID type " + oid);
-        }
-
+        } 
+        
+        final AggregatedOid aoid = (AggregatedOid) oid;
+        final Oid parentOid = aoid.getParentOid();
+        final String aggregatedId = aoid.getLocalId();
+        
+        String encodedOid = enString(parentOid, aggregatedId);
         data.put("_id", encodedOid);
         return data;
+
     }
 
     @Override
@@ -204,18 +201,19 @@ public class DefaultOidObjectMapping imp
         }
 
         String encodedOid;
-        if(oid instanceof OidWithSpecification) {
-            OidWithSpecification ows = (OidWithSpecification) oid;
+        if(oid instanceof RootOid) {
+            RootOid ows = (RootOid) oid;
             encodedOid = enString(ows);
         } else if (oid instanceof AggregatedOid) {
             final AggregatedOid aoid = (AggregatedOid) oid;
-            final String aggregatedId = aoid.getId();
+            final String aggregatedId = aoid.getLocalId();
             final Oid parentOid = aoid.getParentOid();
             adapter = getAdapterManager().getAdapterFor(parentOid);
             
             encodedOid = enString(parentOid, aggregatedId);
-        } else if (oid instanceof SerialOid) {
-            encodedOid = Long.toString(((SerialOid) oid).getSerialNo(), 16);
+        } else if (oid instanceof RootOidDefault) {
+            final RootOidDefault rootOidDefault = (RootOidDefault) oid;
+            encodedOid = rootOidDefault.getIdentifier();
         } else {
             throw new ScimpiException("Unsupported OID type " + oid);
         }
@@ -261,8 +259,8 @@ public class DefaultOidObjectMapping imp
 
         ObjectAdapter adapter = getAdapter(jsonObject);
         
-        final String clsName = jsonObject.getString("_class");
-        final ObjectSpecification specification = getSpecification(clsName);
+        final String objectType = jsonObject.getString("_objectType");
+        final ObjectSpecification specification = getSpecificationLoader().lookupByObjectType(objectType); 
         for (final ObjectAssociation association : specification.getAssociations()) {
             final String fieldName = association.getId();
 
@@ -310,40 +308,39 @@ public class DefaultOidObjectMapping imp
     }
 
     private ObjectAdapter getAdapter(final JSONObject jsonObject) throws JSONException {
-        final String cls = jsonObject.getString("_class");
+
+        final String objectType = jsonObject.getString("_objectType");
+        final ObjectSpecification objectSpec = getSpecificationLoader().lookupByObjectType(objectType);
+        
         final String id = jsonObject.getString("_id");
-        final String oidTypeStr = jsonObject.getString("_oidType");
-        final Class<?> oidType = InstanceUtil.loadClass(oidTypeStr);
 
-        ObjectAdapter adapter;
-        final ObjectSpecification objectSpec = getSpecification(cls);
         if (objectSpec.isAggregated() && !objectSpec.isCollection()) {
             final String[] split = id.split("@");
             final String parentOidStr = split[0];
-            final String aggregatedId = split[1];
+            final String aggregatedLocalId = split[1];
             
-            Oid parentOid;
-            if(OidWithSpecification.class.isAssignableFrom(oidType)) {
+            RootOid parentOid;
+            if(RootOid.class.isAssignableFrom(oidType)) {
                 parentOid = getOidStringifier().deString(parentOidStr);
-            } else if (SerialOid.class.isAssignableFrom(oidType)) {
-                parentOid = SerialOid.createTransient(Long.parseLong(parentOidStr, 16));
+            } else if (RootOidDefault.class.isAssignableFrom(oidType)) {
+                parentOid = RootOidDefault.createTransient(objectType, parentOidStr);
             } else {
+                // REVIEW: for now, don't support holding references to aggregates whose parent is also an aggregate
                 throw new ScimpiException("Unsupported OID type " + oidType);
             }
                 
-            final AggregatedOid oid = new AggregatedOid(parentOid, aggregatedId);
-            adapter = getPersistenceSession().recreateAdapter(oid, objectSpec);
+            final AggregatedOid oid = new AggregatedOid(parentOid, aggregatedLocalId);
+            return getPersistenceSession().recreateAdapter(oid, objectSpec);
         } else {
-            adapter = mappedObject("T" + cls + "@" + id);
+            return mappedObject("T" + objectType + "@" + id); // yuk!
         }
-        return adapter;
     }
 
     @Override
     public ObjectAdapter mappedObject(final String id) {
         final char type = id.charAt(0);
         final String[] split = id.split("@");
-        final String cls = split[0].substring(1);
+        final String objectType = split[0].substring(1);
         final String oidData = split[1];
         final String aggregatedId = split.length > 2?split[2]:null;
             
@@ -352,8 +349,7 @@ public class DefaultOidObjectMapping imp
             oidType = getPersistenceSession().getServices().get(0).getOid().getClass();
         }
 
-        final ObjectSpecification spec = getSpecificationLoader().loadSpecification(cls);
-
+        final ObjectSpecification spec = getSpecificationLoader().lookupByObjectType(objectType);
         
         if ((type == 'T')) {
             TransientObjectMapping mapping = sessionTransients.get(id);
@@ -362,9 +358,10 @@ public class DefaultOidObjectMapping imp
             }
             if (mapping == null) {
                 
-                final Object pojo = spec.createObject(CreationMode.NO_INITIALIZE);
+                final Object pojo = spec.createObject();
 
-                Oid oid = deString(oidData, State.TRANSIENT);
+                // create as a (transient) root adapter
+                Oid oid = deString(objectType, oidData, State.TRANSIENT);
                 return getPersistenceSession().recreateAdapter(oid, pojo);
             }
             
@@ -378,13 +375,13 @@ public class DefaultOidObjectMapping imp
                 LOG.debug("decoding " + oidData);
 
                 if (aggregatedId != null) {
-                    final Oid parentOid = deString(oidData, State.PERSISTENT);
+                    final RootOid parentOid = deString(objectType, oidData, State.PERSISTENT);
                     Oid oid = new AggregatedOid(parentOid, aggregatedId);
                     getPersistenceSession().loadObject(parentOid, spec);
                     return getAdapterManager().getAdapterFor(oid);
                 } 
 
-                Oid oid = deString(oidData, State.PERSISTENT);
+                Oid oid = deString(objectType, oidData, State.PERSISTENT);
                 return getPersistenceSession().loadObject(oid, spec);
 
             } catch (final SecurityException e) {
@@ -415,23 +412,16 @@ public class DefaultOidObjectMapping imp
 
     enum State { TRANSIENT, PERSISTENT }
     
-    private Oid deString(final String oidData, State stateHint) {
-        if(OidWithSpecification.class.isAssignableFrom(oidType)) {
+    private RootOid deString(String objectType, final String oidData, State stateHint) {
+        if(RootOid.class.isAssignableFrom(oidType)) {
             return getOidStringifier().deString(oidData);
-        } else if (SerialOid.class.isAssignableFrom(oidType)) {
-            final long value = Long.valueOf(oidData, 16).longValue();
-            if(stateHint == State.TRANSIENT) {
-                return SerialOid.createTransient(value);
-            } else {
-                return SerialOid.createPersistent(value);
-            }
         } else {
             throw new ScimpiException("Unsupported OID type " + oidType);
         }
     }
 
 
-    private String enString(OidWithSpecification ows) {
+    private String enString(RootOid ows) {
         return getOidStringifier().enString(ows);
     }
 
@@ -441,22 +431,18 @@ public class DefaultOidObjectMapping imp
 
     private String enString(final Oid oid) {
         final String parentOidStr;
-        if(oid instanceof OidWithSpecification) {
-            OidWithSpecification ows = (OidWithSpecification) oid;
+        if(oid instanceof RootOid) {
+            RootOid ows = (RootOid) oid;
             parentOidStr = enString(ows);
-        } else if (oid instanceof SerialOid) {
-            final SerialOid parentSerialOid = (SerialOid) oid;
-            parentOidStr = Long.toString(parentSerialOid.getSerialNo(), 16);
+        } else if (oid instanceof RootOidDefault) {
+            final RootOidDefault parentSerialOid = (RootOidDefault) oid;
+            parentOidStr = parentSerialOid.getIdentifier();
         } else {
             throw new ScimpiException("Unsupported OID type " + oid);
         }
         return parentOidStr;
     }
 
-    private ObjectSpecification getSpecification(final String cls) {
-        return getSpecificationLoader().loadSpecification(cls);
-    }
-    
     
     ///////////////////////////////////////
     // from context
@@ -478,6 +464,4 @@ public class DefaultOidObjectMapping imp
         return getPersistenceSession().getAdapterManager();
     }
 
-
-
 }

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/IndirectObjectMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/IndirectObjectMapping.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/IndirectObjectMapping.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/IndirectObjectMapping.java Sat Mar 24 14:01:35 2012
@@ -101,7 +101,7 @@ public class IndirectObjectMapping imple
     private void appendMappings(final DebugBuilder debug, final Scope scope) {
         debug.appendTitle("Objects for " + scope);
         final Map<String, Mapping> map = scopedMappings.get(scope);
-        final Iterator<String> ids = new TreeSet(map.keySet()).iterator();
+        final Iterator<String> ids = new TreeSet<String>(map.keySet()).iterator();
         if (!ids.hasNext()) {
             debug.appendln("None", "");
         }

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java Sat Mar 24 14:01:35 2012
@@ -38,6 +38,8 @@ import org.apache.isis.core.commons.debu
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -193,7 +195,7 @@ public abstract class RequestContext {
         if (parentObject instanceof ObjectAdapter) {
             IsisContext.getPersistenceSession().resolveImmediately(parentObject);
         }
-
+        
         final AggregatedOid aggregatedOid = new AggregatedOid(parentObject.getOid(), idParts[2]);
 
         ObjectAdapter aggregatedAdapter = null;

Copied: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/PersistenceSessionProvider.java (from r1301918, incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/nof/PersistenceSessionAccessor.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/PersistenceSessionProvider.java?p2=incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/PersistenceSessionProvider.java&p1=incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/nof/PersistenceSessionAccessor.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/nof/PersistenceSessionAccessor.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/PersistenceSessionProvider.java Sat Mar 24 14:01:35 2012
@@ -17,11 +17,11 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.model.nof;
+package org.apache.isis.viewer.wicket.model.isis;
 
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
 
-public interface PersistenceSessionAccessor {
+public interface PersistenceSessionProvider {
 
     PersistenceSession getPersistenceSession();
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java Sat Mar 24 14:01:35 2012
@@ -33,6 +33,7 @@ import org.apache.wicket.markup.html.lin
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.spec.ActionType;
@@ -148,7 +149,7 @@ public class ActionModel extends ModelAb
         int i = 0;
         for (final ObjectActionParameter actionParam : noAction.getParameters()) {
             if (ActionParams.compatibleWith(contextAdapter, actionParam)) {
-                final String oidStr = oidStringifier.enString(contextAdapter.getOid());
+                final String oidStr = oidStringifier.enString((RootOid)contextAdapter.getOid());
                 final String oidKeyValue = "" + i + "=" + oidStr;
                 PageParameterNames.ACTION_PARAM_CONTEXT.addTo(pageParameters, oidKeyValue);
                 return;

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java Sat Mar 24 14:01:35 2012
@@ -27,6 +27,7 @@ import com.google.common.collect.Maps;
 import org.apache.wicket.PageParameters;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -63,7 +64,7 @@ public class EntityModel extends ModelAb
         PageParameterNames.OBJECT_PERSISTENT.addTo(pageParameters, persistent.toString());
 
         if (persistent) {
-            final String oidStr = oidStringifier.enString(adapter.getOid());
+            final String oidStr = oidStringifier.enString((RootOid) adapter.getOid());
             final ObjectSpecification noSpec = adapter.getSpecification();
 
             PageParameterNames.OBJECT_OID.addTo(pageParameters, oidStr);

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java Sat Mar 24 14:01:35 2012
@@ -26,6 +26,7 @@ import java.util.List;
 import org.apache.wicket.Session;
 
 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.consent.Consent;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -38,7 +39,6 @@ import org.apache.isis.core.metamodel.sp
 import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
 import org.apache.isis.viewer.wicket.model.util.ClassLoaders;
 
 /**
@@ -390,7 +390,7 @@ public class ScalarModel extends EntityM
      * testing.
      */
     protected AuthenticationSession getAuthenticationSession() {
-        return ((AuthenticationSessionAccessor) Session.get()).getAuthenticationSession();
+        return ((AuthenticationSessionProvider) Session.get()).getAuthenticationSession();
     }
 
     public boolean isRequired() {

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstract.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstract.java Sat Mar 24 14:01:35 2012
@@ -23,13 +23,13 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderProvider;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.nof.SpecificationLoaderAccessor;
 
 /**
  * Adapter implementation for {@link ComponentFactory}.
  */
-public abstract class ComponentFactoryAbstract implements ComponentFactory, SpecificationLoaderAccessor {
+public abstract class ComponentFactoryAbstract implements ComponentFactory, SpecificationLoaderProvider {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java Sat Mar 24 14:01:35 2012
@@ -26,12 +26,12 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.common.SelectionHandler;
+import org.apache.isis.viewer.wicket.model.isis.PersistenceSessionProvider;
 import org.apache.isis.viewer.wicket.model.models.ActionExecutor;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ValueModel;
-import org.apache.isis.viewer.wicket.model.nof.PersistenceSessionAccessor;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
@@ -115,7 +115,7 @@ public class ActionPanel extends PanelAb
                 addResultsAccordingToSingleResultsMode(panel, actualAdapter);
             }
 
-            private ObjectAdapter determineActualAdapter(final ObjectAdapter resultAdapter, final PersistenceSessionAccessor psa) {
+            private ObjectAdapter determineActualAdapter(final ObjectAdapter resultAdapter, final PersistenceSessionProvider psa) {
                 ObjectAdapter actualAdapter;
                 if (resultAdapter.getSpecification().isNotCollection()) {
                     actualAdapter = resultAdapter;
@@ -147,7 +147,7 @@ public class ActionPanel extends PanelAb
                 }
             }
 
-            private ObjectAdapter adapterFor(final Object pojo, final PersistenceSessionAccessor psa) {
+            private ObjectAdapter adapterFor(final Object pojo, final PersistenceSessionProvider psa) {
                 return psa.getPersistenceSession().getAdapterManager().adapterFor(pojo);
             }
         },

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java Sat Mar 24 14:01:35 2012
@@ -38,12 +38,12 @@ import org.apache.wicket.markup.html.lin
 import org.apache.wicket.model.Model;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
 import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuLinkFactory.LinkAndLabel;
 import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
@@ -271,7 +271,7 @@ public class CssMenuItem implements Seri
     // //////////////////////////////////////////////////////////////
 
     protected AuthenticationSession getAuthenticationSession() {
-        return ((AuthenticationSessionAccessor) Application.get()).getAuthenticationSession();
+        return ((AuthenticationSessionProvider) Application.get()).getAuthenticationSession();
     }
 
 }
\ No newline at end of file

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/dropdownchoices/DropDownChoicesForObjectAdapterMementos.java Sat Mar 24 14:01:35 2012
@@ -26,6 +26,7 @@ import org.apache.wicket.markup.html.for
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
@@ -45,7 +46,7 @@ public class DropDownChoicesForObjectAda
         @Override
         public String getIdValue(final ObjectAdapterMemento nom, final int index) {
             final Oid oid = nom.getObjectAdapter().getOid();
-            return getOidStringifier().enString(oid);
+            return getOidStringifier().enString((RootOid) oid);
         }
 
         protected OidStringifier getOidStringifier() {

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java Sat Mar 24 14:01:35 2012
@@ -29,12 +29,13 @@ import org.apache.wicket.markup.html.for
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
-import org.apache.isis.viewer.wicket.model.nof.PersistenceSessionAccessor;
+import org.apache.isis.viewer.wicket.model.isis.PersistenceSessionProvider;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
 import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCacheAccessor;
@@ -49,7 +50,7 @@ import org.apache.isis.viewer.wicket.ui.
  * Wicket {@link FormComponentPanel}, providing the ability to build up the
  * panel using other {@link ComponentType}s.
  */
-public abstract class FormComponentPanelAbstract<T> extends FormComponentPanel<T> implements PersistenceSessionAccessor, AuthenticationSessionAccessor {
+public abstract class FormComponentPanelAbstract<T> extends FormComponentPanel<T> implements PersistenceSessionProvider, AuthenticationSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -140,7 +141,7 @@ public abstract class FormComponentPanel
      */
     @Override
     public AuthenticationSession getAuthenticationSession() {
-        return ((AuthenticationSessionAccessor) Session.get()).getAuthenticationSession();
+        return ((AuthenticationSessionProvider) Session.get()).getAuthenticationSession();
     }
 
     // ///////////////////////////////////////////////////////////////////
@@ -160,4 +161,17 @@ public abstract class FormComponentPanel
         return getPersistenceSession().getOidGenerator().getOidStringifier();
     }
 
+    
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java Sat Mar 24 14:01:35 2012
@@ -28,18 +28,19 @@ import org.apache.wicket.markup.html.for
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
-import org.apache.isis.viewer.wicket.model.nof.PersistenceSessionAccessor;
+import org.apache.isis.viewer.wicket.model.isis.PersistenceSessionProvider;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
 
-public abstract class FormAbstract<T> extends Form<T> implements IHeaderContributor, ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, AuthenticationSessionAccessor, PersistenceSessionAccessor {
+public abstract class FormAbstract<T> extends Form<T> implements IHeaderContributor, ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, AuthenticationSessionProvider, PersistenceSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -113,4 +114,16 @@ public abstract class FormAbstract<T> ex
         return getPersistenceSession().getOidGenerator().getOidStringifier();
     }
 
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java Sat Mar 24 14:01:35 2012
@@ -32,12 +32,13 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
-import org.apache.isis.viewer.wicket.model.nof.PersistenceSessionAccessor;
+import org.apache.isis.viewer.wicket.model.isis.PersistenceSessionProvider;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.util.Components;
@@ -45,7 +46,7 @@ import org.apache.isis.viewer.wicket.ui.
 /**
  * Convenience adapter for {@link Panel}s built up using {@link ComponentType}s.
  */
-public abstract class PanelAbstract<T extends IModel<?>> extends Panel implements IHeaderContributor, PersistenceSessionAccessor, AuthenticationSessionAccessor {
+public abstract class PanelAbstract<T extends IModel<?>> extends Panel implements IHeaderContributor, PersistenceSessionProvider, AuthenticationSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -143,7 +144,7 @@ public abstract class PanelAbstract<T ex
      */
     @Override
     public AuthenticationSession getAuthenticationSession() {
-        final AuthenticationSessionAccessor asa = (AuthenticationSessionAccessor) Session.get();
+        final AuthenticationSessionProvider asa = (AuthenticationSessionProvider) Session.get();
         return asa.getAuthenticationSession();
     }
 
@@ -181,4 +182,18 @@ public abstract class PanelAbstract<T ex
         this.componentFactoryRegistry = componentFactoryRegistry;
     }
 
+    
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+
+    
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SystemFixtures.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SystemFixtures.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SystemFixtures.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SystemFixtures.java Sat Mar 24 14:01:35 2012
@@ -23,7 +23,7 @@ import org.apache.wicket.markup.html.lin
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
@@ -37,7 +37,7 @@ public final class SystemFixtures {
         this.context = context;
     }
 
-    public void enstringOid(final OidStringifier mockOidStringifier, final Oid mockOid, final String returns) {
+    public void enstringOid(final OidStringifier mockOidStringifier, final RootOid mockOid, final String returns) {
         context.checking(new Expectations() {
             {
                 allowing(mockOidStringifier).enString(mockOid);

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java Sat Mar 24 14:01:35 2012
@@ -43,6 +43,8 @@ import org.apache.wicket.protocol.http.W
 import org.apache.wicket.util.convert.ConverterLocator;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
 import org.apache.isis.core.commons.resource.ResourceStreamSource;
@@ -55,7 +57,6 @@ import org.apache.isis.runtimes.dflt.run
 import org.apache.isis.runtimes.dflt.runtime.system.IsisSystem;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.app.cssrenderer.ApplicationCssRenderer;
 import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
@@ -114,7 +115,7 @@ import org.apache.isis.viewer.wicket.vie
  * changed.)</li>
  * </ul>
  */
-public class IsisWicketApplication extends AuthenticatedWebApplication implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, ImageCacheAccessor, ApplicationCssRenderer, AuthenticationSessionAccessor {
+public class IsisWicketApplication extends AuthenticatedWebApplication implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, ImageCacheAccessor, ApplicationCssRenderer, AuthenticationSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -352,4 +353,17 @@ public class IsisWicketApplication exten
         return IsisContext.getAuthenticationSession();
     }
 
+    
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java Sat Mar 24 14:01:35 2012
@@ -40,6 +40,8 @@ import org.apache.wicket.protocol.http.W
 import org.apache.wicket.util.convert.ConverterLocator;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
@@ -57,7 +59,6 @@ import org.apache.isis.runtimes.dflt.run
 import org.apache.isis.runtimes.dflt.runtime.system.IsisSystem;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
 import org.apache.isis.viewer.wicket.ui.app.cssrenderer.ApplicationCssRenderer;
 import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCache;
 import org.apache.isis.viewer.wicket.ui.app.imagecache.ImageCacheAccessor;
@@ -74,7 +75,7 @@ import org.apache.isis.viewer.wicket.vie
 import org.apache.isis.viewer.wicket.viewer.integration.wicket.ConverterForObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis;
 
-public class IsisWicketUnsecuredApplication extends WebApplication implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, ImageCacheAccessor, ApplicationCssRenderer, AuthenticationSessionAccessor {
+public class IsisWicketUnsecuredApplication extends WebApplication implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, ImageCacheAccessor, ApplicationCssRenderer, AuthenticationSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -326,4 +327,17 @@ public class IsisWicketUnsecuredApplicat
         return IsisContext.getAuthenticationSession();
     }
 
+    
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java Sat Mar 24 14:01:35 2012
@@ -33,12 +33,13 @@ import org.apache.wicket.authorization.s
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.AuthenticationRequest;
 import org.apache.isis.core.runtime.authentication.AuthenticationRequestPassword;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.nof.AuthenticationSessionAccessor;
 
 /**
  * Viewer-specific implementation of {@link AuthenticatedWebSession}, which
@@ -46,7 +47,7 @@ import org.apache.isis.viewer.wicket.mod
  * also tracks threadusage (so that multiple concurrent requests are all
  * associated with the same session).
  */
-public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession implements AuthenticationSessionAccessor {
+public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession implements AuthenticationSessionProvider {
 
     private static final long serialVersionUID = 1L;
 
@@ -130,4 +131,17 @@ public class AuthenticatedWebSessionForI
         return IsisContext.getAuthenticationManager();
     }
 
+    // /////////////////////////////////////////////////
+    // *Provider impl.
+    // /////////////////////////////////////////////////
+    
+    @Override
+    public void injectInto(final Object candidate) {
+        if (AuthenticationSessionProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final AuthenticationSessionProviderAware cast = AuthenticationSessionProviderAware.class.cast(candidate);
+            cast.setAuthenticationSessionProvider(this);
+        }
+    }
+    
+    
 }

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java Sat Mar 24 14:01:35 2012
@@ -25,6 +25,7 @@ import org.apache.wicket.util.convert.IC
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
@@ -60,7 +61,7 @@ public class ConverterForObjectAdapter i
             // values don't have an Oid
             return null;
         }
-        return getOidStringifier().enString(oid);
+        return getOidStringifier().enString((RootOid) oid);
     }
 
     protected AdapterManager getAdapterManager() {

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java Sat Mar 24 14:01:35 2012
@@ -26,6 +26,7 @@ import org.apache.wicket.util.convert.IC
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
@@ -57,7 +58,7 @@ public class ConverterForObjectAdapterMe
 
     /**
      * Converts {@link ObjectAdapterMemento} to {@link OidStringifier
-     * stringified} {@link Oid}.
+     * stringified} {@link RootOid}.
      */
     @Override
     public String convertToString(final Object object, final Locale locale) {
@@ -67,13 +68,11 @@ public class ConverterForObjectAdapterMe
         final ObjectAdapterMemento memento = (ObjectAdapterMemento) object;
         final Oid oid = memento.getObjectAdapter().getOid();
         if (oid == null) {
-            // values don't have an Oid, but we don't support 'em
+            // values don't have an Oid...
+            // REVIEW: is this right?
             return memento.toString();
-
-            // throw new IllegalStateException(
-            // "cannot convert memento to OBJECT_OID; memento's adapter is a value so has no OBJECT_OID");
         }
-        return getOidStringifier().enString(oid);
+        return getOidStringifier().enString((RootOid) oid);
     }
 
     protected AdapterManager getAdapterManager() {