FELIX-134

Removing the tab from repository


git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@439333 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/mosgi.doc/config.properties.core b/mosgi.doc/config.properties.core
index 4a769ea..d7d4859 100644
--- a/mosgi.doc/config.properties.core
+++ b/mosgi.doc/config.properties.core
@@ -33,7 +33,7 @@
 insa.jmxconsole.tab.url.osgiprobestab=file:../mosgi.managedelements.osgiprobes.tab/target/org.apache.felix.mosgi.managedelements.osgiprobes.tab-0.8.0-SNAPSHOT.jar
 insa.jmxconsole.tab.url.bundlesprobestab=file:../mosgi.managedelements.bundlesprobes.tab/target/org.apache.felix.mosgi.managedelements.bundlesprobes.tab-0.8.0-SNAPSHOT.jar
 insa.jmxconsole.tab.url.obrprobetab=file:../mosgi.managedelements.obrprobe.tab/target/org.apache.felix.mosgi.managedelements.obrprobe.tab-0.8.0-SNAPSHOT.jar
-insa.jmxconsole.tab.url.memoryprobetab=file:../mosgi.managedelements.memoryprobe.tab/target/org.apache.felix.mosgi.managedelements.memoryprobe.tab-0.8.0-SNAPSHOT.jar
+insa.jmxconsole.tab.url.memoryprobetab=http://perso.citi.insa-lyon.fr/sfrenot/devel/mosgi/managedelements/trunk/mosgi.managedelements.memoryprobe.tab/target/org.apache.felix.mosgi.managedelements.memoryprobe.tab-0.8.0-SNAPSHOT.jar
 
 #insa.jmxconsole.rmiport.t1=1100
 
diff --git a/mosgi.managedelements.memoryprobe.tab/pom.xml b/mosgi.managedelements.memoryprobe.tab/pom.xml
deleted file mode 100644
index 120a9d6..0000000
--- a/mosgi.managedelements.memoryprobe.tab/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<project>
-  <parent>
-    <groupId>org.apache.felix</groupId>
-    <artifactId>felix</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <packaging>osgi-bundle</packaging>
-  <name>Apache Felix MOSGi memory activity presentation tab for the JMX console</name>
-  <artifactId>org.apache.felix.mosgi.managedelements.memoryprobe.tab</artifactId>
-  <dependencies>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.apache.felix.mosgi.console.ifc</artifactId>
-      <version>${pom.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <!-- dependency>
-      <groupId>jfree</groupId>
-      <artifactId>jcommon</artifactId>
-      <version>1.0.4</version>
-      <scope>provided</scope>
-    </dependency -->
-    <dependency>
-      <groupId>jfree</groupId>
-      <artifactId>jfreechart</artifactId>
-      <version>1.0.1</version>
-      <scope>provided</scope>
-    </dependency>
-
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix.plugins</groupId>
-        <artifactId>maven-osgi-plugin</artifactId>
-        <version>${pom.version}</version>
-        <extensions>true</extensions>
-        <configuration>
-          <osgiManifest>
-            <bundleName>MOSGi memory activity tab for the JMX console</bundleName>
-            <bundleDescription>MOSGi memory activity tab for the JMX console</bundleDescription>
-            <bundleActivator>auto-detect</bundleActivator>
-            <bundleDocUrl>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/</bundleDocUrl>
-            <bundleUrl>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/${pom.artifactId}-${pom.version}.jar</bundleUrl>
-            <bundleSource>http://oscar-osgi.sf.net/obr2/${pom.artifactId}/${pom.artifactId}-${pom.version}-src.jar</bundleSource>
-            <bundleSymbolicName>${pom.artifactId}</bundleSymbolicName>
-            <exportPackage>
-              ${pom.artifactId}
-	      <!--
-              org.jfree.data.xy,
-              org.jfree.ui,
-              org.jfree.chart,
-              org.jfree.chart.resources,
-              org.jfree.chart.plot -->
-            </exportPackage>
-            <importPackage>
-              javax.management,
-              javax.management.openmbean,
-              javax.swing.border,
-              javax.swing.event,
-              javax.swing.filechooser,
-              org.osgi.framework,
-              javax.swing,
-              javax.swing.table,
-	      <!--
-              org.jfree.data.xy,
-              org.jfree.chart.plot,
-              org.jfree.chart.resources,
-              org.jfree.chart,
-              org.jfree.ui, -->
-              javax.swing.plaf,
-              org.apache.felix.mosgi.console.ifc,
-	      org.xml.sax,
-	      javax.imageio,
-	      org.xml.sax.helpers,
-	      javax.xml.parsers,
-	      javax.accessibility
-            </importPackage>
-          </osgiManifest>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AbstractGraphPanel.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AbstractGraphPanel.java
deleted file mode 100755
index 60dd165..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AbstractGraphPanel.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import org.jfree.chart.ChartPanel;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.axis.DateAxis;
-import org.jfree.chart.axis.LogarithmicAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
-import org.jfree.chart.title.TextTitle;
-import org.jfree.data.time.Millisecond;
-import org.jfree.data.time.TimeSeries;
-import org.jfree.data.time.TimeSeriesCollection;
-
-//import org.openide.windows.TopComponent;
-
-//import org.mc4j.console.dashboard.components.RefreshControlComponent;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-import javax.swing.JCheckBox;
-import javax.swing.JComponent;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JRadioButton;
-import javax.swing.SwingUtilities;
-import javax.swing.border.LineBorder;
-
-public abstract class AbstractGraphPanel extends JComponent {
-
-
-    protected TimeSeriesCollection dataset = new TimeSeriesCollection();
-
-
-    protected JFreeChart chart;
-    protected Timer dataGeneratorTimer;
-    protected TimerTask dataGeneratorTimerTask;
-
-    protected Map timeSeriesMap = new HashMap();
-    protected XYPlot xyplot;
-
-
-    private JCheckBox controlsButton;
-    private JPanel controlsPanel;
-
-    private ButtonGroup buttonGroupScale;
-    private ButtonGroup buttonGroupTimeRange;
-    private JRadioButton jRadioButtonScaleLinear;
-    private JRadioButton jRadioButtonScaleLogarithmic;
-    private JRadioButton jRadioTimeHours;
-    private JRadioButton jRadioTimeMinutes;
-    private JRadioButton jRadioTimeSeconds;
-    protected LogarithmicTimeJSlider sleepSlider;
-    protected JLabel sleepDelay;
-
-
-    private boolean removed = false;
-
-    protected int failures = 0;
-    protected static final int MAX_FAILURES = 10;
-
-
-    public AbstractGraphPanel() {
-        setDoubleBuffered(false);
-        initGraphPanel();
-    }
-
-    public void setChartTitle(final String name) {
-        SwingUtilities.invokeLater(new Runnable() {
-            public void run() {
-                setName(name);
-            }
-        });
-
-         chart.setTitle(
-            new TextTitle(name,
-            new Font("SansSerif",Font.BOLD, 12)));
-
-    }
-
-    protected void initGraphPanel() {
-
-        setPreferredSize(new Dimension(500,450));
-
-        DateAxis domain = new DateAxis("Time");
-        NumberAxis range = new NumberAxis("");
-
-        this.xyplot = new XYPlot(dataset, domain, range, new DefaultXYItemRenderer());
-        
-        domain.setAutoRange(true);
-        domain.setLowerMargin(0.0);
-        domain.setUpperMargin(0.0);
-        domain.setTickLabelsVisible(true);
-
-        range.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
-
-        this.chart =
-            new JFreeChart(
-                "",
-                JFreeChart.DEFAULT_TITLE_FONT,
-                xyplot,
-                true);
-
-        chart.setTitle(
-            new TextTitle("Graph ???",
-                new Font("SansSerif",Font.BOLD, 12)));
-
-        ChartPanel chartPanel = new ChartPanel(chart,false,true,true,false,false);
-        chartPanel.setOpaque(true);
-        chartPanel.setDoubleBuffered(false);
-        chart.setBackgroundPaint(this.getBackground());
-        chartPanel.setBackground(this.getBackground());
-        chartPanel.setBorder(new LineBorder(Color.BLACK,1));
-
-        setLayout(new BorderLayout());
-        setOpaque(false);
-        add(chartPanel,BorderLayout.CENTER);
-
-        buildGraphControls();
-
-        this.controlsButton = new ControlsPopupButton();
-        JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
-        northPanel.add(this.controlsButton);
-        northPanel.setOpaque(false);
-        add(northPanel,BorderLayout.NORTH);
-        this.controlsPanel.setLocation(5,5);
-
-        doLayout();
-        repaint();
-    }
-
-
-    public class ControlsPopupButton extends JCheckBox {
-
-        private JPopupMenu popup;
-        private Icon descendingIcon = new ImageIcon(java.awt.Toolkit.getDefaultToolkit().getImage(MemoryProbeTabUI.bc.getBundle().getResource("images/GraphSettings.gif")));
-					
-
-        public ControlsPopupButton() {
-            setIcon(descendingIcon);
-            setOpaque(false);
-            init();
-        }
-
-        public void showPopup() {
-            if (popup == null) {
-                popup = new JPopupMenu();
-                popup.add(controlsPanel);
-            }
-            popup.show(controlsButton, 0, controlsButton.getHeight());
-        }
-
-        private void init() {
-            addActionListener(new ActionListener() {
-                public void actionPerformed(ActionEvent e) {
-                    showPopup();
-                }
-            });
-        }
-    }
-
-
-
-    public long getUpdateDelay() {
-        if (sleepSlider != null)
-            return sleepSlider.getValue();
-        else
-            return 1000L;
-    }
-
-    /**
-     * Cancels any existing scheduled task and reschedules for the
-     * current status of the delay control.
-     */
-    public void reschedule() {
-        if (this.dataGeneratorTimer == null) {
-            this.dataGeneratorTimer = new Timer();
-        }
-
-        if (this.dataGeneratorTimerTask != null) {
-            try {
-                this.dataGeneratorTimerTask.cancel();
-            } catch(Exception e)  { e.printStackTrace();}
-        }
-
-        this.dataGeneratorTimer.schedule(
-            this.dataGeneratorTimerTask = getDataGeneratorTask(),
-            getUpdateDelay(),
-            getUpdateDelay());
-
-    }
-
-    /**
-     * Stops taking measurements for the graph.
-     */
-    public void pauseSchedule() {
-      if (this.dataGeneratorTimer !=null){
-        this.dataGeneratorTimerTask.cancel();
-			}
-      this.dataGeneratorTimerTask = null;
-    }
-
-
-    protected TimerTask getDataGeneratorTask() {
-        return new DataGenerator();
-    }
-
-
-    public void addNotify() {
-        super.addNotify();
-        if (removed) {
-            reschedule();
-            this.removed = false;
-        }
-    }
-
-
-    public void removeNotify() {
-        super.removeNotify();
-        if (this.dataGeneratorTimer != null)
-            this.dataGeneratorTimer.cancel();
-        this.dataGeneratorTimer = null;
-        this.removed = true;
-    }
-
-
-
-    /**
-     * Define this graph as logarithmic or not
-     * @param logarithmic if true, graph will be logarithmic,
-     *   otherwise it will be linear
-     */
-    public void setLogarithmic(boolean logarithmic) {
-        if (logarithmic) {
-            try {
-                this.xyplot.setRangeAxis(new LogarithmicAxis(""));
-            } catch(Exception e) {
-                // In case we try to use a logarithmic axis when the values go below 1
-                this.xyplot.setRangeAxis(new NumberAxis(""));
-            }
-        } else {
-            this.xyplot.setRangeAxis(new NumberAxis(""));
-        }
-    }
-
-    public void setBackground(Color bg) {
-        super.setBackground(bg);
-        //this.sleepSlider.setBackground(bg);
-    }
-
-    public void updateRange() {
-        DateAxis dateAxis = (DateAxis) this.xyplot.getDomainAxis();
-
-        Calendar start = new GregorianCalendar();
-
-        start.setTime(new Date());
-
-        if (this.jRadioTimeSeconds.isSelected()) {
-            start.add(Calendar.SECOND, -60);
-        } else if (this.jRadioTimeMinutes.isSelected()) {
-            //this.sleepSlider.setEnabled(false);
-            start.add(Calendar.MINUTE, -60);
-        } else if (this.jRadioTimeHours.isSelected()) {
-            start.add(Calendar.HOUR, -48);
-        }
-
-        // this is a hack to slow down the data gathering for the longer periods...
-        // TODO GH: Build a TimeSeries that modulates the time periods automatically
-        // i.e.
-        //    |     Seconds     |     Minutes     |     Hours     |
-        //     ***************** * * * * * * * * *   *   *   *   *
-        if (this.jRadioTimeMinutes.isSelected()) {
-            sleepSlider.setValue(10000);
-        } else if (this.jRadioTimeHours.isSelected()) {
-            sleepSlider.setValue(100000);
-        }
-
-
-        dateAxis.setRange(start.getTime(),new Date());
-    }
-
-
-    protected JPanel buildGraphControls() {
-
-        this.controlsPanel = new JPanel();
-        //this.controlsPanel.setBorder(BorderFactory.createLineBorder(Color.black));
-        this.controlsPanel.setLayout(new BoxLayout(this.controlsPanel,BoxLayout.X_AXIS));
-
-        // Seconds, Minutes, Hours
-        JPanel timeDurationPanel = new JPanel();
-        timeDurationPanel.setLayout(new BoxLayout(timeDurationPanel, BoxLayout.Y_AXIS));
-        timeDurationPanel.setBorder(BorderFactory.createTitledBorder("Time Range"));
-
-        buttonGroupTimeRange = new javax.swing.ButtonGroup();
-
-        jRadioTimeSeconds = new javax.swing.JRadioButton("seconds", true);
-        jRadioTimeSeconds.setToolTipText("Track the graph for 60 seconds");
-        jRadioTimeSeconds.setOpaque(false);
-
-        jRadioTimeMinutes = new javax.swing.JRadioButton("minutes", false);
-        jRadioTimeMinutes.setToolTipText("Track this graph for 60 minutes.");
-        jRadioTimeMinutes.setOpaque(false);
-
-        jRadioTimeHours = new javax.swing.JRadioButton("hours", false);
-        jRadioTimeHours.setToolTipText("Track this graph for 48 hours.");
-        jRadioTimeHours.setOpaque(false);
-
-        buttonGroupTimeRange.add(jRadioTimeSeconds);
-        buttonGroupTimeRange.add(jRadioTimeMinutes);
-        buttonGroupTimeRange.add(jRadioTimeHours);
-
-        timeDurationPanel.add(jRadioTimeSeconds);
-        timeDurationPanel.add(jRadioTimeMinutes);
-        timeDurationPanel.add(jRadioTimeHours);
-
-        // Scale (linear vs. logarithmic)
-        JPanel timeScalePanel = new JPanel();
-        timeScalePanel.setLayout(new BoxLayout(timeScalePanel, BoxLayout.Y_AXIS));
-        timeScalePanel.setBorder(BorderFactory.createTitledBorder("Time Scale"));
-
-        buttonGroupScale = new javax.swing.ButtonGroup();
-
-        jRadioButtonScaleLinear = new javax.swing.JRadioButton("Linear", true);
-        jRadioButtonScaleLinear.setOpaque(false);
-
-        jRadioButtonScaleLogarithmic = new javax.swing.JRadioButton("Logarithmic", false);
-        jRadioButtonScaleLogarithmic.setOpaque(false);
-
-        buttonGroupScale.add(jRadioButtonScaleLinear);
-        buttonGroupScale.add(jRadioButtonScaleLogarithmic);
-
-        timeScalePanel.add(jRadioButtonScaleLinear);
-        timeScalePanel.add(jRadioButtonScaleLogarithmic);
-
-        // Update speed (in milleseconds)
-        JPanel updateSpeedPanel = new JPanel();
-        updateSpeedPanel.setLayout(new BoxLayout(updateSpeedPanel, BoxLayout.Y_AXIS));
-        updateSpeedPanel.setBorder(BorderFactory.createTitledBorder("Update Speed"));
-
-        //sleepSlider = new javax.swing.JSlider(100,10000,1000);
-        //sleepSlider.setPaintLabels(true);
-        //sleepSlider.setPaintTicks(true);
-        //sleepSlider.setMinorTickSpacing(500);
-        //sleepSlider.setMajorTickSpacing(2000);
-
-        sleepSlider = new LogarithmicTimeJSlider(100, 100000, 1000);
-
-        sleepSlider.setPaintTicks(true);
-        sleepSlider.setPaintLabels(true);
-        sleepSlider.setMajorTickSpacing(10);
-        sleepSlider.setMinorTickSpacing(10);
-
-        sleepSlider.setToolTipText("Time between updates");
-        sleepSlider.setOpaque(false);
-
-        sleepDelay = new JLabel("Delay: " + sleepSlider.getTime());
-
-        sleepSlider.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
-                sleepSliderPropertyChange(null);
-                sleepDelay.setText("Delay: " + sleepSlider.getTime());
-            }
-        });
-
-
-        updateSpeedPanel.add(sleepSlider);
-        updateSpeedPanel.add(sleepDelay);
-
-        jRadioButtonScaleLinear.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
-                scaleChanged(evt);
-            }
-        });
-
-        jRadioButtonScaleLogarithmic.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
-                scaleChanged(evt);
-            }
-        });
-
-
-        this.controlsPanel.add(timeDurationPanel);
-        this.controlsPanel.add(updateSpeedPanel);
-        this.controlsPanel.add(timeScalePanel);
-
-        return this.controlsPanel;
-    }
-
-
-    private void scaleChanged(javax.swing.event.ChangeEvent evt) {
-        setLogarithmic(jRadioButtonScaleLogarithmic.isSelected());
-    }
-
-
-    private void sleepSliderPropertyChange(java.beans.PropertyChangeEvent evt) {
-        if (!sleepSlider.getValueIsAdjusting()) {
-            reschedule();
-        }
-    }
-
-
-    /**
-     * Should be overridden by non-abstract subclasses to provide an observation
-     * of all time series datasets.
-     */
-    public abstract void addObservation() throws Exception;
-
-    private void addObservationHandler() {
-        try {
-            addObservation();
-            if (failures > 0)
-                failures--;
-        } catch (Exception e) {
-            failures++;
-//            org.openide.windows.IOProvider.getDefault().getStdOut().println(e);
-        }
-        if (failures > MAX_FAILURES) {
-            pauseSchedule();
-        }
-
-        updateRange();
-
-    }
-
-    protected void createTimeSeries(String name, Object key) {
-        TimeSeries ts =
-                new TimeSeries(
-                    name,
-                    Millisecond.class);
-        //ts.setHistoryCount(1728000); // 48 hours at 100 seconds
-        ts.setMaximumItemCount(1728000); // 48 hours at 100 seconds
-        this.timeSeriesMap.put(key, ts);
-        dataset.addSeries(ts);
-    }
-
-    protected TimeSeries getTimeSeries(Object key) {
-        return (TimeSeries) this.timeSeriesMap.get(key);
-    }
-
-    /**
-     * The data generator.
-     */
-    protected class DataGenerator extends TimerTask {
-
-        public void run() {
-            addObservationHandler();
-        }
-    }
-
-
-
-    private static class TestGraph extends AbstractGraphPanel {
-        public static final String TEST = "test";
-        private int x = 1;
-        public TestGraph() {
-            createTimeSeries(TEST, TEST);
-            reschedule();
-        }
-        public void addObservation() throws Exception {
-            getTimeSeries(TEST).
-                add(new Millisecond(), new Integer(x++));
-        }
-    }
-
-    public static void main(String[] args) {
-        TestGraph graph = new TestGraph();
-
-        JFrame frame = new JFrame();
-        JPanel panel = new JPanel();
-        panel.setLayout(new BorderLayout());
-        frame.getContentPane().add(panel);
-        panel.add(graph, BorderLayout.CENTER);
-
-        frame.pack();
-        frame.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-        frame.setVisible(true);
-    }
-
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AttributeGraphPanel.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AttributeGraphPanel.java
deleted file mode 100755
index 97cf622..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/AttributeGraphPanel.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
-//import org.mc4j.console.swing.graph.AbstractGraphPanel;
-
-import org.jfree.data.time.Millisecond;
-import org.jfree.data.time.TimeSeries;
-
-public class AttributeGraphPanel extends AbstractGraphPanel {
-
-    protected ObjectName objectName;
-    protected MBeanServer server;
-
-
-    public AttributeGraphPanel() {
-
-    }
-
-    protected String createName() {
-        StringBuffer buf = new StringBuffer();
-        buf.append(this.objectName.getDomain());
-        Hashtable props = this.objectName.getKeyPropertyList();
-        buf.append(" {");
-        for (Iterator iterator = props.entrySet().iterator(); iterator.hasNext();) {
-            Map.Entry entry =  (Map.Entry) iterator.next();
-            buf.append(" ");
-            buf.append(entry.getKey());
-            buf.append("=");
-            buf.append(entry.getValue());
-        }
-        buf.append("}");
-        return buf.toString();
-    }
-
-
-    public void addObservation() throws Exception {
-      System.out.println("AttributeGraphPanel.addObservation: I should not be there");
-    }
-
-
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicJSlider.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicJSlider.java
deleted file mode 100755
index 650ebca..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicJSlider.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import javax.swing.BoundedRangeModel;
-import javax.swing.BoxLayout;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JSlider;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.plaf.SliderUI;
-import javax.swing.plaf.UIResource;
-import javax.swing.plaf.basic.BasicSliderUI;
-
-public class LogarithmicJSlider extends JSlider {
-
-   public LogarithmicJSlider(int min, int max, int value) {
-     super(min, max, value);
-     SliderUI ui = new LogSliderUI(this);
-     this.setUI(ui);
-   }
-
-    public static class LogSliderUI extends BasicSliderUI {
-
-        public LogSliderUI(JSlider b) {
-            super(b);
-        }
-
-
-        public int xPositionForValue(int value) {
-            int min = slider.getMinimum();
-            int max = slider.getMaximum();
-            int trackLength = trackRect.width;
-            double valueRange = (double) Math.log(max) - (double) Math.log(min);
-            double pixelsPerValue = (double) trackLength / valueRange;
-            int trackLeft = trackRect.x;
-            int trackRight = trackRect.x + (trackRect.width - 1);
-            int xPosition;
-
-            if (!drawInverted()) {
-                xPosition = trackLeft;
-                xPosition += Math.round(pixelsPerValue * ((double) Math.log(value) - Math.log(min)));
-            } else {
-                xPosition = trackRight;
-                xPosition -= Math.round(pixelsPerValue * ((double) Math.log(value) - Math.log(min)));
-            }
-
-            xPosition = Math.max(trackLeft, xPosition);
-            xPosition = Math.min(trackRight, xPosition);
-
-            return xPosition;
-
-
-        }
-
-        public int yPositionForValue(int value) {
-            // TODO GH: Implement to support vertical log sliders
-            return super.yPositionForValue(value);
-        }
-
-        public int valueForYPosition(int yPos) {
-            // TODO GH: Implement to support vertical log sliders
-            return super.valueForYPosition(yPos);
-        }
-
-        public int valueForXPosition(int xPos) {
-            int value;
-            final int minValue = slider.getMinimum();
-            final int maxValue = slider.getMaximum();
-            final int trackLength = trackRect.width;
-            final int trackLeft = trackRect.x;
-            final int trackRight = trackRect.x + (trackRect.width - 1);
-
-            if (xPos <= trackLeft) {
-                value = drawInverted() ? maxValue : minValue;
-            } else if (xPos >= trackRight) {
-                value = drawInverted() ? minValue : maxValue;
-            } else {
-                int distanceFromTrackLeft = xPos - trackLeft;
-                double valueRange = (double) Math.log(maxValue) - (double) Math.log(minValue);
-                //double valuePerPixel = (double)valueRange / (double)trackLength;
-                //int valueFromTrackLeft =
-                //    (int)Math.round( Math.pow(3.5,(double)distanceFromTrackLeft * (double)valuePerPixel));
-
-                int valueFromTrackLeft =
-                    (int)
-                    Math.round(Math.pow(Math.E, Math.log(minValue) + ((((double) distanceFromTrackLeft) * valueRange) / (double) trackLength)));
-
-                value = drawInverted() ? maxValue - valueFromTrackLeft :
-                    (int) Math.log(minValue) + valueFromTrackLeft;
-            }
-
-            return value;
-
-        }
-
-        public void paintTicks(Graphics g) {
-            Rectangle tickBounds = tickRect;
-            int i;
-            int maj, min, max;
-            int w = tickBounds.width;
-            int h = tickBounds.height;
-            int centerEffect, tickHeight;
-
-            g.setColor(Color.black);
-
-            maj = slider.getMajorTickSpacing();
-            min = slider.getMinorTickSpacing();
-
-            if (slider.getOrientation() == JSlider.HORIZONTAL) {
-                g.translate(0, tickBounds.y);
-
-                int value = slider.getMinimum();
-                int xPos = 0;
-
-                if (slider.getMinorTickSpacing() > 0) {
-                    int majorValue = slider.getMinimum();
-
-                    while (value <= slider.getMaximum()) {
-                        if (value >= majorValue) {
-                            value = majorValue;
-                            majorValue *= maj;
-                        }
-                        value += (majorValue / 10.0);
-
-                        xPos = xPositionForValue(value);
-                        paintMinorTickForHorizSlider(g, tickBounds, xPos);
-
-                    }
-                }
-
-                if (slider.getMajorTickSpacing() > 0) {
-                    value = slider.getMinimum();
-
-                    while (value <= slider.getMaximum()) {
-                        xPos = xPositionForValue(value);
-                        paintMajorTickForHorizSlider(g, tickBounds, xPos);
-                        value *= slider.getMajorTickSpacing();
-                    }
-                }
-
-                g.translate(0, -tickBounds.y);
-            } else {
-
-                g.translate(tickBounds.x, 0);
-
-                int value = slider.getMinimum();
-                int yPos = 0;
-
-                if (slider.getMinorTickSpacing() > 0) {
-                    int majorValue = slider.getMinimum();
-                    int offset = 0;
-                    if (!slider.getComponentOrientation().isLeftToRight()) {
-                        offset = tickBounds.width - tickBounds.width / 2;
-                        g.translate(offset, 0);
-                    }
-
-                    while (value <= slider.getMaximum()) {
-                        if (value >= majorValue) {
-                            value = majorValue;
-                            majorValue *= maj;
-                        }
-
-                        yPos = yPositionForValue(value);
-                        paintMinorTickForVertSlider(g, tickBounds, yPos);
-                        value += (majorValue / 10.0);
-                    }
-
-                    if (!slider.getComponentOrientation().isLeftToRight()) {
-                        g.translate(-offset, 0);
-                    }
-                }
-
-                if (slider.getMajorTickSpacing() > 0) {
-                    value = slider.getMinimum();
-                    if (!slider.getComponentOrientation().isLeftToRight()) {
-                        g.translate(2, 0);
-                    }
-
-                    while (value <= slider.getMaximum()) {
-                        yPos = yPositionForValue(value);
-                        paintMajorTickForVertSlider(g, tickBounds, yPos);
-                        value *= slider.getMajorTickSpacing();
-                    }
-
-                    if (!slider.getComponentOrientation().isLeftToRight()) {
-                        g.translate(-2, 0);
-                    }
-                }
-                g.translate(-tickBounds.x, 0);
-            }
-        }
-
-    }
-
-    public Hashtable createStandardLabels(int increment, int start) {
-        if (start > getMaximum() || start < getMinimum()) {
-            throw new IllegalArgumentException("Slider label start point out of range.");
-        }
-
-        if (increment <= 0) {
-            throw new IllegalArgumentException("Label incremement must be > 0");
-        }
-
-        class LabelHashtable extends Hashtable implements PropertyChangeListener {
-            int increment = 0;
-            int start = 0;
-            boolean startAtMin = false;
-
-
-            public LabelHashtable(int increment, int start) {
-                super();
-                this.increment = increment;
-                this.start = start;
-                startAtMin = start == getMinimum();
-                createLabels(this, increment, start);
-            }
-
-            public void propertyChange(PropertyChangeEvent e) {
-                if (e.getPropertyName().equals("minimum") && startAtMin) {
-                    start = getMinimum();
-                }
-
-                if (e.getPropertyName().equals("minimum") ||
-                    e.getPropertyName().equals("maximum")) {
-
-                    Enumeration keys = getLabelTable().keys();
-                    Object key = null;
-                    Hashtable hashtable = new Hashtable();
-
-                    // Save the labels that were added by the developer
-                    while (keys.hasMoreElements()) {
-                        key = keys.nextElement();
-                        Object value = getLabelTable().get(key);
-                        if (!(value instanceof LabelUIResource)) {
-                            hashtable.put(key, value);
-                        }
-                    }
-
-                    clear();
-                    createLabels(this, increment, start);
-
-                    // Add the saved labels
-                    keys = hashtable.keys();
-                    while (keys.hasMoreElements()) {
-                        key = keys.nextElement();
-                        put(key, hashtable.get(key));
-                    }
-                    ((JSlider) e.getSource()).setLabelTable(this);
-                }
-            }
-        }
-
-        LabelHashtable table = new LabelHashtable(increment, start);
-
-        if (getLabelTable() != null && (getLabelTable() instanceof PropertyChangeListener)) {
-            removePropertyChangeListener((PropertyChangeListener) getLabelTable());
-        }
-
-        addPropertyChangeListener(table);
-
-        return table;
-    }
-
-    /**
-     * This method creates the table of labels that are used to label major ticks
-     * on the slider.
-     * @param table
-     * @param increment
-     * @param start
-     */
-    protected void createLabels(Hashtable table, int increment, int start) {
-        for (int labelIndex = start; labelIndex <= getMaximum(); labelIndex *= increment) {
-
-            table.put(new Integer(labelIndex), new LabelUIResource("" + labelIndex, JLabel.CENTER));
-        }
-    }
-
-    protected static class LabelUIResource extends JLabel implements UIResource {
-        public LabelUIResource(String text, int alignment) {
-            super(text, alignment);
-            setName("Slider.label");
-        }
-    }
-
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicTimeJSlider.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicTimeJSlider.java
deleted file mode 100755
index ec000f3..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/LogarithmicTimeJSlider.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import java.text.DecimalFormat;
-import java.util.Hashtable;
-
-import javax.swing.*;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-public class LogarithmicTimeJSlider extends LogarithmicJSlider {
-
-    protected static final DecimalFormat format = new DecimalFormat("#.#");
-    public LogarithmicTimeJSlider(int min, int max, int value) {
-      super(min, max, value);
-    }
-
-
-    protected void createLabels(Hashtable table, int increment, int start) {
-        for (int labelIndex = start; labelIndex <= getMaximum(); labelIndex *= increment) {
-            String label = formatMilleseconds(labelIndex);
-            table.put(new Integer(labelIndex), new LabelUIResource(label, JLabel.CENTER));
-        }
-    }
-
-    public String getTime() {
-        return formatMilleseconds(getValue());
-    }
-
-    public String formatMilleseconds(int labelIndex) {
-        String label;
-        if (labelIndex >= (1000 * 60 * 60 * 24)) {
-            label = format.format(labelIndex / (double)(1000 * 60 * 60 * 24)) + " days";
-        } else if (labelIndex >= (1000 * 60 * 60)) {
-            label = format.format(labelIndex / (double)(1000 * 60 * 60)) + " hours";
-        } else if (labelIndex >= (double)(1000 * 60)) {
-            label = format.format(labelIndex / (double)(1000 * 60)) + " mins";
-        } else if (labelIndex >= 1000) {
-            label = format.format(labelIndex / (double)1000) + " secs";
-        } else {
-            label = labelIndex + " ms";
-        }
-        return label;
-    }
-
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryProbeTabUI.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryProbeTabUI.java
deleted file mode 100644
index 62c9a56..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryProbeTabUI.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import javax.swing.JPanel;
-import java.awt.BorderLayout;
-import java.awt.Component;
-
-import org.osgi.framework.BundleContext;
-
-import java.beans.PropertyChangeEvent;
-import javax.management.MBeanServerConnection;
-
-import org.apache.felix.mosgi.console.ifc.Plugin;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.BundleActivator;
-
-
-public class MemoryProbeTabUI extends JPanel implements Plugin, BundleActivator {
-  MemoryUsageLineChartComponent mulcc;
-  JPanel innerP;
-
-  static BundleContext bc;
-  static MBeanServerConnection mbs;
-  ServiceRegistration sreg;
-
-  ///////////////////////////////////////////
-  //           BundleActivator             //
-  ///////////////////////////////////////////
-  public void start(BundleContext context) {
-    this.bc = context;
-    this.registerServicePlugin();
-  }
-
-  public void stop(BundleContext context) { }
-
-  ///////////////////////////////////////////
-  //           Plugin                      //
-  //////////////////////////////////////////
-  public void registerServicePlugin(){
-    sreg = bc.registerService(Plugin.class.getName(), this, null);
-  }
-
-  public void unregisterServicePlugin(){
-    sreg.unregister();
-  }
-
-  public String pluginLocation(){
-    return bc.getBundle().getLocation();
-  }
-
-  public String getName(){return "JVM Memory";}
-
-  public Component getGUI(){return this;}
-
-  public void propertyChange(PropertyChangeEvent e){
-    /*
-     * This a static tab, each new visit will provide the same
-     * information. A dynamic tab update is provided in LinuxTab
-     *
-     */
-    if (e.getPropertyName().equals(Plugin.NEW_NODE_READY)){
-      this.mbs=(MBeanServerConnection)e.getNewValue();
-      innerP=new JPanel(new BorderLayout());
-      innerP.add(this.mulcc=new MemoryUsageLineChartComponent(),BorderLayout.CENTER);
-      this.add(innerP, BorderLayout.CENTER);
-      this.updateUI();
-    }else if(e.getPropertyName().equals(Plugin.EMPTY_NODE)){
-      if (mulcc!=null){
-        this.mulcc.pauseSchedule();
-        this.innerP.remove(this.mulcc);
-        this.mulcc=null;
-        this.remove(innerP);
-      }
-      this.invalidate();
-      this.validate();
-      this.updateUI();
-    }
-  }
-
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryUsageLineChartComponent.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryUsageLineChartComponent.java
deleted file mode 100755
index 824c8ba..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/MemoryUsageLineChartComponent.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.jfree.data.time.Millisecond;
-import org.jfree.data.time.TimeSeries;
-
-import java.awt.BorderLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryUsage;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.openmbean.CompositeData;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
-public class MemoryUsageLineChartComponent extends NumericAttributeGraph {
-
-    public static final String COMMITTED = "Committed";
-    public static final String INIT = "Initial";
-    public static final String MAX = "Maximum";
-    public static final String USED = "Used";
-
-    protected DefaultPieDataset pieDataset;
-
-    protected List beanList;
-
-
-    ObjectName permGen, tenuredGen, codeCache, edenSpace, survivorSpace = null;
-    
-
-    public MemoryUsageLineChartComponent()  {
-
-	this.chart.setTitle("Memory Usage");
-    	
-    	try {
-    		permGen = new ObjectName("java.lang:type=MemoryPool,name=Perm Gen");
-    		tenuredGen = new ObjectName("java.lang:type=MemoryPool,name=Tenured Gen");
-    		codeCache = new ObjectName("java.lang:type=MemoryPool,name=Code Cache");
-    		edenSpace = new ObjectName("java.lang:type=MemoryPool,name=Eden Space");
-    		survivorSpace = new ObjectName("java.lang:type=MemoryPool,name=Survivor Space");
-    	} catch(Exception e) {
-    		e.printStackTrace();
-    	}
-    	createTimeSeries("Permanent Generation", permGen);
-    	createTimeSeries("Tenured Generation", tenuredGen);
-    	createTimeSeries("Code Cache", codeCache);
-    	createTimeSeries("Eden Space", edenSpace);
-    	createTimeSeries("Survivor Space", survivorSpace);
-        reschedule();
-    }
-    
-    public void addObservation() throws Exception {
-    	//MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-    	MemoryUsage usage = MemoryUsage.from((CompositeData) MemoryProbeTabUI.mbs.getAttribute(permGen, "Usage"));
-    	MemoryUsage usage2 = MemoryUsage.from((CompositeData) MemoryProbeTabUI.mbs.getAttribute(tenuredGen, "Usage"));
-    	MemoryUsage usage3 = MemoryUsage.from((CompositeData) MemoryProbeTabUI.mbs.getAttribute(codeCache, "Usage"));
-    	MemoryUsage usage4 = MemoryUsage.from((CompositeData) MemoryProbeTabUI.mbs.getAttribute(edenSpace, "Usage"));
-    	MemoryUsage usage5 = MemoryUsage.from((CompositeData) MemoryProbeTabUI.mbs.getAttribute(survivorSpace, "Usage"));
-        getTimeSeries(permGen).add( new Millisecond(), usage.getUsed() );
-        getTimeSeries(tenuredGen).add( new Millisecond(), usage2.getUsed() );
-        getTimeSeries(codeCache).add( new Millisecond(), usage3.getUsed() );
-        getTimeSeries(edenSpace).add( new Millisecond(), usage4.getUsed() );
-        getTimeSeries(survivorSpace).add( new Millisecond(), usage5.getUsed() );
-        
-    }
-
-    
-    
-    public static void main(String[] args) {
-    	MemoryUsageLineChartComponent graph = new MemoryUsageLineChartComponent();
-
-        JFrame frame = new JFrame();
-        JPanel panel = new JPanel();
-        panel.setLayout(new BorderLayout());
-        frame.getContentPane().add(panel);
-        panel.add(graph, BorderLayout.CENTER);
-
-        frame.pack();
-        frame.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent e) {
-                System.exit(0);
-            }
-        });
-        frame.setVisible(true);
-    }
-
-    
-    
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/NumericAttributeGraph.java b/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/NumericAttributeGraph.java
deleted file mode 100755
index 88cf772..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/java/org/apache/felix/mosgi/managedelements/memoryprobe/tab/NumericAttributeGraph.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *   Copyright 2005 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-package org.apache.felix.mosgi.managedelements.memoryprobe.tab;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
-public class NumericAttributeGraph extends AttributeGraphPanel {
-
-    protected Set attributeSet = new HashSet();
-
-    public int getUpdateInterval() {
-        return sleepSlider.getValue();
-    }
-
-    public void setUpdateInterval(int updateInterval) {
-        sleepSlider.setValue(updateInterval);
-    }
-
-    public java.lang.String getAttributeName() {
-        return "Multivalue attribute";
-    }
-
-    public void setAttributeName(java.lang.String attributeName) {
-        this.attributeSet.add(attributeName);
-    }
-    
-}
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/resources/images/GraphSettings.gif b/mosgi.managedelements.memoryprobe.tab/src/main/resources/images/GraphSettings.gif
deleted file mode 100644
index 982e2dc..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/resources/images/GraphSettings.gif
+++ /dev/null
Binary files differ
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jcommon-1.0.4.jar b/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jcommon-1.0.4.jar
deleted file mode 100644
index 17d60b8..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jcommon-1.0.4.jar
+++ /dev/null
Binary files differ
diff --git a/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jfreechart-1.0.1.jar b/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jfreechart-1.0.1.jar
deleted file mode 100644
index 9663c1a..0000000
--- a/mosgi.managedelements.memoryprobe.tab/src/main/resources/lib/jfreechart-1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/pom.xml b/pom.xml
index 20bd6dc..8967ab4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,7 +106,6 @@
         <module>mosgi.managedelements.obrprobe</module>
         <module>mosgi.managedelements.obrprobe.tab</module>
         <module>mosgi.managedelements.memoryprobe</module>
-        <module>mosgi.managedelements.memoryprobe.tab</module>
 
         <module>ipojo.plugin</module>
         <module>ipojo.arch</module>