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/25 16:25:02 UTC
svn commit: r1402162 - in /felix/trunk/metatype: ./
src/main/java/org/apache/felix/metatype/internal/
Author: fmeschbe
Date: Thu Oct 25 14:25:02 2012
New Revision: 1402162
URL: http://svn.apache.org/viewvc?rev=1402162&view=rev
Log:
FELIX-3734 Fix two issues related to MetaTypeProvider tracking:
- don't return MetaTypeInformation for fragment bundles
- use the MetaTypeService implementation bundle context to
track services
- the latter allows to downgrade the OSGi Core Reference to 4.0 again
Modified:
felix/trunk/metatype/pom.xml
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeInformationImpl.java
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeProviderTracker.java
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeServiceImpl.java
felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/ServiceMetaTypeInformation.java
Modified: felix/trunk/metatype/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/pom.xml?rev=1402162&r1=1402161&r2=1402162&view=diff
==============================================================================
--- felix/trunk/metatype/pom.xml (original)
+++ felix/trunk/metatype/pom.xml Thu Oct 25 14:25:02 2012
@@ -38,7 +38,7 @@
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
- <version>4.1.0</version>
+ <version>4.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
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=1402162&r1=1402161&r2=1402162&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 Thu Oct 25 14:25:02 2012
@@ -26,12 +26,14 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+
import org.apache.felix.metatype.DefaultMetaTypeProvider;
import org.apache.felix.metatype.Designate;
import org.apache.felix.metatype.DesignateObject;
import org.apache.felix.metatype.MetaData;
import org.apache.felix.metatype.OCD;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.service.metatype.MetaTypeInformation;
import org.osgi.service.metatype.MetaTypeProvider;
import org.osgi.service.metatype.ObjectClassDefinition;
@@ -64,14 +66,14 @@ public class MetaTypeInformationImpl imp
private Set locales;
- protected MetaTypeInformationImpl( Bundle bundle )
+ protected MetaTypeInformationImpl( final BundleContext serviceBundleContext, Bundle bundle )
{
this.bundle = bundle;
this.pids = new HashSet();
this.factoryPids = new HashSet();
this.metaTypeProviders = new HashMap();
- this.providerTacker = new MetaTypeProviderTracker( bundle.getBundleContext(), this );
+ this.providerTacker = new MetaTypeProviderTracker( serviceBundleContext, this );
this.providerTacker.open();
}
Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeProviderTracker.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeProviderTracker.java?rev=1402162&r1=1402161&r2=1402162&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeProviderTracker.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeProviderTracker.java Thu Oct 25 14:25:02 2012
@@ -41,7 +41,7 @@ public class MetaTypeProviderTracker ext
public Object addingService( ServiceReference reference )
{
// only care for services of our bundle
- if ( !this.context.getBundle().equals( reference.getBundle() ) )
+ if ( !this.mti.getBundle().equals( reference.getBundle() ) )
{
return null;
}
Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeServiceImpl.java?rev=1402162&r1=1402161&r2=1402162&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeServiceImpl.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/internal/MetaTypeServiceImpl.java Thu Oct 25 14:25:02 2012
@@ -30,6 +30,7 @@ import org.apache.felix.metatype.MetaDat
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
+import org.osgi.framework.Constants;
import org.osgi.framework.SynchronousBundleListener;
import org.osgi.service.log.LogService;
import org.osgi.service.metatype.MetaTypeInformation;
@@ -116,6 +117,12 @@ class MetaTypeServiceImpl implements Met
*/
public MetaTypeInformation getMetaTypeInformation( Bundle bundle )
{
+ // no information for fragments
+ if ( bundle.getHeaders().get( Constants.FRAGMENT_HOST ) != null )
+ {
+ return null;
+ }
+
MetaTypeInformation mti;
synchronized ( this.bundleMetaTypeInformation )
{
@@ -165,7 +172,7 @@ class MetaTypeServiceImpl implements Met
return null;
}
- MetaTypeInformationImpl cmti = new MetaTypeInformationImpl( bundle );
+ MetaTypeInformationImpl cmti = new MetaTypeInformationImpl( bundleContext, bundle );
while ( docs.hasMoreElements() )
{
URL doc = ( URL ) docs.nextElement();
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=1402162&r1=1402161&r2=1402162&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 Thu Oct 25 14:25:02 2012
@@ -19,6 +19,7 @@
package org.apache.felix.metatype.internal;
+import java.util.Arrays;
import java.util.Collection;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -76,7 +77,7 @@ public class ServiceMetaTypeInformation
*/
public ServiceMetaTypeInformation( BundleContext bundleContext, Bundle bundle )
{
- super( bundle );
+ super( bundleContext, bundle );
this.bundleContext = bundleContext;