You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by jb...@apache.org on 2010/10/27 15:29:38 UTC

svn commit: r1027954 - in /incubator/aries/sandbox/jbohn/interceptor-proto: application/ application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/ application/application-deployment-management/src/main/java/org/apac...

Author: jbohn
Date: Wed Oct 27 13:29:36 2010
New Revision: 1027954

URL: http://svn.apache.org/viewvc?rev=1027954&view=rev
Log:
merge from trunk -r 1023708:1027900

Added:
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/   (props changed)
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/application/application-itest-twitter/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/   (props changed)
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/twitter/
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/twitter/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/twitter/TwitterQuery.java
      - copied unchanged from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-bundle/src/main/java/org/apache/aries/application/itest/twitter/TwitterQuery.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-eba/   (props changed)
      - copied from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-eba/
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-eba/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/application/application-itest-twitter/twitter-eba/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/   (props changed)
      - copied from r1027630, incubator/aries/trunk/proxy/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/   (props changed)
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-api/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/aries/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/aries/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/aries/proxy/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/aries/proxy/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationHandlerWrapper.java
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/aries/proxy/InvocationHandlerWrapper.java
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/aries/proxy/ProxyFactory.java
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/aries/proxy/ProxyFactory.java
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/src/main/java/org/apache/aries/proxy/ProxyManager.java
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-api/src/main/java/org/apache/aries/proxy/ProxyManager.java
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-bundle/   (props changed)
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-bundle/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-bundle/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-bundle/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/   (props changed)
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/pom.xml
      - copied unchanged from r1027630, incubator/aries/trunk/proxy/proxy-impl/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/org/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/org/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/org/apache/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/org/apache/aries/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/
    incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/
      - copied from r1027630, incubator/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/nls/
      - copied from r1027900, incubator/aries/trunk/util/src/main/java/org/apache/aries/util/nls/
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/nls/MessageUtil.java
      - copied unchanged from r1027900, incubator/aries/trunk/util/src/main/java/org/apache/aries/util/nls/MessageUtil.java
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/OSGi-INF/
      - copied from r1027900, incubator/aries/trunk/util/src/main/resources/OSGi-INF/
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/OSGi-INF/permissions.perm
      - copied unchanged from r1027900, incubator/aries/trunk/util/src/main/resources/OSGi-INF/permissions.perm
Modified:
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/PostResolveTransformer.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/main/java/org/apache/aries/application/deployment/management/impl/DeploymentManifestManagerImpl.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/test/java/org/apache/aries/application/deployment/management/DeploymentGeneratorTest.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverAdvancedTest.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-management/src/test/java/org/apache/aries/application/management/impl/AriesApplicationManagerImplTest.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/application-noop-postresolve-process/src/main/java/org/apache/aries/application/noop/postresolve/process/impl/DefaultPostResolveTransformer.java
    incubator/aries/sandbox/jbohn/interceptor-proto/application/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
    incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
    incubator/aries/sandbox/jbohn/interceptor-proto/transaction/transaction-blueprint/src/main/resources/org/apache/aries/transaction/parsing/transactionv11.xsd
    incubator/aries/sandbox/jbohn/interceptor-proto/util/pom.xml
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/FragmentBuilder.java
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/VersionRange.java
    incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/org/apache/aries/util/messages/UTILmessages.properties

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.java Wed Oct 27 13:29:36 2010
@@ -21,6 +21,7 @@ package org.apache.aries.application.man
 import java.util.Collection;
 import java.util.jar.Manifest;
 
+import org.apache.aries.application.ApplicationMetadata;
 import org.apache.aries.application.Content;
 import org.apache.aries.application.ServiceDeclaration;
 import org.apache.aries.application.management.AriesApplication;
@@ -52,13 +53,9 @@ public interface DeploymentManifestManag
    * @throws ResolverException
    */
   DeployedBundles generateDeployedBundles( 
-      String appName, 
-      String appVersion, 
-      Collection<Content> appContent, 
+      ApplicationMetadata appMetadata, 
       Collection<ModelledResource> byValueBundles, 
-      Collection<Content> useBundleSet, 
-      Collection<Content> otherBundles, 
-      Collection<ServiceDeclaration> appImportServices) throws ResolverException;
+      Collection<Content> otherBundles) throws ResolverException;
 
   /**
    * Generate a Manifest representation of a DEPLOYMENT.MF, 

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/PostResolveTransformer.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/PostResolveTransformer.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/PostResolveTransformer.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-api/src/main/java/org/apache/aries/application/management/spi/resolve/PostResolveTransformer.java Wed Oct 27 13:29:36 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.aries.application.management.spi.resolve;
 
+import org.apache.aries.application.ApplicationMetadata;
 import org.apache.aries.application.management.ResolverException;
 import org.apache.aries.application.modelling.DeployedBundles;
 
@@ -25,10 +26,11 @@ public interface PostResolveTransformer
 {
 /**
  *  This method is to perform any post process after the resolver returns back a collection of bundles. It returns the updated manifest map.
+ * @param appMetaData The application that was resolved
  * @param bundles A collection of bundles required by this application. 
  * @return Modified collection of bundles
  * @throws ResolverException
  */
-  DeployedBundles postResolveProcess(DeployedBundles deployedBundles) throws ResolverException;
+  DeployedBundles postResolveProcess(ApplicationMetadata appMetaData, DeployedBundles deployedBundles) throws ResolverException;
 
 }

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/main/java/org/apache/aries/application/deployment/management/impl/DeploymentManifestManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/main/java/org/apache/aries/application/deployment/management/impl/DeploymentManifestManagerImpl.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/main/java/org/apache/aries/application/deployment/management/impl/DeploymentManifestManagerImpl.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/main/java/org/apache/aries/application/deployment/management/impl/DeploymentManifestManagerImpl.java Wed Oct 27 13:29:36 2010
@@ -143,11 +143,10 @@ public class DeploymentManifestManagerIm
     } catch (Exception e) {
       throw new ResolverException (e);
     }
-    Collection<Content> useBundles = app.getApplicationMetadata().getUseBundles();
 
     Collection<Content> bundlesToResolve = new ArrayList<Content>();
     bundlesToResolve.addAll(appMetadata.getApplicationContents());    
-    bundlesToResolve.addAll(useBundles);
+    bundlesToResolve.addAll(app.getApplicationMetadata().getUseBundles());
 
     //If we pass in provision bundles (e.g. import deployment manifest sanity check), we add them into our bundlesToResolve set.
     // This is because we want to make sure all bundles we passed into resolver the same as what we are going to get from resolver. 
@@ -157,9 +156,8 @@ public class DeploymentManifestManagerIm
       restrictedReqs.add(content);
     }
     
-    DeployedBundles deployedBundles = generateDeployedBundles (appMetadata.getApplicationSymbolicName(),
-        appMetadata.getApplicationVersion().toString(), appMetadata.getApplicationContents(), 
-        byValueBundles, useBundles, restrictedReqs, appMetadata.getApplicationImportServices());
+    DeployedBundles deployedBundles = generateDeployedBundles (appMetadata, 
+        byValueBundles, restrictedReqs);
     
     Manifest man = generateDeploymentManifest(appMetadata.getApplicationSymbolicName(),
         appMetadata.getApplicationVersion().toString(), deployedBundles);
@@ -178,21 +176,20 @@ public class DeploymentManifestManagerIm
   @Override
   public DeployedBundles generateDeployedBundles
   ( 
-      String appSymbolicName, 
-      String appVersion,
-      Collection<Content> appContent, 
+      ApplicationMetadata appMetadata, 
       Collection<ModelledResource> provideByValueBundles, 
-      Collection<Content> useBundleSet, 
-      Collection<Content> otherBundles, 
-      Collection<ServiceDeclaration> applicationImportService) throws ResolverException {  
+      Collection<Content> otherBundles) throws ResolverException {  
+    
+    _logger.debug(LOG_ENTRY, "generateDeployedBundles", new Object[]{appMetadata,
+        provideByValueBundles,otherBundles });
+    
+    Collection<Content> useBundleSet = appMetadata.getUseBundles();
+    Collection<Content> appContent = appMetadata.getApplicationContents();
     
-    _logger.debug(LOG_ENTRY, "generateDeployedBundles", new Object[]{appSymbolicName, appVersion, 
-        appContent, provideByValueBundles,useBundleSet,otherBundles });
     Collection<Content> bundlesToResolve = new ArrayList<Content>();
-    Set<ImportedBundle> appContentIB = null;
-    Set<ImportedBundle> useBundleIB = null;
-    useBundleIB = new HashSet<ImportedBundle> (toImportedBundle(useBundleSet));
-    appContentIB = new HashSet<ImportedBundle>(toImportedBundle(appContent));
+    Set<ImportedBundle> appContentIB = toImportedBundle(appContent);
+    Set<ImportedBundle> useBundleIB = toImportedBundle(useBundleSet);
+
 
     bundlesToResolve.addAll(useBundleSet);
 
@@ -201,7 +198,7 @@ public class DeploymentManifestManagerIm
     Collection<ModelledResource> byValueBundles = new ArrayList<ModelledResource>(provideByValueBundles);
     ModelledResource fakeBundleResource;
     try { 
-      fakeBundleResource = createFakeBundle(applicationImportService);
+      fakeBundleResource = createFakeBundle(appMetadata.getApplicationImportServices());
     } catch (InvalidAttributeException iax) { 
       ResolverException rx = new ResolverException (iax);
       _logger.debug(LOG_EXIT, "generateDeploymentManifest", new Object[] {rx});
@@ -209,6 +206,9 @@ public class DeploymentManifestManagerIm
       throw rx;
     }
     byValueBundles.add(fakeBundleResource);
+    
+    String appSymbolicName = appMetadata.getApplicationSymbolicName();
+    String appVersion = appMetadata.getApplicationVersion().toString();
     String uniqueName = appSymbolicName + "_" + appVersion;
     
     DeployedBundles deployedBundles = modellingHelper.createDeployedBundles(appSymbolicName, appContentIB, useBundleIB, Arrays.asList(fakeBundleResource));
@@ -246,6 +246,7 @@ public class DeploymentManifestManagerIm
     sharedBundles.addAll (deployedBundles.getDeployedProvisionBundle());
     sharedBundles.addAll (deployedBundles.getRequiredUseBundle()); 
 
+    Collection<ModelledResource> appContentBundles = deployedBundles.getDeployedContent();
     Collection<Content> requiredSharedBundles = new ArrayList<Content>();
     for (ModelledResource mr : sharedBundles) { 
       String version = mr.getExportedBundle().getVersion();
@@ -260,10 +261,13 @@ public class DeploymentManifestManagerIm
     Collection<ModelledResource> resolvedSharedBundles = resolver.resolve(appSymbolicName, appVersion
         , byValueBundles, requiredSharedBundles);
 
-    List<String> differences = findDifferences (resolvedSharedBundles, sharedBundles);
+    // we need to find out whether any shared bundles depend on the isolated bundles
+    List<String> suspects = findSuspects (resolvedSharedBundles, sharedBundles, appContentBundles);
     // If we have differences, it means that we have shared bundles trying to import packages
     // from isolated bundles. We need to build up the error message and throw a ResolverException
-    if (!differences.isEmpty()) { 
+    if (!suspects.isEmpty()) { 
+    	
+    	
       StringBuilder msgs = new StringBuilder();
       List<String> unsatisfiedRequirements = new ArrayList<String>();
 
@@ -271,7 +275,7 @@ public class DeploymentManifestManagerIm
       // Find the isolated bundles and store all the packages that they export in a map.
       for (ModelledResource mr : resolvedSharedBundles) {
         String mrName = mr.getSymbolicName() + "_" + mr.getExportedBundle().getVersion();
-        if (differences.contains(mrName)) {
+        if (suspects.contains(mrName)) {
           List<String> exportedPackages = new ArrayList<String>();
           isolatedBundles.put(mrName, exportedPackages);
           for (ExportedPackage ep : mr.getExportedPackages()) {
@@ -283,8 +287,8 @@ public class DeploymentManifestManagerIm
       // are exported from the isolated bundles.
       for (ModelledResource mr : resolvedSharedBundles) {
         String mrName = mr.getSymbolicName() + "_" + mr.getExportedBundle().getVersion();
-        // if current reource isn't an isolated bundle check it's requirements
-        if (!!! differences.contains(mrName)) {
+        // if current resource isn't an isolated bundle check it's requirements
+        if (!!! suspects.contains(mrName)) {
           // Iterate through the imported packages of the current shared bundle.
           for (ImportedPackage ip : mr.getImportedPackages()) {
             String packageName = ip.getPackageName();
@@ -330,7 +334,7 @@ public class DeploymentManifestManagerIm
     }
       
     if (postResolveTransformer != null) try {  
-      deployedBundles = postResolveTransformer.postResolveProcess (deployedBundles);
+      deployedBundles = postResolveTransformer.postResolveProcess (appMetadata, deployedBundles);
     } catch (ServiceUnavailableException e) { 
       _logger.debug(MessageUtil.getMessage("POST_RESOLVE_TRANSFORMER_UNAVAILABLE",e));
     }
@@ -488,31 +492,37 @@ public class DeploymentManifestManagerIm
 
   /**
    * We've done a sanity check resolve on our sharedBundles and received back 
-   * resolvedSharedBundles. These two collections should be equal in size and 
-   * contain the same elements. If this is not true, we've found a circular dependency. 
+   * resolvedSharedBundles. The resolvedSharedBundles should not contain any bundles listed in the isolated bundle list.
+   * If this is not true, we've found a case of shared bundles depending on isolated bundles. 
    * This method extracts the name_versions of those bundles in resolvedSharedBundles
    * that do not appear in sharedBundles. 
    * @param resolvedSharedBundles What we got back from the resolver
    * @param sharedBundles         What we expected to get back from the resolver
-   * @return                      The difference
+   * @param appContentBundles     The isolated bundles
+   * @return                      The isolated bundles depended by the shared bundles
    */
-  private List<String> findDifferences (Collection<ModelledResource> resolvedSharedBundles, 
-      Collection<ModelledResource> sharedBundles){
-    _logger.debug(LOG_ENTRY, "findDifferences", new Object[]{resolvedSharedBundles,sharedBundles });
+  private List<String> findSuspects (Collection<ModelledResource> resolvedSharedBundles, 
+      Collection<ModelledResource> sharedBundles, Collection<ModelledResource> appContentBundles){
+    _logger.debug(LOG_ENTRY, "findSuspects", new Object[]{resolvedSharedBundles,sharedBundles, appContentBundles });
     Set<String> expectedBundles = new HashSet<String>();
+    Set<String> isolatedBundles = new HashSet<String>();
     for (ModelledResource sb : sharedBundles) { 
       expectedBundles.add(sb.getExportedBundle().getSymbolicName() + "_" + 
           sb.getExportedBundle().getVersion());
     }
+    for (ModelledResource sb : appContentBundles) { 
+    	isolatedBundles.add(sb.getExportedBundle().getSymbolicName() + "_" + 
+            sb.getExportedBundle().getVersion());
+    }
     List<String> suspects = new ArrayList<String>();
     for (ModelledResource mr : resolvedSharedBundles) {
       String thisBundle = mr.getExportedBundle().getSymbolicName() + "_" + 
       mr.getExportedBundle().getVersion();
-      if (!expectedBundles.contains(thisBundle)) { 
+      if (!expectedBundles.contains(thisBundle) && (isolatedBundles.contains(thisBundle))) { 
         suspects.add(thisBundle);   
       }
     }
-    _logger.debug(LOG_EXIT, "pruneFakeBundleFromResults", new Object[]{suspects});
+    _logger.debug(LOG_EXIT, "findSuspects", new Object[]{suspects});
 
     return suspects;
   }
@@ -523,12 +533,12 @@ public class DeploymentManifestManagerIm
    * @return a collection of ImportedBundle objects
    * @throws ResolverException
    */
-  private Collection<ImportedBundle> toImportedBundle(Collection<Content> content) throws ResolverException
+  private Set<ImportedBundle> toImportedBundle(Collection<Content> content) throws ResolverException
   {
 
     _logger.debug(LOG_ENTRY, "toImportedBundle", new Object[]{content});
 
-    List<ImportedBundle> result = new ArrayList<ImportedBundle>();
+    Set<ImportedBundle> result = new HashSet<ImportedBundle>();
     for (Content c : content) {
       try {
         result.add(modellingManager.getImportedBundle(c.getContentName(), c.getVersion().toString()));

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/test/java/org/apache/aries/application/deployment/management/DeploymentGeneratorTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/test/java/org/apache/aries/application/deployment/management/DeploymentGeneratorTest.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/test/java/org/apache/aries/application/deployment/management/DeploymentGeneratorTest.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-deployment-management/src/test/java/org/apache/aries/application/deployment/management/DeploymentGeneratorTest.java Wed Oct 27 13:29:36 2010
@@ -181,6 +181,8 @@ public class DeploymentGeneratorTest
         new MethodCall(ApplicationMetadata.class, "getApplicationSymbolicName"), "aries.test");
     Skeleton.getSkeleton(appMetadata).setReturnValue(
         new MethodCall(ApplicationMetadata.class, "getApplicationVersion"), new Version("1.0.0"));
+    Skeleton.getSkeleton(appMetadata).setReturnValue(
+        new MethodCall(ApplicationMetadata.class, "getUseBundles"), Collections.EMPTY_LIST);    
     
     app = Skeleton.newMock(AriesApplication.class);
     Skeleton.getSkeleton(app).setReturnValue(new MethodCall(AriesApplication.class, "getApplicationMetadata"), appMetadata);
@@ -240,12 +242,10 @@ public class DeploymentGeneratorTest
   {
     
     Skeleton.getSkeleton(appMetadata).setReturnValue(new MethodCall(ApplicationMetadata.class, "getApplicationContents"), Arrays.asList(mockContent("aries.test.a", "1.0.0"), mockContent("aries.test.b", "[1.0.0, 2.0.0)" )));
+    Skeleton.getSkeleton(appMetadata).setReturnValue(new MethodCall(ApplicationMetadata.class, "getUseBundles"), Arrays.asList(BUNDLE_C, BUNDLE_D));
     
-    
-    DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata.getApplicationSymbolicName(),
-        appMetadata.getApplicationVersion().toString(), appMetadata.getApplicationContents(), 
-        new ArrayList<ModelledResource>(), 
-        Arrays.asList(BUNDLE_C, BUNDLE_D), Collections.<Content>emptyList(), appMetadata.getApplicationImportServices());
+    DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata, 
+        new ArrayList<ModelledResource>(), Collections.<Content>emptyList()); 
     Manifest man = deplMFMgr.generateDeploymentManifest(appMetadata.getApplicationSymbolicName(),
         appMetadata.getApplicationVersion().toString(), deployedBundles);
     
@@ -290,10 +290,8 @@ public class DeploymentGeneratorTest
     
     
     try { 
-      DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata.getApplicationSymbolicName(),
-          appMetadata.getApplicationVersion().toString(), appMetadata.getApplicationContents(), 
-          new ArrayList<ModelledResource>(), 
-          new ArrayList<Content>(), Collections.<Content>emptyList(), appMetadata.getApplicationImportServices());
+      DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata, 
+          new ArrayList<ModelledResource>(), new ArrayList<Content>());
       deplMFMgr.generateDeploymentManifest(appMetadata.getApplicationSymbolicName(),
           appMetadata.getApplicationVersion().toString(), deployedBundles);
     } catch (ResolverException rx) { 
@@ -343,10 +341,9 @@ public class DeploymentGeneratorTest
     Skeleton.getSkeleton(app).setReturnValue(new MethodCall(AriesApplication.class, "getApplicationMetadata"), appMetadata);
     
     try {
-      DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata.getApplicationSymbolicName(),
-          appMetadata.getApplicationVersion().toString(), appMetadata.getApplicationContents(), 
+      DeployedBundles deployedBundles = deplMFMgr.generateDeployedBundles (appMetadata, 
           Arrays.asList(new ModelledResource[] {testIsolated1.getBundle(), testIsolated2.getBundle()}), 
-          new ArrayList<Content>(), Collections.<Content>emptyList(), appMetadata.getApplicationImportServices());
+          new ArrayList<Content>());
       deplMFMgr.generateDeploymentManifest(appMetadata.getApplicationSymbolicName(),
           appMetadata.getApplicationVersion().toString(), deployedBundles);
     } catch (ResolverException rx) { 

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+target
+.classpath
+.project
+.settings

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-bundle/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+target
+.classpath
+.project
+.settings

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itest-twitter/twitter-eba/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+target
+.classpath
+.project
+.settings

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/pom.xml?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/pom.xml (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/pom.xml Wed Oct 27 13:29:36 2010
@@ -113,6 +113,14 @@
         </dependency>
         
         <dependency>
+            <groupId>org.apache.aries.application.itest.twitter</groupId>
+            <artifactId>org.apache.aries.application.itest.twitter.eba</artifactId>
+            <version>${version}</version>
+            <type>eba</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.aries.application</groupId>
             <artifactId>org.apache.aries.application.management</artifactId>
             <scope>test</scope>
@@ -208,6 +216,9 @@
                         <goals>
                             <goal>generate-depends-file</goal>
                         </goals>
+                        <configuration>
+                            <outputFile>${project.build.directory}/test-classes/META-INF/maven/dependencies.properties</outputFile>
+                        </configuration>
                     </execution>
                 </executions>
             </plugin>

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java Wed Oct 27 13:29:36 2010
@@ -20,8 +20,14 @@ import static org.ops4j.pax.exam.CoreOpt
 import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
 import static org.ops4j.pax.exam.OptionUtils.combine;
 
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 
 import org.junit.After;
 import org.junit.Before;
@@ -31,6 +37,8 @@ import org.ops4j.pax.exam.Inject;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
+import org.ops4j.pax.url.mvn.Handler;
+import org.ops4j.pax.url.mvn.ServiceConstants;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
@@ -63,11 +71,11 @@ public class AbstractIntegrationTest {
           }  
       }
   }
-
+  
   protected Bundle getBundle(String symbolicName) {
     return getBundle(symbolicName, null);
   }
-
+	
   protected Bundle getBundle(String bundleSymbolicName, String version) {
     Bundle result = null;
     for (Bundle b : bundleContext.getBundles()) {
@@ -83,11 +91,12 @@ public class AbstractIntegrationTest {
   }
 
   public static MavenArtifactProvisionOption mavenBundle(String groupId,
-      String artifactId) {
+          String artifactId) {
     return CoreOptions.mavenBundle().groupId(groupId).artifactId(artifactId)
         .versionAsInProject();
   }
 
+  
   protected static Option[] updateOptions(Option[] options) {
     // We need to add pax-exam-junit here when running with the ibm
     // jdk to avoid the following exception during the test run:
@@ -150,4 +159,55 @@ public class AbstractIntegrationTest {
     }
   }
  
+  public static URL getUrlToEba(String groupId, String artifactId) throws MalformedURLException {
+    String artifactVersion = getArtifactVersion(groupId, artifactId);
+
+    // Need to use handler from org.ops4j.pax.url.mvn
+    URL urlToEba = new URL(null,
+        ServiceConstants.PROTOCOL + ":" + groupId + "/" +artifactId + "/"
+            + artifactVersion + "/eba", new Handler());
+    return urlToEba;
+  }
+
+  public static String getArtifactVersion(final String groupId, final String artifactId)
+  {
+    final Properties dependencies = new Properties();
+    try {
+      InputStream in = getFileFromClasspath("META-INF/maven/dependencies.properties");
+      try {
+        dependencies.load(in);
+      } finally {
+        in.close();
+      }
+      final String version = dependencies.getProperty(groupId + "/" + artifactId + "/version");
+      if (version == null) {
+        throw new RuntimeException("Could not resolve version. Do you have a dependency for "
+            + groupId + "/" + artifactId + " in your maven project?");
+      }
+      return version;
+    } catch (IOException e) {
+      // TODO throw a better exception
+      throw new RuntimeException(
+          "Could not resolve version. Did you configure the depends-maven-plugin in your maven project? "
+              + " Or maybe you did not run the maven build and you are using an IDE?");
+    }
+  }  
+
+  private static InputStream getFileFromClasspath( final String filePath )
+    throws FileNotFoundException
+  {
+    try
+    {
+        URL fileURL = AbstractIntegrationTest.class.getClassLoader().getResource( filePath );
+        if( fileURL == null )
+        {
+            throw new FileNotFoundException( "File [" + filePath + "] could not be found in classpath" );
+        }
+        return fileURL.openStream();
+    }
+    catch (IOException e)
+    {
+        throw new FileNotFoundException( "File [" + filePath + "] could not be found: " + e.getMessage() );
+    }
+  }
 }
\ No newline at end of file

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverAdvancedTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverAdvancedTest.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverAdvancedTest.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverAdvancedTest.java Wed Oct 27 13:29:36 2010
@@ -28,6 +28,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FileReader;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -397,13 +398,58 @@ public class OBRResolverAdvancedTest ext
     /* 
      * HelloWorldManager hwm = getOsgiService(HelloWorldManager.class);
      * int numberOfServices = hwm.getNumOfHelloServices();
-     * assertEquals(numberOfServices, 2); 
+     * assertEquals(2, numberOfServices); 
      */
     ctx.stop();
     manager.uninstall(ctx);
    
   }
 
+
+
+  //Test for JIRA-461 which currently fails.
+  @Test
+  public void testTwitter() throws Exception
+  {
+    RepositoryAdmin repositoryAdmin = getOsgiService(RepositoryAdmin.class);
+    Repository[] repos = repositoryAdmin.listRepositories();
+    for (Repository repo : repos) {
+      repositoryAdmin.removeRepository(repo.getURI());
+    }
+
+    
+    // Use the superclasses' getUrlToEba() method instead of the pax-exam mavenBundle() method because pax-exam is running in a
+    // diffference bundle which doesn't have visibility to the META-INF/maven/dependencies.properties file used to figure out the
+    // version of the maven artifact.
+    URL twitterEbaUrl = getUrlToEba("org.apache.aries.application.itest.twitter",
+        "org.apache.aries.application.itest.twitter.eba");
+
+    AriesApplicationManager manager = getOsgiService(AriesApplicationManager.class);
+    repositoryAdmin.addRepository("http://sigil.codecauldron.org/spring-external.obr");
+    AriesApplication app = manager.createApplication(twitterEbaUrl);
+    app = manager.resolve(app);
+    DeploymentMetadata depMeta = app.getDeploymentMetadata();
+    List<DeploymentContent> provision = depMeta.getApplicationProvisionBundles();
+    Collection<DeploymentContent> useBundles = depMeta.getDeployedUseBundle();
+    Collection<DeploymentContent> appContent = depMeta.getApplicationDeploymentContents();
+    // We cannot be sure whether there are two or three provision bundles pulled in by Felix OBR as there is an outstanding defect
+    // https://issues.apache.org/jira/browse/FELIX-2672
+    // The workaround is to check we get the two bunldes we are looking for, instead of insisting on just having two bundles.
+    
+    List<String> provisionBundleSymbolicNames = new ArrayList<String>();
+    for (DeploymentContent dep : provision) {
+       provisionBundleSymbolicNames.add(dep.getContentName());
+    }
+    String provision_bundle1 = "com.springsource.org.apache.commons.lang";
+    String provision_bundle2 = "twitter4j";
+    assertTrue("Bundle " + provision_bundle1 + " not found.", provisionBundleSymbolicNames.contains(provision_bundle1));
+    assertTrue("Bundle " + provision_bundle2 + " not found.", provisionBundleSymbolicNames.contains(provision_bundle2));
+    assertEquals(useBundles.toString(), 0, useBundles.size());
+    assertEquals(appContent.toString(), 1, appContent.size());
+    AriesApplicationContext ctx = manager.install(app);
+    ctx.start();
+  }
+  
   private void generateOBRRepoXML(boolean nullURI, String ... bundleFiles) throws Exception
   {
     Set<ModelledResource> mrs = new HashSet<ModelledResource>();

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-management/src/test/java/org/apache/aries/application/management/impl/AriesApplicationManagerImplTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-management/src/test/java/org/apache/aries/application/management/impl/AriesApplicationManagerImplTest.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-management/src/test/java/org/apache/aries/application/management/impl/AriesApplicationManagerImplTest.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-management/src/test/java/org/apache/aries/application/management/impl/AriesApplicationManagerImplTest.java Wed Oct 27 13:29:36 2010
@@ -147,11 +147,8 @@ public class AriesApplicationManagerImpl
       return null;
     }
 
-    public DeployedBundles generateDeployedBundles(String appName,
-        String appVersion, Collection<Content> appContent,
-        Collection<ModelledResource> byValueBundles,
-        Collection<Content> useBundleSet, Collection<Content> otherBundles,
-        Collection<ServiceDeclaration> appImportServices)
+    public DeployedBundles generateDeployedBundles(ApplicationMetadata appMetadata,
+        Collection<ModelledResource> byValueBundles, Collection<Content> otherBundles)
         throws ResolverException {
       // Not required or used in this test
       return null;

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/application-noop-postresolve-process/src/main/java/org/apache/aries/application/noop/postresolve/process/impl/DefaultPostResolveTransformer.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/application-noop-postresolve-process/src/main/java/org/apache/aries/application/noop/postresolve/process/impl/DefaultPostResolveTransformer.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/application-noop-postresolve-process/src/main/java/org/apache/aries/application/noop/postresolve/process/impl/DefaultPostResolveTransformer.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/application-noop-postresolve-process/src/main/java/org/apache/aries/application/noop/postresolve/process/impl/DefaultPostResolveTransformer.java Wed Oct 27 13:29:36 2010
@@ -18,6 +18,8 @@
  */
 
 package org.apache.aries.application.noop.postresolve.process.impl;
+
+import org.apache.aries.application.ApplicationMetadata;
 import org.apache.aries.application.management.ResolverException;
 import org.apache.aries.application.management.spi.resolve.PostResolveTransformer;
 import org.apache.aries.application.modelling.DeployedBundles;
@@ -28,7 +30,7 @@ public class DefaultPostResolveTransform
 {
 
   @Override
-  public DeployedBundles postResolveProcess(DeployedBundles deployedBundles)
+  public DeployedBundles postResolveProcess(ApplicationMetadata appMetadata, DeployedBundles deployedBundles)
       throws ResolverException
   {
     

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/application/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/application/pom.xml?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/application/pom.xml (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/application/pom.xml Wed Oct 27 13:29:36 2010
@@ -226,6 +226,7 @@
         <module>application-noop-platform-repository</module>
 	   <module>application-noop-postresolve-process</module>
 	   <module>application-default-local-platform</module>
+        <module>application-itest-twitter</module>
 
     </modules>
 

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/main/java/org/apache/aries/jpa/blueprint/aries/impl/NSHandler.java Wed Oct 27 13:29:36 2010
@@ -383,7 +383,7 @@ public class NSHandler implements Namesp
           .append("=*))");
       else
           filter.append("(").append(PersistenceContextProvider.PROXY_FACTORY_EMF_ATTRIBUTE)
-                  .append("=*)");
+                  .append("=true)");
 
       // Add the empty name filter if necessary
       if (!"".equals(unitName))

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/jpa/jpa-blueprint-aries/src/test/java/org/apache/aries/jpa/blueprint/aries/test/NSHandlerTest.java Wed Oct 27 13:29:36 2010
@@ -271,7 +271,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
     props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
@@ -293,7 +293,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
     props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
@@ -317,7 +317,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
     props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
@@ -341,7 +341,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
     props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
@@ -362,7 +362,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")", 
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")", 
         reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
@@ -386,7 +386,7 @@ public class NSHandlerTest {
     ReferenceMetadata reference = (ReferenceMetadata) registeredComponents.get(0);
     
     assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-    assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")", 
+    assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)"+NSHandler.EMPTY_UNIT_NAME_FILTER+")", 
         reference.getFilter());
     
     Map<String,Object> props = new HashMap<String, Object>();
@@ -452,7 +452,7 @@ public class NSHandlerTest {
       reference = (ReferenceMetadata) registeredComponents.get(0);
       
       assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-      assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+      assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
       
       Map<String,Object> props = new HashMap<String, Object>();
       props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);
@@ -499,7 +499,7 @@ public class NSHandlerTest {
       reference = (ReferenceMetadata) registeredComponents.get(0);
       
       assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
-      assertEquals("(&(org.apache.aries.jpa.proxy.factory=*)(osgi.unit.name=myUnit))", reference.getFilter());
+      assertEquals("(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=myUnit))", reference.getFilter());
       
       Map<String,Object> props = new HashMap<String, Object>();
       props.put(PersistenceContextProvider.PERSISTENCE_CONTEXT_TYPE, PersistenceContextType.TRANSACTION);

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/proxy/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-api/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-bundle/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Propchange: incubator/aries/sandbox/jbohn/interceptor-proto/proxy/proxy-impl/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Oct 27 13:29:36 2010
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/transaction/transaction-blueprint/src/main/resources/org/apache/aries/transaction/parsing/transactionv11.xsd
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/transaction/transaction-blueprint/src/main/resources/org/apache/aries/transaction/parsing/transactionv11.xsd?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/transaction/transaction-blueprint/src/main/resources/org/apache/aries/transaction/parsing/transactionv11.xsd (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/transaction/transaction-blueprint/src/main/resources/org/apache/aries/transaction/parsing/transactionv11.xsd Wed Oct 27 13:29:36 2010
@@ -54,7 +54,8 @@
         <xsd:annotation>
             <xsd:documentation>
         <![CDATA[
-          Ttransaction defines one or more methods that are intercepted with the specified transaction attribute. Multiple methods names can be wild-carded with '*'.  Methods can be whitespace separated and be a mixture of fixed string and wild-cards. The bean attribute refers to the bean component id and can only be used for top level transaction element.  Similar as methods, beans can be whitespace separated and be a mixture of fixed string and wild-cards.   Two wild-cards next to each other are not supported for either the bean or method attribute.        ]]>
+            The Ttransaction defines one or more methods that are intercepted with the specified transaction attribute. Multiple methods names can be wild-carded with a '*'.  Method can be a mixture of fixed string and one wild-card.   Methods can be whitespace or comma separated. The bean attribute refers to the bean component id and can only be used for top level transaction element.  Similar as methods, beans can be whitespace separated and be a mixture of fixed string and one wild-card.
+        ]]>
             </xsd:documentation>
         </xsd:annotation>
         <xsd:attribute name="method" type="xsd:string" />

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/util/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/util/pom.xml?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/util/pom.xml (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/util/pom.xml Wed Oct 27 13:29:36 2010
@@ -42,6 +42,7 @@
         <aries.osgi.export.pkg>
             org.apache.aries.util;
             org.apache.aries.util.tracker;
+            org.apache.aries.util.nls;
         </aries.osgi.export.pkg>
         <aries.osgi.import.pkg>
             !org.apache.aries.util*,

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/FragmentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/FragmentBuilder.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/FragmentBuilder.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/FragmentBuilder.java Wed Oct 27 13:29:36 2010
@@ -31,6 +31,7 @@ import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
 
+import org.apache.aries.util.internal.MessageUtil;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
@@ -256,7 +257,7 @@ public class FragmentBuilder {
             } else if ((expecting & CHAR) > 0) {            
                 sb.append(c);
             } else {
-                throw new IllegalArgumentException("Invalid delimited string: " + value);
+                throw new IllegalArgumentException(MessageUtil.getMessage("UTIL0012E", value));
             }
         }
 

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/VersionRange.java
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/VersionRange.java?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/VersionRange.java (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/java/org/apache/aries/util/VersionRange.java Wed Oct 27 13:29:36 2010
@@ -51,21 +51,25 @@ public final class VersionRange {
      */
     public VersionRange(String version) {
         this.version = version;
-        processVersionAttribute(this.version);
+        processVersionAttribute(version);
     }
 
     /**
-     * 
+     * This method should be used to create a version range from a single
+     * version string.
      * @param version
      *            version for the versioninfo
      * @param exactVersion
-     *            whether this is an exact version
+     *            whether this is an exact version {@code true} or goes to infinity
+     *            {@code false}
      */
     public VersionRange(String version, boolean exactVersion) {
-        this.version = version;
+        
         if (exactVersion) {
-            processExactVersionAttribute(this.version);
+            // Do not store this string as it might be just a version, or a range!
+            processExactVersionAttribute(version);
         } else {
+            this.version = version;
             processVersionAttribute(this.version);
         }
 
@@ -101,7 +105,8 @@ public final class VersionRange {
      */
     @Override
     public String toString() {
-        // Some constructors don't take in a string, so construct one if needed
+        // Some constructors don't take in a string that we can return directly, 
+        // so construct one if needed
         if (version == null) {
             if (maximumVersion == null) {
                 version = minimumVersion.toString();

Modified: incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/org/apache/aries/util/messages/UTILmessages.properties
URL: http://svn.apache.org/viewvc/incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/org/apache/aries/util/messages/UTILmessages.properties?rev=1027954&r1=1027953&r2=1027954&view=diff
==============================================================================
--- incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/org/apache/aries/util/messages/UTILmessages.properties (original)
+++ incubator/aries/sandbox/jbohn/interceptor-proto/util/src/main/resources/org/apache/aries/util/messages/UTILmessages.properties Wed Oct 27 13:29:36 2010
@@ -20,3 +20,6 @@ UTIL0008E=UTIL0008E: Unable to parse the
 UTIL0009E=UTIL0009E: Unable to parse the version. Could not parse {0}.
 UTIL0010E=UTIL0010E: Unable to parse the version. Could not parse empty string.
 UTIL0011E=UTIL0011E: Unable to parse {0} for the exact version. Could not parse {0}.
+UTIL0012E=UTIL0012E: The string {0} is not correctly delimited.
+UTIL0013E=UTIL0013E: The resource bundle format {0} is not supported.
+UTIL0014E=UTIL0014E: Unable to determine which Bundle was trying to load the message ResourceBundle {0}.