public void execute()
throws MojoExecutionException, MojoFailureException
{
try
{
final ScriptClassGenerator generator = ScriptClassGenerator.getInstance(this.scriptWrapper);
if (this.locations != null)
{
final List classpathElements = new ArrayList(this.getProvidedClasspathElements());
classpathElements.addAll(this.project.getRuntimeClasspathElements());
this.initializeClassLoader(classpathElements);
for (int ctr = 0; ctr < locations.length; ctr++)
{
final Location location = locations[ctr];
String rootPath = location.getRootPath();
for (final Iterator iterator = location.getPaths().iterator(); iterator.hasNext();)
{
final String path = (String)iterator.next();
final int extensionIndex = path.lastIndexOf(JAVA_EXTENSION);
if (extensionIndex != -1)
{
final String className = path.substring(
0,
extensionIndex).replaceAll(
"\\\\|/",
"\\.");
this.getLog().info("injecting script wrapper: " + className);
generator.modifyClass(
rootPath,
ClassUtils.loadClass(className));
}
}
}