import org.tizen.cli.exec.pack.CLIMultiPackager;
import org.tizen.common.FactoryWithArgument;
import org.tizen.common.builder.BuildProcess;
-import org.tizen.common.builder.Builder;
-import org.tizen.common.builder.Resource;
+import org.tizen.common.builder.IBuilder;
import org.tizen.common.builder.ResourceLayer;
import org.tizen.common.builder.core.CopyBuilder;
import org.tizen.common.core.command.CommandCancelException;
import org.tizen.common.file.FileHandler;
import org.tizen.common.file.FileHandler.Attribute;
import org.tizen.common.file.Filter;
+import org.tizen.common.file.IResource;
+import org.tizen.common.file.Resource;
import org.tizen.common.file.SimpleFileFilter;
import org.tizen.common.file.StandardFileHandler;
import org.tizen.common.file.VirtualFileHandler;
import org.tizen.common.file.filter.WildCardFilterFactory;
import org.tizen.common.util.FileUtil;
import org.tizen.common.util.FilenameUtil;
-import org.tizen.web.builder.CssMinifyBuilder;
+import org.tizen.web.builder.BuilderFactory;
import org.tizen.web.builder.HybridAppCLIBuilder;
-import org.tizen.web.builder.JSMinifyBuilder;
import org.tizen.web.builder.UIFWBuilder;
import org.tizen.web.builder.exception.MinifyException;
import org.tizen.web.common.WebConstant;
protected static final String RESOURCE_LAYER_END = "end";
// file filter. If you want to exclude a directory, append '/*'
- private static final String[] DEFAULT_EXCLUDES = {".build/*"
- , ".project"
- , ".settings/*"
- , ".sdk_delta.info"
- , "*.wgt"
- , ".buildResult/*"};
+ private static final String[] DEFAULT_EXCLUDES = WebConstant.DEFAULT_EXCLUDING_RESOURCES;
// excluding file list
private List<String> excludes = new ArrayList<String>();
// Set start layer
FileHandler fh = new StandardFileHandler();
fh.setCurrentWorkingDirectory(cwd);
- ResourceLayer startLayer = new ResourceLayer(RESOURCE_LAYER_START, fh);
// Get resource list for build
- Resource[] resources = getBuildResources(cmdLine
- , startLayer
+ IResource[] resources = getBuildResources(cmdLine
, null
, excludes.toArray(new String[excludes.size()]));
// Generate web builders to build process
- generateAllBuilders(cmdLine, buildProcess, startLayer);
+ generateAllBuilders(cmdLine, buildProcess);
if (buildProcess.getLastBuilder() != null) {
logger.debug("start build process");
protected void checkProcessComplete(BuildProcess buildProcess) throws BuildException {
// Check hybrid structure. If a manifest file and a binary file are not found, this is a failure.
try {
- Builder builder = buildProcess.getBuilder( HybridAppCLIBuilder.RESOURCE_LAYER_NAME );
+ IBuilder builder = buildProcess.getBuilder(HybridAppCLIBuilder.class);
if ( builder != null ) {
HybridAppCLIBuilder hybridBuilder = (HybridAppCLIBuilder) builder;
if ( ! hybridBuilder.isManifestFound() ) {
getPrompter().notify( MessageFormat.format( SUCCEED_MSG, this.output ) );
}
-
+
private void initExcludes(CommandLine cmdLine) {
this.excludes.clear();
this.excludes.add(exclude);
}
+ if (isExcludeUIFW(cmdLine)) {
+ this.excludes.add(WebConstant.TIZEN_WEB_UI_FRAMWORK_LIBRARY_DIRECTORY);
+ this.excludes.add(WebConstant.TIZEN_WEB_UI_FRAMWORK_LIBRARY_DIRECTORY+"/*");
+ }
+
+ String[] cwdFragments = FilenameUtil.getCanonicalFragments(cwd);
+
+ this.excludes.add(cwdFragments[cwdFragments.length-1]+".wgt");
+
if (cmdLine.hasOption(OPT_NAME_EXCLUDE)) {
String[] excludes = cmdLine.getOptionValues(OPT_NAME_EXCLUDE);
for (String exclude : excludes) {
* @throws IOException
*/
public void generateAllBuilders(CommandLine cmdLine
- , BuildProcess buildProcess
- , ResourceLayer parentLayer) throws IOException {
+ , BuildProcess buildProcess) throws IOException {
FileHandler fh = new VirtualFileHandler();
- fh.setCurrentWorkingDirectory(parentLayer.getFileHandler().getCurrentWorkingDirectory());
+ fh.setCurrentWorkingDirectory(cwd);
if (isExcludeUIFW(cmdLine)) {
addUIFWBuilder(true
, cmdLine.hasOption(OPT_NAME_EXCLUDE_UI_FRAMEWORK_USEMIN)
, buildProcess
- , getLastResourceLayer(buildProcess, parentLayer)
, fh);
}
if (hasReference) {
addHybridBuilder( cmdLine
, buildProcess
- , getLastResourceLayer(buildProcess, parentLayer)
, fh);
}
if (cmdLine.hasOption(OPT_NAME_OPTIMIZE)) {
addOptimizingBuilders(buildProcess
- , getLastResourceLayer(buildProcess, parentLayer)
, fh);
}
- addLastbuilder(buildProcess, getLastResourceLayer(buildProcess, parentLayer));
+ addLastbuilder(buildProcess);
}
/**
* @param lastLayer
* @throws IOException
*/
- private void addHybridBuilder(CommandLine cmdLine, BuildProcess buildProcess, ResourceLayer lastLayer, FileHandler fh) throws IOException {
- ResourceLayer layer = new ResourceLayer(HybridAppCLIBuilder.RESOURCE_LAYER_NAME
- , lastLayer
- , fh);
+ private void addHybridBuilder(CommandLine cmdLine, BuildProcess buildProcess, FileHandler fh) throws IOException {
String refPath = null;
String[] refProjects = getReferenceProjects();
if ((refProjects != null)
refPath = convertPath(cmdLine.getOptionValue(OPT_NAME_REFERENCE_PROJECT));
}
- HybridAppCLIBuilder hybridAppBuilder = new HybridAppCLIBuilder( layer, refPath );
- buildProcess.addBuilder(hybridAppBuilder);
- }
-
- /**
- * get last resource layer located in buildProcess.
- * @param buildProcess
- * @param defaultLayer
- * @return
- */
- private ResourceLayer getLastResourceLayer(BuildProcess buildProcess, ResourceLayer defaultLayer) {
- ResourceLayer lastLayer = buildProcess.getLastResourceLayer();
- return (lastLayer != null) ? lastLayer : defaultLayer;
+ HybridAppCLIBuilder hybridAppBuilder = new HybridAppCLIBuilder(fh, cwd, refPath);
+ buildProcess.addBuilders(hybridAppBuilder);
}
/**
* @param buildProcess
* @param parentLayer
*/
- private void addUIFWBuilder(boolean isExclude, boolean useMin, BuildProcess buildProcess,
- ResourceLayer parentLayer, FileHandler fh) {
- ResourceLayer layer = new ResourceLayer(UIFWBuilder.RESOURCE_LAYER_NAME
- , parentLayer
- , fh);
- UIFWBuilder uifwBuilder = new UIFWBuilder(isExclude, layer);
+ private void addUIFWBuilder(boolean isExclude, boolean useMin, BuildProcess buildProcess, FileHandler fh) {
+ UIFWBuilder uifwBuilder = new UIFWBuilder(isExclude, fh);
uifwBuilder.setUseMin(useMin);
- buildProcess.addBuilder(uifwBuilder);
+ buildProcess.addBuilders(uifwBuilder);
}
/**
* Add builder that write resources to file system to buildProcess.
* @param buildProcess
- * @param parentLayer
*/
- private void addLastbuilder(BuildProcess buildProcess, ResourceLayer parentLayer) {
+ private void addLastbuilder(BuildProcess buildProcess) {
// add file output builder
- FileHandler fh = new StandardFileHandler();
- fh.setCurrentWorkingDirectory(parentLayer.getFileHandler().getCurrentWorkingDirectory());
- ResourceLayer toFSLayer = new ResourceLayer(CopyBuilder.RESOURCE_LAYER_NAME
- , parentLayer
- , fh);
- CopyBuilder toFSBuilder = new CopyBuilder(FilenameUtil.getRelativePath(cwd, output), toFSLayer);
- buildProcess.addBuilder(toFSBuilder);
+ CopyBuilder toFSBuilder = new CopyBuilder(output);
+ buildProcess.addBuilders(toFSBuilder);
}
/**
* @return
* @throws IOException
*/
- private Resource[] getBuildResources(CommandLine cmdLine
- , ResourceLayer layer
+ private IResource[] getBuildResources(CommandLine cmdLine
, String[] includes
, String[] excludes) throws IOException {
- List<Resource> resources = new ArrayList<Resource>();
+ List<IResource> resources = new ArrayList<IResource>();
setIncludes(includes);
setExcludes(excludes);
- String cwd = layer.getFileHandler().getCurrentWorkingDirectory();
- resources.addAll(getResources(cwd
- , FilenameUtil.getRelativePath(cwd, cwd)
- , layer));
+ resources.addAll(getResources(cwd, FilenameUtil.getRelativePath(cwd, cwd)));
if (cmdLine.hasOption(OPT_NAME_REFERENCE_PROJECT)) {
FileHandler refFh = new StandardFileHandler();
- ResourceLayer referenceLayer = new ResourceLayer(HybridAppCLIBuilder.RESOURCE_LAYER_REFERENCE_NAME
- , refFh);
- layer.setParent(referenceLayer);
String refRootPath = null;
String[] refProjects = getReferenceProjects();
if ((refProjects != null)
refFh.setCurrentWorkingDirectory(refRootPath);
resources.addAll(getResources(refRootPath
- , FilenameUtil.getRelativePath(refRootPath, refRootPath)
- , referenceLayer));
+ , FilenameUtil.getRelativePath(refRootPath, refRootPath)));
}
- return resources.toArray(new Resource[resources.size()]);
+ return resources.toArray(new IResource[0]);
}
/**
* @param layer {@link ResourceLayer} about resource
* @throws IOException
*/
- private List<Resource> getResources(String cwd, String relativeSrcDir, ResourceLayer layer) throws IOException {
- List<Resource> resources = new ArrayList<Resource>();
+ private List<IResource> getResources(String cwd, String relativeSrcDir) throws IOException {
+ List<IResource> resources = new ArrayList<IResource>();
List<File> files = null;
- String absoluteDir = cwd+ File.separator + relativeSrcDir;
+ String absoluteDir = FileUtil.appendPath(cwd, relativeSrcDir);
files = FileUtil.findFiles(new File(absoluteDir), ".*", true);
+ FileHandler fh = new StandardFileHandler(cwd);
for (File file : files) {
String fileRelativePath = FilenameUtil.getRelativePath(cwd, file.getCanonicalPath());
}
logger.debug("resource path : {}", fileRelativePath);
- Resource resource = new Resource(layer, fileRelativePath);
+ IResource resource = new Resource(fh, fileRelativePath);
resources.add(resource);
}
* @param buildProcess
* @param parentLayer
*/
- private void addOptimizingBuilders(BuildProcess buildProcess, ResourceLayer parentLayer, FileHandler fh) {
+ private void addOptimizingBuilders(BuildProcess buildProcess, FileHandler fh) {
if (buildProcess == null) {
return;
}
- // add js minify builder
- ResourceLayer jsMinLayer = new ResourceLayer(JSMinifyBuilder.RESOURCE_LAYER_NAME
- , parentLayer
- , fh);
- JSMinifyBuilder jsMin = new JSMinifyBuilder(jsMinLayer);
- buildProcess.addBuilder(jsMin);
-
- // add css minify builder
- ResourceLayer cssMinLayer = new ResourceLayer(CssMinifyBuilder.RESOURCE_LAYER_NAME
- , jsMinLayer
- , fh);
- CssMinifyBuilder cssMin = new CssMinifyBuilder(cssMinLayer);
- buildProcess.addBuilder(cssMin);
+ buildProcess.addBuilders(BuilderFactory.generateCompressBuilders(fh.getCurrentWorkingDirectory()));
}
@Override