//
// Go ahead and traverse the extension repository, looking for
// library.xml files to parse. This is independent of config.xml, so far.
//
ExtensionMap extensionMap = new ExtensionMap(
"AIR",
"default",
bbwpProperties.getExtensionRepo(SessionManager.getInstance().getSessionHome())); // location of the extension repository
//
// Extract the set of feature IDs from the access table.
// We flatten the structure since we don't care about the
// access node or whether it applies to local access; all
// we want are the unique feature IDs.
//
Set<String> featureIDs = new HashSet<String>();
for (Vector<WidgetFeature> accessTableValue : accessTable.values()) {
for (WidgetFeature widgetFeature : accessTableValue) {
featureIDs.add(widgetFeature.getID());
}
}
//
// For each feature ID in the set, we now perform the copying
// based on the extension map that we constructed from the
// library.xml files. The extension map will make sure we don't
// copy the same set of files twice.
//
for (String featureID : featureIDs) {
//
// The ExtensionMap is responsible for avoiding duplication.
// In particular, extension sets are marked as such after
// they have been copied to avoid duplication.
//
// This method is also responsible for distinguishing between
// ActionScript and JavaScript source files. For this purpose
// file name extensions may be used.
//
extensionMap.copyRequiredFiles(
SessionManager.getInstance().getSourceFolder(), // destination for extensions
featureID);
}
//
// Fill-in the javascript entry-class table. This is used elsewhere.
//
extensionMap.getCopiedFiles(".js", result, "WebWorksApplicationSharedJsRepository0" + File.separator);
}
return result;
}