initExcludes(cmdLine);
BuildProcess buildProcess = new BuildProcess();
- ResourceLayer startLayer = new ResourceLayer("start", new VirtualFileHandler());
+ ResourceLayer startLayer = new ResourceLayer(RESOURCE_LAYER_START, new VirtualFileHandler());
generateBuilders(cmdLine, buildProcess, startLayer);
- Resource[] resources = getResources(baseDir
+ Resource[] resources = getResources(cmdLine, baseDir
, startLayer
, null
, excludes.toArray(new String[excludes.size()]));
private void generateBuilders(CommandLine cmdLine
, BuildProcess buildProcess
, ResourceLayer parentLayer) {
- if (cmdLine.hasOption(OPT_NAME_OPTIMIZE)) {
- addOptimizingBuilders(buildProcess, parentLayer);
- }
boolean isExcludeUIFW = cmdLine.hasOption(OPT_NAME_EXCLUDE_UI_FRAMEWORK);
if (isExcludeUIFW) {
addUIFWBuilder(isExcludeUIFW, buildProcess, parentLayer);
}
- ResourceLayer lastLayer = null;
+ boolean hasReference = cmdLine.hasOption(OPT_NAME_REFERENCE_PROJECT);
+ if (hasReference) {
+ //TODO: add new HybridBuilder
+ }
+
+ if (cmdLine.hasOption(OPT_NAME_OPTIMIZE)) {
+ addOptimizingBuilders(buildProcess, parentLayer);
+ }
+
+ ResourceLayer lastLayer = parentLayer;
if (buildProcess.getLastBuilder()!=null) {
lastLayer = buildProcess.getLastBuilder().getResourceLayer();
}
buildProcess.addBuilder(toFSBuilder);
}
- private Resource[] getResources(String baseDir
- , ResourceLayer resourceLayer
+ private Resource[] getResources(CommandLine cmdLine
+ , String baseDir
+ , ResourceLayer layer
, String[] includes
, String[] excludes) throws IOException {
-
- List<File> files = FileUtil.findFiles(new File(baseDir), ".*", true);
+//TODO: modify relative path
List<Resource> resources = new ArrayList<Resource>();
- FileHandler fh = resourceLayer.getFileHandler();
-
setIncludes(includes);
setExcludes(excludes);
+ addResources(baseDir, layer, resources);
+
+ if (cmdLine.hasOption(OPT_NAME_REFERENCE_PROJECT)) {
+ ResourceLayer referenceLayer = new ResourceLayer(WebConstant.RESOURCE_LAYER_REFERENCE_PROJECT, layer, layer.getFileHandler());
+ String refPath = cmdLine.getOptionValue(OPT_NAME_REFERENCE_PROJECT);
+
+ addResources(refPath, referenceLayer, resources);
+ layer = referenceLayer;
+ }
+
+ return resources.toArray(new Resource[resources.size()]);
+ }
+
+ private void addResources(String baseDir, ResourceLayer layer, List<Resource> resources) throws IOException {
+ List<File> files = null;
+ files = FileUtil.findFiles(new File(baseDir), ".*", true);
+ FileHandler fh = layer.getFileHandler();
+
+
for (File file : files) {
String filePath = file.getPath();
if (!FilenameUtil.equals(filePath, baseDir)
logger.debug("Ignore {}", filePath);
continue;
}
- Resource resource = new Resource(resourceLayer, filePath);
+ Resource resource = new Resource(layer, filePath);
String dir = null;
if (file.isFile()) {
}
resources.add(resource);
}
- return resources.toArray(new Resource[resources.size()]);
}
private void setIncludes(String[] includes) {