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();
- }
-}