You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2013/04/17 15:52:44 UTC

svn commit: r1468913 - in /felix/trunk/inventory: ./ src/main/java/org/apache/felix/inventory/impl/ src/main/java/org/apache/felix/inventory/impl/webconsole/

Author: fmeschbe
Date: Wed Apr 17 13:52:43 2013
New Revision: 1468913

URL: http://svn.apache.org/r1468913
Log:
FELIX-4026 Ensure Java 1.4 API use and class files

- generate 1.4 class files
- check Java 1.4 API use
- Resolve current non-Java 1.4 API use

Modified:
    felix/trunk/inventory/pom.xml
    felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterAdapter.java
    felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterDescription.java
    felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.java
    felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.java

Modified: felix/trunk/inventory/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/inventory/pom.xml?rev=1468913&r1=1468912&r2=1468913&view=diff
==============================================================================
--- felix/trunk/inventory/pom.xml (original)
+++ felix/trunk/inventory/pom.xml Wed Apr 17 13:52:43 2013
@@ -41,6 +41,44 @@
 
     <build>
         <plugins>
+            <!-- Make sure to not use non Java 1.4 API -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.4</source>
+                    <target>1.4</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>animal-sniffer-maven-plugin</artifactId>
+                <version>1.7</version>
+                <configuration>
+                    <signature>
+                        <groupId>org.codehaus.mojo.signature</groupId>
+                        <artifactId>java14</artifactId>
+                        <version>1.0</version>
+                    </signature>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        
+            <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <excludePackageNames>
+                        *.impl
+                    </excludePackageNames>
+                </configuration>
+            </plugin>
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>

Modified: felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterAdapter.java
URL: http://svn.apache.org/viewvc/felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterAdapter.java?rev=1468913&r1=1468912&r2=1468913&view=diff
==============================================================================
--- felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterAdapter.java (original)
+++ felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterAdapter.java Wed Apr 17 13:52:43 2013
@@ -157,24 +157,28 @@ public class InventoryPrinterAdapter imp
         }
     }
 
-    /**
-     * @see java.lang.Object#toString()
-     */
-    public String toString()
+    public InventoryPrinterDescription getDescription()
     {
-        return printer.getClass() + "(" + super.toString() + ")";
+        return this.description;
     }
 
-    /**
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
     public int compareTo(final Object spa)
     {
         return this.description.getSortKey().compareTo(((InventoryPrinterAdapter) spa).description.getSortKey());
     }
 
-    public InventoryPrinterDescription getDescription()
+    public int hashCode()
     {
-        return this.description;
+        return this.description.getSortKey().hashCode();
+    }
+
+    public boolean equals(final Object spa)
+    {
+        return this.description.getSortKey().equals(((InventoryPrinterAdapter) spa).description.getSortKey());
+    }
+
+    public String toString()
+    {
+        return printer.getClass() + "(" + super.toString() + ")";
     }
 }

Modified: felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterDescription.java
URL: http://svn.apache.org/viewvc/felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterDescription.java?rev=1468913&r1=1468912&r2=1468913&view=diff
==============================================================================
--- felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterDescription.java (original)
+++ felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterDescription.java Wed Apr 17 13:52:43 2013
@@ -163,7 +163,7 @@ public class InventoryPrinterDescription
 
     public String toString()
     {
-        return "InventoryPrinterDescription [title=" + title + ", name=" + name + ", formats=" + Arrays.toString(formats)
+        return "InventoryPrinterDescription [title=" + title + ", name=" + name + ", formats=" + Arrays.asList(formats)
             + ", sortKey=" + sortKey + "]";
     }
 }

Modified: felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.java?rev=1468913&r1=1468912&r2=1468913&view=diff
==============================================================================
--- felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.java (original)
+++ felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.java Wed Apr 17 13:52:43 2013
@@ -27,8 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.concurrent.ConcurrentSkipListSet;
-
+import java.util.TreeSet;
 import org.apache.felix.inventory.InventoryPrinter;
 import org.apache.felix.inventory.Format;
 import org.apache.felix.inventory.impl.webconsole.ConsoleConstants;
@@ -62,7 +61,7 @@ public class InventoryPrinterManagerImpl
     private final Map allAdapters = new HashMap();
 
     /** Used adapters. Type of the set: InventoryPrinterAdapter */
-    private final Set usedAdapters = new ConcurrentSkipListSet();
+    private final Set usedAdapters = new TreeSet();
 
     /** Registration for the web console. */
     private final ServiceRegistration pluginRegistration;
@@ -112,7 +111,10 @@ public class InventoryPrinterManagerImpl
         {
             this.allAdapters.clear();
         }
-        this.usedAdapters.clear();
+        synchronized (this.usedAdapters)
+        {
+            this.usedAdapters.clear();
+        }
     }
 
     /**
@@ -191,20 +193,18 @@ public class InventoryPrinterManagerImpl
         }
         if (removeAdapter != null)
         {
-            final Iterator i = this.usedAdapters.iterator();
-            while (i.hasNext())
+            removeAdapter.unregisterConsole();
+            synchronized (this.usedAdapters)
             {
-                if (i.next() == removeAdapter)
-                {
-                    i.remove();
-                    break;
-                }
+                this.usedAdapters.remove(removeAdapter);
             }
-            removeAdapter.unregisterConsole();
         }
         if (addAdapter != null)
         {
-            this.usedAdapters.add(addAdapter);
+            synchronized (this.usedAdapters)
+            {
+                this.usedAdapters.add(addAdapter);
+            }
             addAdapter.registerConsole(this.bundleContext, this);
         }
     }
@@ -222,7 +222,7 @@ public class InventoryPrinterManagerImpl
                 while (iter.hasNext())
                 {
                     final InventoryPrinterAdapter adapter = (InventoryPrinterAdapter) iter.next();
-                    if (adapter.getDescription().getServiceReference().compareTo(reference) == 0)
+                    if (adapter.getDescription().getServiceReference().equals(reference))
                     {
                         iter.remove();
                         removed = true;
@@ -239,17 +239,26 @@ public class InventoryPrinterManagerImpl
                 }
             }
         }
-        final Iterator iter = this.usedAdapters.iterator();
-        while (iter.hasNext())
+
+        InventoryPrinterAdapter adapterToUnregister = null;
+        synchronized (this.usedAdapters)
         {
-            final InventoryPrinterAdapter adapter = (InventoryPrinterAdapter) iter.next();
-            if (adapter.getDescription().getServiceReference().compareTo(reference) == 0)
+            final Iterator iter = this.usedAdapters.iterator();
+            while (iter.hasNext())
             {
-                iter.remove();
-                adapter.unregisterConsole();
-                break;
+                final InventoryPrinterAdapter adapter = (InventoryPrinterAdapter) iter.next();
+                if (adapter.getDescription().getServiceReference().equals(reference))
+                {
+                    iter.remove();
+                    adapterToUnregister = adapter;
+                    break;
+                }
             }
         }
+        if (adapterToUnregister != null)
+        {
+            adapterToUnregister.unregisterConsole();
+        }
     }
 
     /**
@@ -259,8 +268,11 @@ public class InventoryPrinterManagerImpl
      */
     public InventoryPrinterHandler[] getAllHandlers()
     {
-        return (InventoryPrinterHandler[]) this.usedAdapters.toArray(new InventoryPrinterHandler[this.usedAdapters
-            .size()]);
+        synchronized (this.usedAdapters)
+        {
+            return (InventoryPrinterHandler[]) this.usedAdapters.toArray(new InventoryPrinterHandler[this.usedAdapters
+                .size()]);
+        }
     }
 
     /**
@@ -271,13 +283,16 @@ public class InventoryPrinterManagerImpl
     public InventoryPrinterHandler[] getHandlers(final Format format)
     {
         final List result = new ArrayList();
-        final Iterator i = this.usedAdapters.iterator();
-        while (i.hasNext())
+        synchronized (this.usedAdapters)
         {
-            final InventoryPrinterAdapter printer = (InventoryPrinterAdapter) i.next();
-            if (printer.supports(format))
+            final Iterator i = this.usedAdapters.iterator();
+            while (i.hasNext())
             {
-                result.add(printer);
+                final InventoryPrinterAdapter printer = (InventoryPrinterAdapter) i.next();
+                if (printer.supports(format))
+                {
+                    result.add(printer);
+                }
             }
         }
         return (InventoryPrinterHandler[]) result.toArray(new InventoryPrinterHandler[result.size()]);
@@ -290,13 +305,16 @@ public class InventoryPrinterManagerImpl
      */
     public InventoryPrinterHandler getHandler(final String name)
     {
-        final Iterator i = this.usedAdapters.iterator();
-        while (i.hasNext())
+        synchronized (this.usedAdapters)
         {
-            final InventoryPrinterAdapter printer = (InventoryPrinterAdapter) i.next();
-            if (name.equals(printer.getName()))
+            final Iterator i = this.usedAdapters.iterator();
+            while (i.hasNext())
             {
-                return printer;
+                final InventoryPrinterAdapter printer = (InventoryPrinterAdapter) i.next();
+                if (name.equals(printer.getName()))
+                {
+                    return printer;
+                }
             }
         }
         return null;

Modified: felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.java
URL: http://svn.apache.org/viewvc/felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.java?rev=1468913&r1=1468912&r2=1468913&view=diff
==============================================================================
--- felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.java (original)
+++ felix/trunk/inventory/src/main/java/org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.java Wed Apr 17 13:52:43 2013
@@ -96,16 +96,22 @@ public class WebConsoleAdapter implement
         {
             if (cpa.title.startsWith("%"))
             {
-                final String key = cpa.title.substring(1);
+                String title = cpa.title.substring(1);
+
                 final ResourceBundle rb = this.rbManager.getResourceBundle(reference.getBundle());
-                if (rb == null || !rb.containsKey(key))
-                {
-                    cpa.title = key;
-                }
-                else
+                if (rb != null)
                 {
-                    cpa.title = rb.getString(key);
+                    try
+                    {
+                        title = rb.getString(title);
+                    }
+                    catch (Exception e)
+                    {
+                        // ClassCastException, MissingResourceException
+                        // ignore
+                    }
                 }
+                cpa.title = title;
             }
             if (cpa.label == null)
             {