You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2012/10/28 15:26:31 UTC

svn commit: r1402997 - in /felix/trunk/metatype/src: main/java/org/apache/felix/metatype/internal/ test/java/org/apache/felix/metatype/internal/

Author: fmeschbe
Date: Sun Oct 28 14:26:31 2012
New Revision: 1402997

URL: http://svn.apache.org/viewvc?rev=1402997&view=rev
Log:
FELIX-3732 The service.factoryPid property is not relevant for the decision of
whether a ManagedServiceFactory service implementing the MetaTypeProvider
interface is a factory or not. This is the ManagedServiceFactory type
itself. So remove support for the service.factoryPid property

Modified:
    felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java
    felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java
    felix/trunk/metatype/src/test/java/org/apache/felix/metatype/internal/MetaTypeServiceImplTest.java

Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java?rev=1402997&r1=1402996&r2=1402997&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java Sun Oct 28 14:26:31 2012
@@ -49,10 +49,6 @@ import org.osgi.service.metatype.ObjectC
 public class MetaTypeInformationImpl implements MetaTypeInformation
 {
 
-    // also defined in org.osgi.service.cm.ConfigurationAdmin, but copied
-    // here to not create a synthetic dependency
-    public static final String SERVICE_FACTORYPID = "service.factoryPid";
-
     private final Bundle bundle;
 
     private final Set pids;

Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java?rev=1402997&r1=1402996&r2=1402997&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java Sun Oct 28 14:26:31 2012
@@ -176,32 +176,19 @@ public class ServiceMetaTypeInformation 
         if ( srv instanceof MetaTypeProvider )
         {
             MetaTypeProvider mtp = ( MetaTypeProvider ) srv;
-
-            // 1. check for a service factory PID
-            String factoryPid = ( String ) serviceRef.getProperty( SERVICE_FACTORYPID );
-            if ( factoryPid != null )
-            {
-                addFactoryMetaTypeProvider( new String[]
-                    { factoryPid }, mtp );
-                ungetService = false;
-            }
-            else
+            String[] pids = getServicePids( serviceRef );
+            if ( pids != null )
             {
-                // 2. check for a service PID
-                String[] pids = getServicePids( serviceRef );
-                if ( pids != null )
+                if ( isService( serviceRef, MANAGED_SERVICE ) )
                 {
-                    if ( isService( serviceRef, MANAGED_SERVICE ) )
-                    {
-                        addSingletonMetaTypeProvider( pids, mtp );
-                        ungetService = false;
-                    }
-
-                    if ( isService( serviceRef, MANAGED_SERVICE_FACTORY ) )
-                    {
-                        addFactoryMetaTypeProvider( pids, mtp );
-                        ungetService = false;
-                    }
+                    addSingletonMetaTypeProvider( pids, mtp );
+                    ungetService = false;
+                }
+
+                if ( isService( serviceRef, MANAGED_SERVICE_FACTORY ) )
+                {
+                    addFactoryMetaTypeProvider( pids, mtp );
+                    ungetService = false;
                 }
             }
         }
@@ -230,33 +217,20 @@ public class ServiceMetaTypeInformation 
     protected void removeService( ServiceReference serviceRef )
     {
         boolean ungetService = false;
-
-        // 1. check for a service factory PID
-        String factoryPid = ( String ) serviceRef.getProperty( SERVICE_FACTORYPID );
-        if ( factoryPid != null )
-        {
-            ungetService = removeFactoryMetaTypeProvider( new String[]
-                { factoryPid } );
-        }
-        else
+        String[] pids = getServicePids( serviceRef );
+        if ( pids != null )
         {
-            // 2. check for a service PID
-            String[] pids = getServicePids( serviceRef );
-            if ( pids != null )
+            if ( isService( serviceRef, MANAGED_SERVICE ) )
             {
-                if ( isService( serviceRef, MANAGED_SERVICE ) )
-                {
-                    ungetService |= removeSingletonMetaTypeProvider( pids );
-                }
+                ungetService |= removeSingletonMetaTypeProvider( pids );
+            }
 
-                if ( isService( serviceRef, MANAGED_SERVICE_FACTORY ) )
-                {
-                    ungetService |= removeFactoryMetaTypeProvider( pids );
-                }
+            if ( isService( serviceRef, MANAGED_SERVICE_FACTORY ) )
+            {
+                ungetService |= removeFactoryMetaTypeProvider( pids );
             }
         }
 
-        // 3. drop the service reference
         if ( ungetService )
         {
             bundleContext.ungetService( serviceRef );

Modified: felix/trunk/metatype/src/test/java/org/apache/felix/metatype/internal/MetaTypeServiceImplTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/test/java/org/apache/felix/metatype/internal/MetaTypeServiceImplTest.java?rev=1402997&r1=1402996&r2=1402997&view=diff
==============================================================================
--- felix/trunk/metatype/src/test/java/org/apache/felix/metatype/internal/MetaTypeServiceImplTest.java (original)
+++ felix/trunk/metatype/src/test/java/org/apache/felix/metatype/internal/MetaTypeServiceImplTest.java Sun Oct 28 14:26:31 2012
@@ -1,4 +1,4 @@
-/* 
+/*
  * 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
@@ -28,7 +28,6 @@ import org.apache.felix.metatype.MockBun
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.cm.ManagedService;
 import org.osgi.service.cm.ManagedServiceFactory;
 import org.osgi.service.metatype.MetaTypeInformation;
@@ -123,9 +122,8 @@ public class MetaTypeServiceImplTest ext
         String factoryPid = "testAfterCreation_factory";
         MockManagedServiceFactory service = new MockManagedServiceFactory();
         Dictionary props = new Hashtable();
-        props.put( Constants.SERVICE_PID, pid );
-        props.put( ConfigurationAdmin.SERVICE_FACTORYPID, factoryPid );
-        ServiceRegistration sr = bundleContext.registerService( ManagedService.class.getName(), service, props );
+        props.put( Constants.SERVICE_PID, factoryPid );
+        ServiceRegistration sr = bundleContext.registerService( ManagedServiceFactory.class.getName(), service, props );
 
         // locales should contain MockMetaTypeProvider.LOCALES
         assertNotNull( mti.getLocales() );