Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java Fri Oct 27 11:59:35 2017 @@ -92,9 +92,9 @@ public class DependencyManager<S, T> imp m_minCardinality = defaultMinimumCardinality(dependency); // dump the reference information if DEBUG is enabled - if (m_componentManager.isLogEnabled(LogService.LOG_DEBUG)) + if (m_componentManager.getLogger().isLogEnabled(LogService.LOG_DEBUG)) { - m_componentManager.log(LogService.LOG_DEBUG, "Dependency Manager created " + dependency.getDebugInfo(), + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager created " + dependency.getDebugInfo(), null); } } @@ -152,8 +152,7 @@ public class DependencyManager<S, T> imp public void setTracker(ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker) { m_tracker = tracker; - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracker reset (closed)", new Object[] { getName() }, - null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracker reset (closed)", null, getName() ); trackerOpened = false; } @@ -191,7 +190,7 @@ public class DependencyManager<S, T> imp public void setTrackerOpened() { trackerOpened = true; - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracker opened", new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracker opened", null, getName()); } protected void deactivateTracker() @@ -321,16 +320,16 @@ public class DependencyManager<S, T> imp public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, int serviceCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic added {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic added {2} (enter)", + null, getName(), trackingCount, serviceReference ); boolean tracked = false; if (getPreviousRefMap().remove(serviceReference) == null) { if (isActive()) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic already active, binding {2}", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); m_componentManager.invokeBindMethod(DependencyManager.this, refPair, trackingCount); if (refPair.isFailed()) { @@ -340,21 +339,21 @@ public class DependencyManager<S, T> imp } else if (isTrackerOpened() && cardinalityJustSatisfied(serviceCount)) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic, activating", - new Object[] { getName(), trackingCount }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic, activating", + null, getName(), trackingCount); tracked(trackingCount); tracked = true; m_componentManager.activateInternal(); } else { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic, inactive, doing nothing: tracker opened: {2}, optional: {3}", - new Object[] { getName(), trackingCount, isTrackerOpened(), isOptional() }, null); + null, getName(), trackingCount, isTrackerOpened(), isOptional() ); } } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic added {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic added {2} (exit)", + null, getName(), trackingCount, serviceReference ); if (!tracked) { tracked(trackingCount); @@ -365,14 +364,14 @@ public class DependencyManager<S, T> imp public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic modified {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic modified {2} (enter)", + null, getName(), trackingCount, serviceReference ); if (isActive()) { m_componentManager.invokeUpdatedMethod(DependencyManager.this, refPair, trackingCount); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic modified {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic modified {2} (exit)", + null, getName(), trackingCount, serviceReference ); tracked(trackingCount); } @@ -380,8 +379,8 @@ public class DependencyManager<S, T> imp public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic removed {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic removed {2} (enter)", + null, getName(), trackingCount, serviceReference ); refPair.markDeleted(); boolean unbind = cardinalitySatisfied(getTracker().getServiceCount()); if (unbind) @@ -390,8 +389,8 @@ public class DependencyManager<S, T> imp { m_componentManager.invokeUnbindMethod(DependencyManager.this, refPair, trackingCount); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic removed (unbind) {2}", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic removed (unbind) {2}", + null, getName(), trackingCount, serviceReference ); tracked(trackingCount); } else @@ -401,9 +400,9 @@ public class DependencyManager<S, T> imp tracked(trackingCount); deactivateComponentManager(); lastRefPair = null; - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleDynamic removed (deactivate) {2}", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); } ungetService(refPair); } @@ -484,14 +483,14 @@ public class DependencyManager<S, T> imp public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, int serviceCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy added {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy added {2} (enter)", + null, getName(), trackingCount, serviceReference ); tracked(trackingCount); if (isActive()) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager: Static dependency on {0}/{1} is broken", - new Object[] { getName(), m_dependencyMetadata.getInterface() }, null); + null, getName(), m_dependencyMetadata.getInterface() ); deactivateComponentManager(); //event may be null during initial operations. if (event != null) @@ -504,17 +503,17 @@ public class DependencyManager<S, T> imp { m_componentManager.activateInternal(); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy added {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy added {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy modified {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); boolean reactivate = false; if (isActive()) { @@ -529,24 +528,24 @@ public class DependencyManager<S, T> imp event.addComponentManager(m_componentManager); } } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy modified {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy modified {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy removed {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy removed {2} (enter)", + null, getName(), trackingCount, serviceReference ); refPair.markDeleted(); tracked(trackingCount); if (isActive()) { //deactivate while ref is still tracked - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager: Static dependency on {0}/{1} is broken", - new Object[] { getName(), m_dependencyMetadata.getInterface() }, null); + null, getName(), m_dependencyMetadata.getInterface() ); deactivateComponentManager(); //try to reactivate after ref is no longer tracked. if (event != null) @@ -556,15 +555,15 @@ public class DependencyManager<S, T> imp } else if (!cardinalitySatisfied(getTracker().getServiceCount())) //may be called from an old tracker, so getTracker() may give a different answer { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager: Static dependency on {0}/{1} is broken", - new Object[] { getName(), m_dependencyMetadata.getInterface() }, null); + null, getName(), m_dependencyMetadata.getInterface() ); deactivateComponentManager(); } //This is unlikely ungetService(refPair); - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy removed {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticGreedy removed {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override @@ -625,25 +624,25 @@ public class DependencyManager<S, T> imp public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, int serviceCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant added {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); tracked(trackingCount); if (isTrackerOpened() && cardinalityJustSatisfied(serviceCount) && !isActive()) { m_componentManager.activateInternal(); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant added {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant added {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant modified {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); boolean reactivate = false; Collection<RefPair<S, T>> refs = this.refs.get(); if (isActive() && refs.contains(refPair)) @@ -659,18 +658,18 @@ public class DependencyManager<S, T> imp event.addComponentManager(m_componentManager); } } - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant modified {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); } @Override public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant removed {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); refPair.markDeleted(); tracked(trackingCount); Collection<RefPair<S, T>> refs = this.refs.get(); @@ -679,9 +678,9 @@ public class DependencyManager<S, T> imp if (refs.contains(refPair)) { //we are tracking the used refs, so we can deactivate here. - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager: Static dependency on {0}/{1} is broken", - new Object[] { getName(), m_dependencyMetadata.getInterface() }, null); + null, getName(), m_dependencyMetadata.getInterface() ); deactivateComponentManager(); // FELIX-2368: immediately try to reactivate @@ -694,15 +693,15 @@ public class DependencyManager<S, T> imp } else if (!cardinalitySatisfied(getTracker().getServiceCount())) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Dependency Manager: Static dependency on {0}/{1} is broken", - new Object[] { getName(), m_dependencyMetadata.getInterface() }, null); + null, getName(), m_dependencyMetadata.getInterface() ); deactivateComponentManager(); } ungetService(refPair); - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} MultipleStaticReluctant removed {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + null, getName(), trackingCount, serviceReference ); } @Override @@ -794,8 +793,8 @@ public class DependencyManager<S, T> imp public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, int serviceCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic added {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic added {2} (enter)", + null, getName(), trackingCount, serviceReference ); boolean tracked = false; if (getPreviousRefMap().remove(serviceReference) == null) { @@ -835,8 +834,8 @@ public class DependencyManager<S, T> imp } } this.trackingCount = trackingCount; - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic added {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic added {2} (exit)", + null, getName(), trackingCount, serviceReference ); if (!tracked) { tracked(trackingCount); @@ -847,8 +846,8 @@ public class DependencyManager<S, T> imp public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic modified {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic modified {2} (enter)", + null, getName(), trackingCount, serviceReference ); boolean invokeUpdated; synchronized (getTracker().tracked()) { @@ -859,8 +858,8 @@ public class DependencyManager<S, T> imp m_componentManager.invokeUpdatedMethod(DependencyManager.this, refPair, trackingCount); } this.trackingCount = trackingCount; - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic modified {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic modified {2} (exit)", + null, getName(), trackingCount, serviceReference ); tracked(trackingCount); } @@ -868,8 +867,8 @@ public class DependencyManager<S, T> imp public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic removed {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic removed {2} (enter)", + null, getName(), trackingCount, serviceReference ); refPair.markDeleted(); boolean deactivate = false; boolean untracked = true; @@ -935,8 +934,8 @@ public class DependencyManager<S, T> imp this.trackingCount = trackingCount; tracked(trackingCount); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic removed {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleDynamic removed {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override @@ -1022,8 +1021,8 @@ public class DependencyManager<S, T> imp public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, int serviceCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic added {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic added {2} (enter)", + null, getName(), trackingCount, serviceReference); this.trackingCount = trackingCount; tracked(trackingCount); if (isActive()) @@ -1044,9 +1043,9 @@ public class DependencyManager<S, T> imp } else { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic active but new {2} is worse match than old {3}", - new Object[] { getName(), trackingCount, refPair, this.refPair, }, null); + null, getName(), trackingCount, refPair, this.refPair); } } else if (isTrackerOpened() && cardinalityJustSatisfied(serviceCount)) @@ -1055,20 +1054,20 @@ public class DependencyManager<S, T> imp } else { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic active: {2} trackerOpened: {3} optional: {4}", - new Object[] { getName(), trackingCount, isActive(), isTrackerOpened(), isOptional() }, null); + null, getName(), trackingCount, isActive(), isTrackerOpened(), isOptional() ); } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic added {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic added {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic modified {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic modified {2} (enter)", + null, getName(), trackingCount, serviceReference ); boolean invokeUpdated; final Object sync = getTracker().tracked(); synchronized (sync) @@ -1097,16 +1096,16 @@ public class DependencyManager<S, T> imp event.addComponentManager(m_componentManager); } } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic modified {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic modified {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount, ExtendedServiceEvent event) { - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic removed {2} (enter)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic removed {2} (enter)", + null, getName(), trackingCount, serviceReference ); refPair.markDeleted(); this.trackingCount = trackingCount; tracked(trackingCount); @@ -1136,8 +1135,8 @@ public class DependencyManager<S, T> imp event.addComponentManager(m_componentManager); } } - m_componentManager.log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic removed {2} (exit)", - new Object[] { getName(), trackingCount, serviceReference }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "dm {0} tracking {1} SingleStatic removed {2} (exit)", + null, getName(), trackingCount, serviceReference ); } @Override @@ -1361,13 +1360,13 @@ public class DependencyManager<S, T> imp } catch (InvalidSyntaxException ise) { - m_componentManager.log(LogService.LOG_ERROR, "Unexpected problem with filter ''{0}''", - new Object[] { targetFilter }, ise); + m_componentManager.getLogger().log(LogService.LOG_ERROR, "Unexpected problem with filter ''{0}''", + ise, targetFilter ); return null; } } - m_componentManager.log(LogService.LOG_DEBUG, "No permission to access the services", null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "No permission to access the services", null); return null; } @@ -1502,10 +1501,9 @@ public class DependencyManager<S, T> imp final BundleContext bundleContext = m_componentManager.getBundleContext(); if (bundleContext == null) { - m_componentManager.log(LogService.LOG_ERROR, - "Bundle shut down while getting service {0} ({1}/{2,number,#})", new Object[] { getName(), - m_dependencyMetadata.getInterface(), refPair.getRef().getProperty(Constants.SERVICE_ID) }, - null); + m_componentManager.getLogger().log(LogService.LOG_ERROR, + "Bundle shut down while getting service {0} ({1}/{2,number,#})", null, getName(), + m_dependencyMetadata.getInterface(), refPair.getRef().getProperty(Constants.SERVICE_ID) ); return null; } try @@ -1518,10 +1516,9 @@ public class DependencyManager<S, T> imp // caused by getService() called on invalid bundle context // or if there is a service reference cycle involving service // factories ! - m_componentManager.log(LogService.LOG_ERROR, "Failed getting service {0} ({1}/{2,number,#})", - new Object[] { getName(), m_dependencyMetadata.getInterface(), - refPair.getRef().getProperty(Constants.SERVICE_ID) }, - e); + m_componentManager.getLogger().log(LogService.LOG_ERROR, "Failed getting service {0} ({1}/{2,number,#})", + e, getName(), m_dependencyMetadata.getInterface(), + refPair.getRef().getProperty(Constants.SERVICE_ID) ); return null; } @@ -1603,8 +1600,8 @@ public class DependencyManager<S, T> imp edgeInfo.setOpen(status.trackingCount.get()); openLatch = edgeInfo.getOpenLatch(); } - m_componentManager.log(LogService.LOG_DEBUG, "For dependency {0}, optional: {1}; to bind: {2}", - new Object[] { getName(), isOptional(), status.refs }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "For dependency {0}, optional: {1}; to bind: {2}", + null, getName(), isOptional(), status.refs); for (RefPair<S, T> refPair : status.refs) { if (!refPair.isDeleted() && !refPair.isFailed()) @@ -1620,8 +1617,8 @@ public class DependencyManager<S, T> imp { if (!invokeInitMethod(componentContext)) { - m_componentManager.log(LogService.LOG_DEBUG, "For dependency {0}, failed to initialize object", - new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "For dependency {0}, failed to initialize object", + null, getName()); return false; } int serviceCount = 0; @@ -1631,9 +1628,9 @@ public class DependencyManager<S, T> imp { if (!doInvokeBindMethod(componentContext, refPair, status.trackingCount.get())) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "For dependency {0}, failed to invoke bind method on object {1}", - new Object[] { getName(), refPair }, null); + null, getName(), refPair ); } serviceCount++; @@ -1664,9 +1661,9 @@ public class DependencyManager<S, T> imp latch = edgeInfo.getCloseLatch(); } - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "DependencyManager: {0} close component unbinding from {1} at tracking count {2} refpairs: {3}", - new Object[] { getName(), componentContext, trackingCount.get(), refPairs }, null); + null, getName(), componentContext, trackingCount.get(), refPairs ); m_componentManager.waitForTracked(trackingCount.get()); for (RefPair<S, T> boundRef : refPairs) { @@ -1713,7 +1710,7 @@ public class DependencyManager<S, T> imp //TODO this check is no longer correct, fix it! // if (refPair.getServiceObject(key) != null) // { - // m_componentManager.log( LogService.LOG_DEBUG, + // m_componentManager.getLogger().log( LogService.LOG_DEBUG, // "DependencyManager : late binding of service reference {1} skipped as service has already been located", // new Object[] {ref}, null ); // //something else got the reference and may be binding it. @@ -1781,7 +1778,7 @@ public class DependencyManager<S, T> imp } else { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "DependencyManager : component not yet created, assuming bind method call succeeded", null); return true; @@ -1794,9 +1791,9 @@ public class DependencyManager<S, T> imp final ReferenceMethod bindMethod = m_bindMethods.getBind(); if (!getServiceObject(componentContext, bindMethod, refPair)) { - m_componentManager.log(LogService.LOG_WARNING, + m_componentManager.getLogger().log(LogService.LOG_WARNING, "DependencyManager : invokeBindMethod : Service not available from service registry for ServiceReference {0} for reference {1}", - new Object[] { refPair.getRef(), getName() }, null); + null, refPair.getRef(), getName() ); return false; } @@ -1840,9 +1837,9 @@ public class DependencyManager<S, T> imp info.waitForOpen(m_componentManager, getName(), "invokeUpdatedMethod"); if (!getServiceObject(componentContext, m_bindMethods.getUpdated(), refPair)) { - m_componentManager.log(LogService.LOG_WARNING, + m_componentManager.getLogger().log(LogService.LOG_WARNING, "DependencyManager : invokeUpdatedMethod : Service not available from service registry for ServiceReference {0} for reference {1}", - new Object[] { refPair.getRef(), getName() }, null); + null, refPair.getRef(), getName() ); return false; } @@ -1859,7 +1856,7 @@ public class DependencyManager<S, T> imp // don't care whether we can or cannot call the updated method // if the component instance has already been cleared by the // close() method - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "DependencyManager : Component not set, no need to call updated method", null); } return false; @@ -1908,9 +1905,9 @@ public class DependencyManager<S, T> imp if (!getServiceObject(componentContext, m_bindMethods.getUnbind(), refPair)) { - m_componentManager.log(LogService.LOG_WARNING, + m_componentManager.getLogger().log(LogService.LOG_WARNING, "DependencyManager : invokeUnbindMethod : Service not available from service registry for ServiceReference {0} for reference {1}", - new Object[] { refPair.getRef(), getName() }, null); + null, refPair.getRef(), getName() ); return; } @@ -1927,7 +1924,7 @@ public class DependencyManager<S, T> imp // don't care whether we can or cannot call the unbind method // if the component instance has already been cleared by the // close() method - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "DependencyManager : Component not set, no need to call unbind method", null); } } @@ -2028,9 +2025,9 @@ public class DependencyManager<S, T> imp } catch (ComponentException e) { - m_componentManager.log(LogService.LOG_WARNING, + m_componentManager.getLogger().log(LogService.LOG_WARNING, "Invalid minimum cardinality property for dependency {0}: {1}", - new Object[] { getName(), e.getMessage() }, null); + null, getName(), e.getMessage()); } if (minimumCardinality != null && (minimumCardinality < defaultMinimumCardinality(m_dependencyMetadata) || (!m_dependencyMetadata.isMultiple() && minimumCardinality > 1))) @@ -2068,9 +2065,9 @@ public class DependencyManager<S, T> imp // do nothing if target filter does not change if ((m_target == null && target == null) || (m_target != null && m_target.equals(target))) { - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "No change in target property for dependency {0}: currently registered: {1}", - new Object[] { getName(), m_tracker != null }, null); + null, getName(), m_tracker != null ); if (m_tracker != null) { m_minCardinality = minimumCardinality; @@ -2127,8 +2124,8 @@ public class DependencyManager<S, T> imp //wait for service events to complete before processing initial set from new tracker. m_componentManager.waitForTracked(trackingCount.get()); } - m_componentManager.log(LogService.LOG_DEBUG, "Setting target property for dependency {0} to {1}", - new Object[] { getName(), target }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "Setting target property for dependency {0} to {1}", + null, getName(), target ); BundleContext bundleContext = m_componentManager.getBundleContext(); Filter eventFilter = null; if (bundleContext != null) @@ -2141,9 +2138,9 @@ public class DependencyManager<S, T> imp } catch (InvalidSyntaxException ise) { - m_componentManager.log(LogService.LOG_ERROR, + m_componentManager.getLogger().log(LogService.LOG_ERROR, "Invalid syntax in target property for dependency {0} to {1}", - new Object[] { getName(), target }, null); + null, getName(), target ); //create a filter that will never be satisfied eventFilterString = "(component.id=-1)"; @@ -2162,18 +2159,17 @@ public class DependencyManager<S, T> imp } else { - m_componentManager.log(LogService.LOG_ERROR, "Bundle is shut down for dependency {0} to {1}", - new Object[] { getName(), target }, null); + m_componentManager.getLogger().log(LogService.LOG_ERROR, "Bundle is shut down for dependency {0} to {1}", + null, getName(), target ); return; } m_customizer.setPreviousRefMap(refMap); boolean initialActive = oldTracker != null && oldTracker.isActive(); - m_componentManager.log(LogService.LOG_DEBUG, + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "New service tracker for {0}, initial active: {1}, previous references: {2}, classFilter: {3}, eventFilter {4}, initialReferenceFilter {5}", - new Object[] { getName(), initialActive, refMap, classFilterString, eventFilter, - initialReferenceFilterString }, - null); + null, getName(), initialActive, refMap, classFilterString, eventFilter, + initialReferenceFilterString ); ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker = new ServiceTracker<>( bundleContext, m_customizer, initialActive, m_componentManager.getActivator(), eventFilter, classFilterString, initialReferenceFilterString); @@ -2187,8 +2183,8 @@ public class DependencyManager<S, T> imp { oldTracker.completeClose(refMap); } - m_componentManager.log(LogService.LOG_DEBUG, "registering service listener for dependency {0}", - new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "registering service listener for dependency {0}", + null, getName()); } private Customizer<S, T> newCustomizer() @@ -2197,8 +2193,8 @@ public class DependencyManager<S, T> imp if (!hasGetPermission()) { customizer = new NoPermissionsCustomizer(); - m_componentManager.log(LogService.LOG_INFO, "No permission to get services for {0}", - new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_INFO, "No permission to get services for {0}", + null, getName()); } else if (m_componentManager.isFactory()) { @@ -2244,14 +2240,14 @@ public class DependencyManager<S, T> imp { refMap = tracker.close(trackingCount); m_tracker = null; - m_componentManager.log(LogService.LOG_DEBUG, "unregistering service listener for dependency {0}", - new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, "unregistering service listener for dependency {0}", + null, getName()); } else { refMap = new TreeMap<>(Collections.reverseOrder()); - m_componentManager.log(LogService.LOG_DEBUG, - " No existing service listener to unregister for dependency {0}", new Object[] { getName() }, null); + m_componentManager.getLogger().log(LogService.LOG_DEBUG, + " No existing service listener to unregister for dependency {0}", null, getName()); trackingCount.set(-1); } // m_registered = false;
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/EdgeInfo.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/EdgeInfo.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/EdgeInfo.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/EdgeInfo.java Fri Oct 27 11:59:35 2017 @@ -24,24 +24,24 @@ import java.util.concurrent.TimeUnit; import org.osgi.service.log.LogService; /** - * EdgeInfo holds information about the service event tracking counts for creating (open) and disposing (close) + * EdgeInfo holds information about the service event tracking counts for creating (open) and disposing (close) * implementation object instances per dependency manager. These need to be maintained for each implementation object instance - * because each instance (for a service factory) will have different sets of service references available. These need to be + * because each instance (for a service factory) will have different sets of service references available. These need to be * maintained for each dependency manager because the open/close tracking counts are obtained when the set of current * service references is obtained, using a lock internal to the service tracker. - * * - * The information in the open/close counts is used in the outOfRange method which determines if a service event tracking count + * + * The information in the open/close counts is used in the outOfRange method which determines if a service event tracking count * occurred before the "open" event (in which case it is reflected in the open set already and does not need to be processed separately) * or after the "close" event (in which case it is reflected in the close set already). - * + * * The open latch is used to make sure that elements in the open set are completely processed before updated or unbind events * are processed - * The close latch is used to make sure that unbind events that are out of range wait for the close to complete before returning; - * in this case the unbind is happening in the "close" thread rather than the service event thread, so we wait for the close to complete + * The close latch is used to make sure that unbind events that are out of range wait for the close to complete before returning; + * in this case the unbind is happening in the "close" thread rather than the service event thread, so we wait for the close to complete * so that when the service event returns the unbind will actually have been completed. - * - * Related to this functionality is the missing tracking in AbstractComponentManager. This is used on close of an instance to make + * + * Related to this functionality is the missing tracking in AbstractComponentManager. This is used on close of an instance to make * sure all service events occuring before close starts complete processing before the close takes action. * */ @@ -62,10 +62,10 @@ class EdgeInfo { return openLatch; } - + public void waitForOpen(AbstractComponentManager<?> m_componentManager, String componentName, String methodName) { - + CountDownLatch latch = getOpenLatch(); String latchName = "open"; waitForLatch( m_componentManager, latch, componentName, methodName, latchName ); @@ -73,7 +73,7 @@ class EdgeInfo public void waitForClose(AbstractComponentManager<?> m_componentManager, String componentName, String methodName) { - + CountDownLatch latch = getCloseLatch(); String latchName = "close"; waitForLatch( m_componentManager, latch, componentName, methodName, latchName ); @@ -86,8 +86,8 @@ class EdgeInfo { if (!latch.await( m_componentManager.getLockTimeout(), TimeUnit.MILLISECONDS )) { - m_componentManager.log( LogService.LOG_ERROR, - "DependencyManager : {0} : timeout on {1} latch {2}", new Object[] {methodName, latchName, componentName}, null ); + m_componentManager.getLogger().log( LogService.LOG_ERROR, + "DependencyManager : {0} : timeout on {1} latch {2}", null, methodName, latchName, componentName ); m_componentManager.dumpThreads(); } } @@ -97,15 +97,16 @@ class EdgeInfo { if (!latch.await( m_componentManager.getLockTimeout(), TimeUnit.MILLISECONDS )) { - m_componentManager.log( LogService.LOG_ERROR, - "DependencyManager : {0} : timeout on {1} latch {2}", new Object[] {methodName, latchName, componentName}, null ); + m_componentManager.getLogger().log( LogService.LOG_ERROR, + "DependencyManager : {0} : timeout on {1} latch {2}", null, methodName, latchName, componentName ); m_componentManager.dumpThreads(); } } catch ( InterruptedException e1 ) { - m_componentManager.log( LogService.LOG_ERROR, - "DependencyManager : {0} : Interrupted twice on {1} latch {2}", new Object[] {methodName, latchName, componentName}, null ); + m_componentManager.getLogger().log( LogService.LOG_ERROR, + "DependencyManager : {0} : Interrupted twice on {1} latch {2}", + null, methodName, latchName, componentName ); Thread.currentThread().interrupt(); } Thread.currentThread().interrupt(); @@ -121,7 +122,7 @@ class EdgeInfo { this.open = open; } - + public void ignore() { open = Integer.MAX_VALUE; @@ -134,23 +135,23 @@ class EdgeInfo * Returns whether the tracking count is before the open count or after the close count (if set) * This must be called from within a block synchronized on m_tracker.tracked(). * Setting open occurs in a synchronized block as well, to the tracker's current tracking count. - * Therefore if this outOfRange call finds open == -1 then open will be set to a tracking count + * Therefore if this outOfRange call finds open == -1 then open will be set to a tracking count * at least as high as the argument tracking count. * @param trackingCount tracking count from tracker to compare with range * @return true if open not set, tracking count before open, or close set and tracking count after close. */ public boolean outOfRange( int trackingCount ) { - return open == -1 + return open == -1 || trackingCount < open || (close != -1 && trackingCount > close); } - + public boolean beforeRange( int trackingCount ) { return open == -1 || trackingCount < open; } - + public boolean afterRange( int trackingCount ) { return close != -1 && trackingCount > close; Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java Fri Oct 27 11:59:35 2017 @@ -30,32 +30,32 @@ import org.osgi.service.log.LogService; abstract class RegistrationManager<T> { enum RegState {unregistered, registered}; - private static class RegStateWrapper + private static class RegStateWrapper { private final CountDownLatch latch = new CountDownLatch(1); private final RegState regState; - + RegStateWrapper( RegState regState ) { this.regState = regState; } - + public RegState getRegState() { return regState; } - + public CountDownLatch getLatch() { return latch; } - + @Override public int hashCode() { return regState.hashCode(); } - + @Override public boolean equals(Object other) { @@ -71,15 +71,15 @@ abstract class RegistrationManager<T> } private final Lock registrationLock = new ReentrantLock(); //Deque, ArrayDeque if we had java 6 - private final List<RegStateWrapper> opqueue = new ArrayList<RegStateWrapper>(); + private final List<RegStateWrapper> opqueue = new ArrayList<>(); private volatile T m_serviceRegistration; /** - * + * * @param desired desired registration state * @param services services to register this under - * @return true if this request results in a state change, false if we are already in the desired state or some other thread + * @return true if this request results in a state change, false if we are already in the desired state or some other thread * will deal with the consequences of the state change. */ boolean changeRegistration( RegState desired, String[] services ) @@ -92,15 +92,13 @@ abstract class RegistrationManager<T> { if ((desired == RegState.unregistered) == (m_serviceRegistration == null)) { - log( LogService.LOG_DEBUG, "Already in desired state {0}", new Object[] - {desired}, null ); - return false; + log( LogService.LOG_DEBUG, "Already in desired state {0}", null, desired); + return false; } } else if (opqueue.get( opqueue.size() - 1 ).getRegState() == desired) { - log( LogService.LOG_DEBUG, "Duplicate request on other thread: registration change queue {0}", new Object[] - {opqueue}, null ); + log( LogService.LOG_DEBUG, "Duplicate request on other thread: registration change queue {0}", null, opqueue); rsw = opqueue.get( opqueue.size() - 1 ); return false; //another thread will do our work and owns the state change } @@ -108,22 +106,20 @@ abstract class RegistrationManager<T> opqueue.add( rsw ); if (opqueue.size() > 1) { - log( LogService.LOG_DEBUG, "Allowing other thread to process request: registration change queue {0}", new Object[] - {opqueue}, null ); + log( LogService.LOG_DEBUG, "Allowing other thread to process request: registration change queue {0}", null, opqueue); return true; //some other thread will do it later but this thread owns the state change. } //we're next do { - log( LogService.LOG_DEBUG, "registration change queue {0}", new Object[] - {opqueue}, null ); + log( LogService.LOG_DEBUG, "registration change queue {0}", null, opqueue);; RegStateWrapper next = opqueue.get( 0 ); T serviceRegistration = m_serviceRegistration; if ( next.getRegState() == RegState.unregistered) { m_serviceRegistration = null; } - + registrationLock.unlock(); try { @@ -132,7 +128,7 @@ abstract class RegistrationManager<T> serviceRegistration = register(services ); } - else + else { if ( serviceRegistration != null ) { @@ -140,9 +136,8 @@ abstract class RegistrationManager<T> } else { - log( LogService.LOG_ERROR, "Unexpected unregistration request with no registration present", new Object[] - {}, new Exception("Stack trace") ); - + log( LogService.LOG_ERROR, "Unexpected unregistration request with no registration present", new Exception("Stack trace")); + } } } @@ -170,8 +165,7 @@ abstract class RegistrationManager<T> { if ( !rsw.getLatch().await( getTimeout(), TimeUnit.MILLISECONDS )) { - log( LogService.LOG_ERROR, "Timeout waiting for reg change to complete {0}", new Object[] - {rsw.getRegState()}, null); + log( LogService.LOG_ERROR, "Timeout waiting for reg change to complete {0}", null, rsw.getRegState()); reportTimeout(); } } @@ -181,15 +175,13 @@ abstract class RegistrationManager<T> { if ( !rsw.getLatch().await( getTimeout(), TimeUnit.MILLISECONDS )) { - log( LogService.LOG_ERROR, "Timeout waiting for reg change to complete {0}", new Object[] - {rsw.getRegState()}, null); + log( LogService.LOG_ERROR, "Timeout waiting for reg change to complete {0}", null, rsw.getRegState()); reportTimeout(); } } catch ( InterruptedException e1 ) { - log( LogService.LOG_ERROR, "Interrupted twice waiting for reg change to complete {0}", new Object[] - {rsw.getRegState()}, null); + log( LogService.LOG_ERROR, "Interrupted twice waiting for reg change to complete {0}",null, rsw.getRegState()); } Thread.currentThread().interrupt(); } @@ -197,22 +189,22 @@ abstract class RegistrationManager<T> } } - + abstract T register(String[] services); abstract void postRegister(T t); abstract void unregister(T serviceRegistration); - - abstract void log( int level, String message, Object[] arguments, Throwable ex ); - + + abstract void log( int level, String message, Throwable ex, Object... arguments ); + abstract long getTimeout(); - + abstract void reportTimeout(); - + T getServiceRegistration() { return m_serviceRegistration; } - + } Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java Fri Oct 27 11:59:35 2017 @@ -56,7 +56,7 @@ public class ServiceFactoryComponentMana // maintain the map of ComponentContext objects created for the // service instances - private IdentityHashMap<S, ComponentContextImpl<S>> serviceContexts = new IdentityHashMap<S, ComponentContextImpl<S>>(); + private IdentityHashMap<S, ComponentContextImpl<S>> serviceContexts = new IdentityHashMap<>(); /** * @param container ComponentHolder for configuration management @@ -81,7 +81,8 @@ public class ServiceFactoryComponentMana for (ComponentContextImpl<S> componentContext: getComponentContexts() ) { disposeImplementationObject( componentContext, reason ); - log( LogService.LOG_DEBUG, "Unset implementation object for component {0} in deleteComponent for reason {1}", new Object[] { getName(), REASONS[ reason ] }, null ); + getLogger().log( LogService.LOG_DEBUG, "Unset implementation object for component in deleteComponent for reason {0}", + null, REASONS[ reason ] ); } serviceContexts.clear(); clearServiceProperties(); @@ -94,14 +95,14 @@ public class ServiceFactoryComponentMana @Override public S getService( Bundle bundle, ServiceRegistration<S> serviceRegistration ) { - log( LogService.LOG_DEBUG, "ServiceFactory.getService()", null ); + getLogger().log( LogService.LOG_DEBUG, "ServiceFactory.getService()", null ); // When the getServiceMethod is called, the implementation object must be created - ComponentContextImpl<S> componentContext = new ComponentContextImpl<S>(this, bundle, serviceRegistration); + ComponentContextImpl<S> componentContext = new ComponentContextImpl<>(this, bundle, serviceRegistration); if (collectDependencies(componentContext) ) { - log( LogService.LOG_DEBUG, + getLogger().log( LogService.LOG_DEBUG, "getService (ServiceFactory) dependencies collected.", null ); @@ -140,7 +141,7 @@ public class ServiceFactoryComponentMana { // log that the service factory component cannot be created (we don't // know why at this moment; this should already have been logged) - log( LogService.LOG_DEBUG, "Failed creating the component instance; see log for reason", null ); + getLogger().log( LogService.LOG_DEBUG, "Failed creating the component instance; see log for reason", null ); setState(previousState, State.failed); } @@ -159,7 +160,7 @@ public class ServiceFactoryComponentMana @Override public void ungetService( Bundle bundle, ServiceRegistration<S> registration, S service ) { - log( LogService.LOG_DEBUG, "ServiceFactory.ungetService()", null ); + getLogger().log( LogService.LOG_DEBUG, "ServiceFactory.ungetService()", null ); // When the ungetServiceMethod is called, the implementation object must be deactivated // private ComponentContext and implementation instances @@ -185,7 +186,7 @@ public class ServiceFactoryComponentMana { synchronized ( serviceContexts ) { - return new ArrayList<ComponentContextImpl<S>>( serviceContexts.values() ); + return new ArrayList<>( serviceContexts.values() ); } } Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java Fri Oct 27 11:59:35 2017 @@ -133,7 +133,7 @@ public class SingleComponentManager<S> e } // otherwise set the context and component instance and return true - log( LogService.LOG_DEBUG, "Set implementation object for component {0}", new Object[] { getName() }, null ); + getLogger().log( LogService.LOG_DEBUG, "Set implementation object for component", null ); //notify that component was successfully created so any optional circular dependencies can be retried m_container.getActivator().missingServicePresent( getServiceReference() ); @@ -155,7 +155,7 @@ public class SingleComponentManager<S> e disposeImplementationObject( m_componentContext, reason ); m_componentContext.cleanup(); m_componentContext = null; - log( LogService.LOG_DEBUG, "Unset and deconfigured implementation object for component {0} in deleteComponent for reason {1}", new Object[] { getName(), REASONS[ reason ] }, null ); + getLogger().log( LogService.LOG_DEBUG, "Unset and deconfigured implementation object for component in deleteComponent for reason {0}", null, REASONS[ reason ] ); clearServiceProperties(); } } @@ -226,7 +226,7 @@ public class SingleComponentManager<S> e Bundle bundle = getBundle(); if (bundle == null) { - log( LogService.LOG_WARNING, "Bundle shut down during instantiation of the implementation object", null); + getLogger().log( LogService.LOG_WARNING, "Bundle shut down during instantiation of the implementation object", null); return null; } @@ -243,8 +243,8 @@ public class SingleComponentManager<S> e DependencyManager.OpenStatus<S, ?> open = dm.open( componentContext, componentContext.getEdgeInfo( dm ) ); if ( open == null ) { - log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}", - new Object[] { dm.getName() }, null ); + getLogger().log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}", + null, dm.getName() ); failed = true; break; @@ -275,14 +275,14 @@ public class SingleComponentManager<S> e catch ( final InstantiationException ie) { // we don't need to log the stack trace - log( LogService.LOG_ERROR, "Error during instantiation of the implementation object: " + ie.getMessage(), null ); + getLogger().log( LogService.LOG_ERROR, "Error during instantiation of the implementation object: " + ie.getMessage(), null ); this.setFailureReason(ie); return null; } catch ( Throwable t ) { // failed to instantiate, return null - log( LogService.LOG_ERROR, "Error during instantiation of the implementation object", t ); + getLogger().log( LogService.LOG_ERROR, "Error during instantiation of the implementation object", t ); this.setFailureReason(t); return null; } @@ -299,8 +299,8 @@ public class SingleComponentManager<S> e final DependencyManager.OpenStatus<S, ?> open = iter.next(); if ( !dm.bind(componentContext, (OpenStatus) open) ) { - log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}", - new Object[] { dm.getName() }, null ); + getLogger().log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}", + null, dm.getName() ); failed = true; break; } @@ -595,7 +595,7 @@ public class SingleComponentManager<S> e } else { - log( LogService.LOG_DEBUG, "Not updating service registration, no change in properties", null, null ); + getLogger().log( LogService.LOG_DEBUG, "Not updating service registration, no change in properties", null, null ); } } catch ( IllegalStateException ise ) @@ -604,17 +604,17 @@ public class SingleComponentManager<S> e } catch ( IllegalArgumentException iae ) { - log( LogService.LOG_ERROR, + getLogger().log( LogService.LOG_ERROR, "Unexpected configuration property problem when updating service registration", iae ); } catch ( Throwable t ) { - log( LogService.LOG_ERROR, "Unexpected problem when updating service registration", t ); + getLogger().log( LogService.LOG_ERROR, "Unexpected problem when updating service registration", t ); } } else { - log( LogService.LOG_DEBUG, "No service registration to update", null, null ); + getLogger().log( LogService.LOG_DEBUG, "No service registration to update", null, null ); } } @@ -659,7 +659,7 @@ public class SingleComponentManager<S> e if ( !getState().isEnabled() ) { // nothing to do for inactive components, leave this method - log( LogService.LOG_DEBUG, "Component can not be activated since it is in state {0}", new Object[] { getState() }, null ); + getLogger().log( LogService.LOG_DEBUG, "Component can not be activated since it is in state {0}", null, getState() ); //enabling the component will set the target properties, do nothing now. return; } @@ -671,7 +671,7 @@ public class SingleComponentManager<S> e { if ( !getState().isSatisfied() && !getComponentMetadata().isConfigurationIgnored() ) { - log( LogService.LOG_DEBUG, "Attempting to activate unsatisfied component", null ); + getLogger().log( LogService.LOG_DEBUG, "Attempting to activate unsatisfied component", null ); updateTargets( getProperties() ); releaseActivationWriteeLock( ); activateInternal( ); @@ -681,7 +681,7 @@ public class SingleComponentManager<S> e if ( !modify(configurationDeleted) ) { // SCR 112.7.1 - deactivate if configuration is deleted or no modified method declared - log( LogService.LOG_DEBUG, "Deactivating and Activating to reconfigure from configuration", null ); + getLogger().log( LogService.LOG_DEBUG, "Deactivating and Activating to reconfigure from configuration", null ); int reason = configurationDeleted ? ComponentConstants.DEACTIVATION_REASON_CONFIGURATION_DELETED : ComponentConstants.DEACTIVATION_REASON_CONFIGURATION_MODIFIED; @@ -730,7 +730,7 @@ public class SingleComponentManager<S> e // 1. no live update if there is no declared method if ( getComponentMetadata().getModified() == null ) { - log( LogService.LOG_DEBUG, "No modified method, cannot update dynamically", null ); + getLogger().log( LogService.LOG_DEBUG, "No modified method, cannot update dynamically", null ); return false; } // invariant: we have a modified method name @@ -745,9 +745,9 @@ public class SingleComponentManager<S> e { if ( !dm.canUpdateDynamically( props ) ) { - log( LogService.LOG_DEBUG, + getLogger().log( LogService.LOG_DEBUG, "Cannot dynamically update the configuration due to dependency changes induced on dependency {0}", - new Object[] {dm.getName()}, null ); + null, dm.getName() ); return false; } } @@ -765,8 +765,8 @@ public class SingleComponentManager<S> e if ( result == null ) { // log an error if the declared method cannot be found - log( LogService.LOG_ERROR, "Declared modify method ''{0}'' cannot be found, configuring by reactivation", - new Object[] {getComponentMetadata().getModified()}, null ); + getLogger().log( LogService.LOG_ERROR, "Declared modify method ''{0}'' cannot be found, configuring by reactivation", + null, getComponentMetadata().getModified() ); return false; } @@ -775,7 +775,7 @@ public class SingleComponentManager<S> e // this dynamic update and have the component be deactivated if ( !verifyDependencyManagers() ) { - log( LogService.LOG_DEBUG, + getLogger().log( LogService.LOG_DEBUG, "Updating the service references caused at least one reference to become unsatisfied, deactivating component", null ); return false; @@ -896,13 +896,13 @@ public class SingleComponentManager<S> e ComponentContextImpl<S> componentContext = new ComponentContextImpl<>(this, this.getBundle(), serviceRegistration); if ( collectDependencies(componentContext)) { - log( LogService.LOG_DEBUG, + getLogger().log( LogService.LOG_DEBUG, "getService (single component manager) dependencies collected.", null ); } else { - log( LogService.LOG_INFO, + getLogger().log( LogService.LOG_INFO, "Could not obtain all required dependencies, getService returning null", null ); return false; @@ -949,7 +949,7 @@ public class SingleComponentManager<S> e // log that the delayed component cannot be created (we don't // know why at this moment; this should already have been logged) - log( LogService.LOG_DEBUG, "Failed creating the component instance; see log for reason", null ); + getLogger().log( LogService.LOG_DEBUG, "Failed creating the component instance; see log for reason", null ); // component could not really be created. This may be temporary // so we stay in the registered state but ensure the component @@ -960,7 +960,7 @@ public class SingleComponentManager<S> e } catch ( Throwable t ) { - log( LogService.LOG_DEBUG, "Cannot delete incomplete component instance. Ignoring.", t ); + getLogger().log( LogService.LOG_DEBUG, "Cannot delete incomplete component instance. Ignoring.", t ); } // no service can be returned (be prepared for more logging !!) Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java Fri Oct 27 11:59:35 2017 @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; -import org.apache.felix.scr.impl.helper.Logger; import org.apache.felix.scr.impl.metadata.ServiceMetadata.Scope; import org.osgi.service.component.ComponentException; @@ -555,7 +554,7 @@ public class ComponentMetadata * Returns the flag that defines the activation policy for the component. * <p> * This method may only be trusted after this instance has been validated - * by the {@link #validate( Logger logger )} call. Else it will either return the value + * by the {@link #validate( )} call. Else it will either return the value * of an explicitly set "immediate" attribute or return false if a service * element or the factory attribute is set or true otherwise. This latter * default value deduction may be unsafe while the descriptor has not been Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java (original) +++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java Fri Oct 27 11:59:35 2017 @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; +import org.apache.felix.scr.impl.logger.BundleLogger; import org.apache.felix.scr.impl.logger.Logger; import org.apache.felix.scr.impl.metadata.ComponentMetadata; import org.apache.felix.scr.impl.metadata.DSVersion; @@ -79,7 +80,7 @@ public class XmlHandler implements KXml2 // creates an instance with the bundle owning the component descriptor // file parsed by this instance - public XmlHandler( Bundle bundle, Logger logger, boolean globalObsoleteFactoryComponentFactory, boolean globalDelayedKeepInstances ) + public XmlHandler( Bundle bundle, BundleLogger logger, boolean globalObsoleteFactoryComponentFactory, boolean globalDelayedKeepInstances ) { m_bundle = bundle; m_logger = logger; Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/MockLogger.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/MockLogger.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/MockLogger.java (original) +++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/MockLogger.java Fri Oct 27 11:59:35 2017 @@ -21,13 +21,13 @@ package org.apache.felix.scr.impl; import java.text.MessageFormat; -import org.apache.felix.scr.impl.logger.ScrLogger; +import org.apache.felix.scr.impl.logger.BundleLogger; import org.mockito.Mockito; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; -public class MockLogger extends ScrLogger +public class MockLogger extends BundleLogger { static { final Bundle b = Mockito.mock(Bundle.class); @@ -39,7 +39,7 @@ public class MockLogger extends ScrLogge private static BundleContext BUNDLE_CONTEXT; public MockLogger() { - super(BUNDLE_CONTEXT, null); + super(BUNDLE_CONTEXT, null, null); } Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java (original) +++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java Fri Oct 27 11:59:35 2017 @@ -20,7 +20,10 @@ package org.apache.felix.scr.impl.inject import org.apache.felix.scr.impl.MockBundle; +import org.apache.felix.scr.impl.MockLogger; import org.apache.felix.scr.impl.inject.methods.BindMethod; +import org.apache.felix.scr.impl.logger.BundleLogger; +import org.apache.felix.scr.impl.logger.ComponentLogger; import org.apache.felix.scr.impl.manager.ComponentActivator; import org.apache.felix.scr.impl.manager.ComponentContainer; import org.apache.felix.scr.impl.manager.ComponentContextImpl; @@ -459,6 +462,7 @@ public class BindMethodTest extends Test { final ComponentActivator activator = Mockito.mock(ComponentActivator.class); final ComponentMetadata metadata = newMetadata(); + final BundleLogger logger = new MockLogger(); ComponentContainer container = new ComponentContainer() { @Override @@ -483,6 +487,10 @@ public class BindMethodTest extends Test return false; } + @Override + public ComponentLogger getLogger() { + return new ComponentLogger(metadata, logger); + } }; return container; } Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java (original) +++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java Fri Oct 27 11:59:35 2017 @@ -24,8 +24,11 @@ import java.lang.reflect.Method; import java.util.List; import java.util.Map; +import org.apache.felix.scr.impl.MockLogger; import org.apache.felix.scr.impl.inject.ActivatorParameter; import org.apache.felix.scr.impl.inject.ComponentMethodsImpl; +import org.apache.felix.scr.impl.logger.BundleLogger; +import org.apache.felix.scr.impl.logger.ComponentLogger; import org.apache.felix.scr.impl.manager.ComponentActivator; import org.apache.felix.scr.impl.manager.ComponentContainer; import org.apache.felix.scr.impl.manager.ComponentContextImpl; @@ -301,6 +304,7 @@ public class ActivateMethodTest extends private ComponentContainer newContainer() { final ComponentMetadata metadata = newMetadata(); + final BundleLogger logger = new MockLogger(); ComponentContainer container = new ComponentContainer() { @Override @@ -327,6 +331,10 @@ public class ActivateMethodTest extends return false; } + @Override + public ComponentLogger getLogger() { + return new ComponentLogger(metadata, logger); + } }; return container; } Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java (original) +++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java Fri Oct 27 11:59:35 2017 @@ -26,6 +26,7 @@ import java.util.Map; import org.apache.felix.scr.impl.inject.ComponentMethods; import org.apache.felix.scr.impl.inject.ComponentMethodsImpl; +import org.apache.felix.scr.impl.logger.ComponentLogger; import org.apache.felix.scr.impl.metadata.ComponentMetadata; import org.apache.felix.scr.impl.metadata.DSVersion; import org.apache.felix.scr.impl.metadata.TargetedPID; @@ -188,7 +189,7 @@ public class ConfiguredComponentHolderTe { TestingConfiguredComponentHolder( ComponentMetadata metadata ) { - super( Mockito.mock(ComponentActivator.class), metadata ); + super( Mockito.mock(ComponentActivator.class), metadata, Mockito.mock(ComponentLogger.class) ); } Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/RegistrationManagerTest.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/RegistrationManagerTest.java?rev=1813513&r1=1813512&r2=1813513&view=diff ============================================================================== --- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/RegistrationManagerTest.java (original) +++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/RegistrationManagerTest.java Fri Oct 27 11:59:35 2017 @@ -29,18 +29,18 @@ import org.junit.Test; public class RegistrationManagerTest { - + private volatile boolean fail; - + private int n = 10; - private ArrayList<Thread> threads = new ArrayList<Thread>(); - + private ArrayList<Thread> threads = new ArrayList<>(); + private TRM trm = new TRM(); - + @Test public void testRegistrationManager( ) throws Exception { - + for (int setup = 0; setup < 1 << n; setup++ ) { runTest(setup); @@ -50,9 +50,9 @@ public class RegistrationManagerTest } } } - + private void runTest(int setup) throws InterruptedException - { + { final CountDownLatch done = new CountDownLatch( n ); for (int i = 0; i < n; i++) { @@ -60,19 +60,20 @@ public class RegistrationManagerTest final RegState change = b? RegState.registered: RegState.unregistered; new Thread(new Runnable() { + @Override public void run() { trm.changeRegistration( change, null ); } - + }).start(); done.countDown(); } done.await(); } - - private class TRM extends RegistrationManager<Object> + + private class TRM extends RegistrationManager<Object> { @Override @@ -111,7 +112,7 @@ public class RegistrationManagerTest } @Override - void log(int level, String message, Object[] arguments, Throwable ex) + void log(int level, String message, Throwable ex, Object... arguments) { if ( arguments != null && arguments.length == 1 && (arguments[0] instanceof ArrayList)) { @@ -130,7 +131,7 @@ public class RegistrationManagerTest } } } - + } @Override @@ -144,7 +145,7 @@ public class RegistrationManagerTest void reportTimeout() { // TODO Auto-generated method stub - + } }