You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/17 11:46:55 UTC

[06/10] isis git commit: ISIS-1194: simplify isis-maven-plugin to use appManifest (rather than isisConfigDir).

ISIS-1194: simplify isis-maven-plugin to use appManifest (rather than isisConfigDir).

As a result, delete the IsisMetaModel class, since no longer required.


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

Branch: refs/heads/master
Commit: a701d5e6fb63bcbaaac3ad3bde995d8084ba041c
Parents: 6352f06
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Sep 16 17:33:56 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Sep 16 17:33:56 2015 +0100

----------------------------------------------------------------------
 .../isis/tool/mavenplugin/IsisMojoAbstract.java | 106 +------
 .../tool/mavenplugin/util/IsisMetaModels.java   |  36 ---
 .../isis/core/metamodel/app/IsisMetaModel.java  | 166 -----------
 ...IsisMetaModelBaseTest_constructDefaults.java |  57 ----
 ...IsisMetaModelTest_constructWithServices.java |  78 ------
 ...sMetaModelTest_getDomainObjectContainer.java |  66 -----
 .../persistence/PersistenceSessionTest.java     | 276 -------------------
 7 files changed, 15 insertions(+), 770 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
index 10344a8..5aca2ea 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.tool.mavenplugin;
 
-import java.io.File;
-import java.util.List;
 import java.util.Set;
 
 import org.apache.maven.model.Plugin;
@@ -32,19 +30,11 @@ import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 
 import org.apache.isis.applib.AppManifest;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
 import org.apache.isis.core.commons.factory.InstanceUtil;
-import org.apache.isis.core.metamodel.app.IsisMetaModel;
 import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.runtime.services.ServicesInstaller;
-import org.apache.isis.core.runtime.services.ServicesInstallerFromAnnotation;
-import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.systemusinginstallers.IsisComponentProviderDefault2;
-import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
-import org.apache.isis.tool.mavenplugin.util.IsisMetaModels;
 import org.apache.isis.tool.mavenplugin.util.MavenProjects;
 
 public abstract class IsisMojoAbstract extends AbstractMojo {
@@ -54,10 +44,7 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
     @Component
     private MavenProject mavenProject;
 
-    @Parameter(required = true, readonly = false, property = "isisConfigDir")
-    private String isisConfigDir;
-
-    @Parameter(required = false, readonly = false, property = "appManifest")
+    @Parameter(required = true, readonly = false, property = "appManifest")
     private String appManifest;
 
     private final MetaModelProcessor metaModelProcessor;
@@ -72,89 +59,26 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
 
         final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
 
-        if(this.appManifest != null) {
-
-            final AppManifest manifest = InstanceUtil.createInstance(this.appManifest, AppManifest.class);
-            final IsisComponentProviderDefault2 componentProvider = new IsisComponentProviderDefault2(
-                    DeploymentType.UNIT_TESTING, manifest, null, null, null, null, null);
-
-            final IsisSystem isisSystem = new IsisSystem(componentProvider);
-            try {
-                isisSystem.init();
-
-            } catch(RuntimeException ex) {
-                ;
-                // ignore
-            } finally {
-                isisSystem.shutdown();
-            }
-
-            final ObjectReflectorDefault specificationLoader =
-                    (ObjectReflectorDefault) isisSystem.getSessionFactory().getSpecificationLoader();
-            metaModelProcessor.process(specificationLoader, context);
-
-
-        } else {
-
-            final IsisConfiguration isisConfiguration = getIsisConfiguration();
-            final List<Object> serviceList = plugin != null ? serviceListFor(plugin, isisConfiguration) : null;
-            if (serviceList == null || serviceList.size() == 0) {
-                return;
-            }
-            getLog().info("Found " + serviceList.size() + " services");
-
-            IsisMetaModel isisMetaModel = null;
-            try {
-                isisMetaModel = bootstrapIsis(serviceList);
-                metaModelProcessor.process((ObjectReflectorDefault) isisMetaModel.getSpecificationLoader(), context);
-            } finally {
-                IsisMetaModels.disposeSafely(isisMetaModel);
-            }
-        }
-    }
+        final AppManifest manifest = InstanceUtil.createInstance(this.appManifest, AppManifest.class);
+        final IsisComponentProviderDefault2 componentProvider = new IsisComponentProviderDefault2(
+                DeploymentType.UNIT_TESTING, manifest, null, null, null, null, null);
 
-    private List<Object> serviceListFor(Plugin plugin, final IsisConfiguration isisConfiguration) throws MojoFailureException {
+        final IsisSystem isisSystem = new IsisSystem(componentProvider);
+        try {
+            isisSystem.init();
 
-        final ServicesInstaller servicesInstaller;
-        if(isisConfiguration == null) {
-            servicesInstaller = new ServicesInstallerFromAnnotation();
-        } else {
-            final ServicesInstallerFromConfigurationAndAnnotation servicesInstallerFromConfigurationAndAnnotation = new ServicesInstallerFromConfigurationAndAnnotation();
-            servicesInstallerFromConfigurationAndAnnotation.setConfiguration(isisConfiguration);
-            servicesInstaller = servicesInstallerFromConfigurationAndAnnotation;
+        } catch(RuntimeException ex) {
+            ;
+            // ignore
+        } finally {
+            isisSystem.shutdown();
         }
 
-        servicesInstaller.setIgnoreFailures(true);
-        servicesInstaller.init();
-
-        return servicesInstaller.getServices();
-    }
-
-    private IsisConfiguration getIsisConfiguration() throws MojoFailureException {
-        final File file = getIsisConfigDir();
-        final String absoluteConfigDir = file.getAbsolutePath();
-        if(!file.exists() || !file.isDirectory()) {
-            context.throwFailureException("Configuration error",
-                    String.format("isisConfigDir (%s) does not exist or is not a directory", absoluteConfigDir));
-        }
-        final IsisConfigurationBuilderDefault configBuilder = new IsisConfigurationBuilderDefault(absoluteConfigDir);
-        configBuilder.addDefaultConfigurationResources();
-        return configBuilder.getConfiguration();
-    }
+        final ObjectReflectorDefault specificationLoader =
+                (ObjectReflectorDefault) isisSystem.getSessionFactory().getSpecificationLoader();
+        metaModelProcessor.process(specificationLoader, context);
 
-    private File getIsisConfigDir() {
-        File file = new File(isisConfigDir);
-        if(!file.isAbsolute()) {
-            final File basedir = mavenProject.getBasedir();
-            file = new File(basedir, isisConfigDir);
-        }
-        return file;
-    }
 
-    private static IsisMetaModel bootstrapIsis(List<Object> serviceList) {
-        IsisMetaModel isisMetaModel = new IsisMetaModel(new ProgrammingModelFacetsJava5(), serviceList);
-        isisMetaModel.init();
-        return isisMetaModel;
     }
 
     //region > Context

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
deleted file mode 100644
index 9d6cc50..0000000
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/IsisMetaModels.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  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.tool.mavenplugin.util;
-
-import org.apache.isis.core.metamodel.app.IsisMetaModel;
-
-public final class IsisMetaModels {
-    
-    private IsisMetaModels(){}
-
-    public static void disposeSafely(IsisMetaModel isisMetaModel) {
-        if (isisMetaModel == null) {
-            return;
-        }
-        isisMetaModel.shutdown();
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
deleted file mode 100644
index 79e568a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- *  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.core.metamodel.app;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
-import com.google.common.collect.Lists;
-
-import org.apache.isis.core.commons.components.ApplicationScopedComponent;
-import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
-import org.apache.isis.core.metamodel.layoutmetadata.LayoutMetadataReader;
-import org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
-import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-
-import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
-import static org.hamcrest.CoreMatchers.is;
-
-/**
- * Facade for the entire Isis metamodel and supporting components.
- * 
- * <p>
- * Currently this is <i>not</i> used by Isis proper, but is available for use by integration tests.
- * The intention is to factor it into <tt>IsisSystem</tt>.
- */
-public class IsisMetaModel implements ApplicationScopedComponent {
-
-
-    private static enum State {
-        NOT_INITIALIZED, INITIALIZED, SHUTDOWN;
-    }
-
-    private State state = State.NOT_INITIALIZED;
-
-    private final ServicesInjectorSpi servicesInjector;
-
-    private ObjectReflectorDefault specificationLoader;
-    private RuntimeContext runtimeContext;
-
-    private IsisConfigurationDefault configuration;
-    private ProgrammingModel programmingModel;
-    private Set<FacetDecorator> facetDecorators;
-    private MetaModelValidatorComposite metaModelValidator;
-
-    private ValidationFailures validationFailures;
-
-    public IsisMetaModel(
-            final ProgrammingModel programmingModel,
-            final List<Object> services) {
-        this(programmingModel, services.toArray());
-    }
-    
-    public IsisMetaModel(
-            final ProgrammingModel programmingModel,
-            final Object... services) {
-
-        this.programmingModel = programmingModel;
-
-        final List<Object> serviceList = Lists.newArrayList();
-        serviceList.addAll(Arrays.asList(services));
-        this.servicesInjector = new ServicesInjectorDefault(serviceList);
-
-        this.configuration = new IsisConfigurationDefault();
-
-        this.facetDecorators = new TreeSet<>();
-
-        this.metaModelValidator = new MetaModelValidatorComposite();
-        this.programmingModel.refineMetaModelValidator(metaModelValidator, configuration);
-
-        final DeploymentCategory deploymentCategory = DeploymentCategory.PRODUCTION;
-        final List<LayoutMetadataReader> layoutMetadataReaders =
-                Lists.<LayoutMetadataReader>newArrayList(new LayoutMetadataReaderFromJson());
-
-        this.specificationLoader = new ObjectReflectorDefault(
-                deploymentCategory, configuration,
-                this.programmingModel, facetDecorators,
-                metaModelValidator, layoutMetadataReaders, servicesInjector);
-
-        this.runtimeContext = new RuntimeContextNoRuntime(
-                deploymentCategory, configuration, servicesInjector, specificationLoader);
-
-    }
-
-    public ServicesInjectorSpi getServicesInjector() {
-        return servicesInjector;
-    }
-
-    // ///////////////////////////////////////////////////////
-    // init, shutdown
-    // ///////////////////////////////////////////////////////
-
-    public void init() {
-        ensureNotInitialized();
-
-        specificationLoader.initialize(runtimeContext);
-
-        for (final Object service : servicesInjector.getRegisteredServices()) {
-            final ObjectSpecification serviceSpec = specificationLoader.loadSpecification(service.getClass());
-            serviceSpec.markAsService();
-        }
-
-        validationFailures = specificationLoader.validate();
-
-        state = State.INITIALIZED;
-    }
-    
-    public ValidationFailures getValidationFailures() {
-        return validationFailures;
-    }
-
-    public void shutdown() {
-        ensureInitialized();
-        state = State.SHUTDOWN;
-    }
-
-
-    /**
-     * Available once {@link #init() initialized}.
-     */
-    public SpecificationLoaderSpi getSpecificationLoader() {
-        return specificationLoader;
-    }
-
-    //region > State management
-
-    private State ensureNotInitialized() {
-        return ensureThatState(state, is(State.NOT_INITIALIZED));
-    }
-
-    private State ensureInitialized() {
-        return ensureThatState(state, is(State.INITIALIZED));
-    }
-
-    //endregion
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
deleted file mode 100644
index 3dd2ad2..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelBaseTest_constructDefaults.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  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.core.metamodel.app;
-
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-
-public class IsisMetaModelBaseTest_constructDefaults {
-
-    @Rule
-    public final JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_ONLY);
-
-    @Mock
-    private RuntimeContext mockContext;
-
-    @Mock
-    private ProgrammingModel mockProgrammingModel;
-    
-    private IsisMetaModel metaModel;
-
-    @Before
-    public void setUp() {
-        context.ignoring(mockProgrammingModel);
-        metaModel = new IsisMetaModel(mockProgrammingModel);
-    }
-
-
-    @Test(expected = IllegalStateException.class)
-    public void shouldNotBeAbleToShutdown() {
-        metaModel.shutdown();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_constructWithServices.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_constructWithServices.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_constructWithServices.java
deleted file mode 100644
index 8573067..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_constructWithServices.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  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.core.metamodel.app;
-
-import java.util.List;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.isis.core.commons.matchers.IsisMatchers;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class IsisMetaModelTest_constructWithServices {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    private RuntimeContext mockContext;
-
-    @Mock
-    private ProgrammingModel mockProgrammingModel;
-
-    @Mock
-    private SomeRepo mockService1;
-
-    @Mock
-    private SomeOtherRepo mockService2;
-
-    private IsisMetaModel metaModel;
-
-    private static class SomeRepo {}
-    private static class SomeOtherRepo {}
-
-    @Before
-    public void setUp() throws Exception {
-        context.ignoring(mockProgrammingModel);
-    }
-
-    @Test
-    public void shouldSucceedWithoutThrowingAnyExceptions() {
-        metaModel = new IsisMetaModel(mockProgrammingModel);
-    }
-
-    @Test
-    public void shouldBeAbleToRegisterServices() {
-        metaModel = new IsisMetaModel(mockProgrammingModel, mockService1, mockService2);
-        final List<Object> services = metaModel.getServicesInjector().getRegisteredServices();
-        assertThat(services.size(), is(3));
-        assertThat(services, IsisMatchers.containsObjectOfType(SomeRepo.class));
-        assertThat(services, IsisMatchers.containsObjectOfType(SomeOtherRepo.class));
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_getDomainObjectContainer.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_getDomainObjectContainer.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_getDomainObjectContainer.java
deleted file mode 100644
index 929fcca..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_getDomainObjectContainer.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  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.core.metamodel.app;
-
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.unittestsupport.jmocking.IsisActions;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-
-public class IsisMetaModelTest_getDomainObjectContainer {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    private RuntimeContext mockContext;
-
-    @Mock
-    private ProgrammingModel mockProgrammingModel;
-    
-    private IsisMetaModel metaModel;
-
-
-    @Before
-    public void setUp() {
-        metaModel = new IsisMetaModel(mockProgrammingModel);
-        expectingMetaModelToBeInitialized();
-        metaModel.init();
-    }
-    
-    private void expectingMetaModelToBeInitialized() {
-        context.checking(new Expectations() {
-            {
-                allowing(mockContext).injectInto(with(any(Object.class)));
-                will(IsisActions.injectInto());
-                
-                ignoring(mockContext);
-                
-                ignoring(mockProgrammingModel);
-            }
-        });
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a701d5e6/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
deleted file mode 100644
index 35a3dbe..0000000
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionTest.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- *  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.core.runtime.system.persistence;
-
-import java.util.Collections;
-
-import javax.jdo.PersistenceManagerFactory;
-
-import org.jmock.Expectations;
-import org.jmock.Sequence;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.applib.services.audit.AuditingService3;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.authentication.MessageBroker;
-import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.version.Version;
-import org.apache.isis.core.metamodel.app.IsisMetaModel;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.metamodel.specloader.InjectorMethodEvaluatorDefault;
-import org.apache.isis.core.runtime.persistence.adapter.PojoAdapter;
-import org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdapterBuilder;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdapterBuilder.Persistence;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories;
-import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
-
-public class PersistenceSessionTest {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
-    private ServicesInjectorDefault servicesInjector;
-
-    
-    private PersistenceSession persistenceSession;
-    private IsisTransactionManager transactionManager;
-    
-    private ObjectAdapter persistentAdapter;
-    private PojoAdapter transientAdapter;
-    
-    @Mock
-    private PersistenceSessionFactory mockPersistenceSessionFactory;
-    
-    @Mock
-    private AuthenticationSession mockAuthenticationSession;
-    @Mock
-    private SpecificationLoaderSpi mockSpecificationLoader;
-
-    @Mock
-    private AuditingService3 mockAuditingService3;
-    @Mock
-    private PublishingServiceWithDefaultPayloadFactories mockPublishingService;
-
-    @Mock
-    private CreateObjectCommand createObjectCommand;
-    @Mock
-    private DestroyObjectCommand destroyObjectCommand;
-
-    @Mock
-    private Version mockVersion;
-
-    @Mock
-    private RuntimeContext mockRuntimeContext;
-
-    @Mock
-    private ServicesInjectorSpi mockServicesInjector;
-
-    @Mock
-    private IsisConfigurationDefault mockConfiguration;
-
-    @Mock
-    private PersistenceManagerFactory mockPersistenceManager;
-
-    @Mock
-    private MessageBroker mockMessageBroker;
-
-    private IsisMetaModel isisMetaModel;
-
-    public static class Customer {
-    }
-
-    public static class CustomerRepository {
-        public Customer x() {return null;}
-    }
-    
-    @Before
-    public void setUp() throws Exception {
-        org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
-
-        context.ignoring(mockRuntimeContext);
-        context.ignoring(mockConfiguration);
-        context.ignoring(mockAuditingService3);
-
-        isisMetaModel = new IsisMetaModel(new ProgrammingModelFacetsJava5(), new CustomerRepository());
-        isisMetaModel.init();
-        
-        context.checking(new Expectations() {
-            {
-                ignoring(mockConfiguration);
-
-                ignoring(createObjectCommand);
-                ignoring(destroyObjectCommand);
-                ignoring(mockVersion);
-                
-                allowing(mockAuthenticationSession).getMessageBroker();
-                will(returnValue(mockMessageBroker));
-            }
-        });
-
-        final RuntimeContextFromSession runtimeContext =
-                new RuntimeContextFromSession(
-                        DeploymentCategory.PRODUCTION,
-                        mockConfiguration,
-                        servicesInjector,
-                        mockSpecificationLoader);
-        final DomainObjectContainerDefault container = new DomainObjectContainerDefault();
-
-        runtimeContext.injectInto(container);
-
-        servicesInjector = new ServicesInjectorDefault(
-                Collections.<Object>singletonList(container),new InjectorMethodEvaluatorDefault());
-
-        persistenceSession = new PersistenceSession(mockConfiguration, mockServicesInjector, mockSpecificationLoader,
-                mockAuthenticationSession,
-                mockPersistenceManager, mockPersistenceSessionFactory
-        ) {
-            @Override
-            protected SpecificationLoaderSpi getSpecificationLoader() {
-                return isisMetaModel.getSpecificationLoader();
-            }
-            
-        };
-
-        context.checking(new Expectations(){{
-            allowing(mockAuthenticationSession).getUserName();
-            will(returnValue("sven"));
-        }});
-
-        
-        transactionManager = persistenceSession.getTransactionManager();
-        new IsisTransactionManager(persistenceSession, servicesInjector) {
-            @Override
-            public AuthenticationSession getAuthenticationSession() {
-                return mockAuthenticationSession;
-            }
-        };
-        persistenceSession.setTransactionManager(transactionManager);
-
-        persistentAdapter = PojoAdapterBuilder.create().withOid("CUS|1").withPojo(new Customer()).with(Persistence.PERSISTENT).with(mockVersion).with(isisMetaModel.getSpecificationLoader()).build();
-        transientAdapter = PojoAdapterBuilder.create().withOid("CUS|2").withPojo(new Customer()).with(Persistence.TRANSIENT).with(isisMetaModel.getSpecificationLoader()).build();
-    }
-
-
-    @Ignore // ISIS-1194
-    @Test
-    public void destroyObjectThenAbort() {
-        
-        final Sequence tran = context.sequence("tran");
-        context.checking(new Expectations() {
-            {
-//                one(mockObjectStore).startTransaction();
-//                inSequence(tran);
-
-//                one(mockObjectStore).createDestroyObjectCommand(persistentAdapter);
-//                inSequence(tran);
-
-//                one(mockObjectStore).abortTransaction();
-//                inSequence(tran);
-            }
-        });
-        
-        transactionManager.startTransaction();
-        persistenceSession.destroyObjectInTransaction(persistentAdapter);
-        transactionManager.abortTransaction();
-    }
-
-    @Ignore // ISIS-1194
-    @Test
-    public void destroyObject_thenCommit() {
-
-        final Sequence tran = context.sequence("tran");
-        context.checking(new Expectations() {
-            {
-//                oneOf(mockObjectStore).startTransaction();
-//                inSequence(tran);
-
-//                oneOf(mockObjectStore).createDestroyObjectCommand(persistentAdapter);
-//                inSequence(tran);
-//                will(returnValue(destroyObjectCommand));
-                
-//                oneOf(mockObjectStore).execute(with(IsisMatchers.listContaining((PersistenceCommand)destroyObjectCommand)));
-//                inSequence(tran);
-
-//                // second flush after publish
-//                oneOf(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(tran);
-
-//                // third flush after commands
-//                oneOf(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(tran);
-
-//                oneOf(mockObjectStore).endTransaction();
-//                inSequence(tran);
-            }
-
-        });
-
-        transactionManager.startTransaction();
-        persistenceSession.destroyObjectInTransaction(persistentAdapter);
-        transactionManager.endTransaction();
-    }
-
-    @Ignore // ISIS-1194
-    @Test
-    public void makePersistent_happyCase() {
-
-        final Sequence tran = context.sequence("tran");
-        context.checking(new Expectations() {
-            {
-//                oneOf(mockObjectStore).startTransaction();
-//                inSequence(tran);
-
-//                oneOf(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(tran);
-
-//                // second flush after publish
-//                oneOf(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(tran);
-
-//                // third flush after commands
-//                oneOf(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(tran);
-
-//                oneOf(mockObjectStore).endTransaction();
-//                inSequence(tran);
-            }
-        });
-
-        transactionManager.startTransaction();
-        persistenceSession.makePersistentInTransaction(transientAdapter);
-        transactionManager.endTransaction();
-    }
-}