XMLParser xmlparser = new ConfigXMLParser();
WidgetConfig config = xmlparser.parseXML( wa ); // raw data, without \
// create/clean outputs/source
// Logger.printInfoMessage("BlackBerry WebWorks application packaging starts...");
FileManager fileManager = new FileManager( bbwpProperties, config.getAccessTable() );
Logger.logMessage( LogType.INFO, "PROGRESS_FILE_POPULATING_SOURCE" );
fileManager.prepare();
// Set 3rd party extension classes
config.setExtensionClasses( fileManager.getExtensionClasses() );
config.setExtensionJSFiles( fileManager.getExtensionJSFiles() );
config.setSharedGlobalJSFiles( fileManager.getSharedGlobalJSFiles() );
// create autogen file
WidgetConfigSerializer wcs = new WidgetConfig_v1Serializer( config );
byte[] autogenFile = wcs.serialize();
fileManager.writeToSource( autogenFile, AUTOGEN_FILE );
// create jdw/jdp files
fileManager.generateProjectFiles( sessionManager.getSourceFolder(), sessionManager.getArchiveName(),
config.getName(), config.getVersion(), config.getAuthor(), config.getContent(), config.getBackgroundSource(),
config.isStartupEnabled(), config.getIconSrc(), config.getHoverIconSrc(), fileManager.getFiles(),
bbwpProperties.getImports() );
// run rapc
Logger.logMessage( LogType.INFO, "PROGRESS_COMPILING" );
Rapc rapc = new Rapc( bbwpProperties, config, fileManager.getCompiledJARDependencies() );
if( !rapc.run( fileManager.getFiles() ) ) {
throw new PackageException( "EXCEPTION_RAPC" );
}
// generate ALX
generateAlxFile( config );
// Sign the cod if required
if( sessionManager.requireSigning() ) {
Logger.logMessage( LogType.INFO, "PROGRESS_SIGNING" );
signCod( sessionManager );
Logger.logMessage( LogType.INFO, "PROGRESS_SIGNING_COMPLETE" );
}
// If requires source and a safe source folder is used, copy source to where the user expects it to be
if( sessionManager.requireSource()
&& !sessionManager.getOriginalSourceFolder().equals( sessionManager.getSourceFolder() ) ) {
File f = new File( SessionManager.getInstance().getOriginalSourceFolder() );
if( !f.exists() ) {
if( f.mkdirs() == false ) {
Logger.logMessage( LogType.WARNING, "EXCEPTION_MAKING_DIRECTORY" );
}
}
ExecUtil.exec(
null,
new String[] { "cp", "-R", sessionManager.getSourceFolder() + "/",
sessionManager.getOriginalSourceFolder() }, null );
}
// clean/prep output folders
fileManager.cleanOutput();
// copy output files
Logger.logMessage( LogType.INFO, "PROGRESS_GEN_OUTPUT" );
fileManager.copyOutputsFromSource();
// clean source (if necessary)
if( !sessionManager.requireSource() ) {
fileManager.cleanSource();
}
Logger.logMessage( LogType.INFO, "PROGRESS_COMPLETE" );
} catch( CommandLineException cle ) {
Logger.logMessage( LogType.ERROR, cle.getMessage(), cle.getInfo() );