Advertisement
aslak

Arquillian - Dependencies - Patch

Nov 8th, 2010
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.88 KB | None | 0 0
  1. diff --git a/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/DependencyBuilder.java b/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/DependencyBuilder.java
  2. index ee4c3d8..d6ff4d3 100644
  3. --- a/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/DependencyBuilder.java
  4. +++ b/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/DependencyBuilder.java
  5. @@ -16,6 +16,7 @@
  6.   */
  7.  package org.jboss.shrinkwrap.dependencies;
  8.  
  9. +import java.io.File;
  10.  import java.util.Collection;
  11.  
  12.  import org.jboss.shrinkwrap.api.Archive;
  13. @@ -96,6 +97,24 @@ public interface DependencyBuilder<T extends DependencyBuilder<T>>
  14.         * @throws DependencyException
  15.         */
  16.        Archive<?>[] resolve(DependencyFilter<T> filter) throws DependencyException;
  17. +      
  18. +      /**
  19. +       * Resolves dependencies for dependency builder
  20. +       *
  21. +       * @return An array of Files which contains resolved artifacts.
  22. +       * @throws DependencyException If artifacts could not be resolved
  23. +       */
  24. +      File[] resolveAsFiles() throws DependencyException;
  25. +      
  26. +      /**
  27. +       * Resolves dependencies for dependency builder.
  28. +       * Uses a filter to limit dependency tree
  29. +       *
  30. +       * @param filter The filter to limit the dependencies during resolution
  31. +       * @return An array of Files which contains resolved artifacts
  32. +       * @throws DependencyException
  33. +       */
  34. +      File[] resolveAsFiles(DependencyFilter<T> filter) throws DependencyException;
  35.     }
  36.  
  37.     /**
  38. diff --git a/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/impl/MavenDependencies.java b/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/impl/MavenDependencies.java
  39. index 94b8d19..f4a2ee9 100644
  40. --- a/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/impl/MavenDependencies.java
  41. +++ b/extension-dependencies/src/main/java/org/jboss/shrinkwrap/dependencies/impl/MavenDependencies.java
  42. @@ -65,6 +65,7 @@ public class MavenDependencies implements DependencyBuilder<MavenDependencies>
  43.     private static final Logger log = Logger.getLogger(MavenDependencies.class.getName());
  44.  
  45.     private static final Archive<?>[] ARCHIVE_CAST = new Archive<?>[0];
  46. +   private static final File[] FILE_CAST = new File[0];
  47.  
  48.     private static final Pattern COORDINATES_PATTERN = Pattern.compile("([^: ]+):([^: ]+)(:([^: ]*)(:([^: ]+))?)?(:([^: ]+))?");
  49.  
  50. @@ -312,6 +313,32 @@ public class MavenDependencies implements DependencyBuilder<MavenDependencies>
  51.        {
  52.           Validate.notEmpty(dependencies, "No dependencies were set for resolution");
  53.  
  54. +         File[] files = resolveAsFiles(filter);
  55. +         Collection<Archive<?>> archives = new ArrayList<Archive<?>>(files.length);
  56. +         for (File file : files)
  57. +         {
  58. +            Archive<?> archive = ShrinkWrap.create(JavaArchive.class, file.getName()).as(ZipImporter.class).importFrom(convert(file)).as(JavaArchive.class);
  59. +            archives.add(archive);
  60. +         }
  61. +
  62. +         return archives.toArray(ARCHIVE_CAST);
  63. +      }
  64. +      
  65. +      /* (non-Javadoc)
  66. +       * @see org.jboss.shrinkwrap.dependencies.DependencyBuilder.ArtifactBuilder#resolveAsFiles()
  67. +       */
  68. +      public File[] resolveAsFiles() throws DependencyException
  69. +      {
  70. +         return resolveAsFiles(ACCEPT_ALL);
  71. +      }
  72. +      
  73. +      /* (non-Javadoc)
  74. +       * @see org.jboss.shrinkwrap.dependencies.DependencyBuilder.ArtifactBuilder#resolveAsFiles()
  75. +       */
  76. +      public File[] resolveAsFiles(DependencyFilter<MavenDependencies> filter) throws DependencyException
  77. +      {
  78. +         Validate.notEmpty(dependencies, "No dependencies were set for resolution");
  79. +
  80.           // configure filter to have access to properties set in the parent class
  81.           filter.configure(MavenDependencies.this);
  82.  
  83. @@ -332,7 +359,7 @@ public class MavenDependencies implements DependencyBuilder<MavenDependencies>
  84.              throw new DependencyException("Unable to resolve an artifact", e);
  85.           }
  86.  
  87. -         Collection<Archive<?>> archives = new ArrayList<Archive<?>>(artifacts.size());
  88. +         Collection<File> files = new ArrayList<File>(artifacts.size());
  89.           for (ArtifactResult artifact : artifacts)
  90.           {
  91.              Artifact a = artifact.getArtifact();
  92. @@ -343,12 +370,10 @@ public class MavenDependencies implements DependencyBuilder<MavenDependencies>
  93.                 continue;
  94.              }
  95.  
  96. -            File file = a.getFile();
  97. -            Archive<?> archive = ShrinkWrap.create(JavaArchive.class, file.getName()).as(ZipImporter.class).importFrom(convert(file)).as(JavaArchive.class);
  98. -            archives.add(archive);
  99. +            files.add(a.getFile());
  100.           }
  101.  
  102. -         return archives.toArray(ARCHIVE_CAST);
  103. +         return files.toArray(FILE_CAST);
  104.        }
  105.  
  106.        // converts a file to a ZIP file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement