incubator-aries-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lin...@apache.org
Subject svn commit: r961444 - in /incubator/aries/trunk/application/application-management/src/main: java/org/apache/aries/application/management/impl/ resources/org/apache/aries/application/messages/
Date Wed, 07 Jul 2010 17:53:59 GMT
Author: linsun
Date: Wed Jul  7 17:53:58 2010
New Revision: 961444

URL: http://svn.apache.org/viewvc?rev=961444&view=rev
Log:
ARIES-351 - If an EBA contains a deployment.mf, we should not convert any invalid bunldes
but we don't want to throw an exception either - patch from Emily Jiang

Modified:
    incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
    incubator/aries/trunk/application/application-management/src/main/resources/org/apache/aries/application/messages/AppManagementMessages.properties

Modified: incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java?rev=961444&r1=961443&r2=961444&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
(original)
+++ incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
Wed Jul  7 17:53:58 2010
@@ -112,69 +112,63 @@ public class AriesApplicationManagerImpl
     DeploymentMetadata deploymentMetadata = null;
     Map<String, BundleConversion> modifiedBundles = new HashMap<String, BundleConversion>();
     AriesApplicationImpl application = null;
-    
+    String appName = ebaFile.getName();
+    //If the application name is null, we will try to get the file name.
+    if ((appName == null) || (appName.isEmpty())) {
+        String fullPath = ebaFile.toString();
+        if (fullPath.endsWith("/"))
+            fullPath = fullPath.substring(0, fullPath.length() -1);
+        int last_slash = fullPath.lastIndexOf("/");
+        appName = fullPath.substring(last_slash + 1, fullPath.length()); 
+    }
     try { 
-    	
-        /* We require that all other .jar and .war files included by-value be valid bundles
-         * because a DEPLOYMENT.MF has been provided. If no DEPLOYMENT.MF, migrate 
-         * wars to wabs, plain jars to bundles
-         */
-          
-        Set<BundleInfo> extraBundlesInfo = new HashSet<BundleInfo>();
-        for (IFile f : ebaFile) { 
-          if (f.isDirectory()) { 
-            continue;
-          }
-          
-          BundleManifest bm = getBundleManifest (f);
-          if (bm != null) {
-            if (bm.isValid()) {
-              extraBundlesInfo.add(new SimpleBundleInfo(_applicationMetadataFactory, bm,
f.toURL().toExternalForm()));
-            } else if (deploymentMetadata != null) {
-              throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0003E",
f.getName(), ebaFile.getName()));
-            } else { 
-              // We have a jar that needs converting to a bundle, or a war to migrate to
a WAB             
-           	  BundleConversion convertedBinary = null;
-              Iterator<BundleConverter> converters = _bundleConverters.iterator();
-              List<ConversionException> conversionExceptions = Collections.emptyList();
-              while (converters.hasNext() && convertedBinary == null) { 
-                try {                 	
-                  convertedBinary = converters.next().convert(ebaFile, f);
-                } catch (ServiceException sx) {
-                  // We'll get this if our optional BundleConverter has not been injected.

-                } catch (ConversionException cx) { 
-                  conversionExceptions.add(cx);
-                }
-              }
-              if (conversionExceptions.size() > 0) {
-                for (ConversionException cx : conversionExceptions) { 
-                  _logger.error("APPMANAGEMENT0004E", new Object[]{f.getName(), ebaFile.getName(),
cx});
-                }
-                throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0005E",
ebaFile.getName()));
+      IFile deploymentManifest = ebaFile.getFile(AppConstants.DEPLOYMENT_MF);
+      /* We require that all other .jar and .war files included by-value be valid bundles
+       * because a DEPLOYMENT.MF has been provided. If no DEPLOYMENT.MF, migrate 
+       * wars to wabs, plain jars to bundles
+       */
+      Set<BundleInfo> extraBundlesInfo = new HashSet<BundleInfo>();
+      for (IFile f : ebaFile) { 
+        if (f.isDirectory()) { 
+          continue;
+        }
+        BundleManifest bm = getBundleManifest (f);
+        if (bm != null) {
+          if (bm.isValid()) {
+            extraBundlesInfo.add(new SimpleBundleInfo(_applicationMetadataFactory, bm, f.toURL().toExternalForm()));
+          } else if (deploymentManifest == null){ 
+            // We have a jar that needs converting to a bundle, or a war to migrate to a
WAB 
+            // We only do this if a DEPLOYMENT.MF does not exist.
+            BundleConversion convertedBinary = null;
+            Iterator<BundleConverter> converters = _bundleConverters.iterator();
+            List<ConversionException> conversionExceptions = Collections.emptyList();
+            while (converters.hasNext() && convertedBinary == null) { 
+              try {
+                convertedBinary = converters.next().convert(ebaFile, f);
+              } catch (ServiceException sx) {
+                // We'll get this if our optional BundleConverter has not been injected.

+              } catch (ConversionException cx) { 
+                conversionExceptions.add(cx);
               }
-              if (convertedBinary != null) { 
-                modifiedBundles.put (f.getName(), convertedBinary);
-                bm = BundleManifest.fromBundle(f);
-                extraBundlesInfo.add(new SimpleBundleInfo(_applicationMetadataFactory, bm,
f.getName()));
+            }
+            if (conversionExceptions.size() > 0) {
+              for (ConversionException cx : conversionExceptions) { 
+                _logger.error("APPMANAGEMENT0004E", new Object[]{f.getName(), appName, cx});
               }
+              throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0005E",
appName));
             }
-          } 
-        }
-      Manifest applicationManifest = parseApplicationManifest (ebaFile); 
-      String appName = ebaFile.getName();
-      //If the application name is null, we will try to get the file name.
-      if ((appName == null) || (appName.isEmpty())) {
-    	  String fullPath = ebaFile.toString();
-    	  if (fullPath.endsWith("/"))
-    		  fullPath = fullPath.substring(0, fullPath.length() -1);
-          int last_slash = fullPath.lastIndexOf("/");
-          appName = fullPath.substring(last_slash + 1, fullPath.length()); 
+            if (convertedBinary != null) { 
+              modifiedBundles.put (f.getName(), convertedBinary);
+              bm = BundleManifest.fromBundle(f);
+              extraBundlesInfo.add(new SimpleBundleInfo(_applicationMetadataFactory, bm,
f.getName()));
+            } 
+          }
+        } 
       }
-      
-     
+      Manifest applicationManifest = parseApplicationManifest (ebaFile); 
       ManifestDefaultsInjector.updateManifest(applicationManifest, appName, ebaFile); 
       applicationMetadata = _applicationMetadataFactory.createApplicationMetadata(applicationManifest);
-      IFile deploymentManifest = ebaFile.getFile(AppConstants.DEPLOYMENT_MF);
+      
       if (deploymentManifest != null) { 
         deploymentMetadata = _deploymentMetadataFactory.createDeploymentMetadata(deploymentManifest);
         
@@ -182,18 +176,16 @@ public class AriesApplicationManagerImpl
         String appSymbolicName = applicationMetadata.getApplicationSymbolicName();
         String depSymbolicName = deploymentMetadata.getApplicationSymbolicName();
         if (!appSymbolicName.equals(depSymbolicName)) {
-          throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0002E", ebaFile.getName(),
appSymbolicName, depSymbolicName));
+          throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0002E", appName,
appSymbolicName, depSymbolicName));
         }
       }
-      
-
 
       application = new AriesApplicationImpl (applicationMetadata, extraBundlesInfo, _localPlatform);
       application.setDeploymentMetadata(deploymentMetadata);
       // Store a reference to any modified bundles
       application.setModifiedBundles (modifiedBundles);
     } catch (IOException iox) {
-      _logger.error ("APPMANAGEMENT0006E", new Object []{ebaFile.getName(), iox});
+      _logger.error ("APPMANAGEMENT0006E", new Object []{appName, iox});
       throw new ManagementException(iox);
     }
     return application;

Modified: incubator/aries/trunk/application/application-management/src/main/resources/org/apache/aries/application/messages/AppManagementMessages.properties
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-management/src/main/resources/org/apache/aries/application/messages/AppManagementMessages.properties?rev=961444&r1=961443&r2=961444&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-management/src/main/resources/org/apache/aries/application/messages/AppManagementMessages.properties
(original)
+++ incubator/aries/trunk/application/application-management/src/main/resources/org/apache/aries/application/messages/AppManagementMessages.properties
Wed Jul  7 17:53:58 2010
@@ -18,7 +18,6 @@
 #
 APPMANAGEMENT0001E=APPMANAGEMENT0001E: Unable to fully delete directory {0}. 
 APPMANAGEMENT0002E=APPMANAGEMENT0002E: Unable to create Aries application from {0} since
APPLICATION.MF symbolic name {1} does not equals DEPLOYMENT.MF symbolic name {2}.
-APPMANAGEMENT0003E=APPMANAGEMENT0003E: Invalid bundle {0} found when DEPLOYMENT.MF present
in {1}.
 APPMANAGEMENT0004E=APPMANAGEMENT0004E: Exception caught when converting artifact {0} in {1}:
{2}.
 APPMANAGEMENT0005E=APPMANAGEMENT0005E: Failed to create application from {0} due to conversion
errors: see log for details.
 APPMANAGEMENT0006E=APPMANAGEMENT0006E: IOException encountered while constructing Aries application
from {0}: {1}.



Mime
View raw message