You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2017/02/02 09:33:47 UTC

svn commit: r1781360 [2/2] - in /felix/trunk/osgi-r7/scr/src: main/java/org/apache/felix/scr/impl/inject/ main/java/org/apache/felix/scr/impl/inject/field/ main/java/org/apache/felix/scr/impl/inject/methods/ main/java/org/apache/felix/scr/impl/manager/...

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleRefPair.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleRefPair.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleRefPair.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleRefPair.java Thu Feb  2 09:33:47 2017
@@ -22,13 +22,12 @@ package org.apache.felix.scr.impl.manage
 
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.felix.scr.impl.helper.SimpleLogger;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.log.LogService;
 
 /**
- * @version $Rev:$ $Date:$
+ * @version $Rev$ $Date$
  */
 public class SingleRefPair<S, T> extends RefPair<S, T>
 {
@@ -39,11 +38,13 @@ public class SingleRefPair<S, T> extends
         super(ref);
     }
 
+    @Override
     public T getServiceObject(ComponentContextImpl<S> key)
     {
         return serviceObjectRef.get();
     }
 
+    @Override
     public boolean setServiceObject( ComponentContextImpl<S> key, T serviceObject )
     {
         boolean set = serviceObjectRef.compareAndSet( null, serviceObject );
@@ -53,7 +54,8 @@ public class SingleRefPair<S, T> extends
         }
         return set;
     }
-    
+
+    @Override
     public T unsetServiceObject(ComponentContextImpl<S> key)
     {
         return serviceObjectRef.getAndSet( null );
@@ -66,14 +68,13 @@ public class SingleRefPair<S, T> extends
     }
 
     @Override
-    public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context,
-        SimpleLogger logger)
+    public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context)
     {
         T service = context.getService( getRef() );
         if ( service == null )
         {
             setFailed();
-            logger.log(
+            key.getLogger().log(
                  LogService.LOG_WARNING,
                  "Could not get service from ref {0}", new Object[] {getRef()}, null );
             return false;

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlConstants.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlConstants.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlConstants.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlConstants.java Thu Feb  2 09:33:47 2017
@@ -78,6 +78,7 @@ public abstract class XmlConstants
     public static final String ATTR_ENTRY = "entry";
     public static final String ATTR_FACTORY = "factory";
     public static final String ATTR_IMMEDIATE = "immediate";
+    public static final String ATTR_INTERFACE = "interface";
     public static final String ATTR_MODIFIED = "modified";
     public static final String ATTR_NAME = "name";
     public static final String ATTR_TYPE = "type";
@@ -99,6 +100,7 @@ public abstract class XmlConstants
     // mapping of namespace URI to namespace code
     public static final Map<String, DSVersion> NAMESPACE_CODE_MAP;
 
+
     static
     {
         NAMESPACE_CODE_MAP = new HashMap<String, DSVersion>();

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java Thu Feb  2 09:33:47 2017
@@ -152,9 +152,9 @@ public class XmlHandler implements KXml2
                     m_currentComponent = new ComponentMetadata( namespaceCode );
 
                     // name attribute is optional (since DS 1.1)
-                    if ( attributes.getAttribute( "name" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_NAME ) != null )
                     {
-                        m_currentComponent.setName( attributes.getAttribute( "name" ) );
+                        m_currentComponent.setName( attributes.getAttribute( XmlConstants.ATTR_NAME ) );
                     }
 
                     // enabled attribute is optional
@@ -253,18 +253,18 @@ public class XmlHandler implements KXml2
                     PropertyMetadata prop = new PropertyMetadata();
 
                     // name attribute is mandatory
-                    prop.setName( attributes.getAttribute( "name" ) );
+                    prop.setName( attributes.getAttribute( XmlConstants.ATTR_NAME ) );
 
                     // type attribute is optional
-                    if ( attributes.getAttribute( "type" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_TYPE ) != null )
                     {
-                        prop.setType( attributes.getAttribute( "type" ) );
+                        prop.setType( attributes.getAttribute( XmlConstants.ATTR_TYPE ) );
                     }
 
                     // 112.4.5: If the value attribute is specified, the body of the element is ignored.
-                    if ( attributes.getAttribute( "value" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_VALUE ) != null )
                     {
-                        prop.setValue( attributes.getAttribute( "value" ) );
+                        prop.setValue( attributes.getAttribute( XmlConstants.ATTR_VALUE ) );
                         m_currentComponent.addProperty( prop );
                     }
                     else
@@ -287,24 +287,24 @@ public class XmlHandler implements KXml2
                     }
 
                 }
-                // TODO Section [...] Factory Property Elements
+                // 112.4.9 [...] Factory Property Element
                 else if ( localName.equals( XmlConstants.EL_FACTORY_PROPERTY ) )
                 {
                     PropertyMetadata prop = new PropertyMetadata();
 
                     // name attribute is mandatory
-                    prop.setName( attributes.getAttribute( "name" ) );
+                    prop.setName( attributes.getAttribute( XmlConstants.ATTR_NAME ) );
 
                     // type attribute is optional
-                    if ( attributes.getAttribute( "type" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_TYPE ) != null )
                     {
-                        prop.setType( attributes.getAttribute( "type" ) );
+                        prop.setType( attributes.getAttribute( XmlConstants.ATTR_TYPE ) );
                     }
 
                     // 112.4.5: If the value attribute is specified, the body of the element is ignored.
-                    if ( attributes.getAttribute( "value" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_VALUE ) != null )
                     {
-                        prop.setValue( attributes.getAttribute( "value" ) );
+                        prop.setValue( attributes.getAttribute( XmlConstants.ATTR_VALUE ) );
                         m_currentComponent.addFactoryProperty( prop );
                     }
                     else
@@ -313,7 +313,7 @@ public class XmlHandler implements KXml2
                         m_pendingFactoryProperty = prop;
                     }
                 }
-                // TODO Section [...] Factory Properties [...] Elements
+                // 112.4.9 [...] Factory Properties Element
                 else if ( localName.equals( XmlConstants.EL_FACTORY_PROPERTIES ) )
                 {
                     final Properties props = readPropertiesEntry( attributes.getAttribute( "entry" ) );
@@ -347,7 +347,7 @@ public class XmlHandler implements KXml2
                 }
                 else if ( localName.equals( XmlConstants.EL_PROVIDE ) )
                 {
-                    m_currentService.addProvide( attributes.getAttribute( "interface" ) );
+                    m_currentService.addProvide( attributes.getAttribute( XmlConstants.ATTR_INTERFACE ) );
                 }
 
                 // 112.4.7 Reference element
@@ -356,12 +356,12 @@ public class XmlHandler implements KXml2
                     ReferenceMetadata ref = new ReferenceMetadata();
 
                     // name attribute is optional (since DS 1.1)
-                    if ( attributes.getAttribute( "name" ) != null )
+                    if ( attributes.getAttribute( XmlConstants.ATTR_NAME ) != null )
                     {
-                        ref.setName( attributes.getAttribute( "name" ) );
+                        ref.setName( attributes.getAttribute( XmlConstants.ATTR_NAME ) );
                     }
 
-                    ref.setInterface( attributes.getAttribute( "interface" ) );
+                    ref.setInterface( attributes.getAttribute( XmlConstants.ATTR_INTERFACE ) );
 
                     // Cardinality
                     if ( attributes.getAttribute( "cardinality" ) != null )

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java Thu Feb  2 09:33:47 2017
@@ -453,9 +453,9 @@ public class BindMethodTest extends Test
                 FakeService.class.getName(), dsVersion, false );
         RefPair refPair = new SingleRefPair( m_serviceReference );
         ComponentContextImpl<T1> cc = new ComponentContextImpl(icm, new MockBundle(), null);
-        assertTrue( bm.getServiceObject( new BindParameters(cc, refPair), m_context, icm ) );
+        assertTrue( bm.getServiceObject( new BindParameters(cc, refPair), m_context ) );
         BindParameters bp = new BindParameters(cc, refPair);
-        bm.invoke( component, bp, null, icm );
+        bm.invoke( component, bp, null );
         assertEquals( expectCallPerformed, component.callPerformed );
     }
 
@@ -464,16 +464,19 @@ public class BindMethodTest extends Test
         final ComponentMetadata metadata = newMetadata();
         ComponentContainer container = new ComponentContainer() {
 
+            @Override
             public BundleComponentActivator getActivator()
             {
                 return null;
             }
 
+            @Override
             public ComponentMetadata getComponentMetadata()
             {
                 return metadata;
             }
 
+            @Override
             public void disposed(SingleComponentManager component)
             {
             }

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java Thu Feb  2 09:33:47 2017
@@ -19,20 +19,16 @@
 package org.apache.felix.scr.impl.inject.methods;
 
 
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.TestCase;
-
-import org.apache.felix.scr.impl.BundleComponentActivator;
-import org.apache.felix.scr.impl.manager.ComponentContainer;
 import org.apache.felix.scr.impl.inject.ActivatorParameter;
-import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.apache.felix.scr.impl.inject.ComponentMethodsImpl;
-import org.apache.felix.scr.impl.inject.methods.ActivateMethod;
-import org.apache.felix.scr.impl.inject.methods.BaseMethod;
+import org.apache.felix.scr.impl.manager.ComponentActivator;
+import org.apache.felix.scr.impl.manager.ComponentContainer;
+import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.SingleComponentManager;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;
@@ -41,18 +37,20 @@ import org.apache.felix.scr.impl.metadat
 import org.apache.felix.scr.impl.metadata.instances.Level1Object;
 import org.apache.felix.scr.impl.metadata.instances.Level3Object;
 import org.apache.felix.scr.impl.metadata.instances2.Level2Object;
-import org.easymock.EasyMock;
+import org.mockito.Mockito;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.ComponentContext;
 
+import junit.framework.TestCase;
+
 
 public class ActivateMethodTest extends TestCase
 {
 
     private static final Class ACCEPT_METHOD_CLASS = AcceptMethod.class;
 
-    private ComponentContext m_ctx;
+    private Bundle m_bundle;
 
     BaseObject base = new BaseObject();
 
@@ -62,19 +60,13 @@ public class ActivateMethodTest extends
 
     Level3Object level3 = new Level3Object();
 
+    @Override
     protected void setUp() throws Exception
     {
         super.setUp();
-        Bundle bundle = ( Bundle ) EasyMock.createNiceMock( Bundle.class );
-        BundleContext context = ( BundleContext ) EasyMock.createNiceMock( BundleContext.class );
-        EasyMock.expect( context.getBundle() ).andReturn( bundle ).anyTimes();
-
-        m_ctx = (ComponentContext) EasyMock.createNiceMock(ComponentContext.class);
-        EasyMock.expect( m_ctx.getProperties() ).andReturn( new Hashtable() ).anyTimes();
-        EasyMock.expect( m_ctx.getBundleContext() ).andReturn( context ).anyTimes();
-        EasyMock.replay( new Object[]
-            { m_ctx, context } );
-
+        m_bundle = Mockito.mock( Bundle.class );
+        BundleContext context = Mockito.mock( BundleContext.class );
+        Mockito.when(context.getBundle()).thenReturn(m_bundle);
     }
 
 
@@ -297,7 +289,8 @@ public class ActivateMethodTest extends
         ComponentContainer<?> container = newContainer();
         SingleComponentManager<?> icm = new SingleComponentManager( container, new ComponentMethodsImpl() );
         ActivateMethod am = new ActivateMethod( methodName, methodName != null, obj.getClass(), version, false, false );
-        am.invoke( obj, new ActivatorParameter( m_ctx, -1 ), null, icm );
+
+        am.invoke( obj, new ActivatorParameter( new ComponentContextImpl(icm, m_bundle, null), -1 ), null );
         Method m = am.getMethod();
         assertNotNull( m );
         assertEquals( methodName, m.getName() );
@@ -310,16 +303,21 @@ public class ActivateMethodTest extends
         final ComponentMetadata metadata = newMetadata();
         ComponentContainer container = new ComponentContainer() {
 
-            public BundleComponentActivator getActivator()
+            @Override
+            public ComponentActivator getActivator()
             {
-                return null;
+                final ComponentActivator ca = Mockito.mock(ComponentActivator.class);
+                Mockito.when(ca.getBundleContext()).thenReturn(Mockito.mock(BundleContext.class));
+                return ca;
             }
 
+            @Override
             public ComponentMetadata getComponentMetadata()
             {
                 return metadata;
             }
 
+            @Override
             public void disposed(SingleComponentManager component)
             {
             }
@@ -328,7 +326,7 @@ public class ActivateMethodTest extends
             {
                 return false;
             }
-            
+
         };
         return container;
     }
@@ -373,7 +371,7 @@ public class ActivateMethodTest extends
         ComponentContainer container = newContainer();
         SingleComponentManager icm = new SingleComponentManager( container, new ComponentMethodsImpl() );
         ActivateMethod am = new ActivateMethod( methodName, methodName != null, obj.getClass(), version, false, false );
-        am.invoke( obj, new ActivatorParameter( m_ctx, -1 ), null, icm );
+        am.invoke( obj, new ActivatorParameter( new ComponentContextImpl(icm, m_bundle, null), -1 ), null );
         Method m = am.getMethod();
         assertNull( m );
         assertNull( obj.getCalledMethod() );
@@ -387,7 +385,7 @@ public class ActivateMethodTest extends
         boolean accepted = BaseMethod.accept( method, acceptPrivate, acceptPackage, false );
         assertEquals( expected, accepted );
     }
-    
+
     private static @interface Ann{}
     private static class Sort
     {
@@ -400,7 +398,7 @@ public class ActivateMethodTest extends
         public void a(ComponentContext cc) {};
         public void a(ComponentContext cc, BundleContext c) {};
         public void b() {};
-        
+
     }
     public void testMethodSorting() throws Exception
     {
@@ -422,10 +420,10 @@ public class ActivateMethodTest extends
         assertEquals(2, ms.get(6).getParameterTypes().length);
         assertEquals(0, ms.get(7).getParameterTypes().length);
     }
-    
+
     public void test_13_annos() throws Exception
     {
         checkMethod(base, "activate_13_2_annotations", "activate_13_2_annotations", DSVersion.DS13 );
     }
-    
+
 }