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 2010/11/15 23:56:25 UTC

svn commit: r1035485 [1/2] - in /incubator/isis/trunk: alternatives/bytecode/src/docbkx/guide/ alternatives/embedded/src/docbkx/guide/ alternatives/objectstore/nosql/src/docbkx/guide/ alternatives/objectstore/sql/src/docbkx/guide/ alternatives/objectst...

Author: danhaywood
Date: Mon Nov 15 22:56:23 2010
New Revision: 1035485

URL: http://svn.apache.org/viewvc?rev=1035485&view=rev
Log:
moving the docbook DTD into trunk/src/docbkx/dtd-4.5 (rather than trunk/resources/docbook-4.5); have also updated the ref's in the docbook XMLs themselves

Added:
    incubator/isis/trunk/src/docbkx/dtd-4.5/
      - copied from r1035219, incubator/isis/trunk/resources/docbook-xml-4.5/
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryHolder.java
Removed:
    incubator/isis/trunk/resources/docbook-xml-4.5/
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/StoryBootstrapper.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/fixtures/AliasServicesPeer.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/IsisInitializer.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistrySpi.java
    incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/internal/fixtures/AliasServicesForConcordion.java
    incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/AbstractSetUpFixture.java
    incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/FitnesseConfigurationBuilder.java
Modified:
    incubator/isis/trunk/alternatives/bytecode/src/docbkx/guide/isis-alternatives-bytecode.xml
    incubator/isis/trunk/alternatives/embedded/src/docbkx/guide/isis-embedded-deployment.xml
    incubator/isis/trunk/alternatives/objectstore/nosql/src/docbkx/guide/isis-nosql-objectstore.xml
    incubator/isis/trunk/alternatives/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml
    incubator/isis/trunk/alternatives/objectstore/xml/src/docbkx/guide/isis-xml-objectstore.xml
    incubator/isis/trunk/alternatives/progmodel/groovy/src/docbkx/user-guide/isis-groovy-support.xml
    incubator/isis/trunk/alternatives/progmodel/wrapper/src/docbkx/guide/isis-wrapper.xml
    incubator/isis/trunk/alternatives/remoting/src/docbkx/guide/isis-remoting.xml
    incubator/isis/trunk/alternatives/security/file/src/docbkx/guide/isis-file-security.xml
    incubator/isis/trunk/alternatives/security/ldap/src/docbkx/guide/isis-ldap-security.xml
    incubator/isis/trunk/applib/src/docbkx/guide/isis-applib.xml
    incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml
    incubator/isis/trunk/defaults/src/docbkx/guide/isis-defaults.xml
    incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/AliasRegistry.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/Story.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/OpenSession.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/StartClient.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryDefault.java
    incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/util/Strings.java
    incubator/isis/trunk/viewer/bdd/common/src/test/java/org/apache/isis/viewer/bdd/common/util/Strings_SplitOnCommas.java
    incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java
    incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/developers-guide/developers-guide.xml
    incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/user-guide/user-guide.xml
    incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/StoryFixture.java
    incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/fixtures/AliasServicesForFitNesse.java
    incubator/isis/trunk/viewer/bdd/pom.xml
    incubator/isis/trunk/viewer/bdd/src/docbkx/guide/isis-bdd-viewer.xml
    incubator/isis/trunk/viewer/dnd/src/docbkx/guide/isis-dnd-viewer.xml
    incubator/isis/trunk/viewer/html/src/docbkx/guide/isis-html-viewer.xml
    incubator/isis/trunk/viewer/junit/src/docbkx/guide/isis-junit-support.xml
    incubator/isis/trunk/viewer/restful/src/docbkx/guide/user-guide.xml
    incubator/isis/trunk/viewer/scimpi/src/docbkx/guide/isis-scimpi-viewer.xml
    incubator/isis/trunk/viewer/scimpi/src/docbkx/to-incorporate/manual.xml
    incubator/isis/trunk/viewer/wicket/src/docbkx/guide/isis-wicket-viewer.xml

Modified: incubator/isis/trunk/alternatives/bytecode/src/docbkx/guide/isis-alternatives-bytecode.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/bytecode/src/docbkx/guide/isis-alternatives-bytecode.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/bytecode/src/docbkx/guide/isis-alternatives-bytecode.xml (original)
+++ incubator/isis/trunk/alternatives/bytecode/src/docbkx/guide/isis-alternatives-bytecode.xml Mon Nov 15 22:56:23 2010
@@ -18,7 +18,7 @@
   under the License.
 -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/alternatives/embedded/src/docbkx/guide/isis-embedded-deployment.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/embedded/src/docbkx/guide/isis-embedded-deployment.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/embedded/src/docbkx/guide/isis-embedded-deployment.xml (original)
+++ incubator/isis/trunk/alternatives/embedded/src/docbkx/guide/isis-embedded-deployment.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/alternatives/objectstore/nosql/src/docbkx/guide/isis-nosql-objectstore.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/objectstore/nosql/src/docbkx/guide/isis-nosql-objectstore.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/objectstore/nosql/src/docbkx/guide/isis-nosql-objectstore.xml (original)
+++ incubator/isis/trunk/alternatives/objectstore/nosql/src/docbkx/guide/isis-nosql-objectstore.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/alternatives/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml (original)
+++ incubator/isis/trunk/alternatives/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml Mon Nov 15 22:56:23 2010
@@ -24,7 +24,7 @@
 "file:&resourceDir;/resources/docbook-xml-4.5/docbookx.dtd" >
 -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd" >
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/alternatives/objectstore/xml/src/docbkx/guide/isis-xml-objectstore.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/objectstore/xml/src/docbkx/guide/isis-xml-objectstore.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/objectstore/xml/src/docbkx/guide/isis-xml-objectstore.xml (original)
+++ incubator/isis/trunk/alternatives/objectstore/xml/src/docbkx/guide/isis-xml-objectstore.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/alternatives/progmodel/groovy/src/docbkx/user-guide/isis-groovy-support.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/progmodel/groovy/src/docbkx/user-guide/isis-groovy-support.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/progmodel/groovy/src/docbkx/user-guide/isis-groovy-support.xml (original)
+++ incubator/isis/trunk/alternatives/progmodel/groovy/src/docbkx/user-guide/isis-groovy-support.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title>Groovy Objects Users Guide</title>

Modified: incubator/isis/trunk/alternatives/progmodel/wrapper/src/docbkx/guide/isis-wrapper.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/progmodel/wrapper/src/docbkx/guide/isis-wrapper.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/progmodel/wrapper/src/docbkx/guide/isis-wrapper.xml (original)
+++ incubator/isis/trunk/alternatives/progmodel/wrapper/src/docbkx/guide/isis-wrapper.xml Mon Nov 15 22:56:23 2010
@@ -18,7 +18,7 @@
   under the License.
 -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/alternatives/remoting/src/docbkx/guide/isis-remoting.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/remoting/src/docbkx/guide/isis-remoting.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/remoting/src/docbkx/guide/isis-remoting.xml (original)
+++ incubator/isis/trunk/alternatives/remoting/src/docbkx/guide/isis-remoting.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/alternatives/security/file/src/docbkx/guide/isis-file-security.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/security/file/src/docbkx/guide/isis-file-security.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/security/file/src/docbkx/guide/isis-file-security.xml (original)
+++ incubator/isis/trunk/alternatives/security/file/src/docbkx/guide/isis-file-security.xml Mon Nov 15 22:56:23 2010
@@ -18,7 +18,7 @@
   under the License.
 -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/alternatives/security/ldap/src/docbkx/guide/isis-ldap-security.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/alternatives/security/ldap/src/docbkx/guide/isis-ldap-security.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/alternatives/security/ldap/src/docbkx/guide/isis-ldap-security.xml (original)
+++ incubator/isis/trunk/alternatives/security/ldap/src/docbkx/guide/isis-ldap-security.xml Mon Nov 15 22:56:23 2010
@@ -18,7 +18,7 @@
   under the License.
 -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/applib/src/docbkx/guide/isis-applib.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/docbkx/guide/isis-applib.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/docbkx/guide/isis-applib.xml (original)
+++ incubator/isis/trunk/applib/src/docbkx/guide/isis-applib.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml (original)
+++ incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file

Modified: incubator/isis/trunk/defaults/src/docbkx/guide/isis-defaults.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/defaults/src/docbkx/guide/isis-defaults.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/defaults/src/docbkx/guide/isis-defaults.xml (original)
+++ incubator/isis/trunk/defaults/src/docbkx/guide/isis-defaults.xml Mon Nov 15 22:56:23 2010
@@ -19,7 +19,7 @@
 -->
 
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title><?eval ${docbkxGuideTitle}?></title>

Modified: incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html (original)
+++ incubator/isis/trunk/support/prototype/viewer-bdd/src/test/resources/org/apache/isis/support/prototype/common/BootstrapInExplorationMode.html Mon Nov 15 22:56:23 2010
@@ -17,7 +17,7 @@ mode,
 </li>
 <li>
 <p>with services: </p>
-<table isis:execute="#result=aliasServices(#className, #aliasAs)">
+<table isis:execute="#result=aliasServices(#aliasAs, #className)">
 	<tr>
 		<th concordion:set="#className">Class Name</th>
 		<th concordion:set="#aliasAs">aliasAs</th>

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/AliasRegistry.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/AliasRegistry.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/AliasRegistry.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/AliasRegistry.java Mon Nov 15 22:56:23 2010
@@ -1,22 +1,25 @@
 package org.apache.isis.viewer.bdd.common;
 
+import java.util.Map;
+
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 
-public interface AliasRegistry {
+public interface AliasRegistry extends Iterable<Map.Entry<String, ObjectAdapter>> {
 
     public ObjectAdapter getAliased(final String alias);
 
     public String getAlias(final ObjectAdapter adapter);
 
     /**
-     * Holds a new {@link NakedObject adapter}, automatically assigning it a new
-     * heldAs alias.
+     * Holds a new {@link NakedObject adapter}, automatically assigning it a new heldAs alias.
      */
     public String aliasPrefixedAs(final String prefix, final ObjectAdapter adapter);
 
     /**
-     * Holds a new {@link NakedObject adapter}.
+     * Holds a new {@link ObjectAdapter}
      */
     public void aliasAs(final String alias, final ObjectAdapter adapter);
 
+    void aliasService(final String aliasAs, final String className) throws StoryValueException;
+
 }

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/Story.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/Story.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/Story.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/Story.java Mon Nov 15 22:56:23 2010
@@ -1,142 +1,189 @@
 package org.apache.isis.viewer.bdd.common;
 
+import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
+import static org.hamcrest.CoreMatchers.anyOf;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+
+import java.util.Collections;
 import java.util.Date;
-import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.isis.applib.fixtures.LogonFixture;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
+import org.apache.isis.core.metamodel.config.ConfigurationBuilder;
+import org.apache.isis.core.metamodel.config.ConfigurationBuilderFileSystem;
 import org.apache.isis.runtime.context.IsisContext;
+import org.apache.isis.runtime.fixturesinstaller.FixturesInstallerNoop;
 import org.apache.isis.runtime.installers.InstallerLookup;
+import org.apache.isis.runtime.installers.InstallerLookupDefault;
 import org.apache.isis.runtime.persistence.PersistenceSession;
 import org.apache.isis.runtime.persistence.adaptermanager.AdapterManager;
+import org.apache.isis.runtime.runner.IsisModule;
 import org.apache.isis.runtime.system.DeploymentType;
 import org.apache.isis.runtime.system.IsisSystem;
+import org.apache.isis.runtime.system.SystemConstants;
+import org.apache.isis.runtime.system.internal.InitialisationSession;
 import org.apache.isis.runtime.transaction.IsisTransactionManager;
-import org.apache.isis.viewer.bdd.common.story.bootstrapping.IsisInitializer;
+import org.apache.isis.runtime.userprofile.inmemory.InMemoryUserProfileStoreInstaller;
+import org.apache.isis.viewer.bdd.common.components.StoryAuthenticationManagerInstaller;
+import org.apache.isis.viewer.bdd.common.components.StoryInMemoryPersistenceMechanismInstaller;
 import org.apache.isis.viewer.bdd.common.story.bootstrapping.OpenSession;
 import org.apache.isis.viewer.bdd.common.story.bootstrapping.SetClock;
 import org.apache.isis.viewer.bdd.common.story.bootstrapping.ShutdownNakedObjects;
 import org.apache.isis.viewer.bdd.common.story.bootstrapping.StartClient;
 import org.apache.isis.viewer.bdd.common.story.registries.AliasRegistryDefault;
-import org.apache.isis.viewer.bdd.common.story.registries.AliasRegistrySpi;
-import org.apache.isis.viewer.bdd.common.util.Strings;
+import org.apache.isis.viewer.bdd.common.story.registries.AliasRegistryHolder;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
 
 /**
- * Holds the bootstrapped {@link NakedObjectsSystem} and provides access to
- * the {@link AliasRegistry aliases}.
+ * Holds the bootstrapped {@link IsisSystem} and provides access to the {@link AliasRegistry aliases}.
  * 
  * <p>
  * Typically held in a thread-local by the test framework, acting as a context to the story.
  * 
  * <p>
- * Implementation note: this class directly implements {@link AliasRegistrySpi}, though delegates to an
- * underlying {@link AliasRegistryDefault}.  This is needed because the underlying {@link AliasRegistry}
- * can change on {@link #switchUserWithRoles(String, String)} (see {@link #reAdapt(AliasRegistrySpi)} method).
+ * Implementation note: this class directly implements {@link AliasRegistrySpi}, though delegates to an underlying
+ * {@link AliasRegistryDefault}. This is needed because the underlying {@link AliasRegistry} can change on
+ * {@link #switchUserWithRoles(String, String)} (see {@link #reAdapt(AliasRegistrySpi)} method).
  */
-public class Story implements StoryBootstrapper, AliasRegistrySpi {
+public class Story implements AliasRegistryHolder {
+
+    private AliasRegistry aliasRegistry = new AliasRegistryDefault();
+
+    private DeploymentType deploymentType;
+    private String configDirectory;
 
-	private AliasRegistrySpi aliasRegistry = new AliasRegistryDefault();
+    private IsisSystem isisSystem;
 
-	private String configDirectory;
-    private boolean exploration;
-    
-	private InstallerLookup installerLookup;
-	private IsisSystem nakedObjectsSystem;
+    private InstallerLookupDefault installerLookup;
 
+    // /////////////////////////////////////////////////////////////
+    // bootstrap / shutdown
+    // /////////////////////////////////////////////////////////////
 
     public String getConfigDirectory() {
         return configDirectory;
     }
-    public void setConfigDirectory(final String configDirectory) {
-    	this.configDirectory = configDirectory;
-    }
 
-    public void enableExploration() {
-    	this.exploration = true;
-    }
-    
     public DeploymentType getDeploymentType() {
-        return exploration ? DeploymentType.EXPLORATION
-                : DeploymentType.PROTOTYPE;
+        return deploymentType;
+    }
+
+    public IsisSystem getSystem() {
+        return isisSystem;
     }
 
     public InstallerLookup getInstallerLookup() {
         return installerLookup;
     }
-    public void setInstallerLookup(final InstallerLookup installerLookup) {
-        this.installerLookup = installerLookup;
+
+    @SuppressWarnings("unchecked")
+    public void bootstrapIsis(String configDirectory, DeploymentType deploymentType) {
+        this.configDirectory = configDirectory;
+        this.deploymentType =
+            ensureThatArg(deploymentType,
+                is(anyOf(equalTo(DeploymentType.EXPLORATION), equalTo(DeploymentType.PROTOTYPE))));
+
+        ConfigurationBuilderFileSystem configurationBuilder = new ConfigurationBuilderFileSystem(getConfigDirectory());
+
+        configurationBuilder.add(SystemConstants.DEPLOYMENT_TYPE_KEY, deploymentType.name());
+        defaultStoryComponentsInto(configurationBuilder);
+
+        try {
+            // create system...
+            isisSystem = createSystem(deploymentType, configurationBuilder);
+
+            // ... and provide a session in order to install fixtures
+            IsisContext.openSession(new InitialisationSession());
+
+        } catch (final RuntimeException e) {
+            if (isisSystem != null) {
+                isisSystem.shutdown();
+            }
+            throw e;
+        }
     }
 
-    public IsisSystem getSystem() {
-        return nakedObjectsSystem;
+    private IsisSystem createSystem(DeploymentType deploymentType, ConfigurationBuilder configurationBuilder) {
+        this.installerLookup = new InstallerLookupDefault(this.getClass());
+        configurationBuilder.injectInto(installerLookup);
+
+        Injector injector = createGuiceInjector(deploymentType, configurationBuilder, installerLookup);
+        IsisSystem system = injector.getInstance(IsisSystem.class);
+        return system;
     }
 
-    /**
-     * Called by {@link IsisInitializer}.
-     */
-    public void setIsisSystem(
-            final IsisSystem nakedObjectsSystem) {
-        this.nakedObjectsSystem = nakedObjectsSystem;
+    private void defaultStoryComponentsInto(ConfigurationBuilder configurationBuilder) {
+        configurationBuilder.add(SystemConstants.AUTHENTICATION_INSTALLER_KEY,
+            StoryAuthenticationManagerInstaller.class.getName());
+        configurationBuilder.add(SystemConstants.OBJECT_PERSISTOR_INSTALLER_KEY,
+            StoryInMemoryPersistenceMechanismInstaller.class.getName());
+        configurationBuilder.add(SystemConstants.PROFILE_PERSISTOR_INSTALLER_KEY,
+            InMemoryUserProfileStoreInstaller.class.getName());
+        configurationBuilder.add(SystemConstants.FIXTURES_INSTALLER_KEY, FixturesInstallerNoop.class.getName());
+        configurationBuilder.add(SystemConstants.NOSPLASH_KEY, "" + true);
     }
 
-    
-    /**
-     * Logon, specifying no roles.
-     * <p>
-     * Unlike the {@link LogonFixture} on regular Naked Objects fixtures, the
-     * logonAs is not automatically remembered until the end of the setup. It
-     * should therefore be invoked at the end of setup explicitly.
-     */
-    public void logonAs(final String userName) {
-        switchUser(userName);
+    private Injector createGuiceInjector(DeploymentType deploymentType, ConfigurationBuilder configurationBuilder,
+        InstallerLookup installerLookup) {
+        IsisModule isisModule = new IsisModule(deploymentType, configurationBuilder, installerLookup);
+        return Guice.createInjector(isisModule);
     }
 
-    /**
-     * Logon, specifying roles.
-     * <p>
-     * Unlike the {@link LogonFixture} on regular Naked Objects fixtures, the
-     * logonAs is not automatically remembered until the end of the setup. It
-     * should therefore be invoked at the end of setup explicitly.
-     */
-    public void logonAsWithRoles(final String userName, final String roleList) {
-        switchUserWithRoles(userName, roleList);
+    public void shutdownIsis() {
+        new ShutdownNakedObjects(this).shutdown();
+    }
+
+    // /////////////////////////////////////////////////////////////
+    // date+time / logon+switch user
+    // /////////////////////////////////////////////////////////////
+
+    public void dateAndTimeIs(final Date dateAndTime) {
+        new SetClock(this).setClock(dateAndTime);
     }
 
     /**
-     * Switch user, specifying no roles.
+     * Logon, specifying no roles.
+     * <p>
+     * Unlike the {@link LogonFixture} on regular Naked Objects fixtures, the logonAs is not automatically remembered
+     * until the end of the setup. It should therefore be invoked at the end of setup explicitly.
      */
-    public void switchUser(final String userName) {
-        switchUserWithRoles(userName, null);
+    public void logonAsOrSwitchUserTo(final String userName) {
+        List<String> noRoles = Collections.emptyList();
+        logonAsOrSwitchUserTo(userName, noRoles);
     }
 
     /**
-     * Switch user, specifying roles.
+     * Logon, specifying roles.
+     * <p>
+     * Unlike the {@link LogonFixture} on regular Isis fixtures, the logonAs is not automatically remembered until the
+     * end of the setup. It should therefore be invoked at the end of setup explicitly.
      */
-    public void switchUserWithRoles(final String userName, final String roleList) {
-        new OpenSession(this).openSession(userName, Strings
-                .splitOnCommas(roleList));
+    public void logonAsOrSwitchUserTo(final String userName, final List<String> roleList) {
+        new OpenSession(this).openSession(userName, roleList);
         aliasRegistry = reAdapt(aliasRegistry);
     }
 
     /**
      * Need to recreate aliases whenever logout/login.
      */
-    private AliasRegistrySpi reAdapt(final AliasRegistrySpi aliasesRegistrySpi) {
-        final AliasRegistrySpi newAliasesRegistry = new AliasRegistryDefault();
+    private AliasRegistry reAdapt(final AliasRegistry aliasesRegistry) {
+        final AliasRegistry newAliasesRegistry = new AliasRegistryDefault();
 
         // first pass: root adapters
-        for (final Map.Entry<String, ObjectAdapter> aliasAdapter : aliasesRegistrySpi) {
+        for (final Map.Entry<String, ObjectAdapter> aliasAdapter : aliasesRegistry) {
             final String alias = aliasAdapter.getKey();
             final ObjectAdapter oldAdapter = aliasAdapter.getValue();
 
             if (oldAdapter.getOid() instanceof AggregatedOid) {
                 continue;
             }
-            newAliasesRegistry.alias(alias, getAdapterManager().adapterFor(
-                    oldAdapter.getObject()));
+            newAliasesRegistry.aliasAs(alias, getAdapterManager().adapterFor(oldAdapter.getObject()));
         }
 
         // for now, not supporting aggregated adapters (difficulty in looking up
@@ -147,7 +194,7 @@ public class Story implements StoryBoots
         // {
         // final String alias = aliasAdapter.getKey();
         // final ObjectAdapter oldAdapter = aliasAdapter.getValue();
-        //			
+        //
         // if(!(oldAdapter.getOid() instanceof AggregatedOid)) {
         // continue;
         // }
@@ -161,57 +208,29 @@ public class Story implements StoryBoots
         // final ObjectAdapter newAdapter =
         // getAdapterManager().adapterFor(oldAdapter.getObject(), parentAdapter,
         // association);
-        //			
+        //
         // newAliasesRegistry.put(alias, newAdapter);
         // }
         return newAliasesRegistry;
     }
 
-    public void registerService(final String aliasAs, final String serviceClassName) throws StoryValueException {
-        aliasRegistry.aliasService(aliasAs, serviceClassName);
-    }
-
-
-    /**
-     * Holds a new {@link NakedObject adapter}, automatically assigning it a new
-     * heldAs alias.
-     */
-    public String aliasPrefixedAs(final String prefix, final ObjectAdapter adapter) {
-        return aliasRegistry.aliasPrefixedAs(prefix, adapter);
-    }
-
-    /**
-     * Holds a new {@link ObjectAdapter}.
-     */
-    public void aliasAs(final String alias, final ObjectAdapter adapter) {
-        aliasRegistry.aliasAs(alias, adapter);
-    }
-
-    public void dateIsNow(final Date dateAndTime) {
-        dateIs(dateAndTime);
-    }
-
-    public void dateIs(final Date dateAndTime) {
-        timeIs(dateAndTime);
-    }
-
-    public void timeIsNow(final Date dateAndTime) {
-        timeIs(dateAndTime);
-    }
+    // /////////////////////////////////////////////////////////
+    // run viewer
+    // /////////////////////////////////////////////////////////
 
-    public void timeIs(final Date dateAndTime) {
-        new SetClock(this).setClock(dateAndTime);
+    public void runViewer() {
+        new StartClient(this).run();
     }
 
-    public void shutdownNakedObjects() {
-        new ShutdownNakedObjects(this).shutdown();
-    }
+    // //////////////////////////////////////////////////////////////////
+    // AliasRegistry impl
+    // //////////////////////////////////////////////////////////////////
 
-    public void runViewer() {
-        new StartClient(this).run();
+    @Override
+    public AliasRegistry getAliasRegistry() {
+        return aliasRegistry;
     }
 
-    
     // /////////////////////////////////////////////////////////
     // Dependencies (from context)
     // /////////////////////////////////////////////////////////
@@ -227,28 +246,5 @@ public class Story implements StoryBoots
     public IsisTransactionManager getTransactionManager() {
         return IsisContext.getTransactionManager();
     }
-    
-    
-    ////////////////////////////////////////////////////////////////////
-    // AliasRegistry impl
-    ////////////////////////////////////////////////////////////////////
-    
-	public String getAlias(ObjectAdapter adapter) {
-		return aliasRegistry.getAlias(adapter);
-	}
-	public ObjectAdapter getAliased(String alias) {
-		return aliasRegistry.getAliased(alias);
-	}
-	public void alias(String alias, ObjectAdapter adapter) {
-		aliasRegistry.alias(alias, adapter);
-	}
-	public void aliasService(String aliasAs, String className)
-			throws StoryValueException {
-		aliasRegistry.aliasService(aliasAs, className);
-	}
-	public Iterator<Entry<String, ObjectAdapter>> iterator() {
-		return aliasRegistry.iterator();
-	}
-    
 
 }

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/OpenSession.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/OpenSession.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/OpenSession.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/OpenSession.java Mon Nov 15 22:56:23 2010
@@ -1,5 +1,7 @@
 package org.apache.isis.viewer.bdd.common.story.bootstrapping;
 
+import java.util.List;
+
 import org.apache.isis.applib.fixtures.LogonFixture;
 import org.apache.isis.core.metamodel.authentication.AuthenticationSession;
 import org.apache.isis.runtime.authentication.AuthenticationManager;
@@ -16,11 +18,10 @@ public class OpenSession {
         this.story = story;
     }
 
-    public void openSession(final String userName, final String[] roles) {
+    public void openSession(final String userName, final List<String> roles) {
         IsisContext.closeSession();
         final LogonFixture logonFixture = new LogonFixture(userName, roles);
-        final AuthenticationRequestLogonFixture authRequest = new AuthenticationRequestLogonFixture(
-                logonFixture);
+        final AuthenticationRequestLogonFixture authRequest = new AuthenticationRequestLogonFixture(logonFixture);
         final AuthenticationSession authSession = getAuthenticationManager().authenticate(authRequest);
 
         IsisContext.openSession(authSession);

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/StartClient.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/StartClient.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/StartClient.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/bootstrapping/StartClient.java Mon Nov 15 22:56:23 2010
@@ -7,20 +7,19 @@ import org.apache.isis.viewer.bdd.common
 
 public class StartClient extends AbstractHelper {
 
-	private static final String DND_VIEWER_NAME = "dnd";
+    private static final String DND_VIEWER_NAME = "dnd";
 
-	public StartClient(final Story story) {
-		super(story);
-	}
+    public StartClient(final Story story) {
+        super(story);
+    }
 
-	public void run() {
-		final InstallerLookup installerLookup = getStory().getInstallerLookup();
+    public void run() {
+        final InstallerLookup installerLookup = getStory().getInstallerLookup();
 
-		final IsisViewerInstaller viewerInstaller = installerLookup
-				.viewerInstaller(DND_VIEWER_NAME);
-		final IsisViewer viewer = viewerInstaller.createViewer();
+        final IsisViewerInstaller viewerInstaller = installerLookup.viewerInstaller(DND_VIEWER_NAME);
+        final IsisViewer viewer = viewerInstaller.createViewer();
 
-		viewer.init();
-	}
+        viewer.init();
+    }
 
 }

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryDefault.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryDefault.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryDefault.java Mon Nov 15 22:56:23 2010
@@ -12,72 +12,72 @@ import java.util.TreeMap;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.runtime.context.IsisContext;
 import org.apache.isis.runtime.persistence.PersistenceSession;
+import org.apache.isis.viewer.bdd.common.AliasRegistry;
 import org.apache.isis.viewer.bdd.common.StoryValueException;
 
-public class AliasRegistryDefault implements AliasRegistrySpi {
+public class AliasRegistryDefault implements AliasRegistry {
 
-	private final Map<String, ObjectAdapter> adaptersByAlias = new HashMap<String, ObjectAdapter>();
-	private final Map<ObjectAdapter, String> aliasesByAdapter = new HashMap<ObjectAdapter, String>();
-	
-	/**
-	 * @see #nextAlias()
-	 * @see #aliasPrefixedAs(String, NakedObject)
-	 */
-	private final Map<String, int[]> aliasCountsByPrefix = new TreeMap<String, int[]>();
-
-	public void alias(final String alias, final ObjectAdapter adapter) {
-		adaptersByAlias.put(alias, adapter);
-		aliasesByAdapter.put(adapter, alias);
-	}
-
-	public ObjectAdapter getAliased(final String alias) {
-		return adaptersByAlias.get(alias);
-	}
-
-	public String getAlias(final ObjectAdapter adapter) {
-		return aliasesByAdapter.get(adapter);
-	}
-
-	public String aliasPrefixedAs(final String prefix, final ObjectAdapter adapter) {
-		int[] aliasCountForPrefix = aliasCountsByPrefix.get(prefix);
-		if (aliasCountForPrefix == null) {
-			aliasCountForPrefix = new int[1];
-			aliasCountsByPrefix.put(prefix, aliasCountForPrefix);
-		}
-		final String nextAliasForPrefix = nextAlias(prefix, aliasCountForPrefix);
-		adaptersByAlias.put(nextAliasForPrefix, adapter);
-		return nextAliasForPrefix;
-	}
-
-	private String nextAlias(final String prefix, final int[] heldAsCount) {
-		return prefix + "#" + (++heldAsCount[0]);
-	}
-
-	public void aliasAs(final String aliasAs, final ObjectAdapter adapter) {
-		adaptersByAlias.put(aliasAs, adapter);
-	}
-
-	public Iterator<Entry<String, ObjectAdapter>> iterator() {
-		final Set<Entry<String, ObjectAdapter>> entrySet = adaptersByAlias
-				.entrySet();
-		return Collections.unmodifiableSet(entrySet).iterator();
-	}
-
-	public void aliasService(final String aliasAs, final String className) throws StoryValueException {
-		final List<ObjectAdapter> serviceAdapters = getPersistenceSession()
-				.getServices();
-		for (final ObjectAdapter serviceAdapter : serviceAdapters) {
-			if (serviceAdapter.getSpecification().getFullName().equals(
-					className)) {
-				adaptersByAlias.put(aliasAs, serviceAdapter);
-				return;
-			}
-		}
-		throw new StoryValueException("no such service");
-	}
-
-	protected PersistenceSession getPersistenceSession() {
-		return IsisContext.getPersistenceSession();
-	}
+    private final Map<String, ObjectAdapter> adaptersByAlias = new HashMap<String, ObjectAdapter>();
+    private final Map<ObjectAdapter, String> aliasesByAdapter = new HashMap<ObjectAdapter, String>();
+
+    /**
+     * @see #nextAlias()
+     * @see #aliasPrefixedAs(String, NakedObject)
+     */
+    private final Map<String, int[]> aliasCountsByPrefix = new TreeMap<String, int[]>();
+
+    @Override
+    public void aliasAs(final String alias, final ObjectAdapter adapter) {
+        adaptersByAlias.put(alias, adapter);
+        aliasesByAdapter.put(adapter, alias);
+    }
+
+    @Override
+    public ObjectAdapter getAliased(final String alias) {
+        return adaptersByAlias.get(alias);
+    }
+
+    @Override
+    public String getAlias(final ObjectAdapter adapter) {
+        return aliasesByAdapter.get(adapter);
+    }
+
+    @Override
+    public String aliasPrefixedAs(final String prefix, final ObjectAdapter adapter) {
+        int[] aliasCountForPrefix = aliasCountsByPrefix.get(prefix);
+        if (aliasCountForPrefix == null) {
+            aliasCountForPrefix = new int[1];
+            aliasCountsByPrefix.put(prefix, aliasCountForPrefix);
+        }
+        final String nextAliasForPrefix = nextAlias(prefix, aliasCountForPrefix);
+        adaptersByAlias.put(nextAliasForPrefix, adapter);
+        return nextAliasForPrefix;
+    }
+
+    private String nextAlias(final String prefix, final int[] heldAsCount) {
+        return prefix + "#" + (++heldAsCount[0]);
+    }
+
+    @Override
+    public Iterator<Entry<String, ObjectAdapter>> iterator() {
+        final Set<Entry<String, ObjectAdapter>> entrySet = adaptersByAlias.entrySet();
+        return Collections.unmodifiableSet(entrySet).iterator();
+    }
+
+    @Override
+    public void aliasService(final String aliasAs, final String className) throws StoryValueException {
+        final List<ObjectAdapter> serviceAdapters = getPersistenceSession().getServices();
+        for (final ObjectAdapter serviceAdapter : serviceAdapters) {
+            if (serviceAdapter.getSpecification().getFullName().equals(className)) {
+                adaptersByAlias.put(aliasAs, serviceAdapter);
+                return;
+            }
+        }
+        throw new StoryValueException("no such service");
+    }
+
+    protected PersistenceSession getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
 
 }

Added: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryHolder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryHolder.java?rev=1035485&view=auto
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryHolder.java (added)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/story/registries/AliasRegistryHolder.java Mon Nov 15 22:56:23 2010
@@ -0,0 +1,9 @@
+package org.apache.isis.viewer.bdd.common.story.registries;
+
+import org.apache.isis.viewer.bdd.common.AliasRegistry;
+
+public interface AliasRegistryHolder {
+
+    AliasRegistry getAliasRegistry();
+
+}

Modified: incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/util/Strings.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/util/Strings.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/util/Strings.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/util/Strings.java Mon Nov 15 22:56:23 2010
@@ -1,10 +1,14 @@
 package org.apache.isis.viewer.bdd.common.util;
 
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.StringTokenizer;
 
 public final class Strings {
 
-    private Strings() {}
+    private Strings() {
+    }
 
     /**
      * Simply forces first char to be lower case.
@@ -13,8 +17,7 @@ public final class Strings {
         if (Strings.emptyString(str)) {
             return str;
         }
-        return str.substring(0, 1).toLowerCase()
-                + (str.length() > 1 ? str.substring(1) : "");
+        return str.substring(0, 1).toLowerCase() + (str.length() > 1 ? str.substring(1) : "");
     }
 
     public static boolean emptyString(final String str) {
@@ -31,20 +34,19 @@ public final class Strings {
     public static String memberIdFor(final String member) {
         return Strings.lowerLeading(camel(member));
     }
-    
+
     public static String camel(String name) {
         StringBuffer b = new StringBuffer(name.length());
         StringTokenizer t = new StringTokenizer(name);
         b.append(t.nextToken());
         while (t.hasMoreTokens()) {
-          String token = t.nextToken();
-          b.append(token.substring(0, 1).toUpperCase()); // replace spaces with
-          // camelCase
-          b.append(token.substring(1));
+            String token = t.nextToken();
+            b.append(token.substring(0, 1).toUpperCase()); // replace spaces with
+            // camelCase
+            b.append(token.substring(1));
         }
         return b.toString();
-      }
-
+    }
 
     public static String simpleName(final String str) {
         final int lastDot = str.lastIndexOf('.');
@@ -57,17 +59,17 @@ public final class Strings {
         return str.substring(lastDot + 1);
     }
 
-    public static String[] splitOnCommas(final String commaSeparatedList) {
+    public static List<String> splitOnCommas(final String commaSeparatedList) {
         if (commaSeparatedList == null) {
             return null;
         }
-        final String removeLeadingWhiteSpace = Strings
-                .removeLeadingWhiteSpace(commaSeparatedList);
+        final String removeLeadingWhiteSpace = Strings.removeLeadingWhiteSpace(commaSeparatedList);
         // special handling
         if (removeLeadingWhiteSpace.length() == 0) {
-            return new String[0];
+            return Collections.emptyList();
         }
-        return removeLeadingWhiteSpace.split("\\W*,\\W*");
+        String[] splitAsArray = removeLeadingWhiteSpace.split("\\W*,\\W*");
+        return Arrays.asList(splitAsArray);
     }
 
     public static String removeLeadingWhiteSpace(final String str) {

Modified: incubator/isis/trunk/viewer/bdd/common/src/test/java/org/apache/isis/viewer/bdd/common/util/Strings_SplitOnCommas.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/common/src/test/java/org/apache/isis/viewer/bdd/common/util/Strings_SplitOnCommas.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/common/src/test/java/org/apache/isis/viewer/bdd/common/util/Strings_SplitOnCommas.java (original)
+++ incubator/isis/trunk/viewer/bdd/common/src/test/java/org/apache/isis/viewer/bdd/common/util/Strings_SplitOnCommas.java Mon Nov 15 22:56:23 2010
@@ -1,6 +1,7 @@
 package org.apache.isis.viewer.bdd.common.util;
 
-import org.apache.isis.viewer.bdd.common.util.Strings;
+import java.util.List;
+
 import org.hamcrest.CoreMatchers;
 import org.junit.Assert;
 import org.junit.Test;
@@ -9,53 +10,53 @@ public class Strings_SplitOnCommas {
 
     @Test
     public void length() {
-        final String[] list = Strings.splitOnCommas("foo,bar");
-        Assert.assertThat(list.length, CoreMatchers.is(2));
+        final List<String> list = Strings.splitOnCommas("foo,bar");
+        Assert.assertThat(list.size(), CoreMatchers.is(2));
     }
 
     @Test
     public void elements() {
-        final String[] list = Strings.splitOnCommas("foo,bar");
-        Assert.assertThat(list[0], CoreMatchers.is("foo"));
-        Assert.assertThat(list[1], CoreMatchers.is("bar"));
+        final List<String> list = Strings.splitOnCommas("foo,bar");
+        Assert.assertThat(list.get(0), CoreMatchers.is("foo"));
+        Assert.assertThat(list.get(1), CoreMatchers.is("bar"));
     }
 
     @Test
     public void whenHasWhiteSpaceAfterComma() {
-        final String[] list = Strings.splitOnCommas("foo, bar");
-        Assert.assertThat(list[0], CoreMatchers.is("foo"));
-        Assert.assertThat(list[1], CoreMatchers.is("bar"));
+        final List<String> list = Strings.splitOnCommas("foo, bar");
+        Assert.assertThat(list.get(0), CoreMatchers.is("foo"));
+        Assert.assertThat(list.get(1), CoreMatchers.is("bar"));
     }
 
     @Test
     public void whenHasLeadingWhiteSpace() {
-        final String[] list = Strings.splitOnCommas(" foo, bar");
-        Assert.assertThat(list[0], CoreMatchers.is("foo"));
-        Assert.assertThat(list[1], CoreMatchers.is("bar"));
+        final List<String> list = Strings.splitOnCommas(" foo, bar");
+        Assert.assertThat(list.get(0), CoreMatchers.is("foo"));
+        Assert.assertThat(list.get(1), CoreMatchers.is("bar"));
     }
 
     @Test
     public void whenNull() {
-        final String[] list = Strings.splitOnCommas(null);
+        final List<String> list = Strings.splitOnCommas(null);
         Assert.assertThat(list, CoreMatchers.is(CoreMatchers.nullValue()));
     }
 
     @Test
     public void whenEmpty() {
-        final String[] list = Strings.splitOnCommas("");
-        Assert.assertThat(list.length, CoreMatchers.is(0));
+        final List<String> list = Strings.splitOnCommas("");
+        Assert.assertThat(list.size(), CoreMatchers.is(0));
     }
 
     @Test
     public void whenOnlyWhiteSpace() {
-        final String[] list = Strings.splitOnCommas(" ");
-        Assert.assertThat(list.length, CoreMatchers.is(0));
+        final List<String> list = Strings.splitOnCommas(" ");
+        Assert.assertThat(list.size(), CoreMatchers.is(0));
     }
 
     @Test
     public void whenOnlyWhiteSpaceTabs() {
-        final String[] list = Strings.splitOnCommas("\t");
-        Assert.assertThat(list.length, CoreMatchers.is(0));
+        final List<String> list = Strings.splitOnCommas("\t");
+        Assert.assertThat(list.size(), CoreMatchers.is(0));
     }
 
 }

Modified: incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java (original)
+++ incubator/isis/trunk/viewer/bdd/concordion/src/main/java/org/apache/isis/viewer/bdd/concordion/AbstractIsisConcordionTest.java Mon Nov 15 22:56:23 2010
@@ -9,20 +9,19 @@ import java.io.InputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
 
 import org.apache.isis.core.commons.io.IoUtils;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.config.ConfigurationBuilder;
-import org.apache.isis.core.metamodel.config.ConfigurationBuilderFileSystem;
 import org.apache.isis.runtime.system.DeploymentType;
 import org.apache.isis.viewer.bdd.common.Story;
 import org.apache.isis.viewer.bdd.common.StoryValueException;
 import org.apache.isis.viewer.bdd.common.fixtures.SetUpObjectsPeer.Mode;
 import org.apache.isis.viewer.bdd.common.fixtures.perform.Perform;
-import org.apache.isis.viewer.bdd.common.story.bootstrapping.IsisInitializer;
+import org.apache.isis.viewer.bdd.common.util.Strings;
 import org.apache.isis.viewer.bdd.concordion.internal.concordion.ExecuteCommandWithHeader;
 import org.apache.isis.viewer.bdd.concordion.internal.fixtures.AliasItemsInListForConcordion;
-import org.apache.isis.viewer.bdd.concordion.internal.fixtures.AliasServicesForConcordion;
 import org.apache.isis.viewer.bdd.concordion.internal.fixtures.SetUpObjectsForConcordion;
 import org.apache.isis.viewer.bdd.concordion.internal.fixtures.UsingIsisViewerForConcordion;
 import org.concordion.Concordion;
@@ -158,72 +157,83 @@ public class AbstractIsisConcordionTest 
         return getStory().getDeploymentType();
     }
 
-    public boolean bootstrapIsis(String configDirectory, String deploymentType) {
-        getStory().setConfigDirectory(configDirectory);
-        if (DeploymentType.EXPLORATION.toString().equalsIgnoreCase(deploymentType)) {
-            getStory().enableExploration();
-        }
-        ConfigurationBuilderFileSystem configurationBuilder = new ConfigurationBuilderFileSystem(getConfigDirectory());
-        IsisInitializer initializer = new IsisInitializer(getStory(), configurationBuilder, getDeploymentType());
-        initializer.initialize();
+    /**
+     * For calling within a <tt>#setUp()</tt> method.
+     * 
+     * @see {@link #bootstrapIsis(String, String)}
+     */
+    public void bootstrapIsis(String configDirectory, DeploymentType deploymentType) {
+        getStory().bootstrapIsis(configDirectory, deploymentType);
+    }
+
+    /**
+     * For calling from XHTML script.
+     * 
+     * @see #bootstrapIsis(String, DeploymentType)
+     * @return <tt>boolean</tt> so that XHTML can assert on it.
+     */
+    public boolean bootstrapIsis(String configDirectory, String deploymentTypeStr) {
+        bootstrapIsis(configDirectory, DeploymentType.lookup(deploymentTypeStr));
         return true; // any runtime exception will propagate
     }
 
     public void aliasAs(String alias, ObjectAdapter adapter) {
-        getStory().aliasAs(alias, adapter);
+        getStory().getAliasRegistry().aliasAs(alias, adapter);
     }
 
     public String aliasPrefixedAs(String prefix, ObjectAdapter adapter) {
-        return getStory().aliasPrefixedAs(prefix, adapter);
+        return getStory().getAliasRegistry().aliasPrefixedAs(prefix, adapter);
     }
 
     public void aliasServiceAs(String alias, String serviceClassName) throws StoryValueException {
-        getStory().registerService(alias, serviceClassName);
+        getStory().getAliasRegistry().aliasService(alias, serviceClassName);
     }
 
     public String getAlias(ObjectAdapter adapter) {
-        return getStory().getAlias(adapter);
+        return getStory().getAliasRegistry().getAlias(adapter);
     }
 
     public ObjectAdapter getAliased(String alias) {
-        return getStory().getAliased(alias);
+        return getStory().getAliasRegistry().getAliased(alias);
     }
 
     public boolean logonAs(String userName) {
-        getStory().logonAs(userName);
+        getStory().logonAsOrSwitchUserTo(userName);
         return true;
     }
 
-    public boolean logonAsWithRoles(String userName, String roleList) {
-        getStory().logonAsWithRoles(userName, roleList);
+    public boolean logonAsWithRoles(String userName, String roleListStr) {
+        List<String> roleList = Strings.splitOnCommas(roleListStr);
+        getStory().logonAsOrSwitchUserTo(userName, roleList);
         return true;
     }
 
     public void switchUser(String userName) {
-        getStory().switchUser(userName);
+        logonAs(userName);
     }
 
-    public void switchUserWithRoles(String userName, String roleList) {
-        getStory().switchUserWithRoles(userName, roleList);
+    public void switchUserWithRoles(String userName, String roleListStr) {
+        logonAsWithRoles(userName, roleListStr);
     }
 
     public boolean dateIs(String dateAndTimeStr) throws StoryValueException {
-        getStory().dateIs(asDateAndTime(dateAndTimeStr));
-        return true;
+        return dateAndTimeIsNow(dateAndTimeStr);
     }
 
     public boolean dateIsNow(String dateAndTimeStr) throws StoryValueException {
-        getStory().dateIsNow(asDateAndTime(dateAndTimeStr));
-        return true;
+        return dateAndTimeIsNow(dateAndTimeStr);
     }
 
     public boolean timeIs(String dateAndTimeStr) throws StoryValueException {
-        getStory().timeIs(asDateAndTime(dateAndTimeStr));
-        return true;
+        return dateAndTimeIsNow(dateAndTimeStr);
     }
 
     public boolean timeIsNow(String dateAndTimeStr) throws StoryValueException {
-        getStory().timeIsNow(asDateAndTime(dateAndTimeStr));
+        return dateAndTimeIsNow(dateAndTimeStr);
+    }
+
+    protected boolean dateAndTimeIsNow(String dateAndTimeStr) throws StoryValueException {
+        getStory().dateAndTimeIs(asDateAndTime(dateAndTimeStr));
         return true;
     }
 
@@ -236,22 +246,21 @@ public class AbstractIsisConcordionTest 
         }
     }
 
-    private AliasServicesForConcordion aliasServices;
-
-    public boolean aliasService(String className, String alias) {
+    public boolean aliasService(String alias, String className) {
         return aliasServices(className, alias);
     }
 
-    public boolean aliasServices(String className, String alias) {
-        if (aliasServices == null) {
-            aliasServices = new AliasServicesForConcordion(getStory());
+    public boolean aliasServices(String alias, String className) {
+        try {
+            getStory().getAliasRegistry().aliasService(alias, className);
+            return true;
+        } catch (StoryValueException e) {
+            return false;
         }
-        aliasServices.execute(alias, className);
-        return true;
     }
 
     public void shutdownNakedObjects() {
-        getStory().shutdownNakedObjects();
+        getStory().shutdownIsis();
     }
 
     public String setUpObject(String className, String alias, String arg0) {
@@ -307,12 +316,12 @@ public class AbstractIsisConcordionTest 
      */
     private String setUpObjectsVarargs(String className, String alias, String... propertyValues) {
         if (executingInline()) {
-            setUpObjects = new SetUpObjectsForConcordion(getStory(), className, Mode.PERSIST);
+            setUpObjects = new SetUpObjectsForConcordion(getStory().getAliasRegistry(), className, Mode.PERSIST);
             setUpObjects.executeHeader(alias, propertyValues);
             return setUpObjects.executeRow(alias, propertyValues);
         } else {
             if (executingTableHeader()) {
-                setUpObjects = new SetUpObjectsForConcordion(getStory(), className, Mode.PERSIST);
+                setUpObjects = new SetUpObjectsForConcordion(getStory().getAliasRegistry(), className, Mode.PERSIST);
                 return setUpObjects.executeHeader(alias, propertyValues);
             } else {
                 return setUpObjects.executeRow(alias, propertyValues);
@@ -394,13 +403,13 @@ public class AbstractIsisConcordionTest 
     private String usingIsisViewerThatArgsVarargs(String onObject, String aliasResultAs, String perform,
         String usingMember, String thatIt, String arg0, String... remainingArgs) {
         if (executingInline()) {
-            usingIsisViewer = new UsingIsisViewerForConcordion(getStory(), Perform.Mode.TEST);
+            usingIsisViewer = new UsingIsisViewerForConcordion(getStory().getAliasRegistry(), Perform.Mode.TEST);
             usingIsisViewer.executeHeader(onObject, aliasResultAs, perform, usingMember, thatIt, arg0, remainingArgs);
             return usingIsisViewer.executeRow(onObject, aliasResultAs, perform, usingMember, thatIt, arg0,
                 remainingArgs);
         } else {
             if (executingTableHeader()) {
-                usingIsisViewer = new UsingIsisViewerForConcordion(getStory(), Perform.Mode.TEST);
+                usingIsisViewer = new UsingIsisViewerForConcordion(getStory().getAliasRegistry(), Perform.Mode.TEST);
                 return usingIsisViewer.executeHeader(onObject, aliasResultAs, perform, usingMember, thatIt, arg0,
                     remainingArgs);
             } else {
@@ -417,7 +426,7 @@ public class AbstractIsisConcordionTest 
     }
 
     public String aliasItemsInList(String listAlias, String title, String type, String aliasAs) {
-        aliasItemsInList = new AliasItemsInListForConcordion(getStory(), listAlias);
+        aliasItemsInList = new AliasItemsInListForConcordion(getStory().getAliasRegistry(), listAlias);
         return aliasItemsInList.execute(aliasAs, title, type);
     }
 

Modified: incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/developers-guide/developers-guide.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/developers-guide/developers-guide.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/developers-guide/developers-guide.xml (original)
+++ incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/developers-guide/developers-guide.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title>Tested Objects 1.0: FitNesse: Developers Guide</title>

Modified: incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/user-guide/user-guide.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/user-guide/user-guide.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/user-guide/user-guide.xml (original)
+++ incubator/isis/trunk/viewer/bdd/fitnesse/src/docbkx/user-guide/user-guide.xml Mon Nov 15 22:56:23 2010
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"file:./resources/docbook-xml-4.5/docbookx.dtd">
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
 <book>
   <bookinfo>
     <title>Tested Objects 1.0 Users' Guide</title>

Modified: incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/StoryFixture.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/StoryFixture.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/StoryFixture.java (original)
+++ incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/StoryFixture.java Mon Nov 15 22:56:23 2010
@@ -1,8 +1,8 @@
 package net.sf.isiscontrib.bdd.fitnesse;
 
 import java.util.Date;
+import java.util.List;
 
-import net.sf.isiscontrib.bdd.fitnesse.internal.FitnesseConfigurationBuilder;
 import net.sf.isiscontrib.bdd.fitnesse.internal.fixtures.AliasItemsInListForFitNesse;
 import net.sf.isiscontrib.bdd.fitnesse.internal.fixtures.AliasServicesForFitNesse;
 import net.sf.isiscontrib.bdd.fitnesse.internal.fixtures.CheckListForFitNesse;
@@ -13,17 +13,14 @@ import net.sf.isiscontrib.bdd.fitnesse.i
 import net.sf.isiscontrib.bdd.fitnesse.internal.fixtures.SetUpObjectsForFitNesse;
 import net.sf.isiscontrib.bdd.fitnesse.internal.fixtures.UsingIsisViewerForFitNesse;
 
-import org.apache.isis.core.metamodel.config.ConfigurationBuilder;
-import org.apache.isis.runtime.installers.InstallerLookup;
 import org.apache.isis.runtime.system.DeploymentType;
-import org.apache.isis.runtime.system.IsisSystem;
 import org.apache.isis.viewer.bdd.common.Story;
 import org.apache.isis.viewer.bdd.common.StoryValueException;
 import org.apache.isis.viewer.bdd.common.fixtures.CheckListPeer.CheckMode;
 import org.apache.isis.viewer.bdd.common.fixtures.SetUpObjectsPeer;
 import org.apache.isis.viewer.bdd.common.fixtures.perform.Perform;
 import org.apache.isis.viewer.bdd.common.parsers.JavaUtilDateParser;
-import org.apache.isis.viewer.bdd.common.story.bootstrapping.IsisInitializer;
+import org.apache.isis.viewer.bdd.common.util.Strings;
 
 import fit.Fixture;
 import fitlibrary.DoFixture;
@@ -45,56 +42,103 @@ public class StoryFixture extends DoFixt
         registerParseDelegate(java.util.Date.class, new JavaUtilDateParser());
     }
 
-    public void initIsis() {
-        IsisInitializer initializer = new IsisInitializer(getStory(), newConfigurationBuilder(), getDeploymentType());
-        initializer.initialize();
+    // ////////////////////////////////////////////////////////////
+    // Bootstrap / shutdown
+    // ////////////////////////////////////////////////////////////
+
+    /**
+     * Bootstrapping
+     * 
+     * @param configDirectory
+     * @param deploymentTypeStr
+     */
+    public void bootstrapIsisConfiguredFromInMode(String configDirectory, String deploymentTypeStr) {
+        DeploymentType deploymentType = DeploymentType.lookup(deploymentTypeStr);
+        getStory().bootstrapIsis(configDirectory, deploymentType);
+    }
+
+    public String getConfigDirectory() {
+        return getStory().getConfigDirectory();
+    }
+
+    public DeploymentType getDeploymentType() {
+        return getStory().getDeploymentType();
+    }
+
+    public void shutdownIsis() {
+        getStory().shutdownIsis();
+    }
+
+    // ////////////////////////////////////////////////////////////
+    // Date/Time
+    // ////////////////////////////////////////////////////////////
+
+    public void dateIsNow(final Date dateAndTime) {
+        dateAndTimeIs(dateAndTime);
+    }
+
+    public void dateIs(final Date dateAndTime) {
+        dateAndTimeIs(dateAndTime);
+    }
+
+    public void timeIsNow(final Date dateAndTime) {
+        dateAndTimeIs(dateAndTime);
+    }
+
+    public void timeIs(final Date dateAndTime) {
+        dateAndTimeIs(dateAndTime);
     }
 
+    private void dateAndTimeIs(final Date dateAndTime) {
+        getStory().dateAndTimeIs(dateAndTime);
+    }
+
+    // ////////////////////////////////////////////////////////////
+    // LogonAs / SwitchUser
+    // ////////////////////////////////////////////////////////////
+
     public void logonAs(final String userName) {
-        getStory().logonAs(userName);
+        getStory().logonAsOrSwitchUserTo(userName);
     }
 
-    public void logonAsWithRoles(final String userName, final String roleList) {
-        getStory().logonAsWithRoles(userName, roleList);
+    public void logonAsWithRoles(final String userName, final String roleListStr) {
+        List<String> roleList = Strings.splitOnCommas(roleListStr);
+        getStory().logonAsOrSwitchUserTo(userName, roleList);
     }
 
     /**
      * Switch user, specifying no roles.
      */
     public void switchUser(final String userName) {
-        getStory().switchUser(userName);
+        logonAs(userName);
     }
 
     /**
      * Switch user, specifying roles.
      */
     public void switchUserWithRoles(final String userName, final String roleList) {
-        getStory().switchUserWithRoles(userName, roleList);
+        logonAsWithRoles(userName, roleList);
     }
 
-    public Fixture aliasServices() {
-        return new AliasServicesForFitNesse(getStory());
-    }
-
-    public void dateIsNow(final Date dateAndTime) {
-        getStory().dateIs(dateAndTime);
-    }
+    // ////////////////////////////////////////////////////////////
+    // Alias Services
+    // ////////////////////////////////////////////////////////////
 
-    public void dateIs(final Date dateAndTime) {
-        getStory().timeIs(dateAndTime);
-    }
-
-    public void timeIsNow(final Date dateAndTime) {
-        getStory().timeIs(dateAndTime);
+    public Fixture aliasServices() {
+        return new AliasServicesForFitNesse(getStory().getAliasRegistry());
     }
 
-    public void timeIs(final Date dateAndTime) {
-        getStory().timeIs(dateAndTime);
+    public void aliasServiceAs(final String alias, final String serviceClassName) {
+        try {
+            getStory().getAliasRegistry().aliasService(alias, serviceClassName);
+        } catch (StoryValueException ex) {
+            throw new StoryFitNesseException(ex);
+        }
     }
 
-    public void shutdownNakedObjects() {
-        getStory().shutdownNakedObjects();
-    }
+    // ////////////////////////////////////////////////////////////
+    // setUp story
+    // ////////////////////////////////////////////////////////////
 
     /**
      * Allow for singular form.
@@ -106,7 +150,7 @@ public class StoryFixture extends DoFixt
     }
 
     public Fixture setUpObjects(final String className) {
-        return new SetUpObjectsForFitNesse(getStory(), className, SetUpObjectsPeer.Mode.PERSIST);
+        return new SetUpObjectsForFitNesse(getStory().getAliasRegistry(), className, SetUpObjectsPeer.Mode.PERSIST);
     }
 
     /**
@@ -119,34 +163,43 @@ public class StoryFixture extends DoFixt
     }
 
     public Fixture setUpTransientObjects(final String className) {
-        return new SetUpObjectsForFitNesse(getStory(), className, SetUpObjectsPeer.Mode.DO_NOT_PERSIST);
+        return new SetUpObjectsForFitNesse(getStory().getAliasRegistry(), className,
+            SetUpObjectsPeer.Mode.DO_NOT_PERSIST);
     }
 
-    public Fixture usingNakedObjectsViewer() {
-        return usingNakedObjectsViewer(Perform.Mode.TEST);
+    // ////////////////////////////////////////////////////////////
+    // Isis Viewer
+    // ////////////////////////////////////////////////////////////
+
+    public Fixture usingIsisViewer() {
+        return usingIsisViewer(Perform.Mode.TEST);
     }
 
     /**
      * Allow for mis-spellings.
      */
-    public Fixture usingNakedObjectsViewerForSetup() {
-        return usingNakedObjectsViewerForSetUp();
+    public Fixture usingIsisViewerForSetup() {
+        return usingIsisViewerForSetUp();
     }
 
-    public Fixture usingNakedObjectsViewerForSetUp() {
-        return usingNakedObjectsViewer(Perform.Mode.SETUP);
+    public Fixture usingIsisViewerForSetUp() {
+        return usingIsisViewer(Perform.Mode.SETUP);
     }
 
-    public Fixture usingNakedObjectsViewer(final Perform.Mode mode) {
-        return new UsingIsisViewerForFitNesse(getStory(), mode);
+    private Fixture usingIsisViewer(final Perform.Mode mode) {
+        return new UsingIsisViewerForFitNesse(getStory().getAliasRegistry(), mode);
     }
 
+    // ////////////////////////////////////////////////////////////
+    // Check List
+    // ////////////////////////////////////////////////////////////
+
     public Fixture checkListContains(final String listAlias) {
-        return new CheckListForFitNesse(getStory(), listAlias, CheckMode.NOT_EXACT);
+        return new CheckListForFitNesse(getStory().getAliasRegistry(), listAlias, CheckMode.NOT_EXACT);
     }
 
     public Fixture checkListPreciselyContains(final String listAlias) {
-        return new CheckListForFitNesse(getStory(), listAlias, CheckMode.EXACT);
+        return new CheckListForFitNesse(getStory().getAliasRegistry(), listAlias, CheckMode.EXACT);
     }
 
     /**
@@ -157,83 +210,35 @@ public class StoryFixture extends DoFixt
     }
 
     public Fixture aliasItemsInList(final String listAlias) {
-        return new AliasItemsInListForFitNesse(getStory(), listAlias);
+        return new AliasItemsInListForFitNesse(getStory().getAliasRegistry(), listAlias);
     }
 
     // ///////////////////////////////////////////////////////
-    // StoryDriver (delegates)
+    // run viewer
     // ///////////////////////////////////////////////////////
 
     public void runViewer() {
         getStory().runViewer();
     }
 
-    public String getConfigDirectory() {
-        return getStory().getConfigDirectory();
-    }
-
-    public void setConfigDirectory(final String configDirectory) {
-        getStory().setConfigDirectory(configDirectory);
-    }
-
-    public void enableExploration() {
-        getStory().enableExploration();
-    }
-
-    public DeploymentType getDeploymentType() {
-        return getStory().getDeploymentType();
-    }
-
     // ///////////////////////////////////////////////////////
-    // Diagnostics
+    // Debugging
     // ///////////////////////////////////////////////////////
 
     public Fixture checkSpecificationsLoaded() {
-        return new CheckSpecificationsLoadedForFitNesse(getStory());
+        return new CheckSpecificationsLoadedForFitNesse(getStory().getAliasRegistry());
     }
 
     public Fixture debugServices() {
-        return new DebugServicesForFitNesse(getStory());
+        return new DebugServicesForFitNesse(getStory().getAliasRegistry());
     }
 
     public Fixture debugObjectStore() {
-        return new DebugObjectStoreForFitNesse(getStory());
+        return new DebugObjectStoreForFitNesse(getStory().getAliasRegistry());
     }
 
     public Fixture debugClock() {
-        return new DebugClockForFitNesse(getStory());
-    }
-
-    public void aliasServiceAs(final String alias, final String serviceClassName) {
-        try {
-            getStory().registerService(alias, serviceClassName);
-        } catch (StoryValueException ex) {
-            throw new StoryFitNesseException(ex);
-        }
-    }
-
-    // /////////////////////////////////////////////////////////
-    // System
-    // /////////////////////////////////////////////////////////
-
-    public IsisSystem getSystem() {
-        return getStory().getSystem();
-    }
-
-    public void setIsisSystem(final IsisSystem isisSystem) {
-        getStory().setIsisSystem(isisSystem);
-    }
-
-    public InstallerLookup getInstallerLookup() {
-        return getStory().getInstallerLookup();
-    }
-
-    public void setInstallerLookup(final InstallerLookup installerLookup) {
-        getStory().setInstallerLookup(installerLookup);
-    }
-
-    public ConfigurationBuilder newConfigurationBuilder() {
-        return new FitnesseConfigurationBuilder(getConfigDirectory());
+        return new DebugClockForFitNesse(getStory().getAliasRegistry());
     }
 
 }

Modified: incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/fixtures/AliasServicesForFitNesse.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/fixtures/AliasServicesForFitNesse.java?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/fixtures/AliasServicesForFitNesse.java (original)
+++ incubator/isis/trunk/viewer/bdd/fitnesse/src/main/java/net/sf/isiscontrib/bdd/fitnesse/internal/fixtures/AliasServicesForFitNesse.java Mon Nov 15 22:56:23 2010
@@ -1,21 +1,23 @@
 package net.sf.isiscontrib.bdd.fitnesse.internal.fixtures;
 
 import net.sf.isiscontrib.bdd.fitnesse.StoryFitNesseException;
-import net.sf.isiscontrib.bdd.fitnesse.internal.AbstractSetUpFixture;
 
 import org.apache.isis.viewer.bdd.common.AliasRegistry;
 import org.apache.isis.viewer.bdd.common.StoryValueException;
-import org.apache.isis.viewer.bdd.common.fixtures.AliasServicesPeer;
 
-public class AliasServicesForFitNesse extends AbstractSetUpFixture<AliasServicesPeer> {
+import fitlibrary.SetUpFixture;
+
+public class AliasServicesForFitNesse extends SetUpFixture {
+
+    private final AliasRegistry aliasesRegistry;
 
     public AliasServicesForFitNesse(final AliasRegistry aliasesRegistry) {
-        super(new AliasServicesPeer(aliasesRegistry));
+        this.aliasesRegistry = aliasesRegistry;
     }
 
     public void classNameAliasAs(final String className, final String aliasAs) {
         try {
-            getPeer().aliasService(className, aliasAs);
+            aliasesRegistry.aliasService(className, aliasAs);
         } catch (StoryValueException ex) {
             throw new StoryFitNesseException(ex);
         }

Modified: incubator/isis/trunk/viewer/bdd/pom.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/bdd/pom.xml?rev=1035485&r1=1035484&r2=1035485&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/bdd/pom.xml (original)
+++ incubator/isis/trunk/viewer/bdd/pom.xml Mon Nov 15 22:56:23 2010
@@ -26,6 +26,16 @@
 
 	<url>http://incubator.apache.org/isis/${relativeUrl}</url>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.agilejava.docbkx</groupId>
+                <artifactId>docbkx-maven-plugin</artifactId>
+                <inherited>false</inherited>
+            </plugin>
+        </plugins>
+    </build>
+
     <dependencyManagement>
         <dependencies>