You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/02/19 18:42:28 UTC

svn commit: r1660951 - in /sling/trunk/testing/mocks/sling-mock: ./ src/main/java/org/apache/sling/testing/mock/sling/ src/main/java/org/apache/sling/testing/mock/sling/context/ src/main/java/org/apache/sling/testing/mock/sling/junit/ src/main/java/org...

Author: sseifert
Date: Thu Feb 19 17:42:27 2015
New Revision: 1660951

URL: http://svn.apache.org/r1660951
Log:
SLING-4434 refactor integration with sling models: remove MockModelAdapterFactory and directly integrate the original ModelAdapterFactory using the new osgi mock dynamic service reference feature

Added:
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java
      - copied, changed from r1660869, sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java
    sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java
      - copied, changed from r1660869, sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java
Removed:
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java
    sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java
Modified:
    sling/trunk/testing/mocks/sling-mock/pom.xml
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/package-info.java
    sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java

Modified: sling/trunk/testing/mocks/sling-mock/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/pom.xml?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/pom.xml (original)
+++ sling/trunk/testing/mocks/sling-mock/pom.xml Thu Feb 19 17:42:27 2015
@@ -49,7 +49,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
-            <version>1.1.0</version>
+            <version>1.1.1-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
         <dependency>

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java Thu Feb 19 17:42:27 2015
@@ -46,11 +46,13 @@ class MockAdapterManager implements Adap
         if (this.bundleContext != null) {
             try {
                 ServiceReference[] references = bundleContext.getServiceReferences(AdapterFactory.class.getName(), null);
-                for (ServiceReference serviceReference : references) {
-                    AdapterFactory adapterFactory = (AdapterFactory) bundleContext.getService(serviceReference);
-                    AdapterType instance = adapterFactory.getAdapter(adaptable, type);
-                    if (instance != null) {
-                        return instance;
+                if (references != null) {
+                    for (ServiceReference serviceReference : references) {
+                        AdapterFactory adapterFactory = (AdapterFactory) bundleContext.getService(serviceReference);
+                        AdapterType instance = adapterFactory.getAdapter(adaptable, type);
+                        if (instance != null) {
+                            return instance;
+                        }
                     }
                 }
             } catch (InvalidSyntaxException ex) {

Copied: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java (from r1660869, sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java)
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java?p2=sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java&p1=sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java&r1=1660869&r2=1660951&rev=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtil.java Thu Feb 19 17:42:27 2015
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.testing.mock.sling.services;
+package org.apache.sling.testing.mock.sling.context;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -24,104 +24,28 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Dictionary;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
 
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.api.adapter.AdapterFactory;
 import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.impl.ModelAdapterFactory;
-import org.apache.sling.models.spi.ImplementationPicker;
-import org.apache.sling.models.spi.Injector;
-import org.apache.sling.models.spi.injectorspecific.InjectAnnotationProcessorFactory;
 import org.apache.sling.testing.mock.osgi.MockOsgi;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleException;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.Version;
-import org.osgi.service.component.ComponentContext;
 import org.reflections.Reflections;
 
 /**
- * Mock {@link ModelAdapterFactory} implementation.
+ * Helper methos for simulating sling models bundle events.
  */
-@Component(inherit = false)
-@Service(AdapterFactory.class)
-public final class MockModelAdapterFactory extends ModelAdapterFactory {
-
-    private final BundleContext bundleContext;
-
-    /**
-     * @param componentContext OSGi component context
-     */
-    public MockModelAdapterFactory(ComponentContext componentContext) {
-        bundleContext = componentContext.getBundleContext();
-
-        // register service listener to collect injectors
-        // this allows detecting injectors even if they are registered after this bundle
-        // (which is otherwise currently not supported in the osgi mock environment)
-        bundleContext.addServiceListener(new InjectorServiceListener());
-
-        // activate service in simulated OSGi environment
-        activate(componentContext);
-    }
-
-    /**
-     * Constructor with default component context
-     */
-    public MockModelAdapterFactory() {
-        this(MockOsgi.newComponentContext());
-    }
-
-    private class InjectorServiceListener implements ServiceListener {
-
-        @Override
-        public void serviceChanged(ServiceEvent event) {
-            Object service = bundleContext.getService(event.getServiceReference());
-            if (service instanceof Injector) {
-                if (event.getType() == ServiceEvent.REGISTERED) {
-                    bindInjector((Injector) service, getServiceProperties(event.getServiceReference()));
-                } else if (event.getType() == ServiceEvent.UNREGISTERING) {
-                    unbindInjector((Injector) service, getServiceProperties(event.getServiceReference()));
-                }
-            }
-            if (service instanceof InjectAnnotationProcessorFactory) {
-                if (event.getType() == ServiceEvent.REGISTERED) {
-                    bindInjectAnnotationProcessorFactory((InjectAnnotationProcessorFactory) service,
-                            getServiceProperties(event.getServiceReference()));
-                } else if (event.getType() == ServiceEvent.UNREGISTERING) {
-                    unbindInjectAnnotationProcessorFactory((InjectAnnotationProcessorFactory) service,
-                            getServiceProperties(event.getServiceReference()));
-                }
-            }
-            if (service instanceof ImplementationPicker) {
-                if (event.getType() == ServiceEvent.REGISTERED) {
-                    bindImplementationPicker((ImplementationPicker) service,
-                            getServiceProperties(event.getServiceReference()));
-                } else if (event.getType() == ServiceEvent.UNREGISTERING) {
-                    unbindImplementationPicker((ImplementationPicker) service,
-                            getServiceProperties(event.getServiceReference()));
-                }
-            }
-        }
-
-        private Map<String, Object> getServiceProperties(ServiceReference reference) {
-            Map<String, Object> props = new HashMap<String, Object>();
-            String[] propertyKeys = reference.getPropertyKeys();
-            for (String key : propertyKeys) {
-                props.put(key, reference.getProperty(key));
-            }
-            return props;
-        }
-
+final class ModelAdapterFactoryUtil {
+    
+    private ModelAdapterFactoryUtil() {
+        // static methods only
     }
 
     /**
@@ -129,21 +53,23 @@ public final class MockModelAdapterFacto
      * register all classes with @Model annotation.
      * @param packageName Java package name
      */
-    public void addModelsForPackage(String packageName) {
-        Bundle bundle = new ModelsPackageBundle(packageName, Bundle.ACTIVE);
+    public static void addModelsForPackage(String packageName, BundleContext bundleContext) {
+        Bundle bundle = new ModelsPackageBundle(packageName, Bundle.ACTIVE, bundleContext);
         BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle);
-        MockOsgi.sendBundleEvent(this.bundleContext, event);
+        MockOsgi.sendBundleEvent(bundleContext, event);
     }
 
     @SuppressWarnings("unused")
-    private class ModelsPackageBundle implements Bundle {
+    private static class ModelsPackageBundle implements Bundle {
 
         private final String packageName;
         private final int state;
+        private final BundleContext bundleContext;
 
-        public ModelsPackageBundle(String packageName, int state) {
+        public ModelsPackageBundle(String packageName, int state, BundleContext bundleContext) {
             this.packageName = packageName;
             this.state = state;
+            this.bundleContext = bundleContext;
         }
 
         @Override

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java Thu Feb 19 17:42:27 2015
@@ -23,7 +23,6 @@ import java.util.Set;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.apache.sling.api.adapter.AdapterFactory;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -32,6 +31,7 @@ import org.apache.sling.api.scripting.Sl
 import org.apache.sling.api.scripting.SlingScriptHelper;
 import org.apache.sling.commons.mime.MimeTypeService;
 import org.apache.sling.models.impl.FirstImplementationPicker;
+import org.apache.sling.models.impl.ModelAdapterFactory;
 import org.apache.sling.models.impl.injectors.BindingsInjector;
 import org.apache.sling.models.impl.injectors.ChildResourceInjector;
 import org.apache.sling.models.impl.injectors.OSGiServiceInjector;
@@ -41,7 +41,6 @@ import org.apache.sling.models.impl.inje
 import org.apache.sling.models.impl.injectors.SlingObjectInjector;
 import org.apache.sling.models.impl.injectors.ValueMapInjector;
 import org.apache.sling.models.spi.ImplementationPicker;
-import org.apache.sling.models.spi.Injector;
 import org.apache.sling.settings.SlingSettingsService;
 import org.apache.sling.testing.mock.osgi.context.OsgiContextImpl;
 import org.apache.sling.testing.mock.sling.MockSling;
@@ -49,7 +48,6 @@ import org.apache.sling.testing.mock.sli
 import org.apache.sling.testing.mock.sling.builder.ContentBuilder;
 import org.apache.sling.testing.mock.sling.loader.ContentLoader;
 import org.apache.sling.testing.mock.sling.services.MockMimeTypeService;
-import org.apache.sling.testing.mock.sling.services.MockModelAdapterFactory;
 import org.apache.sling.testing.mock.sling.services.MockSlingSettingService;
 import org.apache.sling.testing.mock.sling.servlet.MockRequestPathInfo;
 import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest;
@@ -72,7 +70,6 @@ public class SlingContextImpl extends Os
     static final Set<String> DEFAULT_RUN_MODES = ImmutableSet.<String> builder().add("publish").build();
 
     protected ResourceResolverFactory resourceResolverFactory;
-    protected MockModelAdapterFactory modelAdapterFactory;
     protected ResourceResolverType resourceResolverType;
     protected ResourceResolver resourceResolver;
     protected MockSlingHttpServletRequest request;
@@ -115,20 +112,17 @@ public class SlingContextImpl extends Os
         registerService(ResourceResolverFactory.class, this.resourceResolverFactory);
         
         // adapter factories
-        modelAdapterFactory = new MockModelAdapterFactory(componentContext());
-        registerService(AdapterFactory.class, modelAdapterFactory);
+        registerInjectActivateService(new ModelAdapterFactory());
 
         // sling models injectors
-        registerService(Injector.class, new BindingsInjector());
-        registerService(Injector.class, new ChildResourceInjector());
-        OSGiServiceInjector osgiServiceInjector = new OSGiServiceInjector();
-        osgiServiceInjector.activate(componentContext());
-        registerService(Injector.class, osgiServiceInjector);
-        registerService(Injector.class, new RequestAttributeInjector());
-        registerService(Injector.class, new ResourcePathInjector());
-        registerService(Injector.class, new SelfInjector());
-        registerService(Injector.class, new SlingObjectInjector());
-        registerService(Injector.class, new ValueMapInjector());
+        registerInjectActivateService(new BindingsInjector());
+        registerInjectActivateService(new ChildResourceInjector());
+        registerInjectActivateService(new OSGiServiceInjector());
+        registerInjectActivateService(new RequestAttributeInjector());
+        registerInjectActivateService(new ResourcePathInjector());
+        registerInjectActivateService(new SelfInjector());
+        registerInjectActivateService(new SlingObjectInjector());
+        registerInjectActivateService(new ValueMapInjector());
 
         // sling models implementation pickers
         registerService(ImplementationPicker.class, new FirstImplementationPicker());
@@ -156,7 +150,6 @@ public class SlingContextImpl extends Os
             }
         }
 
-        this.modelAdapterFactory = null;
         this.componentContext = null;
         this.resourceResolver = null;
         this.request = null;
@@ -296,7 +289,7 @@ public class SlingContextImpl extends Os
      * @param packageName Java package name
      */
     public final void addModelsForPackage(String packageName) {
-        this.modelAdapterFactory.addModelsForPackage(packageName);
+        ModelAdapterFactoryUtil.addModelsForPackage(packageName, bundleContext());
     }
 
     /**

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java Thu Feb 19 17:42:27 2015
@@ -19,5 +19,5 @@
 /**
  * Sling context implementation for unit tests.
  */
-@aQute.bnd.annotation.Version("2.0")
+@aQute.bnd.annotation.Version("3.0")
 package org.apache.sling.testing.mock.sling.context;

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java Thu Feb 19 17:42:27 2015
@@ -19,5 +19,5 @@
 /**
  * Rule for providing easy access to Sling context in JUnit tests.
  */
-@aQute.bnd.annotation.Version("2.0")
+@aQute.bnd.annotation.Version("3.0")
 package org.apache.sling.testing.mock.sling.junit;

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/package-info.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/package-info.java Thu Feb 19 17:42:27 2015
@@ -19,5 +19,5 @@
 /**
  * Mocks for selected Sling services.
  */
-@aQute.bnd.annotation.Version("1.0")
+@aQute.bnd.annotation.Version("2.0")
 package org.apache.sling.testing.mock.sling.services;

Copied: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java (from r1660869, sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java)
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java?p2=sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java&p1=sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java&r1=1660869&r2=1660951&rev=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/ModelAdapterFactoryUtilTest.java Thu Feb 19 17:42:27 2015
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.testing.mock.sling.services;
+package org.apache.sling.testing.mock.sling.context;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -25,50 +25,27 @@ import static org.junit.Assert.assertNul
 import javax.inject.Inject;
 
 import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.adapter.AdapterFactory;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.mime.MimeTypeService;
 import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.impl.FirstImplementationPicker;
-import org.apache.sling.models.impl.injectors.OSGiServiceInjector;
-import org.apache.sling.models.impl.injectors.RequestAttributeInjector;
-import org.apache.sling.models.spi.ImplementationPicker;
-import org.apache.sling.models.spi.Injector;
-import org.apache.sling.testing.mock.osgi.MockOsgi;
 import org.apache.sling.testing.mock.sling.MockSling;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
+import org.apache.sling.testing.mock.sling.services.MockMimeTypeService;
 import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.component.ComponentContext;
 
-public class MockModelAdapterFactoryTest {
-
-    private ComponentContext componentContext;
-    private BundleContext bundleContext;
+public class ModelAdapterFactoryUtilTest {
 
+    @Rule
+    public SlingContext context = new SlingContext();
+    
     @Before
     public void setUp() throws Exception {
-        componentContext = MockOsgi.newComponentContext();
-        bundleContext = componentContext.getBundleContext();
-        MockSling.setAdapterManagerBundleContext(bundleContext);
-
-        // register sling models adapter factory
-        MockModelAdapterFactory mockModelAdapterFactory = new MockModelAdapterFactory(componentContext);
-        bundleContext.registerService(AdapterFactory.class.getName(), mockModelAdapterFactory, null);
-
-        // register some injectors
-        bundleContext.registerService(Injector.class.getName(), new RequestAttributeInjector(), null);
-        OSGiServiceInjector osgiServiceInjector = new OSGiServiceInjector();
-        osgiServiceInjector.activate(componentContext);
-        bundleContext.registerService(Injector.class.getName(), osgiServiceInjector, null);
-
-        // register implementation pickers
-        bundleContext.registerService(ImplementationPicker.class.getName(), new FirstImplementationPicker(), null);
-
         // scan for @Model classes
-        mockModelAdapterFactory.addModelsForPackage("org.apache.sling.testing.mock.sling.services");
+        context.addModelsForPackage("org.apache.sling.testing.mock.sling.context");
     }
 
     @After
@@ -87,7 +64,7 @@ public class MockModelAdapterFactoryTest
 
     @Test
     public void testOsgiService() {
-        bundleContext.registerService(MimeTypeService.class.getName(), new MockMimeTypeService(), null);
+        context.registerService(MimeTypeService.class, new MockMimeTypeService(), null);
 
         ResourceResolver resolver = MockSling.newResourceResolver();
         OsgiServiceModel model = resolver.adaptTo(OsgiServiceModel.class);

Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java?rev=1660951&r1=1660950&r2=1660951&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java Thu Feb 19 17:42:27 2015
@@ -55,6 +55,8 @@ public class SlingContextImplTest {
         this.context.setResourceResolverType(ResourceResolverType.RESOURCERESOLVER_MOCK);
         this.context.setUp();
 
+        context.addModelsForPackage("org.apache.sling.testing.mock.sling.context");
+        
         ContentLoader contentLoader = this.context.load();
         contentLoader.json("/json-import-samples/content.json", "/content/sample/en");
     }
@@ -129,8 +131,6 @@ public class SlingContextImplTest {
 
     @Test
     public void testAdaptToInterface() {
-        context.addModelsForPackage("org.apache.sling.testing.mock.sling.context");
-
         MockSlingHttpServletRequest request = new MockSlingHttpServletRequest();
         request.setAttribute("prop1", "myValue");
         ServiceInterface model = request.adaptTo(ServiceInterface.class);