Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceUtil.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceUtil.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceUtil.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceUtil.java
 Mon Feb  6 14:37:49 2017
@@ -18,10 +18,14 @@
  */
 package org.apache.felix.dm.impl;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Dictionary;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.framework.Bundle;
@@ -38,6 +42,62 @@ public class ServiceUtil {
      * Useful when needing to provide empty service properties.
      */
     public final static Dictionary<String, Object> EMPTY_PROPERTIES = new 
Hashtable<>();
+    
+    /**
+     * Defines service properties which must not be propagated from the 
dependencies to component service properties.
+     */
+    public final static Set<String> NOT_PROPAGATABLE_SERVICE_PROPERTIES = 
+               Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
+                               Constants.SERVICE_ID,
+                               Constants.SERVICE_RANKING,
+                               Constants.SERVICE_BUNDLEID,
+                               Constants.SERVICE_SCOPE,                        
        
+                               Constants.OBJECTCLASS,
+                               DependencyManager.ASPECT)));
+
+    /**
+     * Helper method used to convert a dictionary with untyped keys to a 
dictionary having a String key.
+     * (this method is useful when converting a Properties object into a 
compatible Dictionary<String, Object>
+     * object that is often needed in OSGI R6 API. 
+     */
+    @SuppressWarnings("unchecked")
+       public static <K,V> Dictionary<K, V> toR6Dictionary(Dictionary<?,?> 
properties) {
+       return (Dictionary<K, V>) properties;
+    }
+
+    /**
+     * Dump some service properties in a petty form.
+     */
+    public static void appendProperties(StringBuilder result, Dictionary<?, ?> 
properties) {
+        if (properties != null) {
+            result.append("(");
+            Enumeration<?> enumeration = properties.keys();
+            while (enumeration.hasMoreElements()) {
+                Object key = enumeration.nextElement();
+                result.append(key.toString());
+                result.append('=');
+                Object value = properties.get(key);
+                if (value instanceof String[]) {
+                    String[] values = (String[]) value;
+                    result.append('{');
+                    for (int i = 0; i < values.length; i++) {
+                        if (i > 0) {
+                            result.append(',');
+                        }
+                        result.append(values[i].toString());
+                    }
+                    result.append('}');
+                }
+                else {
+                    result.append(value.toString());
+                }
+                if (enumeration.hasMoreElements()) {
+                    result.append(',');
+                }
+            }
+            result.append(")");
+        }
+    }
 
     /**
      * Returns the service ranking of a service, based on its service 
reference. If
@@ -47,7 +107,7 @@ public class ServiceUtil {
      * @param ref the service reference to determine the ranking for
      * @return the ranking
      */
-    public static int getRanking(ServiceReference ref) {
+    public static int getRanking(ServiceReference<?> ref) {
         return getRankingAsInteger(ref).intValue();
     }
     
@@ -59,7 +119,7 @@ public class ServiceUtil {
      * @param ref the service reference to determine the ranking for
      * @return the ranking
      */
-    public static Integer getRankingAsInteger(ServiceReference ref) {
+    public static Integer getRankingAsInteger(ServiceReference<?> ref) {
         Integer rank = (Integer) ref.getProperty(Constants.SERVICE_RANKING);
         if (rank != null) {
             return rank;
@@ -75,7 +135,7 @@ public class ServiceUtil {
      * @param ref the service reference to determine the service ID of
      * @return the service ID
      */
-    public static long getServiceId(ServiceReference ref) {
+    public static long getServiceId(ServiceReference<?> ref) {
         return getServiceIdAsLong(ref).longValue();
     }
     
@@ -87,11 +147,11 @@ public class ServiceUtil {
      * @param ref the service reference to determine the service ID of
      * @return the service ID
      */
-    public static Long getServiceIdAsLong(ServiceReference ref) {
+    public static Long getServiceIdAsLong(ServiceReference<?> ref) {
        return getServiceIdObject(ref);
     }
     
-    public static Long getServiceIdObject(ServiceReference ref) {
+    public static Long getServiceIdObject(ServiceReference<?> ref) {
         Long aid = (Long) ref.getProperty(DependencyManager.ASPECT);
         if (aid != null) {
             return aid;
@@ -110,7 +170,7 @@ public class ServiceUtil {
      * @param ref the service reference
      * @return <code>true</code> if it's an aspect, <code>false</code> 
otherwise
      */
-    public static boolean isAspect(ServiceReference ref) {
+    public static boolean isAspect(ServiceReference<?> ref) {
         Long aid = (Long) ref.getProperty(DependencyManager.ASPECT);
         return (aid != null);
     }
@@ -122,7 +182,7 @@ public class ServiceUtil {
      * @param ref the service reference
      * @return a string representation of the service
      */
-    public static String toString(ServiceReference ref) {
+    public static String toString(ServiceReference<?> ref) {
         if (ref == null) {
             return "ServiceReference[null]";
         }
@@ -150,7 +210,7 @@ public class ServiceUtil {
      * @param exclude a list of properties to exclude, or <code>null</code> to 
show everything
      * @return a string representation of the service properties
      */
-    public static String propertiesToString(ServiceReference ref, List<String> 
exclude) {
+    public static String propertiesToString(ServiceReference<?> ref, 
List<String> exclude) {
         StringBuffer buf = new StringBuffer();
         String[] keys = ref.getPropertyKeys();
         for (int i = 0; i < keys.length; i++) {
@@ -187,7 +247,7 @@ public class ServiceUtil {
      * @param ref the ServiceReference to wrap
      * @return a new Dictionary used to wrap the ServiceReference properties
      */
-    public static Dictionary<String, Object> propertiesToDictionary(final 
ServiceReference ref) {
+    public static Dictionary<String, Object> propertiesToDictionary(final 
ServiceReference<?> ref) {
         return new Dictionary<String, Object>() {
             private Dictionary<String, Object> m_wrapper;
             

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/TemporalServiceDependencyImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/TemporalServiceDependencyImpl.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/TemporalServiceDependencyImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/TemporalServiceDependencyImpl.java
 Mon Feb  6 14:37:49 2017
@@ -99,8 +99,9 @@ public class TemporalServiceDependencyIm
     /**
      * The ServiceTracker calls us here in order to inform about a service 
arrival.
      */
-    @Override
-    public void addedService(ServiceReference ref, Object service) {
+       @SuppressWarnings("rawtypes")
+       @Override
+    public void addedService(ServiceReference ref, Object event) {     
         // Update our service cache, using the tracker. We do this because the
         // just added service might not be the service with the highest rank 
...
         boolean makeAvailable = false;
@@ -111,8 +112,8 @@ public class TemporalServiceDependencyIm
             }
         }
         if (makeAvailable) {
-            getComponentContext().handleEvent(this, EventType.ADDED,
-                new ServiceEventImpl(m_component.getBundle(), 
m_component.getBundleContext(), ref, m_serviceInstance));
+            getComponentContext().handleEvent(this, EventType.ADDED, 
+                        new ServiceEventImpl(m_component, ref, 
m_serviceInstance));
         } else {
             // This added will possibly unblock our invoke() method (if it's 
blocked in m_tracker.waitForService method).
         }
@@ -121,7 +122,8 @@ public class TemporalServiceDependencyIm
     /**
      * The ServiceTracker calls us here when a tracked service properties are 
modified.
      */
-    @Override
+    @SuppressWarnings("rawtypes")
+       @Override
     public void modifiedService(ServiceReference ref, Object service) {
         // We don't care.
     }
@@ -129,9 +131,12 @@ public class TemporalServiceDependencyIm
     /**
      * The ServiceTracker calls us here when a tracked service is lost.
      */
-    @Override
-    public void removedService(ServiceReference ref, Object service) {
-        // If we detect that the fwk is stopping, we behave as our superclass. 
That is:
+    @SuppressWarnings("rawtypes")
+       @Override
+    public void removedService(ServiceReference ref, Object event) {
+       ServiceEventImpl eventImpl = (ServiceEventImpl) event;
+       
+       // If we detect that the fwk is stopping, we behave as our superclass. 
That is:
         // the lost dependency has to trigger our service deactivation, since 
the fwk is stopping
         // and the lost dependency won't come up anymore.
         if (m_frameworkBundle.getState() == Bundle.STOPPING) {
@@ -148,29 +153,32 @@ public class TemporalServiceDependencyIm
             }
             if (makeUnavailable) {
                 // the event.close method will unget the service.
-                m_component.handleEvent(this, EventType.REMOVED, new 
ServiceEventImpl(m_component.getBundle(),
-                    m_component.getBundleContext(), ref, m_serviceInstance));
+                m_component.handleEvent(this, EventType.REMOVED, new 
ServiceEventImpl(m_component, ref, m_serviceInstance));
             }
         } else {
-            // Unget what we got in addingService (see ServiceTracker 701.4.1)
-            m_component.getBundleContext().ungetService(ref);
-            // if there is no available services, the next call to invoke() 
method will block until another service
-            // becomes available. Else the next call to invoke() will return 
that highest ranked available service.
+               eventImpl.close(); // will unget the service.                   
+               // if there is no available services, the next call to invoke() 
method will block until another service
+               // becomes available. Else the next call to invoke() will 
return that highest ranked available service.            
         }
     }
 
     @Override
     public Object invoke(Object proxy, Method method, Object[] args) throws 
Throwable {
-        Object service = null;
+        ServiceEventImpl event = null;
         try {
-            service = m_tracker.waitForService(m_timeout);
+            event = (ServiceEventImpl) m_tracker.waitForService(m_timeout);
         } catch (InterruptedException e) {            
         }
         
-        if (service == null) {
+        if (event == null) {
             throw new IllegalStateException("Service unavailable: " + 
m_trackedServiceName.getName());
         }
         
+        Object service = event.getEvent();
+        if (service == null) {
+            throw new IllegalStateException("Service unavailable: " + 
m_trackedServiceName.getName());
+        }       
+        
         try {
                        try {
                                return method.invoke(service, args);

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AbstractFactoryFilterIndex.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AbstractFactoryFilterIndex.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AbstractFactoryFilterIndex.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AbstractFactoryFilterIndex.java
 Mon Feb  6 14:37:49 2017
@@ -32,6 +32,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public abstract class AbstractFactoryFilterIndex {
        protected final Map<Long, SortedSet<ServiceReference>> 
m_sidToServiceReferencesMap = new HashMap<>();
        protected final Map <ServiceListener, String> m_listenerToFilterMap = 
new HashMap<>();

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AdapterFilterIndex.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AdapterFilterIndex.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AdapterFilterIndex.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AdapterFilterIndex.java
 Mon Feb  6 14:37:49 2017
@@ -42,6 +42,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public class AdapterFilterIndex extends AbstractFactoryFilterIndex implements 
FilterIndex, ServiceTrackerCustomizer {
        // 
(&(objectClass=foo.Bar)(|(service.id=18233)(org.apache.felix.dependencymanager.aspect=18233)))
        private static final String FILTER_REGEXP = "\\(&\\(" + 
Constants.OBJECTCLASS + "=([a-zA-Z\\.\\$0-9]*)\\)\\(\\|\\(" 
@@ -198,7 +199,8 @@ public class AdapterFilterIndex extends
         }
     }
 
-    public Object addingService(ServiceReference reference) {
+    @SuppressWarnings("unchecked")
+       public Object addingService(ServiceReference reference) {
         BundleContext context;
         synchronized (m_lock) {
             context = m_context;

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AspectFilterIndex.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AspectFilterIndex.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AspectFilterIndex.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/AspectFilterIndex.java
 Mon Feb  6 14:37:49 2017
@@ -43,6 +43,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public class AspectFilterIndex extends AbstractFactoryFilterIndex implements 
FilterIndex, ServiceTrackerCustomizer {
        // 
(&(objectClass=foo.Bar)(|(!(service.ranking=*))(service.ranking<=99))(|(service.id=4451)(org.apache.felix.dependencymanager.aspect=4451)))
     private static final String FILTER_START = "(&(" + Constants.OBJECTCLASS + 
"=";
@@ -240,7 +241,8 @@ public class AspectFilterIndex extends A
                }
     }
 
-    public Object addingService(ServiceReference reference) {
+    @SuppressWarnings("unchecked")
+       public Object addingService(ServiceReference reference) {
         BundleContext context;
         synchronized (m_lock) {
             context = m_context;

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptor.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptor.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptor.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptor.java
 Mon Feb  6 14:37:49 2017
@@ -19,6 +19,7 @@
 package org.apache.felix.dm.impl.index;
 
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
@@ -34,6 +35,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public class BundleContextInterceptor extends BundleContextInterceptorBase {
        protected static final String INDEX_LOG_TRESHOLD = 
"org.apache.felix.dm.index.log.treshold";
     private final ServiceRegistryCache m_cache;
@@ -159,4 +161,19 @@ public class BundleContextInterceptor ex
     public void serviceChanged(ServiceEvent event) {
         m_cache.serviceChangedForFilterIndices(event);
     }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <S> ServiceReference<S> getServiceReference(Class<S> clazz)
+    {
+        return getServiceReference(clazz.getName());
+    }
+
+    @SuppressWarnings("unchecked")
+       @Override
+    public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> 
clazz, String filter)
+        throws InvalidSyntaxException
+    {
+        return Arrays.asList(getServiceReferences(clazz.getName(), filter));
+    }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptorBase.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptorBase.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptorBase.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/BundleContextInterceptorBase.java
 Mon Feb  6 14:37:49 2017
@@ -20,6 +20,7 @@ package org.apache.felix.dm.impl.index;
 
 import java.io.File;
 import java.io.InputStream;
+import java.util.Collection;
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Map;
@@ -32,7 +33,9 @@ import org.osgi.framework.BundleListener
 import org.osgi.framework.Filter;
 import org.osgi.framework.FrameworkListener;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceFactory;
 import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 
@@ -41,6 +44,7 @@ import org.osgi.framework.ServiceRegistr
  * 
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings({ "unchecked", "rawtypes" })
 public abstract class BundleContextInterceptorBase implements BundleContext, 
ServiceListener {
     protected final BundleContext m_context;
     /** Keeps track of all service listeners and their optional filters. */
@@ -114,14 +118,24 @@ public abstract class BundleContextInter
         m_context.removeFrameworkListener(listener);
     }
 
-    public ServiceRegistration registerService(String[] clazzes, Object 
service, @SuppressWarnings("rawtypes") Dictionary properties) {
+       public ServiceRegistration registerService(String[] clazzes, Object 
service, Dictionary properties) {
         return m_context.registerService(clazzes, service, properties);
     }
 
-    public ServiceRegistration registerService(String clazz, Object service, 
@SuppressWarnings("rawtypes") Dictionary properties) {
+    public ServiceRegistration registerService(String clazz, Object service, 
Dictionary properties) {
         return m_context.registerService(clazz, service, properties);
     }
 
+    @Override
+    public <S> ServiceRegistration<S> registerService(Class<S> clazz, S 
service, Dictionary<String, ?> properties) {
+        return m_context.registerService(clazz, service, properties);
+    }
+    
+    @Override
+    public <S> ServiceRegistration<S> registerService(Class<S> clazz, 
ServiceFactory<S> factory, Dictionary<String, ?> properties) {
+        return m_context.registerService(clazz, factory, properties);
+    }
+    
     public ServiceReference[] getServiceReferences(String clazz, String 
filter) throws InvalidSyntaxException {
         return m_context.getServiceReferences(clazz, filter);
     }
@@ -134,10 +148,26 @@ public abstract class BundleContextInter
         return m_context.getServiceReference(clazz);
     }
 
+    @Override
+    public <S> ServiceReference<S> getServiceReference(Class<S> clazz) {
+        return m_context.getServiceReference(clazz);
+    }
+
+    @Override
+    public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> 
clazz, String filter) throws InvalidSyntaxException {
+        return m_context.getServiceReferences(clazz, filter);
+    }
+
     public Object getService(ServiceReference reference) {
         return m_context.getService(reference);
     }
 
+    @Override
+    public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> 
reference)
+    {
+        return m_context.getServiceObjects(reference);
+    }
+
     public boolean ungetService(ServiceReference reference) {
         return m_context.ungetService(reference);
     }
@@ -150,7 +180,11 @@ public abstract class BundleContextInter
         return m_context.createFilter(filter);
     }
 
-       @SuppressWarnings("unchecked")
+    @Override
+    public Bundle getBundle(String location) {
+        return m_context.getBundle(location);
+    }
+    
        protected Entry<ServiceListener, String>[] synchronizeCollection() {
         // lazy copy on write: we make a new copy only if writes have changed 
the collection
         synchronized (m_serviceListenerFilterMap) {

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/multiproperty/MultiPropertyFilterIndex.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/multiproperty/MultiPropertyFilterIndex.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/multiproperty/MultiPropertyFilterIndex.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/index/multiproperty/MultiPropertyFilterIndex.java
 Mon Feb  6 14:37:49 2017
@@ -43,6 +43,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public class MultiPropertyFilterIndex implements FilterIndex, 
ServiceTrackerCustomizer {
 
     private final Object m_lock = new Object();
@@ -50,7 +51,7 @@ public class MultiPropertyFilterIndex im
     private BundleContext m_context;
        private Map<String, Property> m_configProperties = new 
LinkedHashMap<>();
        private List<String> m_negatePropertyKeys = new ArrayList<>();
-    private final Map<String, List<ServiceReference>> 
m_keyToServiceReferencesMap = new HashMap<>();
+       private final Map<String, List<ServiceReference>> 
m_keyToServiceReferencesMap = new HashMap<>();
     private final Map<String, List<ServiceListener>> m_keyToListenersMap = new 
HashMap<>();
     private final Map<ServiceListener, String> m_listenerToFilterMap = new 
HashMap<>();
 
@@ -281,7 +282,8 @@ public class MultiPropertyFilterIndex im
                return builder.toString();
     }
     
-    public Object addingService(ServiceReference reference) {
+    @SuppressWarnings("unchecked")
+       public Object addingService(ServiceReference reference) {
         BundleContext context;
         synchronized (m_lock) {
             context = m_context;

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/metatype/MetaTypeProviderImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/metatype/MetaTypeProviderImpl.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/metatype/MetaTypeProviderImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/metatype/MetaTypeProviderImpl.java
 Mon Feb  6 14:37:49 2017
@@ -200,8 +200,7 @@ public class MetaTypeProviderImpl implem
      * We also implements the ManagedService and we just delegates the 
configuration handling to
      * our associated ConfigurationDependency.
      */
-    @SuppressWarnings("rawtypes")
-    public void updated(Dictionary properties) throws ConfigurationException {
+    public void updated(Dictionary<String, ?> properties) throws 
ConfigurationException {
         m_managedServiceDelegate.updated(properties);
     }
 
@@ -268,8 +267,7 @@ public class MetaTypeProviderImpl implem
         return m_pid;
     }
 
-    @SuppressWarnings("rawtypes")
-    public void updated(String pid, Dictionary properties) throws 
ConfigurationException {
+    public void updated(String pid, Dictionary<String, ?> properties) throws 
ConfigurationException {
         m_managedServiceFactoryDelegate.updated(pid, properties);
     }
 }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTracker.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTracker.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTracker.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTracker.java
 Mon Feb  6 14:37:49 2017
@@ -63,6 +63,7 @@ import org.osgi.framework.Version;
  * @ThreadSafe
  * @version $Revision: 6386 $
  */
+@SuppressWarnings("rawtypes")
 public class ServiceTracker implements ServiceTrackerCustomizer {
        /* set this to true to compile in debug messages */
        static final boolean                            DEBUG                   
= false;
@@ -498,6 +499,7 @@ public class ServiceTracker implements S
         *         <code>ServiceTracker</code>.
         * @see ServiceTrackerCustomizer#addingService(ServiceReference)
         */
+       @SuppressWarnings("unchecked")
        public Object addingService(ServiceReference reference) {
                return context.getService(reference);
        }

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTrackerCustomizer.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTrackerCustomizer.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTrackerCustomizer.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/src/org/apache/felix/dm/tracker/ServiceTrackerCustomizer.java
 Mon Feb  6 14:37:49 2017
@@ -46,6 +46,7 @@ import org.osgi.framework.ServiceReferen
  * @ThreadSafe
  * @version $Revision: 5874 $
  */
+@SuppressWarnings("rawtypes")
 public interface ServiceTrackerCustomizer {
        /**
         * A service is being added to the <code>ServiceTracker</code>.

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/impl/FactoryConfigurationAdapterImplTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/impl/FactoryConfigurationAdapterImplTest.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/impl/FactoryConfigurationAdapterImplTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/impl/FactoryConfigurationAdapterImplTest.java
 Mon Feb  6 14:37:49 2017
@@ -52,7 +52,7 @@ public class FactoryConfigurationAdapter
         FactoryConfigurationAdapterImpl cdi = 
createConfigurationDependency(service, Map.class);
         ensure.step(1);
 
-        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, createDictionary());
+        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, (Dictionary<String, ?>) 
createDictionary());
 
         TimeUnit.SECONDS.sleep(1L);
 
@@ -67,7 +67,7 @@ public class FactoryConfigurationAdapter
 
         FactoryConfigurationAdapterImpl cdi = 
createConfigurationDependency(service, MyConfiguration.class);
 
-        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, createDictionary());
+        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, (Dictionary<String, ?>) 
createDictionary());
 
         ensure.waitForStep(1, 1000);
 
@@ -83,7 +83,7 @@ public class FactoryConfigurationAdapter
 
         FactoryConfigurationAdapterImpl cdi = 
createConfigurationDependency(service);
 
-        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, createDictionary());
+        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, (Dictionary<String, ?>) 
createDictionary());
 
         ensure.waitForStep(1, 1000);
 
@@ -99,7 +99,7 @@ public class FactoryConfigurationAdapter
 
         FactoryConfigurationAdapterImpl cdi = 
createConfigurationDependency(service);
 
-        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, createDictionary());
+        ((ManagedServiceFactory) 
cdi.m_component.getInstance()).updated(CONF_PID, (Dictionary<String, ?>) 
createDictionary());
 
         ensure.waitForStep(1, 1000);
 
@@ -137,7 +137,7 @@ public class FactoryConfigurationAdapter
         return (FactoryConfigurationAdapterImpl) result;
     }
 
-    private Dictionary<?,?> createDictionary() {
+    private Dictionary<String, Object> createDictionary() {
         Dictionary<String, Object> result = new Hashtable<>();
         result.put("true", "true");
         result.put("value", "42");

Modified: 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/tracker/TrackedTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/tracker/TrackedTest.java?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/tracker/TrackedTest.java
 (original)
+++ 
felix/trunk/dependencymanager/org.apache.felix.dependencymanager/test/org/apache/felix/dm/tracker/TrackedTest.java
 Mon Feb  6 14:37:49 2017
@@ -40,6 +40,7 @@ import org.osgi.framework.ServiceReferen
 /**
  * @author <a href="mailto:d...@felix.apache.org";>Felix Project Team</a>
  */
+@SuppressWarnings("rawtypes")
 public class TrackedTest {
 
        @Test
@@ -73,7 +74,7 @@ public class TrackedTest {
                tracker.open();
                Tracked tracked = tracker.getTracked();
                
-               ServiceReference[] initialReferences = new ServiceReference[] {
+               ServiceReference<?>[] initialReferences = new 
ServiceReference[] {
                                createServiceReference(1L),
                                createServiceReference(2L, 1L, 10),
                                createServiceReference(3L),
@@ -104,7 +105,7 @@ public class TrackedTest {
                tracker.open();
                Tracked tracked = tracker.getTracked();
                
-               ServiceReference[] initialReferences = new ServiceReference[] {
+               ServiceReference<?>[] initialReferences = new 
ServiceReference[] {
                                createServiceReference(1L),
                                createServiceReference(2L, 1L, 10),
                                createServiceReference(3L),
@@ -117,7 +118,7 @@ public class TrackedTest {
                assertArrayEquals(new Long[] { 2L, 5L }, 
customizer.getServiceReferenceIds());
                
                // create a service event that registers another but lower 
ranked aspect for service with id 1. 
-               ServiceReference newReference = createServiceReference(6L, 1L, 
8);
+               ServiceReference<?> newReference = createServiceReference(6L, 
1L, 8);
                ServiceEvent event = new ServiceEvent(ServiceEvent.REGISTERED, 
newReference);
                tracked.serviceChanged(event);
                assertArrayEquals(new Long[] { 2L, 5L }, 
customizer.getServiceReferenceIds());
@@ -133,7 +134,7 @@ public class TrackedTest {
                assertArrayEquals(new Long[] { 5L, 4L }, 
customizer.getServiceReferenceIds());  
                
                // create a service event that registers a higher ranked aspect 
for service with id 1.
-               ServiceReference higherRankedReference = 
createServiceReference(7L, 1L, 15);
+               ServiceReference<?> higherRankedReference = 
createServiceReference(7L, 1L, 15);
                ServiceEvent addHigherRankedEvent = new 
ServiceEvent(ServiceEvent.REGISTERED, higherRankedReference);
                tracked.serviceChanged(addHigherRankedEvent);
                assertArrayEquals(new Long[] { 5L, 7L }, 
customizer.getServiceReferenceIds());  
@@ -165,11 +166,11 @@ public class TrackedTest {
                return context;
        }
        
-       private ServiceReference createServiceReference(Long serviceId) {
+       private ServiceReference<?> createServiceReference(Long serviceId) {
                return createServiceReference(serviceId, null, null);
        }
 
-       private ServiceReference createServiceReference(Long serviceId, Long 
aspectId, Integer ranking) {
+       private ServiceReference<?> createServiceReference(Long serviceId, Long 
aspectId, Integer ranking) {
                return new TestServiceReference(serviceId, aspectId, ranking);
        }
 
@@ -183,7 +184,7 @@ public class TrackedTest {
        
        class TestCustomizer implements ServiceTrackerCustomizer {
                
-               List<ServiceReference> serviceReferences = new ArrayList<>();
+               List<ServiceReference<?>> serviceReferences = new ArrayList<>();
 
                @Override
                public Object addingService(ServiceReference reference) {

Modified: felix/trunk/dependencymanager/release/resources/deps/NOTICE
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/release/resources/deps/NOTICE?rev=1781908&r1=1781907&r2=1781908&view=diff
==============================================================================
--- felix/trunk/dependencymanager/release/resources/deps/NOTICE (original)
+++ felix/trunk/dependencymanager/release/resources/deps/NOTICE Mon Feb  6 
14:37:49 2017
@@ -1,5 +1,5 @@
 Apache Felix Dependency Manager
-Copyright 2011-2015 The Apache Software Foundation
+Copyright 2011-2017 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
@@ -7,14 +7,10 @@ Licensed under the Apache License 2.0.
 
 This product includes software developed at The OSGi 
 Alliance (http://www.osgi.org/).
-Copyright: (c) OSGi Alliance (2000, 2015)
+Copyright: (c) OSGi Alliance (2000, 2017)
 Copyright (c) 2000 Gatespace AB. All Rights Reserved.
 Licensed under the Apache License 2.0.
 
-This product includes software from http://www.json.org.
-Copyright (c) 2002 JSON.org
-Licensed under the JSON License
-
 This product includes software from (http://junit.org),
 Licensed under the Eclipse Public License - v 1.0.
 


Reply via email to