You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2023/08/14 12:34:31 UTC

[felix-dev] branch master updated: FELIX-6624 : Clean up code

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new 053fc0b533 FELIX-6624 : Clean up code
053fc0b533 is described below

commit 053fc0b5338ed5c8c30184811dc9ead149d0c845
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Aug 14 14:34:24 2023 +0200

    FELIX-6624 : Clean up code
---
 .../felix/webconsole/AbstractWebConsolePlugin.java |   2 +-
 .../apache/felix/webconsole/WebConsoleUtil.java    | 113 ++++++++++-----------
 .../internal/configuration/ConfigJsonSupport.java  |   6 +-
 .../internal/configuration/ConfigManager.java      |   2 +-
 .../webconsole/internal/core/BundlesServlet.java   |  33 +++---
 .../webconsole/internal/core/ServicesServlet.java  |   4 +-
 .../internal/filter/ResourceFilteringWriter.java   |   2 +-
 7 files changed, 76 insertions(+), 86 deletions(-)

diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
index f8226fa8e5..4bb2563c07 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
@@ -984,7 +984,7 @@ public abstract class AbstractWebConsolePlugin extends HttpServlet
         }
 
         // build the CSS links from the references
-        final StringBuffer buf = new StringBuffer();
+        final StringBuilder buf = new StringBuilder();
         for ( int i = 0; i < cssRefs.length; i++ )
         {
             buf.append( "<link href='" ); //$NON-NLS-1$
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
index 4148324651..040e21211d 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
@@ -261,45 +261,42 @@ public final class WebConsoleUtil
      */
     public static final String escapeHtml(String text)
     {
-        StringBuffer sb = new StringBuffer(text.length() * 4 / 3);
-        synchronized (sb) // faster buffer operations
+        StringBuilder sb = new StringBuilder(text.length() * 4 / 3);
+        char ch, oldch = '_';
+        for (int i = 0; i < text.length(); i++)
         {
-            char ch, oldch = '_';
-            for (int i = 0; i < text.length(); i++)
+            switch (ch = text.charAt(i))
             {
-                switch (ch = text.charAt(i))
-                {
-                case '<':
-                    sb.append("&lt;"); //$NON-NLS-1$
-                    break;
-                case '>':
-                    sb.append("&gt;"); //$NON-NLS-1$
-                    break;
-                case '&':
-                    sb.append("&amp;"); //$NON-NLS-1$
-                    break;
-                case ' ':
-                    sb.append("&nbsp;"); //$NON-NLS-1$
-                    break;
-                case '\'':
-                    sb.append("&apos;"); //$NON-NLS-1$
-                    break;
-                case '"':
-                    sb.append("&quot;"); //$NON-NLS-1$
-                    break;
-                case '\r':
-                case '\n':
-                    if (oldch != '\r' && oldch != '\n') // don't add twice <br>
-                        sb.append("<br/>\n"); //$NON-NLS-1$
-                    break;
-                default:
-                    sb.append(ch);
-                }
-                oldch = ch;
+            case '<':
+                sb.append("&lt;"); //$NON-NLS-1$
+                break;
+            case '>':
+                sb.append("&gt;"); //$NON-NLS-1$
+                break;
+            case '&':
+                sb.append("&amp;"); //$NON-NLS-1$
+                break;
+            case ' ':
+                sb.append("&nbsp;"); //$NON-NLS-1$
+                break;
+            case '\'':
+                sb.append("&apos;"); //$NON-NLS-1$
+                break;
+            case '"':
+                sb.append("&quot;"); //$NON-NLS-1$
+                break;
+            case '\r':
+            case '\n':
+                if (oldch != '\r' && oldch != '\n') // don't add twice <br>
+                    sb.append("<br/>\n"); //$NON-NLS-1$
+                break;
+            default:
+                sb.append(ch);
             }
-
-            return sb.toString();
+            oldch = ch;
         }
+
+        return sb.toString();
     }
 
     /**
@@ -375,42 +372,38 @@ public final class WebConsoleUtil
         }
         else if (value.getClass().isArray())
         {
-            final StringBuffer sb = new StringBuffer();
+            final StringBuilder sb = new StringBuilder();
             final int len = Array.getLength(value);
-            synchronized (sb)
-            { // it's faster to synchronize ALL loop calls
-                sb.append('[');
-                for (int i = 0; i < len; i++)
+            sb.append('[');
+            for (int i = 0; i < len; i++)
+            {
+                final Object element = Array.get(value, i);
+                if (element instanceof Byte)
                 {
-                    final Object element = Array.get(value, i);
-                    if (element instanceof Byte)
-                    {
-                        // convert byte[] to hex string
-                        sb.append("0x"); //$NON-NLS-1$
-                        final String x = Integer.toHexString(((Byte) element).intValue() & 0xff);
-                        if (1 == x.length())
-                        {
-                            sb.append('0');
-                        }
-                        sb.append(x);
-                    }
-                    else
+                    // convert byte[] to hex string
+                    sb.append("0x"); //$NON-NLS-1$
+                    final String x = Integer.toHexString(((Byte) element).intValue() & 0xff);
+                    if (1 == x.length())
                     {
-                        sb.append(toString(element));
+                        sb.append('0');
                     }
+                    sb.append(x);
+                }
+                else
+                {
+                    sb.append(toString(element));
+                }
 
-                    if (i < len - 1)
-                    {
-                        sb.append(", "); //$NON-NLS-1$
-                    }
+                if (i < len - 1)
+                {
+                    sb.append(", "); //$NON-NLS-1$
                 }
-                return sb.append(']').toString();
             }
+            return sb.append(']').toString();
         }
         else
         {
             return value.toString();
         }
-
     }
 }
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigJsonSupport.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigJsonSupport.java
index 5c06570766..e066387dd2 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigJsonSupport.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigJsonSupport.java
@@ -189,7 +189,7 @@ class ConfigJsonSupport {
             }
             json.endObject();
             if ( props != null ) {
-                final StringBuffer sb = new StringBuffer();
+                final StringBuilder sb = new StringBuilder();
                 for(final String key : Collections.list(props.keys())) {
                     if ( !metatypeAttributes.contains(key) ) {
                         if ( sb.length() > 0 ) {
@@ -432,7 +432,7 @@ class ConfigJsonSupport {
 
         // search for all variable patterns in name hint and replace them with configured/default values
         Matcher matcher = ConfigAdminSupport.NAMEHINT_PLACEHOLER_REGEXP.matcher(nameHint);
-        StringBuffer sb = new StringBuffer();
+        StringBuffer sb = new StringBuffer(); // use StringBuilder with Java >= 9
         while (matcher.find()) {
             String propertyName = matcher.group(1);
             String value = getConfigurationPropertyValueOrDefault(propertyName, props, adMap);
@@ -482,7 +482,7 @@ class ConfigJsonSupport {
         }
         // convert array to string
         if (value.getClass().isArray()) {
-            StringBuffer valueString = new StringBuffer();
+            StringBuilder valueString = new StringBuilder();
             for (int i = 0; i < Array.getLength(value); i++) {
                 if (i > 0) {
                     valueString.append(", ");
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
index 3530021bd7..d9ec9da064 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
@@ -287,7 +287,7 @@ public class ConfigManager extends SimpleWebConsolePlugin implements OsgiManager
             if ( ca != null )
             {
                 // create filter
-                final StringBuffer sb = new StringBuffer();
+                final StringBuilder sb = new StringBuilder();
                 if ( pid != null && pidFilter != null)
                 {
                     sb.append("(&"); //$NON-NLS-1$
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
index d00e67ac72..130419e02e 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
@@ -537,7 +537,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
     }
 
 
-    private void appendBundleInfoCount( final StringBuffer buf, String msg, int count )
+    private void appendBundleInfoCount( final StringBuilder buf, String msg, int count )
     {
         buf.append(count);
         buf.append(" bundle");
@@ -686,7 +686,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
                 break;
             }
         }
-        final StringBuffer buffer = new StringBuffer();
+        final StringBuilder buffer = new StringBuilder();
         buffer.append("Bundle information: ");
         appendBundleInfoCount(buffer, "in total", bundles.length);
         if ( active == bundles.length || active + fragments == bundles.length )
@@ -1155,10 +1155,10 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
     private String getServiceID(ServiceReference ref, final String servicesRoot)
     {
         String id = ref.getProperty( Constants.SERVICE_ID ).toString();
-        StringBuffer val = new StringBuffer();
 
         if ( servicesRoot != null )
         {
+            StringBuilder val = new StringBuilder();
             val.append( "<a href='" ).append( servicesRoot ).append( id ).append( "'>" );
             val.append( id );
             val.append( "</a>" );
@@ -1221,20 +1221,17 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
 
     private static final String enableLineWrapping(final String value)
     {
-        StringBuffer sb = new StringBuffer(value.length() * 2 / 3);
-        synchronized (sb)
-        { // faster
-            for (int i = 0; i < value.length(); i++)
+        StringBuilder sb = new StringBuilder(value.length() * 2 / 3);
+        for (int i = 0; i < value.length(); i++)
+        {
+            final char ch = value.charAt( i );
+            sb.append( ch );
+            if ( ch == ';' || ch == ',' )
             {
-                final char ch = value.charAt( i );
-                sb.append( ch );
-                if ( ch == ';' || ch == ',' )
-                {
-                    sb.append( ' ' );
-                }
+                sb.append( ' ' );
             }
-            return sb.toString();
         }
+        return sb.toString();
     }
 
     private void listFragmentInfo( final List props, final Bundle bundle, final String pluginRoot )
@@ -1272,7 +1269,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
 
     private void appendProperty( final List props, ServiceReference ref, String name, String label )
     {
-        StringBuffer dest = new StringBuffer();
+        StringBuilder dest = new StringBuilder();
         Object value = ref.getProperty( name );
         if ( value instanceof Object[] )
         {
@@ -1302,7 +1299,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
 
     private Object collectExport( String name, String version )
     {
-        StringBuffer val = new StringBuffer();
+        StringBuilder val = new StringBuilder();
         boolean bootDel = isBootDelegated( name );
         if ( bootDel )
         {
@@ -1335,7 +1332,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
     private Object collectImport( String name, String version, boolean optional, ExportedPackage export,
             final String pluginRoot )
     {
-        StringBuffer val = new StringBuffer();
+        StringBuilder val = new StringBuilder();
         boolean bootDel = isBootDelegated( name );
 
         String marker = null;
@@ -1441,7 +1438,7 @@ public class BundlesServlet extends SimpleWebConsolePlugin implements OsgiManage
 
     private String getBundleDescriptor( Bundle bundle, final String pluginRoot )
     {
-        StringBuffer val = new StringBuffer();
+        StringBuilder val = new StringBuilder();
 
         if ( pluginRoot != null )
         {
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
index fb94b291ec..52a0983835 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/ServicesServlet.java
@@ -145,7 +145,7 @@ public class ServicesServlet extends SimpleWebConsolePlugin implements OsgiManag
         // only use last part of the pathInfo
         pathInfo = pathInfo.substring( pathInfo.lastIndexOf( '/' ) + 1 );
 
-        StringBuffer filter = new StringBuffer();
+        StringBuilder filter = new StringBuilder();
         filter.append( "(" ).append( Constants.SERVICE_ID ).append( "=" );
         filter.append( pathInfo ).append( ")" );
         String filterStr = filter.toString();
@@ -194,7 +194,7 @@ public class ServicesServlet extends SimpleWebConsolePlugin implements OsgiManag
     static final String getStatusLine( final ServiceReference[] services )
     {
         final int count = services.length;
-        final StringBuffer buffer = new StringBuffer();
+        final StringBuilder buffer = new StringBuilder();
         buffer.append( count );
         buffer.append( " service" );
         if ( count != 1 )
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/filter/ResourceFilteringWriter.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/filter/ResourceFilteringWriter.java
index 00c72f5187..f9e2aa6560 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/filter/ResourceFilteringWriter.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/filter/ResourceFilteringWriter.java
@@ -80,7 +80,7 @@ class ResourceFilteringWriter extends FilterWriter
     /**
      * The buffer to gather the text to be translated
      */
-    private final StringBuffer lineBuffer = new StringBuffer();
+    private final StringBuilder lineBuffer = new StringBuilder();
 
     /**
      * The current state, starts with {@link #STATE_NULL}