in maven-jdev-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/jdeveloper/JDeveloperMojo.java [671:773]
private void replaceSourcePaths(File projectDir, List sourceRoots,
List resourceRoots, Xpp3Dom projectDOM)
throws XmlPullParserException
{
// /jpr:project
// /hash[@n="oracle.jdeveloper.model.PathsConfiguration"]
// /hash[@n="javaContentSet"]
// /list[@n="url-path"]
Xpp3Dom pathsDOM =
findNamedChild(projectDOM, "hash", "oracle.jdeveloper.model.PathsConfiguration");
Xpp3Dom contentSetDOM =
findNamedChild(pathsDOM, "hash", "javaContentSet");
Xpp3Dom sourceDOM = findNamedChild(contentSetDOM, "list", "constituent-sets");
//
// <url path="[relative-path-to-source-root]" />
//
Xpp3Dom targetDOM = new Xpp3Dom("list");
Collections.sort(sourceRoots);
for (Iterator i = sourceRoots.iterator(); i.hasNext(); )
{
File sourceRoot = new File((String) i.next());
Xpp3Dom hashDOM = new Xpp3Dom("hash");
Xpp3Dom listDOM = new Xpp3Dom("list");
listDOM.setAttribute("n", "pattern-filters");
hashDOM.addChild(listDOM);
Xpp3Dom stringDOM = new Xpp3Dom("string");
stringDOM.setAttribute("v", "+**");
listDOM.addChild(stringDOM);
listDOM = new Xpp3Dom("list");
listDOM.setAttribute("n", "url-path");
hashDOM.addChild(listDOM);
String relativeRoot = getRelativeDir(projectDir, sourceRoot);
Xpp3Dom urlDOM = new Xpp3Dom("url");
urlDOM.setAttribute("path", relativeRoot);
listDOM.addChild(urlDOM);
targetDOM.addChild(hashDOM);
}
// TODO: get bug fixed in 10.1.3 for copying resources
Collections.sort(resourceRoots, new Comparator()
{
public int compare(Object a, Object b)
{
Resource ra = (Resource) a;
Resource rb = (Resource) b;
return ra.getDirectory().compareTo(rb.getDirectory());
}
});
for (Iterator i = resourceRoots.iterator(); i.hasNext(); )
{
Resource resource = (Resource) i.next();
File resourceRoot = new File(resource.getDirectory());
String relativeRoot = getRelativeDir(projectDir, resourceRoot);
Xpp3Dom hashDOM = new Xpp3Dom("hash");
Xpp3Dom listDOM = new Xpp3Dom("list");
listDOM.setAttribute("n", "pattern-filters");
hashDOM.addChild(listDOM);
Xpp3Dom stringDOM = null;
// TODO: This is a Hack for excluding the golden files,
// which are not really xml files. We need a way, in
// the pom file to specify excludes.
if (relativeRoot.startsWith("src/test/resources"))
{
stringDOM = new Xpp3Dom("string");
stringDOM.setAttribute("v",
"-oracle/adfinternal/view/faces/renderkit/golden/");
listDOM.addChild(stringDOM);
}
stringDOM = new Xpp3Dom("string");
stringDOM.setAttribute("v", "+**");
listDOM.addChild(stringDOM);
listDOM = new Xpp3Dom("list");
listDOM.setAttribute("n", "url-path");
hashDOM.addChild(listDOM);
Xpp3Dom urlDOM = new Xpp3Dom("url");
urlDOM.setAttribute("path", relativeRoot);
listDOM.addChild(urlDOM);
targetDOM.addChild(hashDOM);
}
// TODO: use a better merge algorithm
removeChildren(sourceDOM);
// make sure to pass Boolean.FALSE to allow
// multiple child elements with the same name
Xpp3Dom.mergeXpp3Dom(sourceDOM, targetDOM, Boolean.FALSE);
}