in maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/CompositeComponentModelBuilder.java [476:572]
public void buildModel(Model model, ModelParams parameters)
{
if (parameters.getCompositeComponentDirectories() != null &&
parameters.getCompositeComponentLibraries() != null &&
!parameters.getCompositeComponentDirectories().isEmpty() &&
!parameters.getCompositeComponentLibraries().isEmpty())
{
for (Iterator it = parameters.getCompositeComponentDirectories().iterator(); it.hasNext();)
{
Object odir = it.next();
File dir = null;
if (odir instanceof File)
{
dir = (File) odir;
}
else
{
dir = new File(odir.toString());
}
if (dir != null && dir.exists())
{
for (Iterator it2 = parameters.getCompositeComponentLibraries().entrySet().iterator();
it2.hasNext();)
{
Map.Entry entry = (Map.Entry) it2.next();
String shortTagLibraryName = (String) entry.getKey();
String libraryName = (String) entry.getValue();
File dirToScan = new File(dir,libraryName);
if (dirToScan != null && dirToScan.exists() && dirToScan.isDirectory() )
{
final String[] fileExtensions = parameters.getCompositeComponentFileExtensions() != null ?
parameters.getCompositeComponentFileExtensions().split(" ") : new String[]{".xhtml"};
FileFilter fileFilter = new FileFilter()
{
public boolean accept(File file)
{
for (String extension : fileExtensions)
{
if (file.getName().endsWith(extension))
{
return true;
}
}
return false;
}
};
File[] files = dirToScan.listFiles(fileFilter);
if (files != null)
{
for (int i = 0; i < files.length; i++)
{
String fileExtension = null;
for (String extension : fileExtensions)
{
if (files[i].getName().endsWith(extension))
{
fileExtension = extension;
break;
}
}
String componentName = files[i].getName().substring(
0, files[i].getName().length()-fileExtension.length());
try
{
doParseMetadata(model, files[i].toURL(),
shortTagLibraryName, libraryName, files[i].getName(),
componentName, libraryName+'.'+ componentName);
}
catch (MalformedURLException e)
{
log.error("Error while processing composite component: "+
libraryName+'/'+componentName, e);
}
catch (IOException e)
{
log.error("Error while processing composite component: "+
libraryName+'/'+componentName, e);
}
catch (SAXException e)
{
log.error("Error while processing composite component: "+
libraryName+'/'+componentName, e);
}
catch (ParserConfigurationException e)
{
log.error("Error while processing composite component: "+
libraryName+'/'+componentName, e);
}
}
}
}
}
}
}
}
}