in xml2fastinfoset-plugin/src/main/java/org/apache/cxf/maven_plugin/xml2fastinfoset/XML2FastInfosetCompilerMojo.java [109:182]
public void execute() throws MojoExecutionException {
for (Iterator it = resources.iterator(); it.hasNext();) {
Resource resource = (Resource)it.next();
String targetPath = resource.getTargetPath();
File resourceDirectory = new File(resource.getDirectory());
if (!resourceDirectory.isAbsolute()) {
resourceDirectory = new File(project.getBasedir(), resourceDirectory.getPath());
}
if (!resourceDirectory.exists()) {
getLog().debug("Resource directory does not exist: " + resourceDirectory);
continue;
}
Scanner scanner = buildContext.newScanner(resourceDirectory);
if (includes != null && !includes.isEmpty()) {
scanner.setIncludes((String[])includes.toArray(EMPTY_STRING_ARRAY));
} else {
scanner.setIncludes(DEFAULT_INCLUDES);
}
if (excludes != null && !excludes.isEmpty()) {
scanner.setExcludes((String[])excludes.toArray(EMPTY_STRING_ARRAY));
}
scanner.addDefaultExcludes();
scanner.scan();
List includedFiles = Arrays.asList(scanner.getIncludedFiles());
getLog().debug("FastInfosetting " + includedFiles.size() + " resource"
+ (includedFiles.size() > 1 ? "s" : "")
+ (targetPath == null ? "" : " to " + targetPath));
if (includedFiles.size() > 0) {
// this part is required in case the user specified "../something"
// as destination
// see MNG-1345
if (!outputDirectory.exists() && !outputDirectory.mkdirs()) {
throw new MojoExecutionException("Cannot create resource output directory: "
+ outputDirectory);
}
}
for (Iterator j = includedFiles.iterator(); j.hasNext();) {
String name = (String)j.next();
String destination = name.replaceFirst("\\.xml$", ".fixml");
if (targetPath != null) {
destination = targetPath + "/" + name;
}
File source = new File(resourceDirectory, name);
File destinationFile = new File(outputDirectory, destination);
if (!destinationFile.getParentFile().exists()) {
destinationFile.getParentFile().mkdirs();
}
try {
compileFile(source, destinationFile);
} catch (Exception e) {
throw new MojoExecutionException("Error copying resource " + source, e);
}
buildContext.refresh(destinationFile);
}
}
}