com.noahsloan.atg:atg-resolver

Provides an Ivy DependencyResolver that can resolve ATG modules as dependencies.


License
BSD-3-Clause

Documentation

NOTE: I no longer work with ATG, so I can't maintain this module. Try this fork.

Provides a custom Ivy resolver for declaring dependencies on ATG modules. The modules must be available locally and are resolved via the DYNAMO_HOME environment variable.

Declaring Dependencies

// always use provided scope since the modules will be provided by ATG
provided group:'ATG_MODULE', name:'DAS', version:'SNAPSHOT'

Module dependencies use the group ATG_MODULE. The artifact name is the name of the module,e.g., DAS. The version should be SNAPSHOT so modules can be updated.

If you are developing an ATG module, your module can declare a dependency on itself. e.g.,

provided group:'ATG_MODULE', name:'MYMODULE', version:'SNAPSHOT'

The resolver will automatically pick up any other modules your module depends on in its MANIFEST.MF, so you don't have to declare dependencies twice.

Build Systems

Any build system that utilizes Ivy will work, but here are some common examples:

Gradle

You can use a buildscript section to download the resolver jar so it can be added as a repository in your main script:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.noahsloan.atg:atg-resolver:1.0'
    }
}

allprojects { // see http://gradle.org/current/docs/userguide/userguide_single.html#sec:subproject_configuration
    repositories {
        add com.noahsloan.atg.ivy.AtgModuleRepository.newResolver
    }

    dependencies {
        compile group:"ATG_MODULE", name:"DAS",version:"SNAPSHOT"
    }

    // the rest of your tasks go here
}

Grails

Use the Grails plugin and declare dependencies as above.

If you can't use the plugin for some reason, then you can add this to grails-app/conf/BuildConfig.groovy:

@Grab(group='com.noahsloan.atg',module="atg-resolver",version="1.0")
import com.noahsloan.atg.ivy.AtgModuleRepository

grails.project.dependency.resolution = {
    resolver AtgModuleRepository.newResolver        
    // ... 
}

See the plugin for an example.

Java

Creating the resolver is simple.

DependencyResolver resolver = com.noahsloan.atg.ivy.AtgModuleRepository.getNewResolver();

What you do with it is beyond the scope of this file right now.