Package: org.codehaus.groovy.grails.resolve

## [Java] Interface DependencyManager

- General interface for all dependency manager implementations to implement with common utility methods not tied to Ivy or Aether or any dependency resolution engine

  Authors:
    Graeme Rocher
  Since:
    2.3

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `java.lang.String` | `GRAILS_CENTRAL_PLUGIN_LIST` | URL to the central Grails plugin repository's global plugin list

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `DependencyManager` | `createCopy(BuildSettings buildSettings)` Creates a copy of this dependency manager with repository configuration retained but dependencies omitted.
    `groovy.util.slurpersupport.GPathResult` | `downloadPluginInfo(java.lang.String pluginName, java.lang.String pluginVersion)` Downloads information about a plugin from the -plugin.xml file
    `groovy.util.slurpersupport.GPathResult` | `downloadPluginList(java.io.File localFile)` Downloads the Grails central plugin list and saves it to the given file.
    `java.util.Collection<Dependency>` | `getAllDependencies()` All dependencies of the current application
    `java.util.Collection<Dependency>` | `getAllDependencies(java.lang.String scope)` All dependencies of the current application
    `java.util.Collection<Dependency>` | `getApplicationDependencies()` The direct dependencies of the application, not including framework or dependencies inherited from plugins
    `java.util.Collection<Dependency>` | `getApplicationDependencies(java.lang.String scope)` The direct dependencies of the application, not including framework or dependencies inherited from plugins
    `ExcludeResolver` | `getExcludeResolver()` @return Returns the exclude resolver for this dependency manager
    `java.util.Collection<Dependency>` | `getPluginDependencies()` @return The plugin dependencies of the application
    `java.util.Collection<Dependency>` | `getPluginDependencies(java.lang.String scope)` The direct plugin dependencies of the application, not including framework or dependencies inherited from plugins
    `void` | `parseDependencies(groovy.lang.Closure callable)` Parse the dependency definition DSL
    `void` | `produceReport()` Outputs the dependency graph to System.out
    `void` | `produceReport(java.lang.String scope)` Outputs the dependency graph to System.out
    `DependencyReport` | `resolve(java.lang.String scope)` Resolve dependencies for the given scope
    `DependencyReport` | `resolve()` Resolve dependencies for the default scope
    `DependencyReport` | `resolveAgent()` Resolve the JVM agent to be used for the forked JVM
    `DependencyReport` | `resolveDependency(Dependency dependency)` Resolves a single dependency.

- - ### Field Detail

    - #### public java.lang.String GRAILS_CENTRAL_PLUGIN_LIST

      URL to the central Grails plugin repository's global plugin list

  - ### Method Detail

    - #### public DependencyManager createCopy(BuildSettings buildSettings)

      Creates a copy of this dependency manager with repository configuration retained but dependencies omitted.

      Parameters:
        `buildSettings` - The BuildSettings
      Returns:
        The copy

    - #### public groovy.util.slurpersupport.GPathResult downloadPluginInfo(java.lang.String pluginName, java.lang.String pluginVersion)

      Downloads information about a plugin from the -plugin.xml file

      Parameters:
        `pluginName` - The plugin name
        `pluginVersion` - The plugin version
      Returns:
        The plugin.xml data or null if the plugin doesn't exit

    - #### public groovy.util.slurpersupport.GPathResult downloadPluginList(java.io.File localFile)

      Downloads the Grails central plugin list and saves it to the given file. The file is then parsed and the resulting XML returned

      Parameters:
        `localFile` - The local file
      Returns:
        The parsed XML

    - #### public java.util.Collection<Dependency> getAllDependencies()

      All dependencies of the current application

      Returns:
        All application dependencies

    - #### public java.util.Collection<Dependency> getAllDependencies(java.lang.String scope)

      All dependencies of the current application

      Parameters:
        `scope` - The scope of the dependencies
      Returns:
        All application dependencies

    - #### public java.util.Collection<Dependency> getApplicationDependencies()

      The direct dependencies of the application, not including framework or dependencies inherited from plugins

      Returns:
        Direct application dependencies

    - #### public java.util.Collection<Dependency> getApplicationDependencies(java.lang.String scope)

      The direct dependencies of the application, not including framework or dependencies inherited from plugins

      Parameters:
        `scope` - The scope of the dependencies
      Returns:
        Direct application dependencies

    - #### public ExcludeResolver getExcludeResolver()

      Returns:
        Returns the exclude resolver for this dependency manager

    - #### public java.util.Collection<Dependency> getPluginDependencies()

      Returns:
        The plugin dependencies of the application

    - #### public java.util.Collection<Dependency> getPluginDependencies(java.lang.String scope)

      The direct plugin dependencies of the application, not including framework or dependencies inherited from plugins

      Parameters:
        `scope` - The scope of the dependencies
      Returns:
        Direct application dependencies

    - #### public void parseDependencies(groovy.lang.Closure callable)

      Parse the dependency definition DSL

      Parameters:
        `callable` - The DSL definition

    - #### public void produceReport()

      Outputs the dependency graph to System.out

    - #### public void produceReport(java.lang.String scope)

      Outputs the dependency graph to System.out

      Parameters:
        `scope` - The scope of the report

    - #### public DependencyReport resolve(java.lang.String scope)

      Resolve dependencies for the given scope

      Parameters:
        `scope` - The scope
      Returns:
        The DependencyReport instance

    - #### public DependencyReport resolve()

      Resolve dependencies for the default scope

      Returns:
        The DependencyReport instance

    - #### public DependencyReport resolveAgent()

      Resolve the JVM agent to be used for the forked JVM

      Returns:
        The DependencyReport instance or null if no agent configured

    - #### public DependencyReport resolveDependency(Dependency dependency)

      Resolves a single dependency.

      Parameters:
        `dependency` - A Dependency instance.
      Returns:
        The DependencyReport instance for the given dependency