diff options
17 files changed, 108 insertions, 909 deletions
diff --git a/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF index cb0be2e9b..b2751ee3a 100644 --- a/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF @@ -2,21 +2,15 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Export-Package: org.eclipse.core.runtime.adaptor;x-friends:="org.eclipse.core.runtime", org.eclipse.core.runtime.internal.adaptor;x-internal:=true, - org.eclipse.core.runtime.internal.stats;x-friends:="org.eclipse.core.runtime", org.eclipse.equinox.log;version="1.0", org.eclipse.equinox.log.internal;x-internal:=true, - org.eclipse.osgi.baseadaptor;x-internal:=true, - org.eclipse.osgi.baseadaptor.hooks;x-internal:=true, org.eclipse.osgi.container;version="1.0", org.eclipse.osgi.container.builders;version="1.0", org.eclipse.osgi.container.namespaces;version="1.0", - org.eclipse.osgi.event;version="1.0", org.eclipse.osgi.framework.adaptor;x-internal:=true, org.eclipse.osgi.framework.console;version="1.1", org.eclipse.osgi.framework.eventmgr;version="1.2", org.eclipse.osgi.framework.internal.core;x-internal:=true, - org.eclipse.osgi.framework.internal.protocol.bundleentry;x-internal:=true, - org.eclipse.osgi.framework.internal.protocol.bundleresource;x-internal:=true, org.eclipse.osgi.framework.internal.reliablefile;x-internal:=true, org.eclipse.osgi.framework.log;version="1.1", org.eclipse.osgi.framework.util;x-internal:=true, @@ -31,8 +25,6 @@ Export-Package: org.eclipse.core.runtime.adaptor;x-friends:="org.eclipse.core.ru org.eclipse.osgi.internal.module;x-internal:=true, org.eclipse.osgi.internal.permadmin;x-internal:=true, org.eclipse.osgi.internal.profile;x-internal:=true, - org.eclipse.osgi.internal.provisional.service.security;version="1.0.0";x-friends:="org.eclipse.equinox.security.ui", - org.eclipse.osgi.internal.provisional.verifier;x-friends:="org.eclipse.update.core,org.eclipse.ui.workbench,org.eclipse.equinox.p2.artifact.repository", org.eclipse.osgi.internal.resolver;x-internal:=true, org.eclipse.osgi.internal.service.security;x-friends:="org.eclipse.equinox.security.ui", org.eclipse.osgi.internal.serviceregistry;x-internal:=true, @@ -43,7 +35,6 @@ Export-Package: org.eclipse.core.runtime.adaptor;x-friends:="org.eclipse.core.ru org.eclipse.osgi.service.debug;version="1.2", org.eclipse.osgi.service.environment;version="1.3", org.eclipse.osgi.service.localization;version="1.1", - org.eclipse.osgi.service.pluginconversion;version="1.0", org.eclipse.osgi.service.resolver;version="1.6", org.eclipse.osgi.service.runnable;version="1.1", org.eclipse.osgi.service.security;version="1.0", diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/adaptor/EclipseStarter.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/adaptor/EclipseStarter.java index fd6b66296..bf47b0c10 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/adaptor/EclipseStarter.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/adaptor/EclipseStarter.java @@ -26,7 +26,6 @@ import org.eclipse.osgi.framework.util.FilePath; import org.eclipse.osgi.internal.framework.EquinoxConfiguration; import org.eclipse.osgi.internal.framework.EquinoxContainer; import org.eclipse.osgi.internal.location.*; -import org.eclipse.osgi.internal.profile.Profile; import org.eclipse.osgi.launch.Equinox; import org.eclipse.osgi.service.datalocation.Location; import org.eclipse.osgi.service.environment.EnvironmentInfo; @@ -212,8 +211,6 @@ public class EclipseStarter { * @throws Exception if anything goes wrong */ public static Object run(String[] args, Runnable endSplashHandler) throws Exception { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logEnter("EclipseStarter.run()", null); //$NON-NLS-1$ if (running) throw new IllegalStateException(EclipseAdaptorMsg.ECLIPSE_STARTUP_ALREADY_RUNNING); boolean startupFailed = true; @@ -250,14 +247,6 @@ public class EclipseStarter { // TODO desperate measure - ideally, we should write this to disk (a la Main.log) e.printStackTrace(); } - if (Profile.PROFILE && Profile.STARTUP) - Profile.logExit("EclipseStarter.run()"); //$NON-NLS-1$ - if (Profile.PROFILE) { - String report = Profile.getProfileLog(); - // avoiding writing to the console if there is nothing to print - if (report != null && report.length() > 0) - System.out.println(report); - } } // we only get here if an error happened if (getProperty(PROP_EXITCODE) == null) { @@ -287,16 +276,10 @@ public class EclipseStarter { * @throws Exception if anything goes wrong */ public static BundleContext startup(String[] args, Runnable endSplashHandler) throws Exception { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logEnter("EclipseStarter.startup()", null); //$NON-NLS-1$ if (running) throw new IllegalStateException(EclipseAdaptorMsg.ECLIPSE_STARTUP_ALREADY_RUNNING); processCommandLine(args); finalizeProperties(); - if (Profile.PROFILE) - Profile.initProps(); // catch any Profile properties set in eclipse.properties... - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("EclipseStarter.startup()", "props inited"); //$NON-NLS-1$ //$NON-NLS-2$ framework = new Equinox(configuration); framework.init(); context = framework.getBundleContext(); @@ -304,17 +287,10 @@ public class EclipseStarter { log = context.getService(logRef); ServiceReference<EnvironmentInfo> configRef = context.getServiceReference(EnvironmentInfo.class); equinoxConfig = (EquinoxConfiguration) context.getService(configRef); - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("EclipseStarter.startup()", "OSGi created"); //$NON-NLS-1$ //$NON-NLS-2$ registerFrameworkShutdownHandlers(); publishSplashScreen(endSplashHandler); - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("EclipseStarter.startup()", "osgi launched"); //$NON-NLS-1$ //$NON-NLS-2$ consoleMgr = ConsoleManager.startConsole(context); - if (Profile.PROFILE && Profile.STARTUP) { - Profile.logTime("EclipseStarter.startup()", "console started"); //$NON-NLS-1$ //$NON-NLS-2$ - } Bundle[] startBundles = loadBasicBundles(); @@ -323,14 +299,9 @@ public class EclipseStarter { return context; // cannot continue; loadBasicBundles caused refreshPackages to shutdown the framework } - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("EclipseStarter.startup()", "loading basic bundles"); //$NON-NLS-1$ //$NON-NLS-2$ - // set the framework start level to the ultimate value. This will actually start things // running if they are persistently active. setStartLevel(getStartLevel()); - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("EclipseStarter.startup()", "StartLevel set"); //$NON-NLS-1$ //$NON-NLS-2$ // they should all be active by this time ensureBundlesActive(startBundles); @@ -343,8 +314,6 @@ public class EclipseStarter { } // TODO should log unresolved bundles if in debug or dev mode running = true; - if (Profile.PROFILE && Profile.STARTUP) - Profile.logExit("EclipseStarter.startup()"); //$NON-NLS-1$ return context; } @@ -373,8 +342,6 @@ public class EclipseStarter { * @throws Exception if anything goes wrong */ public static Object run(Object argument) throws Exception { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logEnter("EclipseStarter.run(Object)()", null); //$NON-NLS-1$ if (!running) throw new IllegalStateException(EclipseAdaptorMsg.ECLIPSE_STARTUP_NOT_RUNNING); // if we are just initializing, do not run the application just return. diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/DefaultStartupMonitor.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/DefaultStartupMonitor.java index 9ac29d38d..63abe9fe3 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/DefaultStartupMonitor.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/DefaultStartupMonitor.java @@ -12,7 +12,6 @@ package org.eclipse.core.runtime.internal.adaptor; import java.lang.reflect.Method; import org.eclipse.core.runtime.adaptor.EclipseStarter; -import org.eclipse.core.runtime.internal.stats.StatsManager; import org.eclipse.osgi.framework.internal.core.FrameworkProperties; import org.eclipse.osgi.service.runnable.StartupMonitor; @@ -62,7 +61,6 @@ public class DefaultStartupMonitor implements StartupMonitor { long time = timeString == null ? 0L : Long.parseLong(timeString); System.out.println("Application Started: " + (System.currentTimeMillis() - time)); //$NON-NLS-1$ } - StatsManager.doneBooting(); splashHandler.run(); } } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.java index faefac797..7bd75b156 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.java @@ -11,17 +11,14 @@ package org.eclipse.core.runtime.internal.adaptor; -import org.eclipse.osgi.internal.location.EclipseAdaptorMsg; - import java.lang.reflect.Method; import java.util.Map; import org.eclipse.core.runtime.adaptor.EclipseStarter; -import org.eclipse.osgi.framework.adaptor.FrameworkAdaptor; -import org.eclipse.osgi.framework.internal.core.Constants; import org.eclipse.osgi.framework.internal.core.FrameworkProperties; import org.eclipse.osgi.framework.log.FrameworkLog; import org.eclipse.osgi.framework.log.FrameworkLogEntry; -import org.eclipse.osgi.internal.profile.Profile; +import org.eclipse.osgi.internal.framework.EquinoxContainer; +import org.eclipse.osgi.internal.location.EclipseAdaptorMsg; import org.eclipse.osgi.service.runnable.*; import org.osgi.framework.*; @@ -83,9 +80,9 @@ public class EclipseAppLauncher implements ApplicationLauncher { if (!relaunch || (context.getBundle().getState() & Bundle.ACTIVE) == 0) throw e; if (log != null) - log.log(new FrameworkLogEntry(FrameworkAdaptor.FRAMEWORK_SYMBOLICNAME, FrameworkLogEntry.ERROR, 0, EclipseAdaptorMsg.ECLIPSE_STARTUP_APP_ERROR, 1, e, null)); + log.log(new FrameworkLogEntry(EquinoxContainer.NAME, FrameworkLogEntry.ERROR, 0, EclipseAdaptorMsg.ECLIPSE_STARTUP_APP_ERROR, 1, e, null)); } - doRelaunch = (relaunch && (context.getBundle().getState() & Bundle.ACTIVE) != 0) || FrameworkProperties.getProperty(Constants.PROP_OSGI_RELAUNCH) != null; + doRelaunch = (relaunch && (context.getBundle().getState() & Bundle.ACTIVE) != 0); } while (doRelaunch); return result; } @@ -105,14 +102,10 @@ public class EclipseAppLauncher implements ApplicationLauncher { long time = timeString == null ? 0L : Long.parseLong(timeString); System.out.println("Starting application: " + (System.currentTimeMillis() - time)); //$NON-NLS-1$ } - if (Profile.PROFILE && (Profile.STARTUP || Profile.BENCHMARK)) - Profile.logTime("EclipseStarter.run(Object)()", "framework initialized! starting application..."); //$NON-NLS-1$ //$NON-NLS-2$ try { // run the actual application on the current thread (main). return runnable.run(appContext != null ? appContext : defaultContext); } finally { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logExit("EclipseStarter.run(Object)()"); //$NON-NLS-1$ // free the runnable application and release the lock to allow another app to be launched. runnable = null; appContext = null; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/ObjectPool.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/ObjectPool.java index bcb548044..93cb64511 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/ObjectPool.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/ObjectPool.java @@ -10,29 +10,18 @@ *******************************************************************************/ package org.eclipse.osgi.framework.util; -import org.eclipse.osgi.internal.debug.Debug; -import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; - import java.lang.ref.WeakReference; import java.util.Map; import java.util.WeakHashMap; +import org.eclipse.osgi.internal.debug.Debug; public class ObjectPool { private static String OPTION_DEBUG_OBJECTPOOL_ADDS = Debug.ECLIPSE_OSGI + "/debug/objectPool/adds"; //$NON-NLS-1$ private static String OPTION_DEBUG_OBJECTPOOL_DUPS = Debug.ECLIPSE_OSGI + "/debug/objectPool/dups"; //$NON-NLS-1$ - private static final boolean DEBUG_OBJECTPOOL_ADDS; - private static final boolean DEBUG_OBJECTPOOL_DUPS; + // TODO need to set these + private static final boolean DEBUG_OBJECTPOOL_ADDS = false; + private static final boolean DEBUG_OBJECTPOOL_DUPS = false; private static Map<Object, WeakReference<Object>> objectCache = new WeakHashMap<Object, WeakReference<Object>>(); - static { - FrameworkDebugOptions dbgOptions = FrameworkDebugOptions.getDefault(); - if (dbgOptions != null) { - DEBUG_OBJECTPOOL_ADDS = dbgOptions.getBooleanOption(OPTION_DEBUG_OBJECTPOOL_ADDS, false); - DEBUG_OBJECTPOOL_DUPS = dbgOptions.getBooleanOption(OPTION_DEBUG_OBJECTPOOL_DUPS, false); - } else { - DEBUG_OBJECTPOOL_ADDS = false; - DEBUG_OBJECTPOOL_DUPS = false; - } - } public static Object intern(Object obj) { synchronized (objectCache) { diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/baseadaptor/AdaptorUtil.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/baseadaptor/AdaptorUtil.java index c0581acca..5f61ccaf8 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/baseadaptor/AdaptorUtil.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/baseadaptor/AdaptorUtil.java @@ -11,10 +11,6 @@ package org.eclipse.osgi.internal.baseadaptor; -import org.eclipse.osgi.internal.debug.Debug; - -import org.eclipse.osgi.internal.location.EclipseAdaptorMsg; - import java.io.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -22,11 +18,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Dictionary; import java.util.Hashtable; -import org.eclipse.osgi.baseadaptor.BaseData; -import org.eclipse.osgi.framework.internal.core.Constants; -import org.eclipse.osgi.framework.util.Headers; -import org.eclipse.osgi.framework.util.ObjectPool; -import org.eclipse.osgi.util.NLS; +import org.eclipse.osgi.internal.debug.Debug; import org.osgi.framework.*; /** @@ -159,16 +151,6 @@ public class AdaptorUtil { } } - public static Version loadVersion(DataInputStream in) throws IOException { - String versionString = readString(in, false); - try { - //return Version.parseVersion(versionString); - return (Version) ObjectPool.intern(Version.parseVersion(versionString)); - } catch (IllegalArgumentException e) { - return new InvalidVersion(versionString); - } - } - /** * Register a service object. * @param name the service class name @@ -185,17 +167,6 @@ public class AdaptorUtil { return context.registerService(name, service, properties); } - public static Dictionary<String, String> loadManifestFrom(BaseData bundledata) throws BundleException { - URL url = bundledata.getEntry(Constants.OSGI_BUNDLE_MANIFEST); - if (url == null) - return null; - try { - return Headers.parseManifest(url.openStream()); - } catch (IOException e) { - throw new BundleException(NLS.bind(EclipseAdaptorMsg.ECLIPSE_DATA_ERROR_READING_MANIFEST, bundledata.getLocation()), BundleException.MANIFEST_ERROR, e); - } - } - public static boolean canWrite(File installDir) { if (installDir.canWrite() == false) return false; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/AliasMapper.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/AliasMapper.java index eb0bb7a6e..bd858f00c 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/AliasMapper.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/AliasMapper.java @@ -10,13 +10,10 @@ *******************************************************************************/ package org.eclipse.osgi.internal.framework; -import org.eclipse.osgi.framework.internal.core.Constants; -import org.eclipse.osgi.framework.internal.core.Tokenizer; - -import org.eclipse.osgi.internal.debug.Debug; - import java.io.*; import java.util.*; +import org.eclipse.osgi.framework.internal.core.Tokenizer; +import org.eclipse.osgi.internal.debug.Debug; /** * This class maps aliases. @@ -28,7 +25,7 @@ public class AliasMapper { // Safe lazy initialization private static synchronized Map<String, Object> getProcessorAliasTable() { if (processorAliasTable == null) { - InputStream in = AliasMapper.class.getResourceAsStream(Constants.OSGI_PROCESSOR_ALIASES); + InputStream in = AliasMapper.class.getResourceAsStream("processor.aliases"); //$NON-NLS-1$ if (in != null) { try { processorAliasTable = initAliases(in); @@ -47,7 +44,7 @@ public class AliasMapper { // Safe lazy initialization private static synchronized Map<String, Object> getOSNameAliasTable() { if (osnameAliasTable == null) { - InputStream in = AliasMapper.class.getResourceAsStream(Constants.OSGI_OSNAME_ALIASES); + InputStream in = AliasMapper.class.getResourceAsStream("osname.aliases"); //$NON-NLS-1$ if (in != null) { try { osnameAliasTable = initAliases(in); diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/BundleContextImpl.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/BundleContextImpl.java index 9d738430d..ea940cead 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/BundleContextImpl.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/BundleContextImpl.java @@ -21,7 +21,6 @@ import org.eclipse.osgi.container.namespaces.EquinoxModuleDataNamespace; import org.eclipse.osgi.framework.eventmgr.EventDispatcher; import org.eclipse.osgi.framework.internal.core.Msg; import org.eclipse.osgi.internal.loader.BundleLoader; -import org.eclipse.osgi.internal.profile.Profile; import org.eclipse.osgi.internal.serviceregistry.*; import org.eclipse.osgi.next.internal.debug.Debug; import org.eclipse.osgi.storage.BundleInfo.Generation; @@ -753,14 +752,10 @@ public class BundleContextImpl implements BundleContext, EventDispatcher<Object, * @param bundleActivator that activator to start */ private void startActivator(final BundleActivator bundleActivator) throws BundleException { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logEnter("BundleContextImpl.startActivator()", null); //$NON-NLS-1$ try { AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { if (bundleActivator != null) { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("BundleContextImpl.startActivator()", "calling " + bundle.getLocation() + " bundle activator"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ // make sure the context class loader is set correctly Object previousTCCL = setContextFinder(); /* Start the bundle synchronously */ @@ -770,8 +765,6 @@ public class BundleContextImpl implements BundleContext, EventDispatcher<Object, if (previousTCCL != Boolean.FALSE) Thread.currentThread().setContextClassLoader((ClassLoader) previousTCCL); } - if (Profile.PROFILE && Profile.STARTUP) - Profile.logTime("BundleContextImpl.startActivator()", "returned from " + bundle.getLocation() + " bundle activator"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ } return null; } @@ -789,9 +782,6 @@ public class BundleContextImpl implements BundleContext, EventDispatcher<Object, clazz = bundleActivator.getClass().getName(); throw new BundleException(NLS.bind(Msg.BUNDLE_ACTIVATOR_EXCEPTION, new Object[] {clazz, "start", bundle.getSymbolicName() == null ? "" + bundle.getBundleId() : bundle.getSymbolicName()}), BundleException.ACTIVATOR_ERROR, t); //$NON-NLS-1$ //$NON-NLS-2$ - } finally { - if (Profile.PROFILE && Profile.STARTUP) - Profile.logExit("BundleContextImpl.startActivator()"); //$NON-NLS-1$ } } @@ -957,7 +947,7 @@ public class BundleContextImpl implements BundleContext, EventDispatcher<Object, public Filter createFilter(String filter) throws InvalidSyntaxException { checkValid(); - return FilterImpl.newInstance(filter); + return FilterImpl.newInstance(filter, container.getConfiguration().getDebug().DEBUG_FILTER); } /** diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java index 1d021ebc1..dbe673003 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java @@ -15,11 +15,11 @@ import java.lang.reflect.Method; import java.net.*; import java.security.CodeSource; import java.util.*; +import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; import org.eclipse.osgi.internal.hookregistry.HookRegistry; import org.eclipse.osgi.internal.location.EclipseAdaptorMsg; import org.eclipse.osgi.internal.location.EquinoxLocations; import org.eclipse.osgi.next.internal.debug.Debug; -import org.eclipse.osgi.next.internal.debug.FrameworkDebugOptions; import org.eclipse.osgi.service.debug.DebugOptions; import org.eclipse.osgi.service.environment.Constants; import org.eclipse.osgi.service.environment.EnvironmentInfo; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/FilterImpl.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/FilterImpl.java index bce85ceb7..032391dc8 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/FilterImpl.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/FilterImpl.java @@ -11,16 +11,13 @@ package org.eclipse.osgi.internal.framework; -import org.eclipse.osgi.framework.internal.core.Constants; -import org.eclipse.osgi.framework.internal.core.Msg; - -import org.eclipse.osgi.internal.debug.Debug; - import java.lang.reflect.*; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.*; +import org.eclipse.osgi.framework.internal.core.Msg; import org.eclipse.osgi.framework.util.Headers; +import org.eclipse.osgi.internal.debug.Debug; import org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl; import org.eclipse.osgi.util.NLS; import org.osgi.framework.*; @@ -143,7 +140,11 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ * an invalid filter string that cannot be parsed. */ public static FilterImpl newInstance(String filterString) throws InvalidSyntaxException { - return new Parser(filterString).parse(); + return newInstance(filterString, false); + } + + public static FilterImpl newInstance(String filterString, boolean debug) throws InvalidSyntaxException { + return new Parser(filterString, debug).parse(); } /** @@ -237,7 +238,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } case PRESENT : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("PRESENT(" + attr + ")"); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -303,7 +304,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } case PRESENT : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("PRESENT(" + attr + ")"); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -483,14 +484,17 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private final String attr; /** filter operands */ private final Object value; + /** debug mode */ + private final boolean debug; /* normalized filter string for topLevel Filter object */ private transient volatile String filterString; - FilterImpl(int operation, String attr, Object value) { + FilterImpl(int operation, String attr, Object value, boolean debug) { this.op = operation; this.attr = attr; this.value = value; + this.debug = debug; } /** @@ -534,7 +538,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare(int operation, Object value1, Object value2) { if (value1 == null) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("compare(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @@ -712,7 +716,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_String(int operation, String string, Object value2) { switch (operation) { case SUBSTRING : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + string + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @@ -728,7 +732,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ if (substr2 == null) /* ** */ continue; /* ignore first star */ /* *xxx */ - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("indexOf(\"" + substr2 + "\"," + pos + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } int index = string.indexOf(substr2, pos); @@ -742,7 +746,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } else /* xxx */{ int len = substr.length(); - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("regionMatches(" + pos + ",\"" + substr + "\")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } if (string.regionMatches(pos, substr, 0, len)) { @@ -756,7 +760,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ return true; } /* xxx */ - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("regionMatches(" + pos + "," + substr + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return string.endsWith(substr); @@ -766,13 +770,13 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ return true; } case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + string + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return string.equals(value2); } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + string + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @@ -782,13 +786,13 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ return string.equalsIgnoreCase(string2); } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + string + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return string.compareTo((String) value2) >= 0; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + string + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return string.compareTo((String) value2) <= 0; @@ -800,7 +804,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Integer(int operation, int intval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + intval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -814,25 +818,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + intval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return intval == intval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + intval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return intval == intval2; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + intval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return intval >= intval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + intval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return intval <= intval2; @@ -844,7 +848,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Long(int operation, long longval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + longval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -858,25 +862,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + longval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return longval == longval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + longval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return longval == longval2; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + longval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return longval >= longval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + longval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return longval <= longval2; @@ -888,7 +892,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Byte(int operation, byte byteval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + byteval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -902,25 +906,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + byteval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return byteval == byteval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + byteval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return byteval == byteval2; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + byteval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return byteval >= byteval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + byteval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return byteval <= byteval2; @@ -932,7 +936,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Short(int operation, short shortval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + shortval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -946,25 +950,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + shortval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return shortval == shortval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + shortval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return shortval == shortval2; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + shortval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return shortval >= shortval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + shortval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return shortval <= shortval2; @@ -976,7 +980,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Character(int operation, char charval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + charval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -990,25 +994,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + charval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return charval == charval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + charval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return (charval == charval2) || (Character.toUpperCase(charval) == Character.toUpperCase(charval2)) || (Character.toLowerCase(charval) == Character.toLowerCase(charval2)); } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + charval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return charval >= charval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + charval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return charval <= charval2; @@ -1020,7 +1024,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Boolean(int operation, boolean boolval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + boolval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -1029,25 +1033,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ boolean boolval2 = Boolean.valueOf(((String) value2).trim()).booleanValue(); switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + boolval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return boolval == boolval2; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + boolval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return boolval == boolval2; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + boolval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return boolval == boolval2; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + boolval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return boolval == boolval2; @@ -1059,7 +1063,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Float(int operation, float floatval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + floatval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -1073,25 +1077,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + floatval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Float.compare(floatval, floatval2) == 0; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + floatval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Float.compare(floatval, floatval2) == 0; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + floatval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Float.compare(floatval, floatval2) >= 0; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + floatval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Float.compare(floatval, floatval2) <= 0; @@ -1103,7 +1107,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Double(int operation, double doubleval, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + doubleval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -1117,25 +1121,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ } switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + doubleval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Double.compare(doubleval, doubleval2) == 0; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + doubleval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Double.compare(doubleval, doubleval2) == 0; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + doubleval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Double.compare(doubleval, doubleval2) >= 0; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + doubleval + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return Double.compare(doubleval, doubleval2) <= 0; @@ -1195,7 +1199,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Comparable(int operation, Comparable<Object> value1, Object value2) { if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -1208,25 +1212,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ try { switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.compareTo(value2) == 0; } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.compareTo(value2) == 0; } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.compareTo(value2) >= 0; } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.compareTo(value2) <= 0; @@ -1241,7 +1245,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ private boolean compare_Unknown(int operation, Object value1, Object value2) { //RFC 59 if (operation == SUBSTRING) { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("SUBSTRING(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return false; @@ -1254,25 +1258,25 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ try { switch (operation) { case EQUAL : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("EQUAL(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.equals(value2); } case APPROX : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("APPROX(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.equals(value2); } case GREATER : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("GREATER(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.equals(value2); } case LESS : { - if (Debug.DEBUG_FILTER) { + if (debug) { Debug.println("LESS(" + value1 + "," + value2 + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return value1.equals(value2); @@ -1385,11 +1389,13 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ * objects rooted at the parent. */ private static class Parser { + private final boolean debug; private final String filterstring; private final char[] filterChars; private int pos; - Parser(String filterstring) { + Parser(String filterstring, boolean debug) { + this.debug = debug; this.filterstring = filterstring; filterChars = filterstring.toCharArray(); pos = 0; @@ -1472,7 +1478,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ operands.add(child); } - return new FilterImpl(FilterImpl.AND, null, operands.toArray(new FilterImpl[operands.size()])); + return new FilterImpl(FilterImpl.AND, null, operands.toArray(new FilterImpl[operands.size()]), debug); } private FilterImpl parse_or() throws InvalidSyntaxException { @@ -1491,7 +1497,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ operands.add(child); } - return new FilterImpl(FilterImpl.OR, null, operands.toArray(new FilterImpl[operands.size()])); + return new FilterImpl(FilterImpl.OR, null, operands.toArray(new FilterImpl[operands.size()]), debug); } private FilterImpl parse_not() throws InvalidSyntaxException { @@ -1505,7 +1511,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ FilterImpl child = parse_filter(); - return new FilterImpl(FilterImpl.NOT, null, child); + return new FilterImpl(FilterImpl.NOT, null, child, debug); } private FilterImpl parse_item() throws InvalidSyntaxException { @@ -1517,21 +1523,21 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ case '~' : { if (filterChars[pos + 1] == '=') { pos += 2; - return new FilterImpl(FilterImpl.APPROX, attr, parse_value()); + return new FilterImpl(FilterImpl.APPROX, attr, parse_value(), debug); } break; } case '>' : { if (filterChars[pos + 1] == '=') { pos += 2; - return new FilterImpl(FilterImpl.GREATER, attr, parse_value()); + return new FilterImpl(FilterImpl.GREATER, attr, parse_value(), debug); } break; } case '<' : { if (filterChars[pos + 1] == '=') { pos += 2; - return new FilterImpl(FilterImpl.LESS, attr, parse_value()); + return new FilterImpl(FilterImpl.LESS, attr, parse_value(), debug); } break; } @@ -1541,7 +1547,7 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ pos += 2; skipWhiteSpace(); if (filterChars[pos] == ')') { - return new FilterImpl(FilterImpl.PRESENT, attr, null); + return new FilterImpl(FilterImpl.PRESENT, attr, null, debug); } pos = oldpos; } @@ -1550,9 +1556,9 @@ public class FilterImpl implements Filter /* since Framework 1.1 */{ Object string = parse_substring(); if (string instanceof String) { - return new FilterImpl(FilterImpl.EQUAL, attr, string); + return new FilterImpl(FilterImpl.EQUAL, attr, string, debug); } - return new FilterImpl(FilterImpl.SUBSTRING, attr, string); + return new FilterImpl(FilterImpl.SUBSTRING, attr, string, debug); } } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/SystemBundleActivator.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/SystemBundleActivator.java index 88873b419..5792d0657 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/SystemBundleActivator.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/SystemBundleActivator.java @@ -14,12 +14,12 @@ package org.eclipse.osgi.internal.framework; import java.util.*; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.SAXParserFactory; +import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; import org.eclipse.osgi.internal.hookregistry.ActivatorHookFactory; import org.eclipse.osgi.internal.hookregistry.HookRegistry; import org.eclipse.osgi.internal.location.EquinoxLocations; import org.eclipse.osgi.internal.permadmin.SecurityAdmin; import org.eclipse.osgi.internal.url.EquinoxFactoryManager; -import org.eclipse.osgi.next.internal.debug.FrameworkDebugOptions; import org.eclipse.osgi.service.datalocation.Location; import org.eclipse.osgi.service.debug.DebugOptions; import org.eclipse.osgi.service.environment.EnvironmentInfo; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/DefaultProfileLogger.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/DefaultProfileLogger.java deleted file mode 100644 index a868194e9..000000000 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/DefaultProfileLogger.java +++ /dev/null @@ -1,392 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.osgi.internal.profile; - -import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; - -import java.io.*; -import java.util.*; -import org.eclipse.osgi.framework.internal.core.FrameworkProperties; - -public class DefaultProfileLogger implements ProfileLogger { - protected static final String DEFAULTPROFILE_PROP = "osgi.defaultprofile."; //$NON-NLS-1$ - protected static final String PROP_FILENAME = DEFAULTPROFILE_PROP + "logfilename"; //$NON-NLS-1$ - protected static final String PROP_LOGSYNCHRONOUSLY = DEFAULTPROFILE_PROP + "logsynchronously"; //$NON-NLS-1$ - protected static final String PROP_BUFFERSIZE = DEFAULTPROFILE_PROP + "buffersize"; //$NON-NLS-1$ - - protected static final String DEFAULTPROFILE_OPTION = "org.eclipse.osgi/defaultprofile/"; //$NON-NLS-1$ - protected static final String OPTION_FILENAME = DEFAULTPROFILE_OPTION + "logfilename"; //$NON-NLS-1$ - protected static final String OPTION_LOGSYNCHRONOUSLY = DEFAULTPROFILE_OPTION + "logsynchronously"; //$NON-NLS-1$ - protected static final String OPTION_BUFFERSIZE = DEFAULTPROFILE_OPTION + "buffersize"; //$NON-NLS-1$ - - protected boolean logSynchronously = false; - protected long startTime = 0; - protected static final int DEFAULT_BUFFER_SIZE = 256; - - protected TimeEntry[] timeLogEntries = null; - protected int timeEntriesIndex = 0; - protected StringBuffer timelog = null; - - protected long launchTime = -1; - protected int bufferSize = DEFAULT_BUFFER_SIZE; - protected String logFileName = null; - protected File logFile = null; - private StringBuffer entryReport = new StringBuffer(120); - private StringBuffer padsb = new StringBuffer(16); // to prevent creating this over and over - protected int indent; - protected int timePaddingLength; - protected Stack<AccumPerfScope> scopeStack; - protected Map<String, AccumPerfData> scopeToAccumPerfDataMap; - - public DefaultProfileLogger() { - initProps(); - - int size = getBufferSize(); - timeLogEntries = new TimeEntry[size]; - timelog = new StringBuffer(4096); - for (int i = 0; i < size; i++) { - timeLogEntries[i] = timeEntryFactory(); - } - timeEntriesIndex = 0; - - launchTime = getLaunchTime(); - if (launchTime == -1) { - startTime = getMainStartTime(); - } else { - startTime = launchTime; - } - - long freq = getTimerFrequency(); - for (timePaddingLength = 3; freq > 9; timePaddingLength++) { - freq /= 10; - } - - logInitMessages(); - } - - protected void logInitMessages() { - int index = 0; - if (launchTime != -1L) { - logTime(Profile.FLAG_NONE, "DefaultProfileLogger.init()", "launch time initialized", null); //$NON-NLS-1$//$NON-NLS-2$ - timeLogEntries[index++].time = launchTime; - } - - logTime(Profile.FLAG_NONE, "DefaultProfileLogger.init()", "start time initialized", null); //$NON-NLS-1$//$NON-NLS-2$ - timeLogEntries[index++].time = getMainStartTime(); - } - - protected long getLaunchTime() { - String launchTimeString = FrameworkProperties.getProperty("launch.startMillis"); //$NON-NLS-1$ - if (launchTimeString != null) { - return Long.parseLong(launchTimeString); - } - return -1L; - } - - protected long getMainStartTime() { - String timeString = FrameworkProperties.getProperty("eclipse.startTime"); //$NON-NLS-1$ - if (timeString != null) - return Long.parseLong(timeString); - - return System.currentTimeMillis(); - } - - public void initProps() { - String prop; - FrameworkDebugOptions dbgOptions = null; - // if osgi.debug is not available, don't force DebugOptions - // to init as this variable may be set later on where - // DebugOptions will succeed. - if (FrameworkProperties.getProperty("osgi.debug") != null) { //$NON-NLS-1$ - dbgOptions = FrameworkDebugOptions.getDefault(); - if (dbgOptions != null) { - logFileName = dbgOptions.getOption(OPTION_FILENAME); - logSynchronously = dbgOptions.getBooleanOption(OPTION_LOGSYNCHRONOUSLY, false); - int size = dbgOptions.getIntegerOption(OPTION_BUFFERSIZE, 0); - if (size > 0) - bufferSize = size; - } - } - - if ((prop = FrameworkProperties.getProperty(PROP_FILENAME)) != null) { - logFileName = prop; - if (dbgOptions != null) - dbgOptions.setOption(OPTION_FILENAME, logFileName); - } - if ((prop = FrameworkProperties.getProperty(PROP_LOGSYNCHRONOUSLY)) != null) { - logSynchronously = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_LOGSYNCHRONOUSLY, new Boolean(logSynchronously).toString()); - } - if ((prop = FrameworkProperties.getProperty(PROP_BUFFERSIZE)) != null) { - try { - int value = Integer.parseInt(prop); - if (value > 0) { - bufferSize = value; - if (dbgOptions != null) - dbgOptions.setOption(OPTION_BUFFERSIZE, Integer.toString(bufferSize)); - } - } catch (NumberFormatException e) { - // do nothing - } - } - } - - public synchronized void logTime(int flag, String id, String msg, String description) { - if (timeEntriesIndex == timeLogEntries.length) { - makeLog(); - logTime(Profile.FLAG_NONE, "Profile.logTime()", "log entries rolled", null); //$NON-NLS-1$ //$NON-NLS-2$ - } - - TimeEntry entry = timeLogEntries[timeEntriesIndex++]; - entry.time = getTime(); - entry.id = id; - entry.msg = msg; - entry.flag = flag; - entry.description = description; - - if (logSynchronously) { - System.out.print(getProfileLog().substring(2)); - } - } - - public synchronized String getProfileLog() { - String log; - log = getProfileLogReport(); - writeToProfileLogFile(log); - return log; - } - - public synchronized void accumLogEnter(String scope) { - // Initialize our data structures - if (scopeStack == null) - scopeStack = new Stack<AccumPerfScope>(); - if (scopeToAccumPerfDataMap == null) - scopeToAccumPerfDataMap = new TreeMap<String, AccumPerfData>(); - - // We want getTime() to evaluate as late as possible - scopeStack.push(new AccumPerfScope(scope, getTime())); - } - - public synchronized void accumLogExit(String scope) { - // What time is it? - long exit = getTime(); - - // Initialize our data structures - if (scopeStack == null) - scopeStack = new Stack<AccumPerfScope>(); - if (scopeToAccumPerfDataMap == null) - scopeToAccumPerfDataMap = new TreeMap<String, AccumPerfData>(); - - // Do our calculations - AccumPerfScope then = scopeStack.pop(); - if (then == null) - System.err.println("ACCUM PERF ERROR: Scope stack empty: " + scope); //$NON-NLS-1$ - else { - if (!then.scope.equals(scope)) - System.err.println("ACCUM PERF ERROR: Scope mismatch: then='" + then.scope + "', now='" + scope + "'"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ - - AccumPerfData now = scopeToAccumPerfDataMap.get(scope); - if (now == null) { - now = new AccumPerfData(scope); - scopeToAccumPerfDataMap.put(scope, now); - } - - now.time += exit - then.enter; - now.enters++; - } - } - - protected long getTime() { - return System.currentTimeMillis(); - } - - protected long getTimerFrequency() { - return 1000L; // millisecond - } - - protected TimeEntry findCompareEntry(int index, String id, int flag) { - if (index > 0) - index--; - int prev = index; - if (flag != Profile.FLAG_ENTER) { - while (index >= 0) { - TimeEntry entry = timeLogEntries[index]; - if (entry.id.equals(id)) { - switch (flag) { - case Profile.FLAG_NONE : - return entry; - case Profile.FLAG_EXIT : - if (entry.flag == Profile.FLAG_ENTER) - return entry; - break; - } - } - index--; - } - } - return timeLogEntries[prev]; - } - - protected String entryReport(TimeEntry entry, TimeEntry compareWith) { - // indent level: - entryReport.setLength(0); - if (entry.flag == Profile.FLAG_ENTER) - indent++; - long zeroTime = getRelativeTime(getStartTime()); - - entryReport.append('-'); - long entryTime = getRelativeTime(entry.time); - long diff = entryTime - zeroTime; - entryReport.append(pad(Long.toString(diff), timePaddingLength)); - entryReport.append(" :"); //$NON-NLS-1$ - diff = entry.time - compareWith.time; - entryReport.append(pad(Long.toString(diff), timePaddingLength)); - entryReport.append(pad("", indent * 2)); // indent before displaying the entry.id //$NON-NLS-1$ - - if (entry.flag == Profile.FLAG_ENTER) - entryReport.append(" >> "); //$NON-NLS-1$ - else if (entry.flag == Profile.FLAG_EXIT) - entryReport.append(" << "); //$NON-NLS-1$ - else if (entry.flag == Profile.FLAG_NONE) - entryReport.append(" -- "); //$NON-NLS-1$ - - entryReport.append(entry.id); - entryReport.append(" > "); //$NON-NLS-1$ - entryReport.append(entry.msg); - if (entry.description != null) { - entryReport.append(" :: "); //$NON-NLS-1$ - entryReport.append(entry.description); - } - entryReport.append("\r\n"); //$NON-NLS-1$ - - if (entry.flag == Profile.FLAG_EXIT) - indent -= 1; - return entryReport.toString(); - } - - protected String accumEntryReport(AccumPerfData d) { - return (" " + d.scope + ":enters=" + d.enters + ";time=" + d.time + ";\r\n"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ - } - - protected void makeLog() { - indent = 0; - timelog.append("\r\n"); //$NON-NLS-1$ - for (int i = 0; i < timeEntriesIndex; i++) { - TimeEntry entry = timeLogEntries[i]; - TimeEntry cmpEntry = findCompareEntry(i, entry.id, entry.flag); - timelog.append(entryReport(entry, cmpEntry)); - } - timeEntriesIndex = 0; - - if (scopeToAccumPerfDataMap == null || scopeToAccumPerfDataMap.isEmpty()) - return; // No data; nothing to do - timelog.append("\r\n"); //$NON-NLS-1$ - timelog.append("Cumulative Log:\r\n"); //$NON-NLS-1$ - for (AccumPerfData d : scopeToAccumPerfDataMap.values()) { - timelog.append(accumEntryReport(d)); - } - scopeToAccumPerfDataMap.clear(); - } - - protected String pad(String str, int size) { - padsb.setLength(0); - int len = str.length(); - int count = size - len; - for (int i = 0; i < count; i++) - padsb.append(' '); - padsb.append(str); - return padsb.toString(); - } - - protected String getProfileLogReport() { - if (timelog == null) - return ""; //$NON-NLS-1$ - makeLog(); - String log = timelog.toString(); - timelog.setLength(0); - return log; - } - - protected void writeToProfileLogFile(String log) { - File profileLog = getProfileLogFile(); - if (profileLog == null) - return; - FileWriter fw = null; - try { - fw = new FileWriter(profileLog.getAbsolutePath(), true); - fw.write(log); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (fw != null) - try { - fw.close(); - } catch (IOException e) { - // do nothing - } - } - } - - protected File getProfileLogFile() { - if (logFile == null) - if ((logFileName != null) && (logFileName.length() > 0)) - logFile = new File(logFileName); - return logFile; - } - - protected long getStartTime() { - return startTime; - } - - protected long getRelativeTime(long absoluteTime) { - return absoluteTime; - } - - protected int getBufferSize() { - if (bufferSize < 2) - return DEFAULT_BUFFER_SIZE; - return bufferSize; - } - - protected TimeEntry timeEntryFactory() { - return new TimeEntry(); - } - - protected class TimeEntry { - public long time; - public String id; - public String msg; - public String description; - public int flag; - } - - protected static class AccumPerfData { - public AccumPerfData(String scope) { - this.scope = scope; - } - - public String scope; - public long time; - public long enters; - } - - protected static class AccumPerfScope { - public AccumPerfScope(String scope, long enter) { - this.scope = scope; - this.enter = enter; - } - - public String scope; - public long enter; - } -} diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java deleted file mode 100644 index 294858bf8..000000000 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/Profile.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.osgi.internal.profile; - -import org.eclipse.osgi.internal.debug.FrameworkDebugOptions; - -import org.eclipse.osgi.framework.internal.core.FrameworkProperties; - -/** - * This class is a development tool that provides a simple way to log - * programmer defined timmings for performance evaluations. This profiling - * allows logging of a timestamp with a corresponding message to a trace - * buffer. - */ - -public class Profile { - /** - * Profiling is enabled and available. - */ - public static final boolean PROFILE = true; // enable profile compiling - /** - * The logging state of <tt>STARTUP</tt> messages - */ - public static boolean STARTUP = false; // enable startup profiling - /** - * The logging state of <tt>BENCHMARK</tt> messages - */ - public static boolean BENCHMARK = false; // enable all benchmarking - /** - * The logging state of <tt>DEBUG</tt> messages - */ - public static boolean DEBUG = false; // enable general debug profiling - - private static final String OSGI_PROP = "osgi.profile."; //$NON-NLS-1$ - private static final String PROP_STARTUP = OSGI_PROP + "startup"; //$NON-NLS-1$ - private static final String PROP_BENCHMARK = OSGI_PROP + "benchmark"; //$NON-NLS-1$ - private static final String PROP_DEBUG = OSGI_PROP + "debug"; //$NON-NLS-1$ - private static final String PROP_IMPL = OSGI_PROP + "impl"; //$NON-NLS-1$ - - private static final String OSGI_OPTION = "org.eclipse.osgi/profile/"; //$NON-NLS-1$ - private static final String OPTION_STARTUP = OSGI_OPTION + "startup"; //$NON-NLS-1$ - private static final String OPTION_BENCHMARK = OSGI_OPTION + "benchmark"; //$NON-NLS-1$ - private static final String OPTION_DEBUG = OSGI_OPTION + "debug"; //$NON-NLS-1$ - private static final String OPTION_IMPL = OSGI_OPTION + "impl"; //$NON-NLS-1$ - - /** - * The default logging flag. - */ - public static final int FLAG_NONE = 0; - /** - * The logging flag for <strong>method enter</strong> - */ - public static final int FLAG_ENTER = 1; - /** - * The logging flag for <strong>method exit</strong> - */ - public static final int FLAG_EXIT = 2; - /** - * The description for <strong>method enter</strong> - */ - public static final String ENTER_DESCRIPTION = "enter"; //$NON-NLS-1$ - /** - * The description for <strong>method exit</strong> - */ - public static final String EXIT_DESCRIPTION = "exit"; //$NON-NLS-1$ - - private static ProfileLogger profileLogger = null; - private static String profileLoggerClassName = null; - - static { - initProps(); - } - - /** - * Initialize/update profiling properties. - * - * If profiling properties are updated, this method is called to update - * the profile states. - */ - public static void initProps() { - String prop; - FrameworkDebugOptions dbgOptions = null; - - // if osgi.debug is not available, don't force DebugOptions - // to init as this variable may be set later on where - // DebugOptions will succeed. - if (FrameworkProperties.getProperty("osgi.debug") != null) { //$NON-NLS-1$ - dbgOptions = FrameworkDebugOptions.getDefault(); - if (dbgOptions != null) { - STARTUP = dbgOptions.getBooleanOption(OPTION_STARTUP, false); - BENCHMARK = dbgOptions.getBooleanOption(OPTION_BENCHMARK, false); - DEBUG = dbgOptions.getBooleanOption(OPTION_DEBUG, false); - if (profileLogger == null) - profileLoggerClassName = dbgOptions.getOption(OPTION_IMPL); - } - } - - // System properties will always override anything in .options file - if ((prop = FrameworkProperties.getProperty(PROP_STARTUP)) != null) { - STARTUP = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_STARTUP, new Boolean(STARTUP).toString()); - } - if ((prop = FrameworkProperties.getProperty(PROP_BENCHMARK)) != null) { - BENCHMARK = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_BENCHMARK, new Boolean(BENCHMARK).toString()); - } - if ((prop = FrameworkProperties.getProperty(PROP_DEBUG)) != null) { - DEBUG = Boolean.valueOf(prop).booleanValue(); - if (dbgOptions != null) - dbgOptions.setOption(OPTION_DEBUG, new Boolean(DEBUG).toString()); - } - - if (profileLogger == null) { - if ((prop = FrameworkProperties.getProperty(PROP_IMPL)) != null) { - profileLoggerClassName = prop; - if (dbgOptions != null) - dbgOptions.setOption(OPTION_IMPL, profileLoggerClassName); - } - } else { - profileLogger.initProps(); - } - } - - /** - * Log a method enter. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - */ - public static void logEnter(String id) { - logTime(FLAG_ENTER, id, ENTER_DESCRIPTION, null); - } - - /** - * Log a method enter. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param description A description of the method. - */ - public static void logEnter(String id, String description) { - logTime(FLAG_ENTER, id, ENTER_DESCRIPTION, description); - } - - /** - * Log a method exit. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - */ - public static void logExit(String id) { - logTime(FLAG_EXIT, id, EXIT_DESCRIPTION, null); - } - - /** - * Log a method exit. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param description A description of the method. - */ - public static void logExit(String id, String description) { - logTime(FLAG_EXIT, id, EXIT_DESCRIPTION, description); - } - - /** - * Log a message. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - */ - public static void logTime(String id, String msg) { - logTime(FLAG_NONE, id, msg, null); - } - - /** - * Log a message. - * - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - * @param description A description of the method. - */ - public static void logTime(String id, String msg, String description) { - logTime(FLAG_NONE, id, msg, description); - } - - /** - * Log a message. - * - * @param flag A profile logging flag. - * @param id The method's unique identification (e.g. org.eclipse.class#name). - * @param msg The message. - * @param description A description of the method. - * - * @see #FLAG_ENTER - * @see #FLAG_EXIT - * @see #FLAG_NONE - */ - public static void logTime(int flag, String id, String msg, String description) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.logTime(flag, id, msg, description); - } - - /** - * Use cumulative logging to record the entrance from this scope. - * - * @param scope The entering scope - */ - public static void accumLogEnter(String scope) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.accumLogEnter(scope); - } - - /** - * Use cumulative logging to record the exit from this scope. - * - * @param scope The exiting scope - */ - public static void accumLogExit(String scope) { - if (profileLogger == null) - profileLogger = createProfileLogger(); - profileLogger.accumLogExit(scope); - } - - /** - * Get the profiling log report and reset the trace buffer. - * - * @return The profiling log report. - */ - public static String getProfileLog() { - if (profileLogger != null) - return profileLogger.getProfileLog(); - return ""; //$NON-NLS-1$ - } - - /** - * Create an instance of the appropriate profile logger - */ - private static ProfileLogger createProfileLogger() { - ProfileLogger result = null; - - // Try to create it by class name - if (profileLoggerClassName != null) { - Class<?> profileImplClass = null; - try { - profileImplClass = Class.forName(profileLoggerClassName); - result = (ProfileLogger) profileImplClass.newInstance(); - } catch (Exception e) { - // could not find the class - e.printStackTrace(); - } - } - - // Use the default - if (result == null) - result = new DefaultProfileLogger(); - - return (result); - } -} diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/ProfileLogger.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/ProfileLogger.java deleted file mode 100644 index 31cab05ea..000000000 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/profile/ProfileLogger.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.osgi.internal.profile; - -public interface ProfileLogger { - - /** - * - *@see Profile#initProps() - */ - public void initProps(); - - /** - *@see Profile#logTime(int, String, String, String) - */ - public void logTime(int flag, String id, String msg, String description); - - /** - * @see Profile#accumLogEnter(String) - */ - public void accumLogEnter(String scope); - - /** - * @see Profile#accumLogExit(String) - */ - public void accumLogExit(String scope); - - /** - * - * @see Profile#getProfileLog() - */ - public String getProfileLog(); -} diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/serviceregistry/FilteredServiceListener.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/serviceregistry/FilteredServiceListener.java index 64d616a97..a0429bcdc 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/serviceregistry/FilteredServiceListener.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/serviceregistry/FilteredServiceListener.java @@ -52,7 +52,7 @@ class FilteredServiceListener implements ServiceListener, ListenerHook.ListenerI this.filter = null; this.objectClass = null; } else { - FilterImpl filterImpl = FilterImpl.newInstance(filterstring); + FilterImpl filterImpl = FilterImpl.newInstance(filterstring, context.getContainer().getConfiguration().getDebug().DEBUG_FILTER); String clazz = filterImpl.getRequiredObjectClass(); if (unfiltered || (clazz == null)) { this.objectClass = null; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/signedcontent/SignedBundleHook.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/signedcontent/SignedBundleHook.java index 66ade8aab..505427c38 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/signedcontent/SignedBundleHook.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/signedcontent/SignedBundleHook.java @@ -20,7 +20,8 @@ import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.util.*; import org.eclipse.osgi.framework.log.FrameworkLogEntry; -import org.eclipse.osgi.internal.framework.*; +import org.eclipse.osgi.internal.framework.EquinoxBundle; +import org.eclipse.osgi.internal.framework.EquinoxContainer; import org.eclipse.osgi.internal.hookregistry.*; import org.eclipse.osgi.internal.service.security.KeyStoreTrustEngine; import org.eclipse.osgi.internal.signedcontent.SignedStorageHook.StorageHookImpl; @@ -266,7 +267,7 @@ public class SignedBundleHook implements ActivatorHookFactory, BundleFileWrapper Filter filter = null; if (trustEngineNameProp != null) try { - filter = FilterImpl.newInstance("(&(" + Constants.OBJECTCLASS + "=" + TrustEngine.class.getName() + ")(" + SignedContentConstants.TRUST_ENGINE + "=" + trustEngineNameProp + "))"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ + filter = context.createFilter("(&(" + Constants.OBJECTCLASS + "=" + TrustEngine.class.getName() + ")(" + SignedContentConstants.TRUST_ENGINE + "=" + trustEngineNameProp + "))"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ } catch (InvalidSyntaxException e) { log("Invalid trust engine filter", FrameworkLogEntry.WARNING, e); //$NON-NLS-1$ } diff --git a/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/storagemanager/StorageManager.java b/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/storagemanager/StorageManager.java index 3ac630ac3..f975dfe95 100644 --- a/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/storagemanager/StorageManager.java +++ b/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/storagemanager/StorageManager.java @@ -10,13 +10,12 @@ *******************************************************************************/ package org.eclipse.osgi.storagemanager; -import org.eclipse.osgi.internal.location.*; - import java.io.*; import java.security.AccessController; import java.util.*; import org.eclipse.osgi.framework.internal.reliablefile.*; import org.eclipse.osgi.framework.util.SecureAction; +import org.eclipse.osgi.internal.location.*; /** * Storage managers provide a facility for tracking the state of a group of files having @@ -188,7 +187,7 @@ public final class StorageManager { return; this.instanceFile = File.createTempFile(".tmp", ".instance", managerRoot); //$NON-NLS-1$//$NON-NLS-2$ this.instanceFile.deleteOnExit(); - instanceLocker = BasicLocation.createLocker(instanceFile, lockMode); + instanceLocker = BasicLocation.createLocker(instanceFile, lockMode, false); instanceLocker.lock(); } @@ -383,7 +382,7 @@ public final class StorageManager { if (readOnly) return false; if (locker == null) { - locker = BasicLocation.createLocker(lockFile, lockMode); + locker = BasicLocation.createLocker(lockFile, lockMode, false); if (locker == null) throw new IOException(EclipseAdaptorMsg.fileManager_cannotLock); } @@ -609,7 +608,7 @@ public final class StorageManager { if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].endsWith(".instance") && (instanceFile == null || !files[i].equalsIgnoreCase(instanceFile.getName()))) { //$NON-NLS-1$ - Locker tmpLocker = BasicLocation.createLocker(new File(managerRoot, files[i]), lockMode); + Locker tmpLocker = BasicLocation.createLocker(new File(managerRoot, files[i]), lockMode, false); if (tmpLocker.lock()) { //If I can lock it is a file that has been left behind by a crash tmpLocker.release(); |