Author: cziegeler Date: Thu Sep 28 06:32:13 2017 New Revision: 1809948 URL: http://svn.apache.org/viewvc?rev=1809948&view=rev Log: FELIX-5702 : All files in OSG-INF/metatype must be considered
Modified: 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 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=1809948&r1=1809947&r2=1809948&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 Sep 28 06:32:13 2017 @@ -26,7 +26,7 @@ import org.osgi.service.metatype.MetaTyp import org.osgi.util.tracker.ServiceTracker; -public class MetaTypeProviderTracker extends ServiceTracker +public class MetaTypeProviderTracker extends ServiceTracker<MetaTypeProvider, MetaTypeProviderHolder> { final MetaTypeServiceImpl mti; @@ -39,24 +39,27 @@ public class MetaTypeProviderTracker ext } - public Object addingService( ServiceReference reference ) + @Override + public MetaTypeProviderHolder addingService( ServiceReference<MetaTypeProvider> reference ) { - final MetaTypeProvider provider = ( MetaTypeProvider ) this.context.getService( reference ); + final MetaTypeProvider provider = this.context.getService( reference ); final MetaTypeProviderHolder holder = new MetaTypeProviderHolder( reference, provider ); mti.addService( holder ); return holder; } - public void modifiedService( ServiceReference reference, Object service ) + @Override + public void modifiedService( ServiceReference<MetaTypeProvider> reference, MetaTypeProviderHolder service ) { - ( ( MetaTypeProviderHolder ) service ).update( this.mti ); + service.update( this.mti ); } - public void removedService( ServiceReference reference, Object service ) + @Override + public void removedService( ServiceReference<MetaTypeProvider> reference, MetaTypeProviderHolder service ) { - mti.removeService( ( MetaTypeProviderHolder ) service ); + mti.removeService( service ); this.context.ungetService( reference ); } } 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=1809948&r1=1809947&r2=1809948&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 Sep 28 06:32:13 2017 @@ -37,6 +37,7 @@ import org.osgi.framework.ServiceReferen import org.osgi.framework.SynchronousBundleListener; import org.osgi.service.log.LogService; import org.osgi.service.metatype.MetaTypeInformation; +import org.osgi.service.metatype.MetaTypeProvider; import org.osgi.service.metatype.MetaTypeService; @@ -50,7 +51,7 @@ import org.osgi.service.metatype.MetaTyp class MetaTypeServiceImpl implements MetaTypeService, SynchronousBundleListener { - private final Map bundleMetaTypeInformation; + private final Map<Long, SoftReference<MetaTypeInformationImpl>> bundleMetaTypeInformation; private final ManagedServiceTracker managedServiceTracker; @@ -64,7 +65,7 @@ class MetaTypeServiceImpl implements Met */ MetaTypeServiceImpl( BundleContext bundleContext ) { - this.bundleMetaTypeInformation = new ConcurrentHashMap(); + this.bundleMetaTypeInformation = new ConcurrentHashMap<Long, SoftReference<MetaTypeInformationImpl>>(); bundleContext.addBundleListener( this ); @@ -97,11 +98,11 @@ class MetaTypeServiceImpl implements Met { if ( event.getType() == BundleEvent.STOPPING ) { - SoftReference mtir = ( SoftReference ) this.bundleMetaTypeInformation.remove( new Long( event.getBundle() + SoftReference<MetaTypeInformationImpl> mtir = this.bundleMetaTypeInformation.remove( new Long( event.getBundle() .getBundleId() ) ); if ( mtir != null ) { - MetaTypeInformationImpl mti = ( MetaTypeInformationImpl ) mtir.get(); + MetaTypeInformationImpl mti = mtir.get(); if ( mti != null ) { mti.dispose(); @@ -165,7 +166,7 @@ class MetaTypeServiceImpl implements Met MetaDataReader reader = new MetaDataReader(); // get the descriptors, return nothing if none - Enumeration docs = bundle.findEntries( METATYPE_DOCUMENTS_LOCATION, null, false ); + Enumeration<URL> docs = bundle.findEntries( METATYPE_DOCUMENTS_LOCATION, null, false ); if ( docs == null || !docs.hasMoreElements() ) { return null; @@ -174,7 +175,7 @@ class MetaTypeServiceImpl implements Met MetaTypeInformationImpl cmti = new MetaTypeInformationImpl( bundle ); while ( docs.hasMoreElements() ) { - URL doc = ( URL ) docs.nextElement(); + URL doc = docs.nextElement(); try { MetaData metaData = reader.parse( doc ); @@ -185,7 +186,7 @@ class MetaTypeServiceImpl implements Met } catch ( IOException ioe ) { - Activator.log( LogService.LOG_ERROR, "fromDocuments: Error accessing document " + doc, ioe ); + Activator.log( LogService.LOG_ERROR, "fromDocuments: Error accessing document " + doc + " : " + ioe.getMessage(), null ); } } return cmti; @@ -269,15 +270,15 @@ class MetaTypeServiceImpl implements Met } // initial MetaTypeProvider - final ServiceReference refs[] = this.providerTracker.getServiceReferences(); + final ServiceReference<MetaTypeProvider> refs[] = this.providerTracker.getServiceReferences(); if ( refs != null ) { for ( int i = 0; i < refs.length; i++ ) { - ServiceReference ref = refs[i]; + ServiceReference<MetaTypeProvider> ref = refs[i]; if ( bundle.equals( ref.getBundle() ) ) { - final MetaTypeProviderHolder holder = ( MetaTypeProviderHolder ) this.providerTracker + final MetaTypeProviderHolder holder = this.providerTracker .getService( ref ); if ( holder.getPids() != null ) { @@ -292,13 +293,13 @@ class MetaTypeServiceImpl implements Met } this.bundleMetaTypeInformation.put( new Long( bundle.getBundleId() ), - new SoftReference( mti ) ); + new SoftReference<MetaTypeInformationImpl>( mti ) ); } private MetaTypeInformationImpl getMetaTypeInformationInternal( final Bundle bundle ) { - SoftReference mtir = ( SoftReference ) this.bundleMetaTypeInformation.get( new Long( bundle.getBundleId() ) ); - return ( MetaTypeInformationImpl ) ( ( mtir == null ) ? null : mtir.get() ); + SoftReference<MetaTypeInformationImpl> mtir = this.bundleMetaTypeInformation.get( new Long( bundle.getBundleId() ) ); + return ( mtir == null ) ? null : mtir.get(); } }