コード例 #1
0
 private ChainResolver createOuterChain(
     ChainResolver userResolverChain, ClientModuleResolver clientModuleResolver) {
   ChainResolver clientModuleChain = new ChainResolver();
   clientModuleChain.setName(CLIENT_MODULE_CHAIN_NAME);
   clientModuleChain.setReturnFirst(true);
   clientModuleChain.add(clientModuleResolver);
   clientModuleChain.add(userResolverChain);
   return clientModuleChain;
 }
コード例 #2
0
 private static GrailsRepoResolver findCentralRepoResolver(ChainResolver chainResolver) {
   final List resolvers = chainResolver.getResolvers();
   for (Object resolver : resolvers) {
     if (resolver instanceof GrailsRepoResolver) {
       final GrailsRepoResolver grailsRepoResolver = (GrailsRepoResolver) resolver;
       final String resolverName = grailsRepoResolver.getName();
       if (resolverName != null && resolverName.equals("grailsCentral")) {
         return grailsRepoResolver;
       }
     }
   }
   return null;
 }
コード例 #3
0
 private ChainResolver createUserResolverChain(
     List<DependencyResolver> classpathResolvers, RepositoryResolver buildResolver) {
   ChainResolver chainResolver = new ChainResolver();
   chainResolver.setName(CHAIN_RESOLVER_NAME);
   chainResolver.add(buildResolver);
   // todo Figure out why Ivy thinks this is necessary. The IBiblio resolver has already this
   // pattern which should be good enough. By doing this we let Maven semantics seep into our whole
   // system.
   chainResolver.setChangingPattern(".*-SNAPSHOT");
   chainResolver.setChangingMatcher(PatternMatcher.REGEXP);
   chainResolver.setReturnFirst(true);
   for (Object classpathResolver : classpathResolvers) {
     chainResolver.add((DependencyResolver) classpathResolver);
   }
   return chainResolver;
 }
コード例 #4
0
ファイル: SettingsParser.java プロジェクト: nicopatch/play
  DependencyResolver parseRepository(Map repoDescriptor, List<Map<String, String>> modules)
      throws Oops {

    String repName = ((Map) repoDescriptor).keySet().iterator().next().toString().trim();
    Map options = (Map) ((Map) repoDescriptor).values().iterator().next();

    String type = get(options, "type", String.class);
    if (type == null) {
      throw new Oops("Repository type need to be specified -> " + repName + ": " + options);
    }

    DependencyResolver resolver = null;

    if (type.equalsIgnoreCase("iBiblio")) {
      IBiblioResolver iBiblioResolver = new IBiblioResolver();
      iBiblioResolver.setName(repName);
      if (options.containsKey("root")) {
        iBiblioResolver.setRoot(get(options, "root", String.class));
      }
      iBiblioResolver.setM2compatible(get(options, "m2compatible", boolean.class, true));
      iBiblioResolver.getRepository().addTransferListener(logger);
      resolver = iBiblioResolver;
    }

    if (type.equalsIgnoreCase("local")) {
      FileSystemResolver fileSystemResolver = new FileSystemResolver();
      fileSystemResolver.setName(repName);
      fileSystemResolver.setLocal(true);
      if (get(options, "descriptor", String.class) != null) {
        fileSystemResolver.addIvyPattern(get(options, "descriptor", String.class));
      }
      if (get(options, "artifact", String.class) != null) {
        fileSystemResolver.addArtifactPattern(get(options, "artifact", String.class));
      }
      resolver = fileSystemResolver;
    }

    if (type.equalsIgnoreCase("http")) {
      URLResolver urlResolver = new URLResolver();
      urlResolver.setName(repName);
      if (get(options, "descriptor", String.class) != null) {
        urlResolver.addIvyPattern(get(options, "descriptor", String.class));
      }
      if (get(options, "artifact", String.class) != null) {
        urlResolver.addArtifactPattern(get(options, "artifact", String.class));
      }
      urlResolver.getRepository().addTransferListener(logger);
      resolver = urlResolver;
    }

    if (type.equalsIgnoreCase("chain")) {
      ChainResolver chainResolver = new ChainResolver();
      chainResolver.setName(repName);
      chainResolver.setReturnFirst(true);
      for (Object o : get(options, "using", List.class, new ArrayList())) {
        chainResolver.add(parseRepository((Map) o, modules));
      }
      resolver = chainResolver;
    }

    if (resolver == null) {
      throw new Oops("Unknown repository type -> " + type);
    }

    List contains = get(options, "contains", List.class);
    if (contains != null) {
      for (Object o : contains) {
        String v = o.toString().trim();
        String module = null;
        String organisation = null;
        String revision = null;
        Matcher m = Pattern.compile("([^\\s]+)\\s*[-][>]\\s*([^\\s]+)\\s+([^\\s]+)").matcher(v);
        if (m.matches()) {
          organisation = m.group(1);
          module = m.group(2);
          revision = m.group(3).replace("$version", System.getProperty("play.version"));
        } else {
          m = Pattern.compile("(([^\\s]+))\\s+([^\\s]+)").matcher(v);
          if (m.matches()) {
            organisation = m.group(1);
            module = m.group(2);
            revision = m.group(3).replace("$version", System.getProperty("play.version"));
          } else {
            m = Pattern.compile("([^\\s]+)\\s*[-][>]\\s*([^\\s]+)").matcher(v);
            if (m.matches()) {
              organisation = m.group(1);
              module = m.group(2);
            } else {
              m = Pattern.compile("([^\\s]+)").matcher(v);
              if (m.matches()) {
                organisation = m.group(1);
              } else {
                throw new Oops("Unknown depedency format -> " + o);
              }
            }
          }
        }
        Map<String, String> attributes = new HashMap<String, String>();
        attributes.put("organisation", organisation);
        if (module != null) {
          attributes.put("module", module);
        }
        if (revision != null) {
          attributes.put("revision", revision);
        }
        attributes.put("resolver", repName);
        modules.add(attributes);
      }
    }

    return resolver;
  }