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/08/10 01:16:35 UTC
svn commit: r1371529 [2/9] - in /incubator/isis/trunk/framework:
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/map/
core/metamodel/src/main/java/org/apache/isis/...
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java Thu Aug 9 23:16:27 2012
@@ -19,10 +19,184 @@
package org.apache.isis.core.metamodel.services;
+import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
-public class ServicesInjectorDefault extends ServicesInjectorAbstract {
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.List;
- public ServicesInjectorDefault() {
+import com.google.common.collect.Lists;
+
+import org.apache.log4j.Logger;
+
+import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.core.commons.ensure.Assert;
+import org.apache.isis.core.commons.lang.CastUtils;
+import org.apache.isis.core.commons.lang.ToString;
+import org.apache.isis.core.metamodel.exceptions.MetaModelException;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class ServicesInjectorDefault implements ServicesInjectorSpi {
+
+ private static final Logger LOG = Logger.getLogger(ServicesInjectorDefault.class);
+
+ private final List<Object> services = Lists.newArrayList();
+ private DomainObjectContainer container;
+
+ /**
+ * Ensure that all services are wired into each other.
+ */
+ @Override
+ public void open() {
+ autowireServicesAndContainer();
+ }
+
+ @Override
+ public void close() {
+ }
+
+ // /////////////////////////////////////////////////////////
+ // Container
+ // /////////////////////////////////////////////////////////
+
+ @Override
+ public DomainObjectContainer getContainer() {
+ return container;
+ }
+
+ @Override
+ public void setContainer(final DomainObjectContainer container) {
+ ensureThatArg(container, is(not(nullValue())));
+ this.container = container;
+ }
+
+ // /////////////////////////////////////////////////////////
+ // Services
+ // /////////////////////////////////////////////////////////
+
+ @Override
+ public void setServices(final List<Object> services) {
+ this.services.clear();
+ addServices(services);
+ autowireServicesAndContainer();
+ }
+
+ @Override
+ public List<Object> getRegisteredServices() {
+ return Collections.unmodifiableList(services);
+ }
+
+ private void addServices(final List<Object> services) {
+ for (final Object service : services) {
+ if (service instanceof List) {
+ final List<Object> serviceList = CastUtils.listOf(service, Object.class);
+ addServices(serviceList);
+ } else {
+ addService(service);
+ }
+ }
+ }
+
+ private boolean addService(final Object service) {
+ return services.add(service);
+ }
+
+ // /////////////////////////////////////////////////////////
+ // Inject Dependencies
+ // /////////////////////////////////////////////////////////
+
+ @Override
+ public void injectServicesInto(final Object object) {
+ Assert.assertNotNull("no container", container);
+ Assert.assertNotNull("no services", services);
+
+ final List<Object> servicesCopy = Lists.newArrayList(services);
+ servicesCopy.add(container);
+ injectServices(object, servicesCopy);
+ }
+
+ @Override
+ public void injectServicesInto(final List<Object> objects) {
+ for (final Object object : objects) {
+ injectServicesInto(object);
+ }
+ }
+
+ // ////////////////////////////////////////////////////////////////////
+ // injectInto
+ // ////////////////////////////////////////////////////////////////////
+
+ /**
+ * That is, injecting this injector...
+ */
+ @Override
+ public void injectInto(final Object candidate) {
+ if (ServicesInjectorAware.class.isAssignableFrom(candidate.getClass())) {
+ final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
+ cast.setServicesInjector(this);
+ }
+ }
+
+
+ // /////////////////////////////////////////////////////////
+ // Helpers
+ // /////////////////////////////////////////////////////////
+
+ private static void injectServices(final Object object, final List<Object> services) {
+ final Class<?> cls = object.getClass();
+ for (final Object service : services) {
+ final Class<?> serviceClass = service.getClass();
+ final Method[] methods = cls.getMethods();
+ for (int j = 0; j < methods.length; j++) {
+ if (!methods[j].getName().startsWith("set")) {
+ continue;
+ }
+ final Class<?>[] parameterTypes = methods[j].getParameterTypes();
+ if (parameterTypes.length != 1 || parameterTypes[0] == Object.class || !parameterTypes[0].isAssignableFrom(serviceClass)) {
+ continue;
+ }
+
+ methods[j].setAccessible(true);
+
+ invokeSetMethod(methods[j], object, service);
+ }
+ }
+ }
+
+ private static void invokeMethod(final Method method, final Object target, final Object[] parameters) {
+ try {
+ method.invoke(target, parameters);
+ } catch (final SecurityException e) {
+ throw new MetaModelException(String.format("Cannot access the %s method in %s", method.getName(), target.getClass().getName()));
+ } catch (final IllegalArgumentException e1) {
+ throw new MetaModelException(e1);
+ } catch (final IllegalAccessException e1) {
+ throw new MetaModelException(String.format("Cannot access the %s method in %s", method.getName(), target.getClass().getName()));
+ } catch (final InvocationTargetException e) {
+ final Throwable targetException = e.getTargetException();
+ if (targetException instanceof RuntimeException) {
+ throw (RuntimeException) targetException;
+ } else {
+ throw new MetaModelException(targetException);
+ }
+ }
+ }
+
+ private static void invokeSetMethod(final Method set, final Object target, final Object parameter) {
+ final Object[] parameters = new Object[] { parameter };
+ invokeMethod(set, target, parameters);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("injected " + parameter + " into " + new ToString(target));
+ }
+ }
+
+ private void autowireServicesAndContainer() {
+ injectServicesInto(this.services);
+ injectServicesInto(this.container);
}
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java (from r1371199, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java&r1=1371199&r2=1371529&rev=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java Thu Aug 9 23:16:27 2012
@@ -24,7 +24,7 @@ import java.util.List;
import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.core.commons.components.Injectable;
import org.apache.isis.core.commons.components.SessionScopedComponent;
-import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
/**
* The repository of services, also able to inject into any object.
@@ -34,9 +34,9 @@ import org.apache.isis.core.metamodel.ru
* not a {@link #getRegisteredServices() registered service}.
*
* <p>
- * Can be considered a mutable SPI to the {@link DependencyInjector} immutable API.
+ * Can be considered a mutable SPI to the {@link ServicesInjector} immutable API.
*/
-public interface ServicesInjector extends SessionScopedComponent, Injectable, DependencyInjector {
+public interface ServicesInjectorSpi extends SessionScopedComponent, Injectable, ServicesInjector {
// ///////////////////////////////////////////////////////////////////////////
// Container
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java Thu Aug 9 23:16:27 2012
@@ -46,26 +46,26 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.ObjectPersistorAware;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitterAware;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMapAware;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManagerAware;
import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
import org.apache.isis.core.metamodel.adapter.util.AdapterUtils;
import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.services.container.query.QueryFindByPattern;
import org.apache.isis.core.metamodel.services.container.query.QueryFindByTitle;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
-import org.apache.isis.core.metamodel.spec.SpecificationLookupAware;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
-public class DomainObjectContainerDefault implements DomainObjectContainer, QuerySubmitterAware, ObjectDirtierAware, DomainObjectServicesAware, ObjectPersistorAware, SpecificationLookupAware, AuthenticationSessionProviderAware, AdapterMapAware, LocalizationProviderAware {
+public class DomainObjectContainerDefault implements DomainObjectContainer, QuerySubmitterAware, ObjectDirtierAware, DomainObjectServicesAware, ObjectPersistorAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware, LocalizationProviderAware {
private ObjectDirtier objectDirtier;
private ObjectPersistor objectPersistor;
private QuerySubmitter querySubmitter;
- private SpecificationLookup specificationLookup;
+ private SpecificationLoader specificationLookup;
private DomainObjectServices domainObjectServices;
private AuthenticationSessionProvider authenticationSessionProvider;
- private AdapterMap adapterMap;
+ private AdapterManager adapterManager;
private LocalizationProvider localizationProvider;
public DomainObjectContainerDefault() {
@@ -78,7 +78,7 @@ public class DomainObjectContainerDefaul
@Override
public String titleOf(final Object domainObject) {
- final ObjectAdapter objectAdapter = adapterMap.adapterFor(domainObject);
+ final ObjectAdapter objectAdapter = adapterManager.adapterFor(domainObject);
return objectAdapter.getSpecification().getTitle(objectAdapter, localizationProvider.getLocalization());
}
@@ -145,7 +145,7 @@ public class DomainObjectContainerDefaul
}
private ObjectAdapter doCreateAggregatedInstance(final ObjectSpecification spec, final Object parent) {
- final ObjectAdapter parentAdapter = getAdapterMap().getAdapterFor(parent);
+ final ObjectAdapter parentAdapter = getAdapterManager().getAdapterFor(parent);
return getDomainObjectServices().createAggregatedInstance(spec, parentAdapter);
}
@@ -154,7 +154,7 @@ public class DomainObjectContainerDefaul
if (persistentObject == null) {
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
- final ObjectAdapter adapter = getAdapterMap().getAdapterFor(persistentObject);
+ final ObjectAdapter adapter = getAdapterManager().getAdapterFor(persistentObject);
if (!isPersistent(persistentObject)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
@@ -214,7 +214,7 @@ public class DomainObjectContainerDefaul
@Override
public String validate(final Object domainObject) {
- final ObjectAdapter adapter = getAdapterMap().adapterFor(domainObject);
+ final ObjectAdapter adapter = getAdapterManager().adapterFor(domainObject);
final InteractionResult validityResult = adapter.getSpecification().isValidResult(adapter);
return validityResult.getReason();
}
@@ -225,13 +225,13 @@ public class DomainObjectContainerDefaul
@Override
public boolean isPersistent(final Object domainObject) {
- final ObjectAdapter adapter = getAdapterMap().adapterFor(domainObject);
+ final ObjectAdapter adapter = getAdapterManager().adapterFor(domainObject);
return adapter.representsPersistent();
}
@Override
public void persist(final Object transientObject) {
- final ObjectAdapter adapter = getAdapterMap().getAdapterFor(transientObject);
+ final ObjectAdapter adapter = getAdapterManager().getAdapterFor(transientObject);
// TODO check aggregation is supported
if (adapter.isParented()) {
return;
@@ -452,12 +452,12 @@ public class DomainObjectContainerDefaul
this.domainObjectServices = domainObjectServices;
}
- protected SpecificationLookup getSpecificationLookup() {
+ protected SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
@Override
- public void setSpecificationLookup(final SpecificationLookup specificationLookup) {
+ public void setSpecificationLookup(final SpecificationLoader specificationLookup) {
this.specificationLookup = specificationLookup;
}
@@ -470,13 +470,13 @@ public class DomainObjectContainerDefaul
this.authenticationSessionProvider = authenticationSessionProvider;
}
- protected AdapterMap getAdapterMap() {
- return adapterMap;
+ protected AdapterManager getAdapterManager() {
+ return adapterManager;
}
@Override
- public void setAdapterMap(final AdapterMap adapterManager) {
- this.adapterMap = adapterManager;
+ public void setAdapterManager(final AdapterManager adapterManager) {
+ this.adapterManager = adapterManager;
}
protected ObjectDirtier getObjectDirtier() {
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java Thu Aug 9 23:16:27 2012
@@ -104,7 +104,7 @@ public interface ObjectSpecification ext
* {@link ClassSubstitutor class name substituted} if necessary to allow for runtime bytecode enhancement.
*
* <p>
- * The {@link ObjectSpecification} can be retrieved using {@link SpecificationLookup#lookupBySpecId(String)}.
+ * The {@link ObjectSpecification} can be retrieved using {@link SpecificationLoader#lookupBySpecId(String)}.
*/
ObjectSpecId getSpecId();
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java Thu Aug 9 23:16:27 2012
@@ -24,9 +24,9 @@ public class SpecificationContext {
private final AuthenticationSessionProvider authenticationSessionProvider;
private final ServicesProvider servicesProvider;
private final ObjectInstantiator objectInstantiator;
- private final SpecificationLookup specificationLookup;
+ private final SpecificationLoader specificationLookup;
- public SpecificationContext(final AuthenticationSessionProvider authenticationSessionProvider, final ServicesProvider servicesProvider, final ObjectInstantiator objectInstantiator, final SpecificationLookup specificationLookup) {
+ public SpecificationContext(final AuthenticationSessionProvider authenticationSessionProvider, final ServicesProvider servicesProvider, final ObjectInstantiator objectInstantiator, final SpecificationLoader specificationLookup) {
this.authenticationSessionProvider = authenticationSessionProvider;
this.servicesProvider = servicesProvider;
this.objectInstantiator = objectInstantiator;
@@ -45,7 +45,7 @@ public class SpecificationContext {
return objectInstantiator;
}
- public SpecificationLookup getSpecificationLookup() {
+ public SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
}
\ No newline at end of file
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoader.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoader.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoader.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoader.java Thu Aug 9 23:16:27 2012
@@ -1,43 +1,31 @@
-/*
- * 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
+/**
+ * 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
+ * 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.
+ * 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.spec;
+import java.util.Collection;
import java.util.List;
-import org.apache.isis.core.commons.components.ApplicationScopedComponent;
-import org.apache.isis.core.commons.debug.DebuggableWithTitle;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.commons.components.Injectable;
-public interface SpecificationLoader extends ApplicationScopedComponent, DebuggableWithTitle, SpecificationLookup {
+public interface SpecificationLoader extends Injectable {
+
+ ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId);
- /**
- * @see #loadSpecification(String)
- */
- @Override
- ObjectSpecification loadSpecification(Class<?> cls);
- /**
- * Loads the specifications of the specified types except the one specified
- * (to prevent an infinite loop).
- */
- public boolean loadSpecifications(List<Class<?>> typesToLoad, final Class<?> typeToIgnore);
/**
* Return the specification for the specified class of object.
@@ -49,28 +37,36 @@ public interface SpecificationLoader ext
ObjectSpecification loadSpecification(String fullyQualifiedClassName);
/**
- * Whether this class has been loaded.
+ * @see #loadSpecification(String)
*/
- boolean loaded(Class<?> cls);
+ ObjectSpecification loadSpecification(Class<?> cls);
/**
- * @see #loaded(Class).
+ * Loads the specifications of the specified types.
*/
- boolean loaded(String fullyQualifiedClassName);
+ boolean loadSpecifications(List<Class<?>> typesToLoad);
/**
- * Specify the classes of the services to pro-actively prime the cache.
+ * Loads the specifications of the specified types except the one specified
+ * (to prevent an infinite loop).
*/
- void setServiceClasses(List<Class<?>> serviceClasses);
+ public boolean loadSpecifications(List<Class<?>> typesToLoad, final Class<?> typeToIgnore);
+
+
+
+ Collection<ObjectSpecification> allSpecifications();
+
+
/**
- * Loads the specifications of the specified types.
+ * Whether this class has been loaded.
*/
- boolean loadSpecifications(List<Class<?>> typesToLoad);
+ boolean loaded(Class<?> cls);
/**
- * Populated as a result of running {@link MetaModelValidator#validate() validation} after all specs have been loaded.
+ * @see #loaded(Class).
*/
- void validateSpecifications();
+ boolean loaded(String fullyQualifiedClassName);
+
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAbstract.java (from r1371199, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLookupAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAbstract.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAbstract.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLookupAbstract.java&r1=1371199&r2=1371529&rev=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLookupAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAbstract.java Thu Aug 9 23:16:27 2012
@@ -16,12 +16,12 @@
*/
package org.apache.isis.core.metamodel.spec;
-public abstract class SpecificationLookupAbstract implements SpecificationLookup {
+public abstract class SpecificationLoaderAbstract implements SpecificationLoader {
@Override
public void injectInto(final Object candidate) {
- if (SpecificationLookupAware.class.isAssignableFrom(candidate.getClass())) {
- final SpecificationLookupAware cast = SpecificationLookupAware.class.cast(candidate);
+ if (SpecificationLoaderAware.class.isAssignableFrom(candidate.getClass())) {
+ final SpecificationLoaderAware cast = SpecificationLoaderAware.class.cast(candidate);
cast.setSpecificationLookup(this);
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAware.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAware.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAware.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderAware.java Thu Aug 9 23:16:27 2012
@@ -21,5 +21,6 @@ package org.apache.isis.core.metamodel.s
public interface SpecificationLoaderAware {
- public void setSpecificationLoader(SpecificationLoader specificationLoader);
+ public void setSpecificationLookup(final SpecificationLoader specificationLookup);
+
}
Added: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderDelegator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderDelegator.java?rev=1371529&view=auto
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderDelegator.java (added)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderDelegator.java Thu Aug 9 23:16:27 2012
@@ -0,0 +1,88 @@
+/**
+ * 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.spec;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * Allows a {@link SpecificationLoader} to be provided even if the concrete
+ * implementation is only available later.
+ */
+public class SpecificationLoaderDelegator extends SpecificationLoaderAbstract {
+
+ private SpecificationLoader specificationLoaderDelegate;
+
+ public void setDelegate(final SpecificationLoader specificationLoaderDelegate) {
+ this.specificationLoaderDelegate = specificationLoaderDelegate;
+ }
+
+
+
+ @Override
+ public ObjectSpecification loadSpecification(final Class<?> cls) {
+ if (specificationLoaderDelegate == null) {
+ throw new IllegalStateException("No SpecificationLookup provided");
+ }
+ return specificationLoaderDelegate.loadSpecification(cls);
+ }
+
+ @Override
+ public Collection<ObjectSpecification> allSpecifications() {
+ return specificationLoaderDelegate.allSpecifications();
+ }
+
+ @Override
+ public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
+ return specificationLoaderDelegate.lookupBySpecId(objectSpecId);
+ }
+
+ @Override
+ public boolean loadSpecifications(List<Class<?>> typesToLoad, Class<?> typeToIgnore) {
+ return specificationLoaderDelegate.loadSpecifications(typesToLoad, typeToIgnore);
+ }
+
+ @Override
+ public ObjectSpecification loadSpecification(String fullyQualifiedClassName) {
+ return specificationLoaderDelegate.loadSpecification(fullyQualifiedClassName);
+ }
+
+ @Override
+ public boolean loaded(Class<?> cls) {
+ return specificationLoaderDelegate.loaded(cls);
+ }
+
+ @Override
+ public boolean loaded(String fullyQualifiedClassName) {
+ return specificationLoaderDelegate.loaded(fullyQualifiedClassName);
+ }
+
+ @Override
+ public boolean loadSpecifications(List<Class<?>> typesToLoad) {
+ return specificationLoaderDelegate.loadSpecifications(typesToLoad);
+ }
+
+
+ @Override
+ public void injectInto(Object candidate) {
+ super.injectInto(candidate);
+ if(specificationLoaderDelegate != null) {
+ specificationLoaderDelegate.injectInto(candidate);
+ }
+ }
+
+}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java (from r1371199, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflector.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflector.java&r1=1371199&r2=1371529&rev=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflector.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java Thu Aug 9 23:16:27 2012
@@ -17,12 +17,25 @@
* under the License.
*/
-package org.apache.isis.core.metamodel.specloader;
+package org.apache.isis.core.metamodel.spec;
+
+import java.util.List;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.commons.debug.DebuggableWithTitle;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+
+public interface SpecificationLoaderSpi extends ApplicationScopedComponent, DebuggableWithTitle, SpecificationLoader {
+
+
+ /**
+ * Specify the classes of the services to pro-actively prime the cache.
+ */
+ void setServiceClasses(List<Class<?>> serviceClasses);
-public interface ObjectReflector extends SpecificationLoader, ApplicationScopedComponent, RuntimeContextAware {
+ /**
+ * Populated as a result of running {@link MetaModelValidator#validate() validation} after all specs have been loaded.
+ */
+ void validateSpecifications();
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpiAware.java (from r1371199, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderProvider.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpiAware.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpiAware.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderProvider.java&r1=1371199&r2=1371529&rev=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderProvider.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpiAware.java Thu Aug 9 23:16:27 2012
@@ -19,8 +19,7 @@
package org.apache.isis.core.metamodel.spec;
+public interface SpecificationLoaderSpiAware {
-public interface SpecificationLoaderProvider {
-
- SpecificationLoader getSpecificationLoader();
+ public void setSpecificationLoaderSpi(SpecificationLoaderSpi specificationLoader);
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java Thu Aug 9 23:16:27 2012
@@ -18,19 +18,19 @@ package org.apache.isis.core.metamodel.s
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
public class ObjectMemberContext {
private final AuthenticationSessionProvider authenticationSessionProvider;
- private final SpecificationLookup specificationLookup;
- private final AdapterMap adapterManager;
+ private final SpecificationLoader specificationLookup;
+ private final AdapterManager adapterManager;
private final QuerySubmitter querySubmitter;
private final CollectionTypeRegistry collectionTypeRegistry;
- public ObjectMemberContext(final AuthenticationSessionProvider authenticationSessionProvider, final SpecificationLookup specificationLookup, final AdapterMap adapterManager, final QuerySubmitter querySubmitter, final CollectionTypeRegistry collectionTypeRegistry) {
+ public ObjectMemberContext(final AuthenticationSessionProvider authenticationSessionProvider, final SpecificationLoader specificationLookup, final AdapterManager adapterManager, final QuerySubmitter querySubmitter, final CollectionTypeRegistry collectionTypeRegistry) {
this.authenticationSessionProvider = authenticationSessionProvider;
this.specificationLookup = specificationLookup;
@@ -43,11 +43,11 @@ public class ObjectMemberContext {
return authenticationSessionProvider;
}
- public SpecificationLookup getSpecificationLookup() {
+ public SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
- public AdapterMap getAdapterManager() {
+ public AdapterManager getAdapterManager() {
return adapterManager;
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java Thu Aug 9 23:16:27 2012
@@ -37,6 +37,7 @@ import com.google.common.collect.Maps;
import org.apache.log4j.Logger;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
@@ -45,7 +46,7 @@ import org.apache.isis.core.commons.exce
import org.apache.isis.core.commons.lang.JavaClassUtils;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
import org.apache.isis.core.metamodel.facetdecorator.FacetDecoratorSet;
@@ -53,7 +54,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectSpecIdFacet;
import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
@@ -62,10 +63,10 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationContext;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
-import org.apache.isis.core.metamodel.spec.SpecificationLookupAware;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
@@ -115,7 +116,7 @@ import org.apache.isis.core.metamodel.sp
* to its <tt>IsisContext</tt>.
*/
-public class ObjectReflectorDefault implements ObjectReflector, DebuggableWithTitle {
+public class ObjectReflectorDefault implements SpecificationLoaderSpi, ApplicationScopedComponent, RuntimeContextAware, DebuggableWithTitle {
private final static Logger LOG = Logger.getLogger(ObjectReflectorDefault.class);
@@ -392,7 +393,7 @@ public class ObjectReflectorDefault impl
private ObjectSpecification createSpecification(final Class<?> cls) {
final AuthenticationSessionProvider authenticationSessionProvider = getRuntimeContext().getAuthenticationSessionProvider();
- final SpecificationLookup specificationLookup = getRuntimeContext().getSpecificationLookup();
+ final SpecificationLoader specificationLookup = getRuntimeContext().getSpecificationLoader();
final ServicesProvider servicesProvider = getRuntimeContext().getServicesProvider();
final ObjectInstantiator objectInstantiator = getRuntimeContext().getObjectInstantiator();
@@ -401,11 +402,11 @@ public class ObjectReflectorDefault impl
if (FreeStandingList.class.isAssignableFrom(cls)) {
return new ObjectSpecificationForFreeStandingList(specContext);
} else {
- final SpecificationLoader specificationLoader = this;
- final AdapterMap adapterMap = getRuntimeContext().getAdapterMap();
+ final SpecificationLoaderSpi specificationLoader = this;
+ final AdapterManager adapterMap = getRuntimeContext().getAdapterMap();
final ObjectMemberContext objectMemberContext = new ObjectMemberContext(authenticationSessionProvider, specificationLookup, adapterMap, getRuntimeContext().getQuerySubmitter(), collectionTypeRegistry);
final IntrospectionContext introspectionContext = new IntrospectionContext(getClassSubstitutor(), getMemberLayoutArranger());
- final DependencyInjector dependencyInjector = getRuntimeContext().getDependencyInjector();
+ final ServicesInjector dependencyInjector = getRuntimeContext().getDependencyInjector();
final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, classSubstitutor, specificationTraverser, facetProcessor);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, introspectionContext, specContext, objectMemberContext, createObjectContext);
@@ -464,12 +465,12 @@ public class ObjectReflectorDefault impl
@Override
public void injectInto(final Object candidate) {
final Class<?> candidateClass = candidate.getClass();
+ if (SpecificationLoaderSpiAware.class.isAssignableFrom(candidateClass)) {
+ final SpecificationLoaderSpiAware cast = SpecificationLoaderSpiAware.class.cast(candidate);
+ cast.setSpecificationLoaderSpi(this);
+ }
if (SpecificationLoaderAware.class.isAssignableFrom(candidateClass)) {
final SpecificationLoaderAware cast = SpecificationLoaderAware.class.cast(candidate);
- cast.setSpecificationLoader(this);
- }
- if (SpecificationLookupAware.class.isAssignableFrom(candidateClass)) {
- final SpecificationLookupAware cast = SpecificationLookupAware.class.cast(candidate);
cast.setSpecificationLookup(this);
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorInstaller.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorInstaller.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorInstaller.java Thu Aug 9 23:16:27 2012
@@ -20,15 +20,16 @@
package org.apache.isis.core.metamodel.specloader;
import org.apache.isis.core.commons.components.Installer;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
/**
- * Installs a {@link ObjectReflector}during system start up.
+ * Installs a {@link SpecificationLoaderSpi} during system start up.
*/
public interface ObjectReflectorInstaller extends Installer {
static String TYPE = "reflector";
- ObjectReflector createReflector();
+ SpecificationLoaderSpi createReflector();
void addFacetDecoratorInstaller(final FacetDecoratorInstaller decoratorInstaller);
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java Thu Aug 9 23:16:27 2012
@@ -16,23 +16,23 @@
*/
package org.apache.isis.core.metamodel.specloader.specimpl;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
-import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
public class CreateObjectContext {
- private final AdapterMap adapterMap;
- private final DependencyInjector dependencyInjector;
+ private final AdapterManager adapterMap;
+ private final ServicesInjector dependencyInjector;
- public CreateObjectContext(final AdapterMap adapterMap, final DependencyInjector dependencyInjector) {
+ public CreateObjectContext(final AdapterManager adapterMap, final ServicesInjector dependencyInjector) {
this.adapterMap = adapterMap;
this.dependencyInjector = dependencyInjector;
}
- public AdapterMap getAdapterMap() {
+ public AdapterManager getAdapterMap() {
return adapterMap;
}
- public DependencyInjector getDependencyInjector() {
+ public ServicesInjector getDependencyInjector() {
return dependencyInjector;
}
}
\ No newline at end of file
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java Thu Aug 9 23:16:27 2012
@@ -47,7 +47,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.methodutils.MethodFinderUtils;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
@@ -124,7 +124,7 @@ public class FacetedMethodsBuilder {
private final ClassSubstitutor classSubstitutor;
- private final SpecificationLoader specificationLoader;
+ private final SpecificationLoaderSpi specificationLoader;
// ////////////////////////////////////////////////////////////////////////////
// Constructor & finalize
@@ -509,7 +509,7 @@ public class FacetedMethodsBuilder {
// Dependencies
// ////////////////////////////////////////////////////////////////////////////
- private SpecificationLoader getSpecificationLoader() {
+ private SpecificationLoaderSpi getSpecificationLoader() {
return specificationLoader;
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilderContext.java Thu Aug 9 23:16:27 2012
@@ -16,18 +16,18 @@
*/
package org.apache.isis.core.metamodel.specloader.specimpl;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
public class FacetedMethodsBuilderContext {
- public final SpecificationLoader specificationLoader;
+ public final SpecificationLoaderSpi specificationLoader;
public final SpecificationTraverser specificationTraverser;
public final FacetProcessor facetProcessor;
public final ClassSubstitutor classSubstitutor;
- public FacetedMethodsBuilderContext(final SpecificationLoader specificationLoader, final ClassSubstitutor classSubstitutor, final SpecificationTraverser specificationTraverser, final FacetProcessor facetProcessor) {
+ public FacetedMethodsBuilderContext(final SpecificationLoaderSpi specificationLoader, final ClassSubstitutor classSubstitutor, final SpecificationTraverser specificationTraverser, final FacetProcessor facetProcessor) {
this.specificationLoader = specificationLoader;
this.classSubstitutor = classSubstitutor;
this.specificationTraverser = specificationTraverser;
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java Thu Aug 9 23:16:27 2012
@@ -32,7 +32,7 @@ import org.apache.isis.core.commons.auth
import org.apache.isis.core.commons.lang.StringUtils;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.consent.Allow;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
@@ -48,7 +48,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.interactions.ActionArgumentContext;
import org.apache.isis.core.metamodel.spec.DomainModelException;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -265,7 +265,7 @@ public abstract class ObjectActionParame
}
}
- protected static void checkChoicesType(final SpecificationLookup specificationLookup, final Object[] objects, final ObjectSpecification paramSpec) {
+ protected static void checkChoicesType(final SpecificationLoader specificationLookup, final Object[] objects, final ObjectSpecification paramSpec) {
for (final Object object : objects) {
final ObjectSpecification componentSpec = specificationLookup.loadSpecification(object.getClass());
if (!componentSpec.isOfType(paramSpec)) {
@@ -303,7 +303,7 @@ public abstract class ObjectActionParame
// Dependencies (from parent)
// /////////////////////////////////////////////////////////////
- protected SpecificationLookup getSpecificationLookup() {
+ protected SpecificationLoader getSpecificationLookup() {
return parentAction.getSpecificationLookup();
}
@@ -311,7 +311,7 @@ public abstract class ObjectActionParame
return parentAction.getAuthenticationSessionProvider();
}
- protected AdapterMap getAdapterMap() {
+ protected AdapterManager getAdapterMap() {
return parentAction.getAdapterMap();
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java Thu Aug 9 23:16:27 2012
@@ -28,7 +28,7 @@ import org.apache.isis.core.commons.auth
import org.apache.isis.core.commons.lang.NameUtils;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -46,14 +46,14 @@ import org.apache.isis.core.metamodel.in
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
public abstract class ObjectMemberAbstract implements ObjectMember {
- public static ObjectSpecification getSpecification(final SpecificationLookup specificationLookup, final Class<?> type) {
+ public static ObjectSpecification getSpecification(final SpecificationLoader specificationLookup, final Class<?> type) {
return type == null ? null : specificationLookup.loadSpecification(type);
}
@@ -62,8 +62,8 @@ public abstract class ObjectMemberAbstra
private final FacetedMethod facetedMethod;
private final FeatureType featureType;
private final AuthenticationSessionProvider authenticationSessionProvider;
- private final SpecificationLookup specificationLookup;
- private final AdapterMap adapterMap;
+ private final SpecificationLoader specificationLookup;
+ private final AdapterManager adapterMap;
private final QuerySubmitter querySubmitter;
private final CollectionTypeRegistry collectionTypeRegistry;
@@ -290,11 +290,11 @@ public abstract class ObjectMemberAbstra
return authenticationSessionProvider;
}
- public SpecificationLookup getSpecificationLookup() {
+ public SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
- public AdapterMap getAdapterMap() {
+ public AdapterManager getAdapterMap() {
return adapterMap;
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java Thu Aug 9 23:16:27 2012
@@ -77,7 +77,7 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
import org.apache.isis.core.metamodel.spec.Persistability;
import org.apache.isis.core.metamodel.spec.SpecificationContext;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -109,7 +109,7 @@ public abstract class ObjectSpecificatio
private final AuthenticationSessionProvider authenticationSessionProvider;
private final ServicesProvider servicesProvider;
private final ObjectInstantiator objectInstantiator;
- private final SpecificationLookup specificationLookup;
+ private final SpecificationLoader specificationLookup;
private final List<ObjectAction> objectActions = Lists.newArrayList();
private final List<ObjectAssociation> associations = Lists.newArrayList();
@@ -977,7 +977,7 @@ public abstract class ObjectSpecificatio
return objectInstantiator;
}
- public SpecificationLookup getSpecificationLookup() {
+ public SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java Thu Aug 9 23:16:27 2012
@@ -42,7 +42,7 @@ import org.apache.isis.core.commons.lang
import org.apache.isis.core.commons.lang.NameUtils;
import org.apache.isis.core.commons.lang.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.exceptions.MetaModelException;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -59,7 +59,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
import org.apache.isis.core.metamodel.layout.OrderSet;
-import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectActionSet;
import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
@@ -448,7 +448,7 @@ public class ObjectSpecificationDefault
for (int i = 0; i < fields.size(); i++) {
fields.get(i).toDefault(adapter);
}
- getDependencyInjector().injectDependenciesInto(adapter.getObject());
+ getDependencyInjector().injectServicesInto(adapter.getObject());
CallbackUtils.callCallback(adapter, CreatedCallbackFacet.class);
@@ -533,11 +533,11 @@ public class ObjectSpecificationDefault
// Dependencies (from constructor)
// //////////////////////////////////////////////////////////////////
- protected AdapterMap getAdapterMap() {
+ protected AdapterManager getAdapterMap() {
return createObjectContext.getAdapterMap();
}
- protected DependencyInjector getDependencyInjector() {
+ protected ServicesInjector getDependencyInjector() {
return createObjectContext.getDependencyInjector();
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/traverser/SpecificationTraverserDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/traverser/SpecificationTraverserDefault.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/traverser/SpecificationTraverserDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/traverser/SpecificationTraverserDefault.java Thu Aug 9 23:16:27 2012
@@ -27,12 +27,12 @@ import java.lang.reflect.Method;
import java.util.List;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
-public class SpecificationTraverserDefault implements SpecificationTraverser, SpecificationLoaderAware {
+public class SpecificationTraverserDefault implements SpecificationTraverser, SpecificationLoaderSpiAware {
- private SpecificationLoader specificationLoader;
+ private SpecificationLoaderSpi specificationLoaderSpi;
// ////////////////////////////////////////////////////////////////////
// init, shutdown
@@ -40,7 +40,7 @@ public class SpecificationTraverserDefau
@Override
public void init() {
- ensureThatState(specificationLoader, is(notNullValue()));
+ ensureThatState(specificationLoaderSpi, is(notNullValue()));
}
@Override
@@ -77,13 +77,13 @@ public class SpecificationTraverserDefau
// Dependencies (due to *Aware)
// ////////////////////////////////////////////////////////////////////
- public SpecificationLoader getSpecificationLoader() {
- return specificationLoader;
+ public SpecificationLoaderSpi getSpecificationLoaderSpi() {
+ return specificationLoaderSpi;
}
@Override
- public void setSpecificationLoader(final SpecificationLoader specificationLoader) {
- this.specificationLoader = specificationLoader;
+ public void setSpecificationLoaderSpi(final SpecificationLoaderSpi specificationLoader) {
+ this.specificationLoaderSpi = specificationLoader;
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidator.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidator.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidator.java Thu Aug 9 23:16:27 2012
@@ -20,9 +20,9 @@
package org.apache.isis.core.metamodel.specloader.validator;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
-public interface MetaModelValidator extends SpecificationLoaderAware, ApplicationScopedComponent {
+public interface MetaModelValidator extends SpecificationLoaderSpiAware, ApplicationScopedComponent {
public void validate() throws MetaModelInvalidException;
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java Thu Aug 9 23:16:27 2012
@@ -23,11 +23,11 @@ import static org.apache.isis.core.commo
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
public abstract class MetaModelValidatorAbstract implements MetaModelValidator {
- private SpecificationLoader specificationLoader;
+ private SpecificationLoaderSpi specificationLoaderSpi;
// ////////////////////////////////////////////////////////////////////
// init, shutdown
@@ -35,7 +35,7 @@ public abstract class MetaModelValidator
@Override
public void init() {
- ensureThatState(specificationLoader, is(notNullValue()));
+ ensureThatState(specificationLoaderSpi, is(notNullValue()));
}
@Override
@@ -46,13 +46,13 @@ public abstract class MetaModelValidator
// Dependencies (due to *Aware)
// ////////////////////////////////////////////////////////////////////
- public SpecificationLoader getSpecificationLoader() {
- return specificationLoader;
+ public SpecificationLoaderSpi getSpecificationLoaderSpi() {
+ return specificationLoaderSpi;
}
@Override
- public void setSpecificationLoader(final SpecificationLoader specificationLoader) {
- this.specificationLoader = specificationLoader;
+ public void setSpecificationLoaderSpi(final SpecificationLoaderSpi specificationLoader) {
+ this.specificationLoaderSpi = specificationLoader;
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorAbstractTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorAbstractTest.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorAbstractTest.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorAbstractTest.java Thu Aug 9 23:16:27 2012
@@ -22,27 +22,31 @@ package org.apache.isis.core.metamodel.s
import java.util.Arrays;
import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.auto.Mock;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
-@RunWith(JMock.class)
public class ServicesInjectorAbstractTest {
- private final Mockery mockery = new JUnit4Mockery();
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
- private ServicesInjectorAbstract injector;
+ @Mock
private DomainObjectContainerExtended mockContainer;
+ @Mock
private Service1 mockService1;
+ @Mock
private Service2 mockService2;
-
+ @Mock
private SomeDomainObject mockDomainObject;
+
+ private ServicesInjectorSpi injector;
static interface Service1 {
}
@@ -58,22 +62,14 @@ public class ServicesInjectorAbstractTes
static interface SomeDomainObject {
public void setContainer(DomainObjectContainer container);
-
public void setMixin(Mixin mixin);
-
public void setService1(Service1 service);
-
public void setService2(Service2 service);
}
@Before
public void setUp() throws Exception {
- mockDomainObject = mockery.mock(SomeDomainObject.class);
- mockContainer = mockery.mock(DomainObjectContainerExtended.class);
- mockService1 = mockery.mock(Service1.class);
- mockService2 = mockery.mock(Service2.class);
- injector = new ServicesInjectorAbstract() {
- };
+ injector = new ServicesInjectorDefault();
}
@After
@@ -86,7 +82,7 @@ public class ServicesInjectorAbstractTes
final Object[] services = { mockService1, mockService2 };
injector.setServices(Arrays.asList(services));
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
one(mockDomainObject).setContainer(mockContainer);
one(mockDomainObject).setMixin(mockContainer);
@@ -95,7 +91,7 @@ public class ServicesInjectorAbstractTes
}
});
- injector.injectDependenciesInto(mockDomainObject);
+ injector.injectServicesInto(mockDomainObject);
}
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/app/IsisMetaModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/app/IsisMetaModel.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/app/IsisMetaModel.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/app/IsisMetaModel.java Thu Aug 9 23:16:27 2012
@@ -39,12 +39,12 @@ import org.apache.isis.core.commons.conf
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.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+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.classsubstitutor.ClassSubstitutorAbstract;
@@ -152,7 +152,7 @@ public class IsisMetaModel implements Ap
*
* <p>
* To obtain the instantiated services, use the
- * {@link ServicesInjector#getRegisteredServices()} (available from
+ * {@link ServicesInjectorSpi#getRegisteredServices()} (available from
* {@link #getServicesInjector()}).
*/
public List<Object> getServices() {
@@ -196,7 +196,7 @@ public class IsisMetaModel implements Ap
/**
* Available once {@link #init() initialized}.
*/
- public SpecificationLoader getSpecificationLoader() {
+ public SpecificationLoaderSpi getSpecificationLoader() {
return reflector;
}
@@ -219,7 +219,7 @@ public class IsisMetaModel implements Ap
/**
* Available once {@link #init() initialized}.
*/
- public DependencyInjector getDependencyInjector() {
+ public ServicesInjector getDependencyInjector() {
ensureInitialized();
return runtimeContext.getDependencyInjector();
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/CollectionUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/CollectionUtils.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/CollectionUtils.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/CollectionUtils.java Thu Aug 9 23:16:27 2012
@@ -20,7 +20,7 @@
package org.apache.isis.core.progmodel.facets;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -29,7 +29,7 @@ public final class CollectionUtils {
private CollectionUtils() {
}
- public static Object[] getCollectionAsObjectArray(final Object option, final ObjectSpecification spec, final AdapterMap adapterMap) {
+ public static Object[] getCollectionAsObjectArray(final Object option, final ObjectSpecification spec, final AdapterManager adapterMap) {
final ObjectAdapter collection = adapterMap.adapterFor(option);
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
final Object[] optionArray = new Object[facet.size(collection)];
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java Thu Aug 9 23:16:27 2012
@@ -23,8 +23,8 @@ import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.NameUtils;
import org.apache.isis.core.commons.lang.StringUtils;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMapAware;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManagerAware;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -48,14 +48,14 @@ import org.apache.isis.core.progmodel.fa
* and {@link DebugFacet}. In addition a {@link NamedFacet} is inferred from the
* name (taking into account the above well-known prefixes).
*/
-public class ActionInvocationFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterMapAware {
+public class ActionInvocationFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterManagerAware {
private static final String EXPLORATION_PREFIX = "Exploration";
private static final String DEBUG_PREFIX = "Debug";
private static final String[] PREFIXES = { EXPLORATION_PREFIX, DEBUG_PREFIX, ExecutedFacet.Where.REMOTE_PREFIX, ExecutedFacet.Where.LOCAL_PREFIX };
- private AdapterMap adapterMap;
+ private AdapterManager adapterManager;
/**
* Note that the {@link Facet}s registered are the generic ones from
@@ -105,7 +105,7 @@ public class ActionInvocationFacetFactor
final ObjectSpecification typeSpec = getSpecificationLookup().loadSpecification(cls);
final FacetHolder holder = processMethodContext.getFacetHolder();
- FacetUtil.addFacet(new ActionInvocationFacetViaMethod(actionMethod, typeSpec, returnSpec, holder, getAdapterMap()));
+ FacetUtil.addFacet(new ActionInvocationFacetViaMethod(actionMethod, typeSpec, returnSpec, holder, getAdapterManager()));
} finally {
processMethodContext.removeMethod(actionMethod);
}
@@ -177,12 +177,12 @@ public class ActionInvocationFacetFactor
// ///////////////////////////////////////////////////////////////
@Override
- public void setAdapterMap(final AdapterMap adapterMap) {
- this.adapterMap = adapterMap;
+ public void setAdapterManager(final AdapterManager adapterMap) {
+ this.adapterManager = adapterMap;
}
- private AdapterMap getAdapterMap() {
- return adapterMap;
+ private AdapterManager getAdapterManager() {
+ return adapterManager;
}
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java Thu Aug 9 23:16:27 2012
@@ -27,7 +27,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
import org.apache.isis.core.metamodel.adapter.util.InvokeUtils;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
@@ -46,9 +46,9 @@ public class ActionInvocationFacetViaMet
private final ObjectSpecification onType;
private final ObjectSpecification returnType;
- private final AdapterMap adapterMap;
+ private final AdapterManager adapterMap;
- public ActionInvocationFacetViaMethod(final Method method, final ObjectSpecification onType, final ObjectSpecification returnType, final FacetHolder holder, final AdapterMap adapterMap) {
+ public ActionInvocationFacetViaMethod(final Method method, final ObjectSpecification onType, final ObjectSpecification returnType, final FacetHolder holder, final AdapterManager adapterMap) {
super(holder);
this.method = method;
this.paramCount = method.getParameterTypes().length;
@@ -139,7 +139,7 @@ public class ActionInvocationFacetViaMet
// Dependencies (from constructor)
// /////////////////////////////////////////////////////////
- private AdapterMap getAdapterMap() {
+ private AdapterManager getAdapterMap() {
return adapterMap;
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/typeof/annotation/TypeOfFacetAnnotationForAction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/typeof/annotation/TypeOfFacetAnnotationForAction.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/typeof/annotation/TypeOfFacetAnnotationForAction.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/typeof/annotation/TypeOfFacetAnnotationForAction.java Thu Aug 9 23:16:27 2012
@@ -21,11 +21,11 @@ package org.apache.isis.core.progmodel.f
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.typeof.TypeOfFacetAbstract;
-import org.apache.isis.core.metamodel.spec.SpecificationLookup;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
public class TypeOfFacetAnnotationForAction extends TypeOfFacetAbstract {
- public TypeOfFacetAnnotationForAction(final Class<?> type, final FacetHolder holder, final SpecificationLookup specificationLookup) {
+ public TypeOfFacetAnnotationForAction(final Class<?> type, final FacetHolder holder, final SpecificationLoader specificationLookup) {
super(type, holder, specificationLookup);
}
Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/clear/CollectionClearFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/clear/CollectionClearFacetFactory.java?rev=1371529&r1=1371528&r2=1371529&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/clear/CollectionClearFacetFactory.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/clear/CollectionClearFacetFactory.java Thu Aug 9 23:16:27 2012
@@ -24,8 +24,8 @@ import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.NameUtils;
import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
import org.apache.isis.core.metamodel.adapter.ObjectDirtierAware;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
-import org.apache.isis.core.metamodel.adapter.map.AdapterMapAware;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.map.AdapterManagerAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -35,11 +35,11 @@ import org.apache.isis.core.progmodel.fa
import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
import org.apache.isis.core.progmodel.facets.MethodPrefixConstants;
-public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterMapAware, ObjectDirtierAware {
+public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterManagerAware, ObjectDirtierAware {
private static final String[] PREFIXES = { MethodPrefixConstants.CLEAR_PREFIX };
- private AdapterMap adapterMap;
+ private AdapterManager adapterManager;
private ObjectDirtier objectDirtier;
public CollectionClearFacetFactory() {
@@ -69,7 +69,7 @@ public class CollectionClearFacetFactory
if (clearMethodIfAny != null) {
return new CollectionClearFacetViaMethod(clearMethodIfAny, collection);
} else {
- return new CollectionClearFacetViaAccessor(accessorMethod, collection, getAdapterMap(), getObjectDirtier());
+ return new CollectionClearFacetViaAccessor(accessorMethod, collection, getAdapterManager(), getObjectDirtier());
}
}
@@ -77,13 +77,13 @@ public class CollectionClearFacetFactory
// Dependencies (injected)
// ///////////////////////////////////////////////////////
- protected AdapterMap getAdapterMap() {
- return adapterMap;
+ protected AdapterManager getAdapterManager() {
+ return adapterManager;
}
@Override
- public void setAdapterMap(final AdapterMap adapterMap) {
- this.adapterMap = adapterMap;
+ public void setAdapterManager(final AdapterManager adapterMap) {
+ this.adapterManager = adapterMap;
}
protected ObjectDirtier getObjectDirtier() {