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/11/12 21:59:31 UTC
svn commit: r1408457 [1/2] - in /isis/trunk: examples/ examples/claims/dom/
examples/metamodel-examples/namefile/src/main/java/org/apache/isis/metamodel/examples/facets/namefile/
framework/applib/src/main/java/org/apache/isis/applib/fixtures/ framework...
Author: danhaywood
Date: Mon Nov 12 20:59:25 2012
New Revision: 1408457
URL: http://svn.apache.org/viewvc?rev=1408457&view=rev
Log:
ISIS-280, ISIS-281, ISIS-188: various
* better handling of @Prototype and @Exploration annotations for visibility checks
* factored out IsisSystemForTest (from the existing IsisSystemWithFixtures)
* removing duplication of code between IsisSystemDefault and JavaReflectorInstallerNoDecorators
* also removing unused classes
* removing defunct files, fixing bad version numbers
Added:
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategory.java
- copied, changed from r1406470, isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategoryProvider.java
- copied, changed from r1406470, isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java
isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemForTest.java
- copied, changed from r1406470, isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java
Removed:
isis/trunk/examples/metamodel-examples/namefile/src/main/java/org/apache/isis/metamodel/examples/facets/namefile/NameFileProgModelFacets.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/metamodel/specloader/progmodelfacets/DataNucleusProgrammingModelFacets.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/progmodelfacets/JdoProgrammingModelFacets.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/GivenJdoProgrammingModelWhenInitializedThenFacetsContentsTest.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/GivenJdoProgrammingModelWhenInitializingTest.java
isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/archived-json-browser/browser-support.js
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/archived-json-browser/browser.html
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/archived-json-browser/index.html
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/test/net/sf/restfulobjects/viewer/util/StringUtilTest.java
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/webapp/WEB-INF/isis.properties
isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/webapp/WEB-INF/web.xml
Modified:
isis/trunk/examples/claims/dom/pom.xml
isis/trunk/examples/pom.xml
isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/fixtures/AbstractFixture.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacet.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacet.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/exploration/ExplorationFacetAbstract.java
isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/PrototypeFacetAbstract.java
isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/Utils.java
isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidatorLeaf.java
isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentType.java
isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemAbstract.java
isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java
isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemDefault.java
isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/DeploymentTypeAbstract.java
isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/WicketServer.java
isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/WicketServerExploration.java
isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/isis/WicketServerPrototype.java
Modified: isis/trunk/examples/claims/dom/pom.xml
URL: http://svn.apache.org/viewvc/isis/trunk/examples/claims/dom/pom.xml?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/examples/claims/dom/pom.xml (original)
+++ isis/trunk/examples/claims/dom/pom.xml Mon Nov 12 20:59:25 2012
@@ -113,12 +113,6 @@
<artifactId>jdo-applib</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.isis.viewer</groupId>
- <artifactId>wicket-applib</artifactId>
- </dependency>
-
-
<!-- DataNucleus (horrid, but needed to run the enhancer)-->
<dependency>
<groupId>javax.jdo</groupId>
Modified: isis/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/isis/trunk/examples/pom.xml?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/examples/pom.xml (original)
+++ isis/trunk/examples/pom.xml Mon Nov 12 20:59:25 2012
@@ -22,7 +22,7 @@
<groupId>org.apache.isis</groupId>
<artifactId>examples</artifactId>
- <version>0.3.0-incubating-SNAPSHOT</version>
+ <version>0.3.1-incubating-SNAPSHOT</version>
<name>Isis Examples</name>
Modified: isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/fixtures/AbstractFixture.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/fixtures/AbstractFixture.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/fixtures/AbstractFixture.java (original)
+++ isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/fixtures/AbstractFixture.java Mon Nov 12 20:59:25 2012
@@ -72,6 +72,13 @@ public abstract class AbstractFixture ex
/**
* Most subclasses will override this method, but composite fixtures should
* instead call {@link #addFixture(Object)} in their constructor.
+ *
+ * <p>
+ * The iteration over the child fixtures is then performed by the
+ * <tt>FixturesInstallerDelegate</tt> (or equivalent).
+ *
+ * <p>
+ * A slightly strange implementation? Oh well, it works.
*/
@Override
public void install() {
Copied: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategory.java (from r1406470, isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java)
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategory.java?p2=isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategory.java&p1=isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java&r1=1406470&r2=1408457&rev=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategory.java Mon Nov 12 20:59:25 2012
@@ -17,11 +17,20 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.runtime.system;
+package org.apache.isis.core.metamodel.deployment;
-/**
- * @see DeploymentType
- */
public enum DeploymentCategory {
EXPLORING, PROTOTYPING, PRODUCTION;
+
+ public boolean isExploring() {
+ return this == DeploymentCategory.EXPLORING;
+ }
+
+ public boolean isPrototyping() {
+ return this == DeploymentCategory.PROTOTYPING;
+ }
+
+ public boolean isProduction() {
+ return this == DeploymentCategory.PRODUCTION;
+ }
}
Copied: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategoryProvider.java (from r1406470, isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java)
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategoryProvider.java?p2=isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategoryProvider.java&p1=isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java&r1=1406470&r2=1408457&rev=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentCategory.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/deployment/DeploymentCategoryProvider.java Mon Nov 12 20:59:25 2012
@@ -17,11 +17,8 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.runtime.system;
+package org.apache.isis.core.metamodel.deployment;
-/**
- * @see DeploymentType
- */
-public enum DeploymentCategory {
- EXPLORING, PROTOTYPING, PRODUCTION;
+public interface DeploymentCategoryProvider {
+ public DeploymentCategory getDeploymentCategory();
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacet.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacet.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacet.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacet.java Mon Nov 12 20:59:25 2012
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.facets.actions.exploration;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
/**
* Indicates that the action should only be available in a special
@@ -29,6 +30,6 @@ import org.apache.isis.core.metamodel.fa
* In the standard Apache Isis Programming Model, corresponds to annotating the
* action method using <tt>@Exploration</tt>.
*/
-public interface ExplorationFacet extends Facet {
+public interface ExplorationFacet extends Facet, HidingInteractionAdvisor {
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacet.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacet.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacet.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacet.java Mon Nov 12 20:59:25 2012
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.facets.actions.prototype;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
/**
* Indicates that the action should only be available in a special
@@ -29,6 +30,6 @@ import org.apache.isis.core.metamodel.fa
* In the standard Apache Isis Programming Model, corresponds to annotating the
* action method using <tt>@Prototype</tt>.
*/
-public interface PrototypeFacet extends Facet {
+public interface PrototypeFacet extends Facet, HidingInteractionAdvisor {
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java Mon Nov 12 20:59:25 2012
@@ -26,6 +26,7 @@ import org.apache.isis.core.commons.auth
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionContextType;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.Facet;
/**
@@ -61,6 +62,8 @@ public abstract class InteractionContext
private final InteractionInvocationMethod invocation;
private final AuthenticationSession session;
private final ObjectAdapter target;
+ // TODO: need to pass this in, obtain from DeploymentCategoryProvider (as implemented by the runtime's DeploymentType)
+ private final DeploymentCategory deploymentCategory;
public InteractionContext(final InteractionContextType interactionType, final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final Identifier identifier, final ObjectAdapter target) {
this.interactionType = interactionType;
@@ -68,6 +71,13 @@ public abstract class InteractionContext
this.identifier = identifier;
this.session = session;
this.target = target;
+ // TODO: remove this hardcoding
+ //this.deploymentCategory = DeploymentCategory.PRODUCTION;
+ this.deploymentCategory = DeploymentCategory.PROTOTYPING;
+ }
+
+ public DeploymentCategory getDeploymentCategory() {
+ return deploymentCategory;
}
/**
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java Mon Nov 12 20:59:25 2012
@@ -26,6 +26,7 @@ import org.apache.isis.core.commons.auth
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionContextType;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
/**
* See {@link InteractionContext} for overview; analogous to
@@ -46,4 +47,5 @@ public abstract class VisibilityContext<
public Where getWhere() {
return where;
}
+
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java Mon Nov 12 20:59:25 2012
@@ -116,7 +116,7 @@ import org.apache.isis.core.metamodel.sp
* to its <tt>IsisContext</tt>.
*/
-public class ObjectReflectorDefault implements SpecificationLoaderSpi, ApplicationScopedComponent, RuntimeContextAware, DebuggableWithTitle {
+public final class ObjectReflectorDefault implements SpecificationLoaderSpi, ApplicationScopedComponent, RuntimeContextAware, DebuggableWithTitle {
private final static Logger LOG = Logger.getLogger(ObjectReflectorDefault.class);
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java Mon Nov 12 20:59:25 2012
@@ -47,20 +47,6 @@ public final class ReflectorConstants {
public static final String META_MODEL_VALIDATOR_CLASS_NAME = ConfigurationConstants.ROOT + "reflector.validator";
public static final String META_MODEL_VALIDATOR_CLASS_NAME_DEFAULT = "org.apache.isis.core.progmodel.metamodelvalidator.dflt.MetaModelValidatorDefault";
- /**
- * Key used to lookup implementation of {@link MemberLayoutArrangerDefault}
- * in {@link IsisConfiguration}.
- */
- public static final String MEMBER_LAYOUT_ARRANGER_CLASS_NAME = ConfigurationConstants.ROOT + "reflector.memberlayoutarranger";
- public static final String MEMBER_LAYOUT_ARRANGER_CLASS_NAME_DEFAULT = "org.apache.isis.core.progmodel.layout.dflt.MemberLayoutArrangerDefault";
-
-
- /**
- * Key used to lookup implementation of {@link SpecificationTraverser} in
- * {@link IsisConfiguration}.
- */
- public static final String SPECIFICATION_TRAVERSER_CLASS_NAME = ConfigurationConstants.ROOT + "reflector.traverser";
- public static final String SPECIFICATION_TRAVERSER_CLASS_NAME_DEFAULT = SpecificationTraverserDefault.class.getName();
/**
* Key used to lookup comma-separated list of {@link FacetFactory}s to
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java Mon Nov 12 20:59:25 2012
@@ -54,4 +54,10 @@ public class MetaModelValidatorComposite
}
}
+
+ public static MetaModelValidatorComposite asComposite(MetaModelValidator baseMetaModelValidator) {
+ final MetaModelValidatorComposite metaModelValidatorComposite = new MetaModelValidatorComposite();
+ metaModelValidatorComposite.add(baseMetaModelValidator);
+ return metaModelValidatorComposite;
+ }
}
Modified: isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/exploration/ExplorationFacetAbstract.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/exploration/ExplorationFacetAbstract.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/exploration/ExplorationFacetAbstract.java (original)
+++ isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/exploration/ExplorationFacetAbstract.java Mon Nov 12 20:59:25 2012
@@ -19,10 +19,12 @@
package org.apache.isis.core.progmodel.facets.actions.exploration;
+import org.apache.isis.applib.events.VisibilityEvent;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.MarkerFacetAbstract;
import org.apache.isis.core.metamodel.facets.actions.exploration.ExplorationFacet;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
public abstract class ExplorationFacetAbstract extends MarkerFacetAbstract implements ExplorationFacet {
@@ -34,4 +36,11 @@ public abstract class ExplorationFacetAb
super(type(), holder);
}
+ @Override
+ public String hides(
+ VisibilityContext<? extends VisibilityEvent> ic) {
+ return ic.getDeploymentCategory().isExploring()? null: "Not visible";
+ }
+
+
}
Modified: isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/PrototypeFacetAbstract.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/PrototypeFacetAbstract.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/PrototypeFacetAbstract.java (original)
+++ isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/PrototypeFacetAbstract.java Mon Nov 12 20:59:25 2012
@@ -19,10 +19,12 @@
package org.apache.isis.core.progmodel.facets.actions.prototype;
+import org.apache.isis.applib.events.VisibilityEvent;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.MarkerFacetAbstract;
import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
public abstract class PrototypeFacetAbstract extends MarkerFacetAbstract implements PrototypeFacet {
@@ -34,4 +36,10 @@ public abstract class PrototypeFacetAbst
super(type(), holder);
}
+ @Override
+ public String hides(
+ VisibilityContext<? extends VisibilityEvent> ic) {
+ return ic.getDeploymentCategory().isPrototyping()? null: "Not visible";
+ }
+
}
Modified: isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java (original)
+++ isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/prototype/annotation/PrototypeFacetAnnotation.java Mon Nov 12 20:59:25 2012
@@ -19,7 +19,9 @@
package org.apache.isis.core.progmodel.facets.actions.prototype.annotation;
+import org.apache.isis.applib.events.VisibilityEvent;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.progmodel.facets.actions.prototype.PrototypeFacetAbstract;
public class PrototypeFacetAnnotation extends PrototypeFacetAbstract {
@@ -28,4 +30,5 @@ public class PrototypeFacetAnnotation ex
super(holder);
}
+
}
Added: isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java?rev=1408457&view=auto
==============================================================================
--- isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java (added)
+++ isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorHelper.java Mon Nov 12 20:59:25 2012
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.progmodels.dflt;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facetapi.ClassSubstitutorFactory;
+import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
+import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
+import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
+import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryDefault;
+import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
+import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverserDefault;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.progmodel.layout.dflt.MemberLayoutArrangerDefault;
+
+public final class JavaReflectorHelper {
+
+ private static final Logger LOG = Logger.getLogger(JavaReflectorHelper.class);
+
+ private JavaReflectorHelper(){}
+
+ public static SpecificationLoaderSpi createObjectReflector(
+ final ProgrammingModel programmingModel,
+ final ClassSubstitutorFactory classSubstitutorFactory,
+ final Collection<MetaModelRefiner> metaModelRefiners,
+ final Set<FacetDecorator> facetDecorators,
+ final MetaModelValidator mmv,
+ final IsisConfiguration configuration) {
+ final MemberLayoutArranger memberLayoutArranger = new MemberLayoutArrangerDefault();
+ final SpecificationTraverser specificationTraverser = new SpecificationTraverserDefault();
+ final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistryDefault();
+ final ClassSubstitutor classSubstitutor = classSubstitutorFactory.createClassSubstitutor(configuration);
+
+ MetaModelValidatorComposite metaModelValidator = MetaModelValidatorComposite.asComposite(mmv);
+ for (MetaModelRefiner metaModelRefiner : metaModelRefiners) {
+ metaModelRefiner.refineProgrammingModel(programmingModel, configuration);
+ metaModelRefiner.refineMetaModelValidator(metaModelValidator, configuration);
+ }
+
+ return new ObjectReflectorDefault(configuration, classSubstitutor, collectionTypeRegistry, specificationTraverser, memberLayoutArranger, programmingModel, facetDecorators, metaModelValidator);
+ }
+
+}
Modified: isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java (original)
+++ isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java Mon Nov 12 20:59:25 2012
@@ -50,8 +50,10 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryDefault;
import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
+import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverserDefault;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.progmodel.layout.dflt.MemberLayoutArrangerDefault;
/**
* An implementation of {@link ObjectReflectorInstaller} without support for {@link FacetDecoratorInstaller}
@@ -90,60 +92,15 @@ public class JavaReflectorInstallerNoDec
@Override
public SpecificationLoaderSpi createReflector(final ClassSubstitutorFactory classSubstitutorFactory, final Collection<MetaModelRefiner> metaModelRefiners) {
- final CollectionTypeRegistry collectionTypeRegistry = createCollectionTypeRegistry(getConfiguration());
- final SpecificationTraverser specificationTraverser = createSpecificationTraverser(getConfiguration());
- final MemberLayoutArranger memberLayoutArranger = createMemberLayoutArranger(getConfiguration());
+ final ProgrammingModel programmingModel = createProgrammingModel(getConfiguration());
final Set<FacetDecorator> facetDecorators = createFacetDecorators(getConfiguration());
-
- final ClassSubstitutor classSubstitutor = classSubstitutorFactory.createClassSubstitutor(getConfiguration());
+ final MetaModelValidator mmv = createMetaModelValidator(getConfiguration());
- ProgrammingModel programmingModel = createProgrammingModel(getConfiguration());
- MetaModelValidatorComposite metaModelValidator = asComposite(createMetaModelValidator(getConfiguration()));
- for (MetaModelRefiner metaModelRefiner : metaModelRefiners) {
- metaModelRefiner.refineProgrammingModel(programmingModel, getConfiguration());
- metaModelRefiner.refineMetaModelValidator(metaModelValidator, getConfiguration());
- }
-
- final ObjectReflectorDefault reflector = doCreateReflector(getConfiguration(), classSubstitutor, collectionTypeRegistry, specificationTraverser, memberLayoutArranger, programmingModel, facetDecorators, metaModelValidator);
- return reflector;
+ return JavaReflectorHelper.createObjectReflector(programmingModel, classSubstitutorFactory, metaModelRefiners, facetDecorators, mmv, getConfiguration());
}
/**
- * Hook method to allow subclasses to specify a different implementation of
- * {@link SpecificationTraverser}.
- *
- * <p>
- * By default, looks up implementation from provided
- * {@link IsisConfiguration} using
- * {@link ReflectorConstants#SPECIFICATION_TRAVERSER_CLASS_NAME}. If not
- * specified, then defaults to
- * {@value ReflectorConstants#SPECIFICATION_TRAVERSER_CLASS_NAME_DEFAULT}.
- */
- protected SpecificationTraverser createSpecificationTraverser(final IsisConfiguration configuration) {
- final String specificationTraverserClassName = configuration.getString(ReflectorConstants.SPECIFICATION_TRAVERSER_CLASS_NAME, ReflectorConstants.SPECIFICATION_TRAVERSER_CLASS_NAME_DEFAULT);
- final SpecificationTraverser specificationTraverser = InstanceUtil.createInstance(specificationTraverserClassName, SpecificationTraverser.class);
- return specificationTraverser;
- }
-
- /**
- * Hook method to allow subclasses to specify a different implementation of
- * {@link MemberLayoutArranger}.
- *
- * <p>
- * By default, looks up implementation from provided
- * {@link IsisConfiguration} using
- * {@link ReflectorConstants#MEMBER_LAYOUT_ARRANGER_CLASS_NAME}. If not
- * specified, then defaults to
- * {@value ReflectorConstants#MEMBER_LAYOUT_ARRANGER_CLASS_NAME_DEFAULT}.
- */
- protected MemberLayoutArranger createMemberLayoutArranger(final IsisConfiguration configuration) {
- final String memberLayoutArrangerClassName = configuration.getString(ReflectorConstants.MEMBER_LAYOUT_ARRANGER_CLASS_NAME, ReflectorConstants.MEMBER_LAYOUT_ARRANGER_CLASS_NAME_DEFAULT);
- final MemberLayoutArranger memberLayoutArranger = InstanceUtil.createInstance(memberLayoutArrangerClassName, MemberLayoutArranger.class);
- return memberLayoutArranger;
- }
-
- /**
* Hook method to allow subclasses to specify a different implementations
* (that is, sets of {@link ProgrammingModel} .
*
@@ -227,37 +184,6 @@ public class JavaReflectorInstallerNoDec
return InstanceUtil.createInstance(metaModelValidatorClassName, MetaModelValidator.class);
}
- private MetaModelValidatorComposite asComposite(MetaModelValidator baseMetaModelValidator) {
- final MetaModelValidatorComposite metaModelValidatorComposite = new MetaModelValidatorComposite();
- metaModelValidatorComposite.add(baseMetaModelValidator);
- return metaModelValidatorComposite;
- }
-
- /**
- * Creates the {@link CollectionTypeRegistry}, hardcoded to be the
- * {@link CollectionTypeRegistryDefault}.
- *
- * <p>
- * Note: the intention is to remove this interface and instead to use a
- * mechanism similar to the <tt>@Value</tt> annotation to specify which
- * types represent collections. For now, have factored out this method
- * similar to be similar to the creation methods of other subcomponents such
- * as the {@link #createClassSubstitutor(IsisConfiguration)
- * ClassSubstitutor}. Note however that this method is <tt>final</tt> so
- * that it cannot be overridden.
- */
- protected final CollectionTypeRegistry createCollectionTypeRegistry(final IsisConfiguration configuration) {
- return new CollectionTypeRegistryDefault();
- }
-
- /**
- * Hook method to allow for other implementations (still based on
- * {@link ObjectReflectorDefault}).
- */
- protected ObjectReflectorDefault doCreateReflector(final IsisConfiguration configuration, final ClassSubstitutor classSubstitutor, final CollectionTypeRegistry collectionTypeRegistry, final SpecificationTraverser specificationTraverser, final MemberLayoutArranger memberLayoutArranger,
- final ProgrammingModel programmingModel, final Set<FacetDecorator> facetDecorators, final MetaModelValidator metaModelValidator) {
- return new ObjectReflectorDefault(configuration, classSubstitutor, collectionTypeRegistry, specificationTraverser, memberLayoutArranger, programmingModel, facetDecorators, metaModelValidator);
- }
// /////////////////////////////////////////////////////
Modified: isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java (original)
+++ isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java Mon Nov 12 20:59:25 2012
@@ -191,7 +191,7 @@ import org.apache.isis.core.progmodel.fa
import org.apache.isis.core.progmodel.facets.value.timestamp.TimeStampValueTypeFacetFactory;
import org.apache.isis.core.progmodel.facets.value.timestampsql.JavaSqlTimeStampValueTypeFacetFactory;
-public class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract {
+public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract {
public ProgrammingModelFacetsJava5() {
Modified: isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java (original)
+++ isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java Mon Nov 12 20:59:25 2012
@@ -1,25 +1,26 @@
package org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus;
-
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+
import org.apache.isis.core.commons.components.Installer;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterFactory;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.progmodel.facets.object.ignore.jdo.RemoveJdoEnhancementTypesFacetFactory;
import org.apache.isis.core.progmodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory;
import org.apache.isis.runtimes.dflt.bytecode.identity.objectfactory.ObjectFactoryBasic;
import org.apache.isis.runtimes.dflt.objectstores.jdo.applib.AuditService;
import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.bytecode.DataNucleusTypesClassSubstitutor;
-import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.metamodel.specloader.progmodelfacets.DataNucleusProgrammingModelFacets;
import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.adaptermanager.DataNucleusPojoRecreator;
import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.spi.DataNucleusIdentifierGenerator;
import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.spi.DataNucleusSimplePersistAlgorithm;
@@ -46,10 +47,6 @@ import org.apache.isis.runtimes.dflt.run
import org.apache.isis.runtimes.dflt.runtime.system.transaction.EnlistedObjectDirtying;
import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
/**
* Configuration files are read in the usual fashion (as per {@link Installer#getConfigurationResources()}, ie will consult all of:
* <ul>
@@ -109,10 +106,36 @@ public class DataNucleusPersistenceMecha
final IsisConfiguration dataNucleusConfig = configuration.createSubset(ISIS_CONFIG_PREFIX);
final Map<String, String> props = dataNucleusConfig.asMap();
+ addDataNucleusPropertiesIfRequired(props);
applicationComponents = new DataNucleusApplicationComponents(props, getSpecificationLoader().allSpecifications());
}
+
+ private static void addDataNucleusPropertiesIfRequired(
+ final Map<String, String> props) {
+ putIfNotPresent(props, "javax.jdo.PersistenceManagerFactoryClass", "org.datanucleus.api.jdo.JDOPersistenceManagerFactory");
+
+ putIfNotPresent(props, "javax.jdo.option.ConnectionDriverName", "org.hsqldb.jdbcDriver");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionUserName", "sa");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionPassword", "");
+
+ putIfNotPresent(props, "datanucleus.autoCreateSchema", "true");
+ putIfNotPresent(props, "datanucleus.validateSchema", "true");
+ putIfNotPresent(props, "datanucleus.cache.level2.type", "none");
+ }
+
+
+ private static void putIfNotPresent(
+ final Map<String, String> props,
+ String key,
+ String value) {
+ if(!props.containsKey(key)) {
+ props.put(key, value);
+ }
+ }
+
////////////////////////////////////////////////////////////////////////
// createPersistenceSession
////////////////////////////////////////////////////////////////////////
Modified: isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/Utils.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/Utils.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/Utils.java (original)
+++ isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/test/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/Utils.java Mon Nov 12 20:59:25 2012
@@ -27,8 +27,6 @@ import org.joda.time.LocalDateTime;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.metamodel.specloader.progmodelfacets.DataNucleusProgrammingModelFacets;
-import org.apache.isis.runtimes.dflt.objectstores.jdo.metamodel.specloader.validator.JdoMetaModelValidator;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
@@ -39,8 +37,6 @@ public class Utils {
public static IsisSystemWithFixtures.Builder systemBuilder() {
return IsisSystemWithFixtures.builder()
.with(configurationForDataNucleusDb())
- .with(new DataNucleusProgrammingModelFacets())
- .with(new JdoMetaModelValidator())
.with(new DataNucleusPersistenceMechanismInstaller());
}
Modified: isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidatorLeaf.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidatorLeaf.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidatorLeaf.java (original)
+++ isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidatorLeaf.java Mon Nov 12 20:59:25 2012
@@ -64,5 +64,4 @@ public class JdoMetaModelValidatorLeaf e
}
}
-
}
Modified: isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentType.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentType.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentType.java (original)
+++ isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/DeploymentType.java Mon Nov 12 20:59:25 2012
@@ -25,6 +25,8 @@ import com.google.common.collect.Lists;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactory;
/**
@@ -57,7 +59,7 @@ import org.apache.isis.runtimes.dflt.run
* {@link DeploymentType}, eg using the <tt>--type</tt> command line arg</li>
* </ul>
*/
-public class DeploymentType {
+public class DeploymentType implements DeploymentCategoryProvider {
private static List<DeploymentType> deploymentTypes = Lists.newArrayList();
@@ -183,16 +185,21 @@ public class DeploymentType {
return (this == SERVER) && isProduction();
}
+ @Override
+ public DeploymentCategory getDeploymentCategory() {
+ return deploymentCategory;
+ }
+
public boolean isExploring() {
- return deploymentCategory == DeploymentCategory.EXPLORING;
+ return deploymentCategory.isExploring();
}
public boolean isPrototyping() {
- return deploymentCategory == DeploymentCategory.PROTOTYPING;
+ return deploymentCategory.isPrototyping();
}
public boolean isProduction() {
- return deploymentCategory == DeploymentCategory.PRODUCTION;
+ return deploymentCategory.isProduction();
}
public void addDefaultViewer(final List<String> requestedViewers) {
@@ -218,4 +225,5 @@ public class DeploymentType {
return name();
}
+
}
\ No newline at end of file
Modified: isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemAbstract.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemAbstract.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemAbstract.java (original)
+++ isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemAbstract.java Mon Nov 12 20:59:25 2012
@@ -1,200 +1,223 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.runtimes.dflt.runtime.systemusinginstallers;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.isis.applib.fixtures.LogonFixture;
-import org.apache.isis.core.commons.components.Installer;
-import org.apache.isis.core.commons.components.Noop;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.commons.lang.Types;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
-import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.runtime.authentication.AuthenticationManager;
-import org.apache.isis.core.runtime.authorization.AuthorizationManager;
-import org.apache.isis.core.runtime.imageloader.TemplateImageLoader;
-import org.apache.isis.core.runtime.userprofile.UserProfileLoader;
-import org.apache.isis.runtimes.dflt.runtime.authentication.exploration.ExplorationSession;
-import org.apache.isis.runtimes.dflt.runtime.fixtures.FixturesInstaller;
-import org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookup;
-import org.apache.isis.runtimes.dflt.runtime.persistence.internal.RuntimeContextFromSession;
-import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
-import org.apache.isis.runtimes.dflt.runtime.system.IsisSystemException;
-import org.apache.isis.runtimes.dflt.runtime.system.IsisSystemFixturesHookAbstract;
-import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
-import org.apache.isis.runtimes.dflt.runtime.system.internal.InitialisationSession;
-import org.apache.isis.runtimes.dflt.runtime.system.internal.IsisLocaleInitializer;
-import org.apache.isis.runtimes.dflt.runtime.system.internal.IsisTimeZoneInitializer;
-import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSessionFactory;
-import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactory;
-import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactoryDefault;
-import org.apache.isis.runtimes.dflt.runtime.userprofile.UserProfileLoaderDefault;
-import org.apache.log4j.Logger;
-
-/**
- *
- */
-public abstract class IsisSystemAbstract extends IsisSystemFixturesHookAbstract {
-
- public static final Logger LOG = Logger.getLogger(IsisSystemAbstract.class);
-
- private FixturesInstaller fixtureInstaller;
-
- private LogonFixture logonFixture;
-
- // ///////////////////////////////////////////
- // Constructors
- // ///////////////////////////////////////////
-
- public IsisSystemAbstract(final DeploymentType deploymentType) {
- super(deploymentType, new IsisLocaleInitializer(), new IsisTimeZoneInitializer());
- }
-
- public IsisSystemAbstract(final DeploymentType deploymentType, final IsisLocaleInitializer localeInitializer, final IsisTimeZoneInitializer timeZoneInitializer) {
- super(deploymentType, localeInitializer, timeZoneInitializer);
- }
-
- @Override
- protected void installFixturesIfRequired() throws IsisSystemException {
- // some deployment types (eg CLIENT) do not support installing fixtures
- // instead, any fixtures should be installed when server boots up.
- if (!getDeploymentType().canInstallFixtures()) {
- return;
- }
-
- fixtureInstaller = obtainFixturesInstaller();
- if (isNoop(fixtureInstaller)) {
- return;
- }
-
- IsisContext.openSession(new InitialisationSession());
- fixtureInstaller.installFixtures();
- try {
-
- // only allow logon fixtures if not in production mode.
- if (!getDeploymentType().isProduction()) {
- logonFixture = fixtureInstaller.getLogonFixture();
- }
- } finally {
- IsisContext.closeSession();
- }
- }
-
- private boolean isNoop(final FixturesInstaller candidate) {
- return candidate == null || (fixtureInstaller instanceof Noop);
- }
-
- // ///////////////////////////////////////////
- // Fixtures
- // ///////////////////////////////////////////
-
- /**
- * This is the only {@link Installer} that is used by any (all) subclass
- * implementations, because it effectively <i>is</i> the component we need
- * (as opposed to a builder/factory of the component we need).
- *
- * <p>
- * The fact that the component <i>is</i> an installer (and therefore can be
- * {@link InstallerLookup} looked up} is at this level really just an
- * incidental implementation detail useful for the subclass that uses
- * {@link InstallerLookup} to create the other components.
- */
- protected abstract FixturesInstaller obtainFixturesInstaller() throws IsisSystemException;
-
- // ///////////////////////////////////////////
- // Fixtures Installer
- // ///////////////////////////////////////////
-
- public FixturesInstaller getFixturesInstaller() {
- return fixtureInstaller;
- }
-
- /**
- * The {@link LogonFixture}, if any, obtained by running fixtures.
- *
- * <p>
- * Intended to be used when for {@link DeploymentType#EXPLORATION
- * exploration} (instead of an {@link ExplorationSession}) or
- * {@link DeploymentType#PROTOTYPE prototype} deployments (saves logging
- * in). Should be <i>ignored</i> in other {@link DeploymentType}s.
- */
- @Override
- public LogonFixture getLogonFixture() {
- return logonFixture;
- }
-
- @Override
- protected void appendFixturesInstallerDebug(final DebugBuilder debug) {
- debug.appendln("Fixture Installer", fixtureInstaller == null ? "none" : fixtureInstaller.getClass().getName());
- }
-
-
-
- // ///////////////////////////////////////////
- // Session Factory
- // ///////////////////////////////////////////
-
- @Override
- public IsisSessionFactory doCreateSessionFactory(final DeploymentType deploymentType) throws IsisSystemException {
- final PersistenceSessionFactory persistenceSessionFactory = obtainPersistenceSessionFactory(deploymentType);
- final UserProfileLoader userProfileLoader = new UserProfileLoaderDefault(obtainUserProfileStore());
- return createSessionFactory(deploymentType, userProfileLoader, persistenceSessionFactory);
- }
-
- /**
- * Overloaded version designed to be called by subclasses that need to
- * explicitly specify different persistence mechanisms.
- *
- * <p>
- * This is <i>not</i> a hook method, rather it is designed to be called
- * <i>from</i> the {@link #doCreateSessionFactory(DeploymentType) hook
- * method}.
- */
- protected final IsisSessionFactory createSessionFactory(final DeploymentType deploymentType, final UserProfileLoader userProfileLoader, final PersistenceSessionFactory persistenceSessionFactory) throws IsisSystemException {
-
- final IsisConfiguration configuration = getConfiguration();
- final AuthenticationManager authenticationManager = obtainAuthenticationManager(deploymentType);
- final AuthorizationManager authorizationManager = obtainAuthorizationManager(deploymentType);
- final TemplateImageLoader templateImageLoader = obtainTemplateImageLoader();
- final OidMarshaller oidMarshaller = obtainOidMarshaller();
-
- final Collection<MetaModelRefiner> metaModelRefiners = refiners(authenticationManager, authorizationManager, templateImageLoader, persistenceSessionFactory);
- final SpecificationLoaderSpi reflector = obtainSpecificationLoaderSpi(deploymentType, persistenceSessionFactory, metaModelRefiners);
-
- final List<Object> servicesList = obtainServices();
-
- // bind metamodel to the (runtime) framework
- RuntimeContextFromSession runtimeContext = new RuntimeContextFromSession();
- runtimeContext.injectInto(reflector);
-
- return new IsisSessionFactoryDefault(deploymentType, configuration, templateImageLoader, reflector, authenticationManager, authorizationManager, userProfileLoader, persistenceSessionFactory, servicesList, oidMarshaller);
- }
-
- private static Collection<MetaModelRefiner> refiners(Object... possibleRefiners ) {
- return Types.filtered(Arrays.asList(possibleRefiners), MetaModelRefiner.class);
- }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.runtimes.dflt.runtime.systemusinginstallers;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Lists;
+
+import org.apache.log4j.Logger;
+
+import org.apache.isis.applib.fixtures.LogonFixture;
+import org.apache.isis.core.commons.components.Installer;
+import org.apache.isis.core.commons.components.Noop;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.debug.DebugBuilder;
+import org.apache.isis.core.commons.lang.Types;
+import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.facetapi.ClassSubstitutorFactory;
+import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
+import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
+import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
+import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryDefault;
+import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
+import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverserDefault;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
+import org.apache.isis.core.progmodel.layout.dflt.MemberLayoutArrangerDefault;
+import org.apache.isis.core.runtime.authentication.AuthenticationManager;
+import org.apache.isis.core.runtime.authorization.AuthorizationManager;
+import org.apache.isis.core.runtime.imageloader.TemplateImageLoader;
+import org.apache.isis.core.runtime.userprofile.UserProfileLoader;
+import org.apache.isis.runtimes.dflt.runtime.authentication.exploration.ExplorationSession;
+import org.apache.isis.runtimes.dflt.runtime.fixtures.FixturesInstaller;
+import org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookup;
+import org.apache.isis.runtimes.dflt.runtime.persistence.internal.RuntimeContextFromSession;
+import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
+import org.apache.isis.runtimes.dflt.runtime.system.IsisSystemException;
+import org.apache.isis.runtimes.dflt.runtime.system.IsisSystemFixturesHookAbstract;
+import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.internal.InitialisationSession;
+import org.apache.isis.runtimes.dflt.runtime.system.internal.IsisLocaleInitializer;
+import org.apache.isis.runtimes.dflt.runtime.system.internal.IsisTimeZoneInitializer;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSessionFactory;
+import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactory;
+import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactoryDefault;
+import org.apache.isis.runtimes.dflt.runtime.userprofile.UserProfileLoaderDefault;
+
+/**
+ *
+ */
+public abstract class IsisSystemAbstract extends IsisSystemFixturesHookAbstract {
+
+ public static final Logger LOG = Logger.getLogger(IsisSystemAbstract.class);
+
+ private FixturesInstaller fixtureInstaller;
+
+ private LogonFixture logonFixture;
+
+ // ///////////////////////////////////////////
+ // Constructors
+ // ///////////////////////////////////////////
+
+ public IsisSystemAbstract(final DeploymentType deploymentType) {
+ super(deploymentType, new IsisLocaleInitializer(), new IsisTimeZoneInitializer());
+ }
+
+ public IsisSystemAbstract(final DeploymentType deploymentType, final IsisLocaleInitializer localeInitializer, final IsisTimeZoneInitializer timeZoneInitializer) {
+ super(deploymentType, localeInitializer, timeZoneInitializer);
+ }
+
+ @Override
+ protected void installFixturesIfRequired() throws IsisSystemException {
+ // some deployment types (eg CLIENT) do not support installing fixtures
+ // instead, any fixtures should be installed when server boots up.
+ if (!getDeploymentType().canInstallFixtures()) {
+ return;
+ }
+
+ fixtureInstaller = obtainFixturesInstaller();
+ if (isNoop(fixtureInstaller)) {
+ return;
+ }
+
+ IsisContext.openSession(new InitialisationSession());
+ fixtureInstaller.installFixtures();
+ try {
+
+ // only allow logon fixtures if not in production mode.
+ if (!getDeploymentType().isProduction()) {
+ logonFixture = fixtureInstaller.getLogonFixture();
+ }
+ } finally {
+ IsisContext.closeSession();
+ }
+ }
+
+ private boolean isNoop(final FixturesInstaller candidate) {
+ return candidate == null || (fixtureInstaller instanceof Noop);
+ }
+
+ // ///////////////////////////////////////////
+ // Fixtures
+ // ///////////////////////////////////////////
+
+ /**
+ * This is the only {@link Installer} that is used by any (all) subclass
+ * implementations, because it effectively <i>is</i> the component we need
+ * (as opposed to a builder/factory of the component we need).
+ *
+ * <p>
+ * The fact that the component <i>is</i> an installer (and therefore can be
+ * {@link InstallerLookup} looked up} is at this level really just an
+ * incidental implementation detail useful for the subclass that uses
+ * {@link InstallerLookup} to create the other components.
+ */
+ protected abstract FixturesInstaller obtainFixturesInstaller() throws IsisSystemException;
+
+ // ///////////////////////////////////////////
+ // Fixtures Installer
+ // ///////////////////////////////////////////
+
+ public FixturesInstaller getFixturesInstaller() {
+ return fixtureInstaller;
+ }
+
+ /**
+ * The {@link LogonFixture}, if any, obtained by running fixtures.
+ *
+ * <p>
+ * Intended to be used when for {@link DeploymentType#EXPLORATION
+ * exploration} (instead of an {@link ExplorationSession}) or
+ * {@link DeploymentType#PROTOTYPE prototype} deployments (saves logging
+ * in). Should be <i>ignored</i> in other {@link DeploymentType}s.
+ */
+ @Override
+ public LogonFixture getLogonFixture() {
+ return logonFixture;
+ }
+
+ @Override
+ protected void appendFixturesInstallerDebug(final DebugBuilder debug) {
+ debug.appendln("Fixture Installer", fixtureInstaller == null ? "none" : fixtureInstaller.getClass().getName());
+ }
+
+
+
+ // ///////////////////////////////////////////
+ // Session Factory
+ // ///////////////////////////////////////////
+
+ @Override
+ public IsisSessionFactory doCreateSessionFactory(final DeploymentType deploymentType) throws IsisSystemException {
+ final PersistenceSessionFactory persistenceSessionFactory = obtainPersistenceSessionFactory(deploymentType);
+ final UserProfileLoader userProfileLoader = new UserProfileLoaderDefault(obtainUserProfileStore());
+ return createSessionFactory(deploymentType, userProfileLoader, persistenceSessionFactory);
+ }
+
+ /**
+ * Overloaded version designed to be called by subclasses that need to
+ * explicitly specify different persistence mechanisms.
+ *
+ * <p>
+ * This is <i>not</i> a hook method, rather it is designed to be called
+ * <i>from</i> the {@link #doCreateSessionFactory(DeploymentType) hook
+ * method}.
+ */
+ protected final IsisSessionFactory createSessionFactory(final DeploymentType deploymentType, final UserProfileLoader userProfileLoader, final PersistenceSessionFactory persistenceSessionFactory) throws IsisSystemException {
+
+ final IsisConfiguration configuration = getConfiguration();
+ final AuthenticationManager authenticationManager = obtainAuthenticationManager(deploymentType);
+ final AuthorizationManager authorizationManager = obtainAuthorizationManager(deploymentType);
+ final TemplateImageLoader templateImageLoader = obtainTemplateImageLoader();
+ final OidMarshaller oidMarshaller = obtainOidMarshaller();
+
+ final Collection<MetaModelRefiner> metaModelRefiners = refiners(authenticationManager, authorizationManager, templateImageLoader, persistenceSessionFactory);
+ final SpecificationLoaderSpi reflector = obtainSpecificationLoaderSpi(deploymentType, persistenceSessionFactory, metaModelRefiners);
+
+ final List<Object> servicesList = obtainServices();
+
+ // bind metamodel to the (runtime) framework
+ RuntimeContextFromSession runtimeContext = new RuntimeContextFromSession();
+ runtimeContext.injectInto(reflector);
+
+ return new IsisSessionFactoryDefault(deploymentType, configuration, templateImageLoader, reflector, authenticationManager, authorizationManager, userProfileLoader, persistenceSessionFactory, servicesList, oidMarshaller);
+ }
+
+
+
+ private static Collection<MetaModelRefiner> refiners(Object... possibleRefiners ) {
+ return Types.filtered(Arrays.asList(possibleRefiners), MetaModelRefiner.class);
+ }
+
+
+}
\ No newline at end of file
Modified: isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java (original)
+++ isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java Mon Nov 12 20:59:25 2012
@@ -213,8 +213,7 @@ public class IsisSystemUsingInstallers e
// add in transaction support (if already in set then will be ignored)
reflectorInstaller.addFacetDecoratorInstaller(installerLookup.getInstaller(TransactionFacetDecoratorInstaller.class));
- final SpecificationLoaderSpi reflector = reflectorInstaller.createReflector(classSubstitutorFactory, metaModelRefiners);
- return reflector;
+ return reflectorInstaller.createReflector(classSubstitutorFactory, metaModelRefiners);
}
// ///////////////////////////////////////////
Modified: isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemDefault.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemDefault.java?rev=1408457&r1=1408456&r2=1408457&view=diff
==============================================================================
--- isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemDefault.java (original)
+++ isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemDefault.java Mon Nov 12 20:59:25 2012
@@ -11,17 +11,11 @@ import org.apache.isis.core.commons.reso
import org.apache.isis.core.metamodel.facetapi.ClassSubstitutorFactory;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
-import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryDefault;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
-import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverserDefault;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.progmodel.layout.dflt.MemberLayoutArrangerDefault;
import org.apache.isis.core.progmodel.metamodelvalidator.dflt.MetaModelValidatorDefault;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
import org.apache.isis.core.runtime.authentication.standard.AuthenticationManagerStandard;
@@ -29,8 +23,8 @@ import org.apache.isis.core.runtime.auth
import org.apache.isis.core.runtime.authorization.AuthorizationManager;
import org.apache.isis.core.runtime.authorization.standard.AuthorizationManagerStandard;
import org.apache.isis.core.runtime.userprofile.UserProfileStore;
+import org.apache.isis.progmodels.dflt.JavaReflectorHelper;
import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
-import org.apache.isis.runtimes.dflt.bytecode.dflt.classsubstitutor.CglibClassSubstitutor;
import org.apache.isis.runtimes.dflt.objectstores.dflt.InMemoryPersistenceMechanismInstaller;
import org.apache.isis.runtimes.dflt.profilestores.dflt.InMemoryUserProfileStore;
import org.apache.isis.runtimes.dflt.runtime.fixtures.FixturesInstaller;
@@ -113,33 +107,21 @@ public class IsisSystemDefault extends I
* <p>
* Each of the subcomponents can be overridden if required.
*
- * @see #obtainReflectorClassSubstitutor()
- * @see #obtainReflectorCollectionTypeRegistry()
* @see #obtainReflectorFacetDecoratorSet()
* @see #obtainReflectorMetaModelValidator()
* @see #obtainReflectorProgrammingModel()
- * @see #obtainReflectorSpecificationTraverser()
*/
@Override
protected SpecificationLoaderSpi obtainSpecificationLoaderSpi(DeploymentType deploymentType, ClassSubstitutorFactory classSubstitutorFactory, Collection<MetaModelRefiner> metaModelRefiners) throws IsisSystemException {
- final ClassSubstitutor classSubstitutor = obtainReflectorClassSubstitutor();
- final CollectionTypeRegistry collectionTypeRegistry = obtainReflectorCollectionTypeRegistry();
- final SpecificationTraverser specificationTraverser = obtainReflectorSpecificationTraverser();
- final MemberLayoutArranger memberLayoutArranger = new MemberLayoutArrangerDefault();
+
final ProgrammingModel programmingModel = obtainReflectorProgrammingModel();
final Set<FacetDecorator> facetDecorators = obtainReflectorFacetDecoratorSet();
- final MetaModelValidator metaModelValidator = obtainReflectorMetaModelValidator();
- return new ObjectReflectorDefault(getConfiguration(), classSubstitutor, collectionTypeRegistry, specificationTraverser, memberLayoutArranger, programmingModel, facetDecorators, metaModelValidator);
- }
-
- /**
- * Optional hook method, called from {@link #obtainSpecificationLoaderSpi(DeploymentType, ClassSubstitutorFactory, MetaModelRefiner)}.
- * @return
- */
- protected ClassSubstitutor obtainReflectorClassSubstitutor() {
- return new CglibClassSubstitutor();
+ final MetaModelValidator mmv = obtainReflectorMetaModelValidator();
+
+ return JavaReflectorHelper.createObjectReflector(programmingModel, classSubstitutorFactory, metaModelRefiners, facetDecorators, mmv, getConfiguration());
}
+
/**
* Optional hook method, called from {@link #obtainSpecificationLoaderSpi(DeploymentType, ClassSubstitutorFactory, MetaModelRefiner)}.
* @return
@@ -148,13 +130,6 @@ public class IsisSystemDefault extends I
return new CollectionTypeRegistryDefault();
}
- /**
- * Optional hook method, called from {@link #obtainSpecificationLoaderSpi(DeploymentType, ClassSubstitutorFactory, MetaModelRefiner)}.
- * @return
- */
- protected SpecificationTraverser obtainReflectorSpecificationTraverser() {
- return new SpecificationTraverserDefault();
- }
/**
* Optional hook method, called from {@link #obtainSpecificationLoaderSpi(DeploymentType, ClassSubstitutorFactory, MetaModelRefiner)}.