]> source.dussan.org Git - archiva.git/commitdiff
setup this bean on startup: will make it more thread safe
authorOlivier Lamy <olamy@apache.org>
Mon, 2 Dec 2013 05:02:19 +0000 (05:02 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 2 Dec 2013 05:02:19 +0000 (05:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1546898 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultPluginsServices.java

index 4f61ad15c2c74a8c892163b8e404527fa11b6a0c..a7c1c494a1260eda81a1060dfadc4d0015281baa 100644 (file)
@@ -50,38 +50,14 @@ public class DefaultPluginsServices
 
     private Logger log = LoggerFactory.getLogger( getClass() );
 
+    private String adminPlugins;
+
     @Inject
     public DefaultPluginsServices( ApplicationContext applicationContext )
+        throws IOException
     {
         this.appCont = applicationContext;
-    }
-
-    private void feed( List<String> repository, String key )
-        throws ArchivaRestServiceException
-    {
-        log.debug( "Feeding: {}", key );
-        repository.clear();
-        Resource[] xmlResources;
-        try
-        {
-            xmlResources = appCont.getResources( "/**/" + key + "/**/main.js" );
-            for ( Resource rc : xmlResources )
-            {
-                String tmp = rc.getURL().toString();
-                tmp = tmp.substring( tmp.lastIndexOf( key ) + key.length() + 1, tmp.length() - 8 );
-                repository.add( "archiva/admin/" + key + "/" + tmp + "/main" );
-            }
-        }
-        catch ( IOException e )
-        {
-            throw new ArchivaRestServiceException( e.getMessage(), e );
-        }
-    }
 
-    @Override
-    public String getAdminPlugins()
-        throws ArchivaRestServiceException
-    {
         // rebuild
         feed( repositoryType, "repository" );
         feed( adminFeatures, "features" );
@@ -97,12 +73,35 @@ public class DefaultPluginsServices
         log.debug( "getAdminPlugins: {}", sb.toString() );
         if ( sb.length() > 1 )
         {
-            return sb.substring( 0, sb.length() - 1 );
+            adminPlugins = sb.substring( 0, sb.length() - 1 );
         }
         else
         {
-            return sb.toString();
+            adminPlugins = sb.toString();
+        }
+    }
+
+    private void feed( List<String> repository, String key )
+        throws IOException
+    {
+        log.info( "Feeding: {}", key );
+        repository.clear();
+        Resource[] xmlResources;
+
+        xmlResources = appCont.getResources( "/**/" + key + "/**/main.js" );
+        for ( Resource rc : xmlResources )
+        {
+            String tmp = rc.getURL().toString();
+            tmp = tmp.substring( tmp.lastIndexOf( key ) + key.length() + 1, tmp.length() - 8 );
+            repository.add( "archiva/admin/" + key + "/" + tmp + "/main" );
         }
 
     }
+
+    @Override
+    public String getAdminPlugins()
+        throws ArchivaRestServiceException
+    {
+        return  adminPlugins;
+    }
 }