Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/osgi/framework/stats/BundleStats.java')
-rw-r--r--bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/osgi/framework/stats/BundleStats.java145
1 files changed, 145 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/osgi/framework/stats/BundleStats.java b/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/osgi/framework/stats/BundleStats.java
new file mode 100644
index 000000000..4a02d211c
--- /dev/null
+++ b/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/osgi/framework/stats/BundleStats.java
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osgi.framework.stats;
+
+import java.util.ArrayList;
+import org.eclipse.core.runtime.adaptor.EclipseAdaptor;
+
+/**
+ * Contains information about activated bundles and acts as the main
+ * entry point for logging plugin activity.
+ */
+
+public class BundleStats {
+ public String pluginId;
+ public int activationOrder;
+ private long timestamp; //timeStamp at which this plugin has been activated
+ private boolean duringStartup; // indicate if the plugin has been activated during startup
+ private long startupTime; // the time took by the plugin to startup
+ private long startupMethodTime; // the time took to run the startup method
+
+ // Indicate the position of the activation trace in the file
+ private long traceStart=-1;
+ private long traceEnd =-1;
+
+ //To keep plugins parentage
+ private ArrayList pluginsActivated = new ArrayList(3); // TODO create lazily
+ private BundleStats activatedBy=null;
+
+// static {
+// // activate the boot plugin manually since we do not control the classloader
+//// activateBootPlugin();
+// }
+
+ // hard code the starting of the boot plugin as it does not go through the normal sequence
+// private static void activateBootPlugin() {
+// BundleStats plugin = findPlugin(BootLoader.PI_BOOT);
+// plugin.setTimestamp(System.currentTimeMillis());
+// plugin.setActivationOrder(plugins.size());
+// }
+
+
+
+
+
+ // Get the pluginInfo if available, or create it.
+ public BundleStats(String pluginId) {
+ this.pluginId = pluginId;
+// duringStartup = booting;
+ }
+
+ public long getTimestamp() {
+ return timestamp;
+ }
+
+ public int getActivationOrder() {
+ return activationOrder;
+ }
+
+ protected void activated(BundleStats plugin) {
+ pluginsActivated.add(plugin);
+ }
+
+ public BundleStats getActivatedBy() {
+ return activatedBy;
+ }
+
+ public String getPluginId() {
+ return pluginId;
+ }
+
+ public long getStartupTime() {
+ return startupTime;
+ }
+
+ public long getStartupMethodTime() {
+ return startupMethodTime;
+ }
+
+ public boolean isStartupPlugin() {
+ return duringStartup;
+ }
+
+ public int getClassLoadCount() {
+ if (!EclipseAdaptor.MONITOR_CLASSES)
+ return 0;
+ ClassloaderStats loader = ClassloaderStats.getLoader(pluginId);
+ return loader == null ? 0 : loader.getClassLoadCount();
+ }
+
+ public long getClassLoadTime() {
+ if (!EclipseAdaptor.MONITOR_CLASSES)
+ return 0;
+ ClassloaderStats loader = ClassloaderStats.getLoader(pluginId);
+ return loader == null ? 0 : loader.getClassLoadTime();
+ }
+
+ public ArrayList getPluginsActivated() {
+ return pluginsActivated;
+ }
+
+ public long getTraceStart() {
+ return traceStart;
+ }
+
+ public long getTraceEnd() {
+ return traceEnd;
+ }
+
+ protected void setTimestamp(long value) {
+ timestamp = value;
+ }
+
+ protected void setActivationOrder(int value) {
+ activationOrder = value;
+ }
+
+ protected void setTraceStart(long time) {
+ traceStart = time;
+ }
+
+ protected static void setBooting(boolean boot) {
+// booting = boot;
+ }
+
+ protected void endActivation() {
+ startupTime = System.currentTimeMillis() - timestamp;
+ }
+
+ protected void setTraceEnd(long position) {
+ traceEnd = position;
+ }
+
+
+ protected void setActivatedBy(BundleStats value) {
+ activatedBy = value;
+ }
+}

Back to the top