< prev index next >

./test/lib/jdk/test/lib/artifacts/ArtifactResolver.java

Print this page
rev 2600 : 8179930: jdk.test.lib.artifacts.ArtifactResolver::resolve should return Map instead of HashMap
Reviewed-by: duke


   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 package jdk.test.lib.artifacts;
  25 
  26 import java.io.FileNotFoundException;
  27 import java.nio.file.Path;
  28 import java.util.HashMap;

  29 
  30 public class ArtifactResolver {
  31     public static HashMap<String, Path> resolve(Class klass) throws FileNotFoundException {
  32         ArtifactManager manager = new DefaultArtifactManager();
  33         try {
  34             String managerName = System.getProperty("jdk.test.lib.artifacts.artifactmanager");
  35             if (managerName != null) {
  36                 manager = (ArtifactManager) Class.forName(managerName).newInstance();
  37             } else {
  38                 manager = JibArtifactManager.newInstance();
  39             }
  40         } catch (Exception e) {
  41             // If we end up here, we'll use the DefaultArtifactManager
  42         }
  43 
  44         ArtifactContainer artifactContainer = (ArtifactContainer) klass.getAnnotation(ArtifactContainer.class);
  45         HashMap<String, Path> locations = new HashMap<>();
  46         Artifact[] artifacts;
  47 
  48         if (artifactContainer == null) {
  49             artifacts = new Artifact[]{(Artifact) klass.getAnnotation(Artifact.class)};
  50         } else {
  51             artifacts = artifactContainer.value();
  52         }
  53         for (Artifact artifact : artifacts) {
  54             locations.put(artifactName(artifact), manager.resolve(artifact));
  55         }
  56 
  57         return locations;
  58     }
  59 
  60     private static String artifactName(Artifact artifact) {
  61         // Format of the artifact name is <organization>.<name>-<revision>(-<classifier>)
  62         String name = String.format("%s.%s-%s", artifact.organization(), artifact.name(), artifact.revision());
  63         if (artifact.classifier().length() != 0) {
  64             name = name +"-" + artifact.classifier();
  65         }
  66         return name;
  67     }
  68 }


   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 package jdk.test.lib.artifacts;
  25 
  26 import java.io.FileNotFoundException;
  27 import java.nio.file.Path;
  28 import java.util.HashMap;
  29 import java.util.Map;
  30 
  31 public class ArtifactResolver {
  32     public static Map<String, Path> resolve(Class<?> klass) throws FileNotFoundException {
  33         ArtifactManager manager = new DefaultArtifactManager();
  34         try {
  35             String managerName = System.getProperty("jdk.test.lib.artifacts.artifactmanager");
  36             if (managerName != null) {
  37                 manager = (ArtifactManager) Class.forName(managerName).newInstance();
  38             } else {
  39                 manager = JibArtifactManager.newInstance();
  40             }
  41         } catch (Exception e) {
  42             // If we end up here, we'll use the DefaultArtifactManager
  43         }
  44 
  45         ArtifactContainer artifactContainer = klass.getAnnotation(ArtifactContainer.class);
  46         HashMap<String, Path> locations = new HashMap<>();
  47         Artifact[] artifacts;
  48 
  49         if (artifactContainer == null) {
  50             artifacts = new Artifact[]{klass.getAnnotation(Artifact.class)};
  51         } else {
  52             artifacts = artifactContainer.value();
  53         }
  54         for (Artifact artifact : artifacts) {
  55             locations.put(artifactName(artifact), manager.resolve(artifact));
  56         }
  57 
  58         return locations;
  59     }
  60 
  61     private static String artifactName(Artifact artifact) {
  62         // Format of the artifact name is <organization>.<name>-<revision>(-<classifier>)
  63         String name = String.format("%s.%s-%s", artifact.organization(), artifact.name(), artifact.revision());
  64         if (artifact.classifier().length() != 0) {
  65             name = name +"-" + artifact.classifier();
  66         }
  67         return name;
  68     }
  69 }
< prev index next >