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();
     }
 }


Reply via email to