Package org.jboss.forge.project.dependencies

Examples of org.jboss.forge.project.dependencies.Dependency


   public Dependency install(final Project project, final Dependency dependency, final ScopeType type)
   {
      DependencyFacet deps = project.getFacet(DependencyFacet.class);

      // Exists in deps, no version change requested
      Dependency existing = deps.getEffectiveDependency(dependency);
      Dependency existingManaged = deps.getEffectiveManagedDependency(dependency);
      DependencyBuilder unversioned = DependencyBuilder.create(dependency).setVersion(null)
               .setScopeType(type == null ? dependency.getScopeType() : type.toString())
               .setPackagingType(dependency.getPackagingType());

      if (existing != null) // we already have the dep
      {
         if (!Strings.isNullOrEmpty(existing.getVersion())
                  && (existing.getVersion().equals(dependency.getVersion()) // the version is the same as requested
                  || Strings.isNullOrEmpty(dependency.getVersion()))) // or no specific version was requested
         {
            // take no action
            return existing;
         }
         else if (Strings.isNullOrEmpty(existing.getVersion()) // we have no existing version
                  && !Strings.isNullOrEmpty(dependency.getVersion())) // but we did request one
         {
            return update(dependency, deps, unversioned);
         }
         else // version is different
         {
            return promptAndUpdate(dependency, deps, unversioned);
         }
      }
      else if (existingManaged != null) // we don't have a dependency, or the existing dependency did not have a
                                        // version, but we do have a managed dependency
      {
         if (!Strings.isNullOrEmpty(existingManaged.getVersion()) // we have a version already
                  && (!existingManaged.getVersion().equals(dependency.getVersion()) // the version is the same as
                                                                                    // requested
                  || Strings.isNullOrEmpty(dependency.getVersion()))) // or no specific version was requested
         {
            // don't need to touch dep management because we already have the right version
            deps.removeDependency(dependency);
            deps.addDirectDependency(unversioned);
            return existingManaged;
         }
         else if (Strings.isNullOrEmpty(existingManaged.getVersion()) // we have no existing version
                  && !Strings.isNullOrEmpty(dependency.getVersion())) // but we did request one
         {
            return update(dependency, deps, unversioned);
         }
         else // version is different or unspecified, and we had no existing version.
View Full Code Here


      return toAdd;
   }

   private Dependency promptVersion(final DependencyFacet deps, final Dependency dependency)
   {
      Dependency result = dependency;
      final List<Dependency> versions = deps.resolveAvailableVersions(dependency);
      if (versions.size() > 0)
      {
         Dependency deflt = versions.get(versions.size() - 1);
         result = prompt.promptChoiceTyped("Use which version of '" + dependency.getArtifactId()
                  + "' ?", versions, deflt);
      }
      return result;
   }
View Full Code Here

                        + "], continue?", true))
      {
         boolean requestProcessed = false;
         if (deps.hasEffectiveManagedDependency(gav))
         {
            Dependency existingDep = deps.getEffectiveManagedDependency(gav);
            if (shell.promptBoolean("Dependency is managed [" +
                     existingDep.getGroupId() + ":" +
                     existingDep.getArtifactId() + ":" + existingDep.getVersion()
                     + "], reference the managed dependency?", true))
            {
               DependencyBuilder depToAdd = DependencyBuilder.create();
               depToAdd.setGroupId(gav.getGroupId());
               depToAdd.setArtifactId(gav.getArtifactId());
               deps.addDirectDependency(depToAdd);
               out.println("Added dependency [" + depToAdd + "]");
               requestProcessed = true;
            }
         }
         if (!requestProcessed)
         {
            DependencyBuilder search = DependencyBuilder.create(gav).setVersion("[0,)");
            List<Dependency> availableVersions = deps.resolveAvailableVersions(search);

            if (availableVersions.isEmpty())
            {
               if (Strings.isNullOrEmpty(gav.getVersion())
                        || !shell.promptBoolean("No artifacts resolved from available repositories, install anyway?"))
               {
                  throw new RuntimeException("No available versions resolved for dependency [" + gav + "]");
               }
            }
            else if (!availableVersions.contains(gav))
            {
               ShellMessages.info(out, "No artifact found for dependency [" + gav + "]");
               if (availableVersions.size() > 1)
               {
                  gav = shell.promptChoiceTyped("Add which version?", availableVersions);
               }
               else if (shell.promptBoolean("Use [" + availableVersions.get(0) + "] instead?", true))
               {
                  gav = availableVersions.get(0);
               }
               else
               {
                  throw new RuntimeException("Could not add dependency [" + gav + "]");
               }
            }

            if (deps.hasEffectiveDependency(gav))
            {
               Dependency dependency = deps.getEffectiveDependency(gav);
               deps.removeDependency(dependency);
            }
            if (exclusion != null)
            {
               gav.getExcludedDependencies().add(exclusion);
View Full Code Here

            }
         }

         if (manDeps.hasEffectiveManagedDependency(gav))
         {
            Dependency managedDependency = manDeps.getManagedDependency(gav);
            manDeps.removeManagedDependency(managedDependency);
         }
         manDeps.addManagedDependency(gav);
         out.println("Added managed dependency [" + gav + "]");
      }
View Full Code Here

      return processorDependency;
   }

   private void modifyCompilerPlugin()
   {
      Dependency compilerDependency = DependencyBuilder.create()
               .setGroupId("org.apache.maven.plugins")
               .setArtifactId("maven-compiler-plugin");
      MavenPluginFacet pluginFacet = project.getFacet(MavenPluginFacet.class);
      MavenPlugin compiler = pluginFacet.getPlugin(compilerDependency);
      Configuration config = compiler.getConfig();
View Full Code Here

   }

   private Dependency promptVersion(Dependency dependency)
   {
      DependencyFacet dependencyFacet = project.getFacet(DependencyFacet.class);
      Dependency result = dependency;
      List<Dependency> versions = dependencyFacet.resolveAvailableVersions(DependencyQueryBuilder.create(dependency)
               .setFilter(new NonSnapshotDependencyFilter()));
      if (versions.size() > 0)
      {
         Dependency deflt = versions.get(versions.size() - 1);
         result = prompt.promptChoiceTyped("Use which version of '" + dependency.getArtifactId()
                  + "' ?", versions, deflt);
      }
      return result;
   }
View Full Code Here

         ShellMessages.info(out, "Invoking build with underlying build system.");
         Resource<?> artifact = project.getFacet(PackagingFacet.class).executeBuild();
         if ((artifact != null) && artifact.exists())
         {
            MetadataFacet meta = project.getFacet(MetadataFacet.class);
            Dependency dep = meta.getOutputDependency();

            ShellMessages.info(out, "Installing plugin artifact.");

            // TODO Figure out a better plugin versioning strategy than random numbers, also see if unloading is
            // possible to avoid this entirely.
            createModule(project,
                     DependencyBuilder.create(dep).setVersion(dep.getVersion() + "-" + UUID.randomUUID().toString()),
                     artifact);
         }
         else
         {
            throw new IllegalStateException("Build artifact [" + artifact.getFullyQualifiedName()
View Full Code Here

      moduleXml.setContents(XMLParser.toXMLString(module));
   }

   private List<DependencyResource> resolveArtifacts(final Project project, final Dependency dep)
   {
      Dependency d = dep;

      List<DependencyResource> artifacts = new ArrayList<DependencyResource>();
      DependencyFacet deps = project.getFacet(DependencyFacet.class);

      for (Dependency d2 : deps.getDependencies()) {
         if (DependencyBuilder.areEquivalent(d, d2) && (d2.getVersion() != null))
         {
            d = d2;
            break;
         }
      }

      if (artifacts.size() != 1)
      {
         artifacts = resolver.resolveArtifacts(d, deps.getRepositories());
      }
      if (artifacts.size() != 1)
      {
         ShellMessages.warn(writer, "Could not resolve dependency [" + d.toCoordinates() + "]");
      }

      return artifacts;
   }
View Full Code Here

   }

   private void addProcessorPlugin(MetaModelProvider provider)
   {
      DependencyBuilder processorDependency = createProcessorDependency();
      Dependency versioned = promptVersion(processorDependency);

      ConfigurationBuilder configuration = ConfigurationBuilder.create();
      configuration.createConfigurationElement("processors")
               .addChild("processor").setText(provider.getProcessor());
      if (!Strings.isNullOrEmpty(provider.getCompilerArguments()))
      {
         configuration.createConfigurationElement("compilerArguments")
                  .setText(provider.getCompilerArguments());
      }

      ExecutionBuilder execution = ExecutionBuilder.create()
               .setId("process")
               .setPhase("generate-sources")
               .addGoal("process")
               .setConfig(configuration);

      Dependency aptDependency = provider.getAptDependency();
      if (Strings.isNullOrEmpty(aptDependency.getVersion()))
      {
         aptDependency = promptVersion(aptDependency);
      }
      MavenPluginBuilder processorPlugin = MavenPluginBuilder.create()
               .setDependency(versioned)
View Full Code Here

            for (Dependency dependency : provider.listDependencies())
            {
               List<Dependency> versions = deps.resolveAvailableVersions(dependency);
               if (!versions.isEmpty())
               {
                  Dependency choice = prompt.promptChoiceTyped("Install which version of [" + dependency + "]?",
                           versions, versions.get(versions.size() - 1));

                  if (container instanceof JavaEEDefaultContainer)
                  {
                     choice = DependencyBuilder.create(choice).setScopeType(ScopeType.PROVIDED);
View Full Code Here

TOP

Related Classes of org.jboss.forge.project.dependencies.Dependency

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.