You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by lo...@apache.org on 2013/06/19 20:32:08 UTC

[36/37] [CB-3401] renamed blackberry root folder to bbos

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/create
----------------------------------------------------------------------
diff --git a/bbos/bin/create b/bbos/bin/create
new file mode 100755
index 0000000..ca84dc8
--- /dev/null
+++ b/bbos/bin/create
@@ -0,0 +1,108 @@
+#! /bin/sh
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+#
+# create a cordova/blackberry project
+# 
+# USAGE
+#   ./create [path package appname]
+#
+set -e
+
+if [ -n "$1" ] && [ "$1" == "-h" ]
+then
+  echo "Usage: $0 <path_to_new_project> <package_name> <project_name>"
+  echo "    <path_to_new_project>: Path to your new Cordova iOS project"
+  echo "    <package_name>: Package name, following reverse-domain style convention (ignored on BlackBerry platforms)"
+  echo "    <project_name>: Project name"
+  echo 'After you have created your application, make sure to customize the project.properties file inside your app directory with your environment specifics!'
+  exit 0;
+fi
+
+
+BUILD_PATH="$( cd "$( dirname "$0" )/.." && pwd )"
+VERSION=$(cat "$BUILD_PATH/VERSION")
+
+PROJECT_PATH="${1:-"./example"}"
+PACKAGE=${2:-"org.apache.cordova.example"}
+NAME=${3:-"cordovaExample"}
+
+# clobber any existing example
+if [ -d "$PROJECT_PATH" ]
+then
+    echo "Project already exists! Delete and recreate"
+    exit 1
+fi
+
+# cleanup after exit and/or on error
+function on_exit {
+    echo "Cleaning up ..."
+    [ -d "$BUILD_PATH/build" ] && rm -rf "$BUILD_PATH/build"
+    echo "Remember to update the project.properties file inside your application directory!"
+}
+
+function on_error {
+    echo "An error occured. Deleting project..."
+    [ -d "$PROJECT_PATH" ] && rm -rf "$PROJECT_PATH"
+}
+
+function replace {
+    local pattern=$1
+    local filename=$2
+    # Mac OS X requires -i argument
+    if [[ "$OSTYPE" =~ "darwin" ]]
+    then
+        /usr/bin/sed -i '' -e $pattern "$filename"
+    elif [[ "$OSTYPE" =~ "linux" ]]
+    then
+        /bin/sed -i -e $pattern "$filename"
+    fi
+}
+
+# we do not want the script to silently fail
+trap on_error ERR
+trap on_exit EXIT
+
+ANT="$(which ant)"
+
+MANIFEST_PATH="$PROJECT_PATH/www/config.xml"
+
+# compile cordova.js and cordova.jar if in source, ignore if in distribution
+if [ ! -e "$BUILD_PATH/www/ext/cordova-$VERSION.jar" ] && [ -d "$BUILD_PATH/framework" ]
+then
+    if [ ! -e "$BUILD_PATH"/bin/templates/project/lib/ant-contrib/ant-contrib-1.0b3.jar ]; then
+        echo "Downloading ant-contrib"
+        # Use curl to get the jar
+        curl -OL http://central.maven.org/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar &> /dev/null
+        mkdir -p "$BUILD_PATH"/bin/templates/project/lib/ant-contrib
+        mv ant-contrib-1.0b3.jar "$BUILD_PATH"/bin/templates/project/lib/ant-contrib
+    fi
+    
+	echo "Creating BlackBerry project..."
+	("$ANT" create -Dproject.path="$PROJECT_PATH" -f "$BUILD_PATH/build.xml" &> /dev/null)
+    # interpolate the activity and package into config.xml
+    echo "Updating config.xml ..."
+    replace "s/__NAME__/${NAME}/g" "$MANIFEST_PATH"
+    replace "s/__PACKAGE__/${PACKAGE}/g" "$MANIFEST_PATH"
+else
+	# copy project template if in distribution
+	echo "Copying assets and resources ..."
+	cp -r "$BUILD_PATH/sample/." "$PROJECT_PATH"
+    echo "Updating config.xml ..."
+    replace "s/cordovaExample/${NAME}/g" "$MANIFEST_PATH"
+    replace "s/org.apache.cordova.example/${PACKAGE}/g" "$MANIFEST_PATH"
+fi

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/create.bat
----------------------------------------------------------------------
diff --git a/bbos/bin/create.bat b/bbos/bin/create.bat
new file mode 100644
index 0000000..ecb039a
--- /dev/null
+++ b/bbos/bin/create.bat
@@ -0,0 +1,33 @@
+@ECHO OFF
+goto comment
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+:comment
+
+IF NOT DEFINED JAVA_HOME GOTO MISSING
+FOR %%X in (ant.bat) do (
+    SET FOUND=%%~$PATH:X
+    IF NOT DEFINED FOUND GOTO MISSING
+)
+cscript %~dp0\create.js %*
+GOTO END
+:MISSING
+ECHO Missing one of the following:
+ECHO JDK: http://java.oracle.com
+ECHO Apache ant: http://ant.apache.org
+EXIT /B 1
+:END

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/create.js
----------------------------------------------------------------------
diff --git a/bbos/bin/create.js b/bbos/bin/create.js
new file mode 100644
index 0000000..ac4b083
--- /dev/null
+++ b/bbos/bin/create.js
@@ -0,0 +1,129 @@
+/*
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+*/
+
+/*
+ * create a cordova/blackberry project
+ *
+ * USAGE
+ *  ./create [path package appname]
+ */
+
+var fso = WScript.CreateObject('Scripting.FileSystemObject');
+
+function read(filename) {
+    var fso=WScript.CreateObject("Scripting.FileSystemObject");
+    var f=fso.OpenTextFile(filename, 1);
+    var s=f.ReadAll();
+    f.Close();
+    return s;
+}
+function write(filename, contents) {
+    var fso=WScript.CreateObject("Scripting.FileSystemObject");
+    var f=fso.OpenTextFile(filename, 2, true);
+    f.Write(contents);
+    f.Close();
+}
+function replaceInFile(filename, regexp, replacement) {
+    write(filename, read(filename).replace(regexp, replacement));
+}
+function downloadAntContrib(){
+    if (!fso.FileExists(ROOT + '\\bin\\templates\\project\\lib\\ant-contrib\\ant-contrib-1.0b3.jar')) {
+      // We need the .jar
+      var url = 'http://central.maven.org/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar';
+      var libsPath = ROOT + '\\bin\\templates\\project\\lib\\ant-contrib';
+      var savePath = libsPath + '\\ant-contrib-1.0b3.jar';
+      if (!fso.FileExists(savePath)) {
+        if(!fso.FolderExists(libsPath)) {
+            fso.CreateFolder(libsPath);
+        }
+        // We need the zip to get the jar
+        var xhr = WScript.CreateObject('MSXML2.XMLHTTP');
+        xhr.open('GET', url, false);
+        xhr.send();
+        if (xhr.status == 200) {
+          var stream = WScript.CreateObject('ADODB.Stream');
+          stream.Open();
+          stream.Type = 1;
+          stream.Write(xhr.ResponseBody);
+          stream.Position = 0;
+          stream.SaveToFile(savePath);
+          stream.Close();
+        } else {
+          WScript.Echo('Could not retrieve the antcontrib. Please download it yourself and put into the bin/templates/project/lib directory. This process may fail now. Sorry.');
+        }
+      }
+      var app = WScript.CreateObject('Shell.Application');
+      var source = app.NameSpace(savePath).Items();
+      var target = app.NameSpace(libsPath);
+      target.CopyHere(source, 256);
+    }
+}
+function exec(s, output) {
+    var o=shell.Exec(s);
+    while (o.Status == 0) {
+        WScript.Sleep(100);
+    }
+    //WScript.Echo("Command exited with code " + o.Status);
+}
+
+function cleanup() {
+    // Cleanup
+    if(fso.FolderExists(ROOT + '\\dist')) {
+        fso.DeleteFolder(ROOT + '\\dist', true);
+    }
+    if(fso.FolderExists(ROOT + '\\build')) {
+        fso.DeleteFolder(ROOT + '\\build');
+    }
+}
+
+var args = WScript.Arguments, PROJECT_PATH="example", 
+    PACKAGE="org.apache.cordova.example",
+    NAME="cordovaExample",
+    shell=WScript.CreateObject("WScript.Shell");
+    
+// working dir
+var ROOT = WScript.ScriptFullName.split('\\bin\\create.js').join('');
+
+if (args.Count() == 3) {
+    PROJECT_PATH=args(0);
+    PACKAGE=args(1);
+    NAME=args(2);
+}
+
+if(fso.FolderExists(PROJECT_PATH)) {
+    WScript.Echo("Project directory already exists! Please remove it first.");
+    WScript.Quit(1);
+}
+
+var MANIFEST_PATH=PROJECT_PATH+'\\www\\config.xml';
+var VERSION=read(ROOT+'\\VERSION').replace(/\r\n/,'').replace(/\n/,'');
+
+if(fso.FolderExists(ROOT+'\\framework')){
+    downloadAntContrib();
+    exec('ant.bat -f '+ ROOT +'\\build.xml create -Dproject.path="' + PROJECT_PATH + '"');
+    replaceInFile(MANIFEST_PATH, /__PACKAGE__/, PACKAGE);
+    replaceInFile(MANIFEST_PATH, /__ACTIVITY__/, NAME);
+}else{
+    // copy in the project template
+    exec('cmd /c xcopy '+ ROOT + '\\sample\\* '+PROJECT_PATH+' /I /S /Y');    
+    replaceInFile(MANIFEST_PATH, /org.apache.cordova.example/, PACKAGE);
+    replaceInFile(MANIFEST_PATH, /cordovaExample/, NAME);
+}
+
+cleanup();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/dist/README.md
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/dist/README.md b/bbos/bin/templates/dist/README.md
new file mode 100644
index 0000000..35a8393
--- /dev/null
+++ b/bbos/bin/templates/dist/README.md
@@ -0,0 +1,90 @@
+Cordova BlackBerry Distribution
+===============================
+
+Cordova BlackBerry is a framework that allows for Cordova based projects to be built for the [BlackBerry WebWorks Platform](https://bdsc.webapps.blackberry.com/html5/). Cordova based applications are, at the core, an application written with web technology: HTML, CSS and JavaScript.  The Cordova BlackBerry project allows web developers to develop applications targeting BlackBerry OS 5.0+ and PlayBook devices using the common [Cordova API](http://docs.phonegap.com).
+
+Apache Cordova is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator project. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+
+Pre-requisites
+--------------
+
+- Windows XP (32-bit) or Windows 7 (32-bit and 64-bit) or Mac OSX 10.6.4+
+- Java JDK 1.5
+- Apache ANT
+- [BlackBerry WebWorks SDK](https://bdsc.webapps.blackberry.com/html5/download/sdk)
+- PlayBook development requires [Adobe Air SDK](http://www.adobe.com/devnet/air/air-sdk-download.html)
+
+Directory Structure
+-------------------
+
+    sample/ ... Ready-to-run sample project
+    www/ ...... Barebones project assets
+
+### Ready-to-Run Sample Project
+
+The quickest way to get started with Cordova BlackBerry is to make a copy of the `sample` folder. The `sample` folder is a complete Cordova BlackBerry project including build scripts. Copy the `sample` folder to a desired location to create a new Cordova BlackBerry project.
+
+#### Building and Deploying a Project
+
+The build scripts included in the `sample` folder automate common tasks, such as compiling your project, and deploying it to simulators or devices.  To see what options are available, use:
+
+    $ cd C:\development\my_new_project
+    $ ant help
+
+Every command is in the form `ant TARGET COMMAND [options]`, where
+target is either `blackberry` or `playbook`.
+
+To build your project into a deployable application (.cod/.jad) file:
+
+    $ ant TARGET build
+
+To build your project and load it in a BlackBerry simulator:
+
+    $ ant TARGET load-simulator
+
+To build your project and load it onto a USB-attached device:
+
+    $ ant TARGET load-device
+
+### Barebones Project Assets
+
+The `www` folder contains the Cordova specific assets that must be available in a BlackBerry WebWorks project.  If you have an existing BlackBerry WebWorks project, copy/merge these files into your project to enable the project for Cordova.
+
+    ext/cordova.jar     - Native Cordova API implementations for smartphones.
+    ext-air/            - PlayBook Adobe Air extensions for Cordova API.
+    playbook/cordova.js - PlayBook Cordova JavaScript API.
+    cordova.js          - Smartphone Cordova JavaScript API.
+    config.xml          - BlackBerry WebWorks configuration file.
+    plugins.xml         - Cordova plugin configuration file.
+
+`config.xml` is a sample that you are free to alter or merge with an existing BlackBerry WebWorks configuration file. The necessary Cordova sections are contained in the `<feature>` and `<access>` sections:
+
+    <!-- Cordova API -->
+    <feature ... />
+    <feature ... />
+    
+    <!-- Cordova API -->
+    <access ... />
+    <access ... />
+
+Frequently Asked Questions
+--------------------------
+
+__Q: My simulator screen is not refreshing and I see blocks on a clicked position.__
+
+__A:__ Windows 7 and the simulator's graphics acceleration do not mix. On the simulator, set View -> Graphics Acceleration to Off.
+
+__Q: When I use the Cordova [Camera.getPicture API](http://docs.phonegap.com/phonegap_camera_camera.md.html#camera.getPicture) on my device, the camera never returns to my application.  Why does this happen?__
+
+__A:__ Cordova uses a JavaScript Extension to invoke the native camera application so the user can take a picture.  When the picture is taken, Cordova will close the native camera application by emulating a key injection (pressing the back/escape button).  On a physical device, users will have to set permissions to allow the application to simulate key injections.  Setting application permissions is device-specific.  On a Storm2 (9550), for example, select the BlackBerry button from the Home screen to get to All Applications screen, then Options > Applications > Your Application.  Then select Edit Default Permissions > Interactions > Input Simulation and set it to 'Allow'.  Save your changes.
+
+__Q: None of the Cordova APIs are working, why is that?__
+
+__A:__ You probably need to update your plugins.xml file in the root of your application.
+
+Additional Information
+----------------------
+- [Cordova home](http://incubator.apache.org/cordova/)
+- [Cordova Documentation](http://docs.phonegap.com)
+- [Cordova Issue Tracker](https://issues.apache.org/jira/browse/CB)
+- [BlackBerry WebWorks Framework](https://bdsc.webapps.blackberry.com/html5/)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/blackberry.xml
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/blackberry.xml b/bbos/bin/templates/project/blackberry.xml
new file mode 100644
index 0000000..ce3099f
--- /dev/null
+++ b/bbos/bin/templates/project/blackberry.xml
@@ -0,0 +1,456 @@
+<project default="help">
+<!-- 
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+-->    
+    <!-- LOAD PROPERTIES -->
+    
+    <property prefix="properties" file="project.properties" />
+    <property name="build.dir"    location="build" />
+    <property name="widget.dir"   location="${build.dir}/widget" />
+    <property name="code.sign"    value="false" />
+    <property name="generate.ext" value="cod" />
+    <property name="globalization" value="false" />
+    
+    <!-- BlackBerry WebWorks Packager directory is required. -->
+    <fail unless="properties.blackberry.bbwp.dir" message="Please specify BlackBerry WebWorks Packager directory using 'blackberry.bbwp.dir' in your 'project.properties' file." />
+
+    <!-- OS identification -->
+    <condition property="isMacOSX" else="false">
+        <and>
+            <os family="mac" />
+            <os family="unix" />
+        </and>
+    </condition>
+
+    <condition property="javaloader" value="${properties.blackberry.bbwp.dir}/bin/javaloader" else="${properties.blackberry.bbwp.dir}/bin/JavaLoader.exe">
+        <equals arg1="${isMacOSX}" arg2="true" />
+    </condition>
+
+    <condition property="bbwp" value="${properties.blackberry.bbwp.dir}/bbwp" else="${properties.blackberry.bbwp.dir}/bbwp.exe">
+        <equals arg1="${isMacOSX}" arg2="true" />
+    </condition>
+
+
+    <!-- LOAD DEVICE -->
+    
+    <target name="load-device" depends="package-app">
+        <bbwp code-sign="true" />
+        <exec executable="${javaloader}" dir="." failonerror="true">
+            <arg value="-u" />
+            <arg value="-w${properties.blackberry.sim.password}" />
+            <arg value="load" />
+            <arg file="${build.dir}/StandardInstall/${cod.name}.cod" />
+        </exec>
+    </target>
+
+    <!-- DEBUG-LOAD DEVICE -->
+    
+    <target name="debug-device" depends="package-app">
+        <bbwp code-sign="true" debug="true" />
+        <exec executable="${javaloader}" dir="." failonerror="true">
+            <arg value="-u" />
+            <arg value="-w${properties.blackberry.sim.password}" />
+            <arg value="load" />
+            <arg file="${build.dir}/StandardInstall/${cod.name}.cod" />
+        </exec>
+    </target>
+
+    <!-- LOAD SIMULATOR -->
+    
+    <target name="load-simulator" depends="build">
+    
+        <!-- Find the simulator directory -->
+        <set-simulator-dir />
+
+        <!-- Locate BBWP simulator directory. There may be multiple, so choose the first. -->
+        <path id="bbwp.sim.path">
+            <first>
+                <fileset dir="${properties.blackberry.bbwp.dir}/simpack">
+                    <include name="**/handhelds.manifest.txt" />
+                </fileset>
+            </first>
+        </path>
+        <dirname property="bbwp.sim.dir" file="${toString:bbwp.sim.path}" />
+
+        <!-- Simulator directory: Use sim.dir property if set in project.properties file. 
+             Otherwise, use bbwp simulator directory. -->
+        <condition 
+            property="simulator.dir" 
+            value="${properties.blackberry.sim.dir}" 
+            else="${bbwp.sim.dir}">
+                <available file="${properties.blackberry.sim.dir}" type="dir" />
+        </condition>
+        <echo message="Simulator directory=${simulator.dir}" />
+
+        <!-- Simulator binary: Use sim.bin property if set in project.properties file  
+             or try setting to 'defaultSimulator.bat' in simulator directory. -->
+        <condition 
+            property="sim.bin" 
+            value="${properties.blackberry.sim.bin}" 
+            else="defaultSimulator.bat">
+                <available file="${simulator.dir}/${properties.blackberry.sim.bin}"/>
+        </condition>
+
+        <!-- If simulator executable does not exist, use the first device listed 
+             in the 'handhelds.manifest.txt' file in the simulator directory. -->
+        <loadfile 
+            property="device.list"
+            srcFile="${simulator.dir}/handhelds.manifest.txt">
+            <filterchain>
+                <tokenFilter>
+                    <stringtokenizer/>
+                </tokenFilter>
+            </filterchain>
+        </loadfile>
+
+        <propertyregex property="device"
+            input="${device.list}"
+            regexp="^\d{4}"
+            select="\0"
+            override="true" />
+        <property name="device.bin" value="${device}.bat" />
+
+        <condition
+            property="simulator.bin" 
+            value="${sim.bin}"
+            else="${device.bin}">
+                <available file="${simulator.dir}/${sim.bin}" />
+        </condition>
+        
+        <echo message="Simulator executable=${simulator.dir}/${simulator.bin}" />
+
+        <!-- Close running simulators -->
+        <echo message="Closing all running simulators..." />
+        <exec executable="${simulator.dir}/fledgecontroller.exe" dir="${simulator.dir}" spawn="false">
+            <arg value="/execute=kill" />
+        </exec>
+
+        <!-- MDS directory: Use mds.dir property if set in project.properties file. 
+             Otherwise, use bbwp MDS directory. -->
+        <condition 
+            property="mds.dir" 
+            value="${properties.blackberry.mds.dir}" 
+            else="${properties.blackberry.bbwp.dir}/mds">
+                <available file="${properties.blackberry.mds.dir}" type="dir" />
+        </condition>
+        <echo message="MDS directory=${mds.dir}" />
+        
+        <copy todir="${simulator.dir}">
+            <fileset dir="${build.dir}/StandardInstall" includes="*.cod, *.cso, *.csl, *.alx" />
+        </copy>
+        <exec executable="${mds.dir}/run.bat" dir="${mds.dir}" spawn="true" />
+        <exec executable="${simulator.dir}/${simulator.bin}" dir="${simulator.dir}" spawn="true" />
+
+        <!-- Only invoke FledgeHook.exe if it is found. Newer versions of the
+             WebWorks SDK do not include it. -->
+        <if>
+            <available file="${properties.blackberry.bbwp.dir}/FledgeHook.exe" />
+            <then>
+                <exec executable="${properties.blackberry.bbwp.dir}/FledgeHook.exe" dir="${properties.blackberry.bbwp.dir}" spawn="true" />
+            </then>
+        </if>
+    </target>
+
+    <target name="debug-simulator" depends="package-app">
+        <bbwp code-sign="false" debug="true" />
+    
+        <!-- Find the simulator directory -->
+        <set-simulator-dir />
+
+        <!-- Locate BBWP simulator directory. There may be multiple, so choose the first. -->
+        <path id="bbwp.sim.path">
+            <first>
+                <fileset dir="${properties.blackberry.bbwp.dir}/simpack">
+                    <include name="**/handhelds.manifest.txt" />
+                </fileset>
+            </first>
+        </path>
+        <dirname property="bbwp.sim.dir" file="${toString:bbwp.sim.path}" />
+
+        <!-- Simulator directory: Use sim.dir property if set in project.properties file. 
+             Otherwise, use bbwp simulator directory. -->
+        <condition 
+            property="simulator.dir" 
+            value="${properties.blackberry.sim.dir}" 
+            else="${bbwp.sim.dir}">
+                <available file="${properties.blackberry.sim.dir}" type="dir" />
+        </condition>
+        <echo message="Simulator directory=${simulator.dir}" />
+
+        <!-- Simulator binary: Use sim.bin property if set in project.properties file  
+             or try setting to 'defaultSimulator.bat' in simulator directory. -->
+        <condition 
+            property="sim.bin" 
+            value="${properties.blackberry.sim.bin}" 
+            else="defaultSimulator.bat">
+                <available file="${simulator.dir}/${properties.blackberry.sim.bin}"/>
+        </condition>
+
+        <!-- If simulator executable does not exist, use the first device listed 
+             in the 'handhelds.manifest.txt' file in the simulator directory. -->
+        <loadfile 
+            property="device.list"
+            srcFile="${simulator.dir}/handhelds.manifest.txt">
+            <filterchain>
+                <tokenFilter>
+                    <stringtokenizer/>
+                </tokenFilter>
+            </filterchain>
+        </loadfile>
+
+        <propertyregex property="device"
+            input="${device.list}"
+            regexp="^\d{4}"
+            select="\0"
+            override="true" />
+        <property name="device.bin" value="${device}.bat" />
+
+        <condition
+            property="simulator.bin" 
+            value="${sim.bin}"
+            else="${device.bin}">
+                <available file="${simulator.dir}/${sim.bin}" />
+        </condition>
+        
+        <echo message="Simulator executable=${simulator.dir}/${simulator.bin}" />
+
+        <!-- Close running simulators -->
+        <echo message="Closing all running simulators..." />
+        <exec executable="${simulator.dir}/fledgecontroller.exe" dir="${simulator.dir}" spawn="false">
+            <arg value="/execute=kill" />
+        </exec>
+
+        <!-- MDS directory: Use mds.dir property if set in project.properties file. 
+             Otherwise, use bbwp MDS directory. -->
+        <condition 
+            property="mds.dir" 
+            value="${properties.blackberry.mds.dir}" 
+            else="${properties.blackberry.bbwp.dir}/mds">
+                <available file="${properties.blackberry.mds.dir}" type="dir" />
+        </condition>
+        <echo message="MDS directory=${mds.dir}" />
+        
+        <copy todir="${simulator.dir}">
+            <fileset dir="${build.dir}/StandardInstall" includes="*.cod, *.cso, *.csl, *.alx" />
+        </copy>
+        <exec executable="${mds.dir}/run.bat" dir="${mds.dir}" spawn="true" />
+        <exec executable="${simulator.dir}/${simulator.bin}" dir="${simulator.dir}" spawn="true" />
+
+        <!-- Only invoke FledgeHook.exe if it is found. Newer versions of the
+             WebWorks SDK do not include it. -->
+        <if>
+            <available file="${properties.blackberry.bbwp.dir}/FledgeHook.exe" />
+            <then>
+                <exec executable="${properties.blackberry.bbwp.dir}/FledgeHook.exe" dir="${properties.blackberry.bbwp.dir}" spawn="true" />
+            </then>
+        </if>
+    </target>
+    
+    <!-- PACKAGE-APP -->
+    
+    <target name="package-app" depends="generate-cod-name, clean">
+        <!-- Copy the WebWorks application -->
+        <mkdir dir="${widget.dir}" />
+        <copy todir="${widget.dir}" overwrite="true">
+            <fileset dir="www" >
+                <exclude name="ext-air/**"/>
+                <exclude name="ext-qnx/**"/>
+                <exclude name="res/resourceBundles/**" unless="${globalization}"/>
+            </fileset>
+        </copy>
+        
+        <!-- Package the WebWorks app by zipping the widget dir. -->
+        <mkdir dir="${build.dir}" />
+        <zip compress="false" destfile="${build.dir}/${cod.name}.zip" basedir="${widget.dir}" excludes="**/build/**,**/.settings/**,**/.project" />
+    </target>
+    
+    <!-- BUILD -->
+
+    <target name="build" depends="package-app">
+        <bbwp code-sign="${code.sign}" />
+    </target>
+
+    <!-- BBWP MACRO -->
+
+    <macrodef name="bbwp">
+        <attribute name="code-sign" default="false" />
+        <attribute name="debug" default="false" />
+        <sequential>
+            <!-- check if debug flag was passed in and set an appropriate flag for CLI exec of bbwp -->
+            <if>
+                <equals arg1="@{debug}" arg2="true" />
+                <then>
+                    <property name="debug.flag" value="/d" />
+                </then>
+                <else>
+                    <property name="debug.flag" value="" />
+                </else>
+            </if>
+
+            <!-- Ensure bbwp executable exists. -->
+            <property name="properties.blackberry.bbwp.bin" location="${bbwp}" /> 
+            <available file="${properties.blackberry.bbwp.bin}" property="properties.blackberry.bbwp.exists" />
+            <fail unless="properties.blackberry.bbwp.exists" message="Cannot find ${properties.blackberry.bbwp.bin}. Please edit 'blackberry.bbwp.dir' in your 'project.properties' file." />
+
+            <if>
+                <equals arg1="@{code-sign}" arg2="true" />
+                <then>
+                    <exec executable="${properties.blackberry.bbwp.bin}">
+                        <arg file="${build.dir}/${cod.name}.zip" />
+                        <arg value="/g" />
+                        <arg value="${properties.blackberry.sigtool.password}" />
+                        <arg line="${debug.flag} /o" />
+                        <arg file="${build.dir}" />
+                    </exec>
+                </then>
+                <else>
+                    <exec executable="${properties.blackberry.bbwp.bin}">
+                        <arg file="${build.dir}/${cod.name}.zip" />
+                        <arg line="${debug.flag} /o" />
+                        <arg file="${build.dir}" />
+                    </exec>
+                </else>
+            </if>
+        </sequential>
+    </macrodef>
+
+    <!-- CLEAN -->
+    
+    <target name="clean">
+        <delete dir="${build.dir}" />
+        <delete dir="${widget.dir}" />
+    </target>
+    
+    <!-- CLEAN DEVICE -->
+    
+    <target name="clean-device" depends="generate-cod-name">
+        <exec executable="${javaloader}">
+            <arg value="-usb" />
+            <arg value="erase" />
+            <arg value="-f" />
+            <arg value="${cod.name}.cod" />
+        </exec>
+    </target>
+    
+    <!-- CLEAN SIMULATOR -->
+    
+    <target name="clean-simulator">
+        <!-- Find the simulator directory -->
+        <set-simulator-dir />
+        
+        <exec executable="${simulator.dir}/clean.bat" dir="${simulator.dir}" />
+        
+        <delete>
+            <fileset dir="${simulator.dir}" includes="*.cod,*.csl,*.cso,*.debug,*.jar" />
+        </delete>
+    </target>
+    
+        <!-- HELPER TASKS -->
+    
+    <target name="generate-cod-name">
+        <xmlproperty file="www/config.xml" prefix="config.xml" />
+        <propertyregex property="cod.name"
+                       input="${config.xml.widget.name}"
+                       regexp="(\W+)"
+                       replace=""
+                       casesensitive="false"
+                       global="true"
+                       defaultValue="${config.xml.widget.name}" />
+        <echo message="Generated name: ${cod.name}.cod" />
+    </target>
+    
+        <!-- MACRO: SET SIMULATOR DIRECTORY -->
+    
+    <macrodef name="set-simulator-dir">
+        <sequential>
+            <!-- Locate BBWP simulator directory. There may be multiple, so choose the first. -->
+            <path id="bbwp.sim.path">
+                <first>
+                    <fileset dir="${properties.blackberry.bbwp.dir}/simpack">
+                        <include name="**/handhelds.manifest.txt" />
+                    </fileset>
+                </first>
+            </path>
+            <dirname property="bbwp.sim.dir" file="${toString:bbwp.sim.path}" />
+
+            <!-- Simulator directory: Use sim.dir property if set in project.properties file.
+                 Otherwise, use bbwp simulator directory. -->
+            <condition
+                property="simulator.dir"
+                value="${properties.blackberry.sim.dir}"
+                else="${bbwp.sim.dir}">
+                    <available file="${properties.blackberry.sim.dir}" type="dir" />
+            </condition>
+            <echo message="Simulator directory=${simulator.dir}" />
+        </sequential>
+    </macrodef>
+	
+	    <!-- HELP -->
+    
+    <target name="help">
+        <echo>
+NAME
+  ${ant.project.name}
+
+SYNOPSIS
+  ant TARGET COMMAND [-D&lt;argument&gt;=&lt;value&gt;]...
+
+DESCRIPTION
+  You can build and deploy your project to a device or simulator.
+  
+TARGETS
+  blackberry ........ Builds a cod file and deploys to a device or simulator
+ 
+  playbook .......... Builds a bar file and deploys to a device or simulator
+
+COMMANDS
+  help .............. Show this help menu.
+                        ant, ant help
+
+  load-device ....... Builds and deploys project to a connected USB device.
+                        ant load-device
+
+  load-simulator .... Builds and deploys project to default simulator.
+                        ant load-simulator
+
+  build ............. Compiles and packages the project for deployment.
+                        ant build
+                                              
+  clean ............. Remove all files from the build/ directory.
+                        ant clean
+
+  clean-device ...... Remove this project from the connected USB device.
+                        ant clean-device
+
+  clean-simulator ... Remove this project from the simulator (takes a while).
+                        ant clean-simulator
+
+GETTING STARTED
+  1. Edit project.properties
+
+  2. &lt;ant load-simulator&gt; to run the project on the simulator
+
+  3. Customize your project by editing www/config.xml
+
+  4. To run the project on a BlackBerry device, you will need to obtain
+     code signing keys from RIM. Once you have the key, a project is
+     installed by connecting a BlackBerry via USB and running
+     &lt;ant load-device&gt;.
+        </echo>
+    </target>
+</project>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/build.xml
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/build.xml b/bbos/bin/templates/project/build.xml
new file mode 100644
index 0000000..de9e56f
--- /dev/null
+++ b/bbos/bin/templates/project/build.xml
@@ -0,0 +1,154 @@
+<project name="Build and Deploy a Cordova BlackBerry WebWorks Project" default="help">
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+-->
+    <!-- LOAD ANT-CONTRIB LIBRARY -->
+
+    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+      <classpath>
+        <pathelement location="./lib/ant-contrib/ant-contrib-1.0b3.jar" />
+      </classpath>
+    </taskdef>
+
+    <!-- LOAD PROPERTIES -->
+
+    <property prefix="properties" file="project.properties" />
+    <property name="build.dir"    location="build" />
+    <property name="widget.dir"   location="${build.dir}/widget" />
+    <property name="code.sign"    value="false" />
+    <property name="globalization" value="false" />
+
+    <target name="blackberry" >
+        <property name="subant.file"  value="blackberry.xml" />
+    </target>
+
+    <target name="playbook" >
+        <property name="subant.file"  value="playbook.xml" />
+    </target>
+
+    <target name="load-device">
+        <subant target="load-device">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="load-simulator">
+        <subant target="load-simulator">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="debug-simulator">
+        <subant target="debug-simulator">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="debug-device">
+        <subant target="debug-device">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="build">
+        <subant target="build">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="clean">
+        <subant target="clean">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="clean-device">
+        <subant target="clean-device">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="package-app">
+        <subant target="package-app">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <target name="clean-simulator">
+        <subant target="clean-simulator">
+            <fileset dir="." includes="${subant.file}"/>
+        </subant>
+    </target>
+
+    <!-- HELP -->
+
+    <target name="help">
+        <echo>
+NAME
+  ${ant.project.name}
+
+SYNOPSIS
+  ant TARGET COMMAND [-D&lt;argument&gt;=&lt;value&gt;]...
+
+DESCRIPTION
+  You can build and deploy your project to a device or simulator.
+
+TARGETS
+  blackberry ........ Builds a cod file and deploys to a device or simulator
+
+  playbook .......... Builds a bar file and deploys to a device or simulator
+
+COMMANDS
+  help .............. Show this help menu.
+                        ant, ant help
+
+  load-device ....... Builds and deploys project to a connected USB device.
+                        ant TARGET load-device
+
+  load-simulator .... Builds and deploys project to default simulator.
+                        ant TARGET load-simulator
+
+  build ............. Compiles and packages the project for deployment.
+                        ant TARGET build
+
+  package-app ....... Packages the app into a WebWorks-compatible .zip file.
+                        ant TARGET package-app
+
+  clean ............. Remove all files from the build/ directory.
+                        ant TARGET clean
+
+  clean-device ...... Remove this project from the connected USB device.
+                        ant TARGET clean-device
+
+  clean-simulator ... Remove this project from the simulator (takes a while).
+                        ant TARGET clean-simulator
+
+GETTING STARTED
+  1. Edit project.properties
+
+  2. &lt;ant load-simulator&gt; to run the project on the simulator
+
+  3. Customize your project by editing www/config.xml
+
+  4. To run the project on a BlackBerry device, you will need to obtain
+     code signing keys from RIM. Once you have the key, a project is
+     installed by connecting a BlackBerry via USB and running
+     &lt;ant load-device&gt;.
+        </echo>
+    </target>
+</project>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/cordova/build
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/cordova/build b/bbos/bin/templates/project/cordova/build
new file mode 100755
index 0000000..4743782
--- /dev/null
+++ b/bbos/bin/templates/project/cordova/build
@@ -0,0 +1,28 @@
+#! /bin/sh
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+ANT=$(which ant)
+
+if [ "$1" == "--help" ]
+then
+  echo 'usage: build'
+  echo 'NOTE: please customize the project.properties file first before using this command!'
+  exit 0
+fi
+
+$ANT blackberry build

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/cordova/run
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/cordova/run b/bbos/bin/templates/project/cordova/run
new file mode 100755
index 0000000..4b8f8eb
--- /dev/null
+++ b/bbos/bin/templates/project/cordova/run
@@ -0,0 +1,35 @@
+#! /bin/sh
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+ANT=$(which ant)
+
+if [ "$1" == "--help" ]
+then
+  echo 'usage: run'
+  echo 'NOTE: please customize the project.properties file first before using this command!'
+  exit 0
+fi
+
+echo 'Do you have a BlackBerry device connected to your computer? (y/n)'
+read DEVICE
+if [ $DEVICE == "y" ]
+  then
+    $ANT blackberry debug-device
+else
+    $ANT blackberry load-simulator
+fi

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/playbook.xml
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/playbook.xml b/bbos/bin/templates/project/playbook.xml
new file mode 100644
index 0000000..7250cbc
--- /dev/null
+++ b/bbos/bin/templates/project/playbook.xml
@@ -0,0 +1,338 @@
+<project default="help">
+<!-- 
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+-->    
+    <!-- LOAD PROPERTIES -->
+    
+    <property prefix="properties" file="project.properties" />
+    <property name="build.dir"    location="build" />
+    <property name="widget.dir"   location="${build.dir}/widget" />
+    <property name="code.sign"    value="false" />
+    <property name="generate.ext"   value="cod" />
+    <property name="build.num.file" value="buildId.txt" />
+    
+    <!-- BlackBerry WebWorks Packager for Tablets directory is required. -->
+    <fail unless="properties.playbook.bbwp.dir" message="Please specify BlackBerry WebWorks Packager directory using 'playbook.bbwp.dir' in your 'project.properties' file." />
+
+    <!-- OS identification -->
+    <condition property="isMacOSX" else="false">
+        <and>
+            <os family="mac" />
+            <os family="unix" />
+        </and>
+    </condition>
+
+    <condition property="bbwp" value="${properties.playbook.bbwp.dir}/bbwp" else="${properties.playbook.bbwp.dir}/bbwp.exe">
+        <equals arg1="${isMacOSX}" arg2="true" />
+    </condition>
+
+    <condition property="blackberry-deploy" value="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/bin/blackberry-deploy" else="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/bin/blackberry-deploy.bat">
+        <equals arg1="${isMacOSX}" arg2="true" />
+    </condition>
+
+    <condition property="blackberry-debugtokenrequest" value="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/bin/blackberry-debugtokenrequest" else="${properties.playbook.bbwp.dir}/blackberry-tablet-sdk/bin/blackberry-debugtokenrequest.bat">
+        <equals arg1="${isMacOSX}" arg2="true" />
+    </condition>
+
+    <!-- LOAD DEVICE -->
+    
+    <target name="load-device" depends="package-app">
+        <bbwp code-sign="true" />
+
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-installApp" />
+            <arg value="-launchApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.device.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.device.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    
+    <!-- DEBUG-LOAD DEVICE -->
+    
+    <target name="debug-device" depends="package-app">
+        <if>
+            <equals arg1="${properties.playbook.device.pin}" arg2="" />
+            <then>
+                <echo>
+                    If you fill in the playbook.device.pin value you can use debug tokens!
+                    This means you won't have to worry about having a unique version in config.xml every time.
+                </echo>
+                <bbwp code-sign="true" debug="true" />
+            </then>
+            <else>
+                <generate-debug-token />
+                <bbwp code-sign="false" debug="true" />
+            </else>
+        </if>
+
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-installApp" />
+            <arg value="-launchApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.device.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.device.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    
+    <!-- LOAD SIMULATOR -->
+    
+    <target name="load-simulator" depends="build">
+
+        <echo>This tool will not open the simulator for you </echo>
+
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-installApp" />
+            <arg value="-launchApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.sim.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.sim.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    
+    <target name="debug-simulator" depends="package-app">
+        <bbwp code-sign="false" debug="true" />
+        <echo>This tool will not open the simulator for you </echo>
+
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-installApp" />
+            <arg value="-launchApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.sim.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.sim.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    <!-- PACKAGE-APP -->
+    
+    <target name="package-app" depends="generate-cod-name, clean">
+        <!-- Copy the WebWorks application -->
+        <mkdir dir="${widget.dir}" />
+        <copy todir="${widget.dir}" overwrite="true">
+            <fileset dir="www" >
+                <exclude name="ext/**"/>
+                <exclude name="ext-air/**"/>
+                <exclude name="res/resourceBundles/**"/>
+            </fileset>
+        </copy>
+        
+        <!-- Update WebWorks Packager with the AIR APIs -->
+        <copy todir="${properties.playbook.bbwp.dir}\ext" overwrite="true">
+            <fileset dir="www/ext-air" excludes="README.md" />
+        </copy>
+        
+        <!-- Package the WebWorks app by zipping the widget dir. -->
+        <mkdir dir="${build.dir}" />
+        <zip compress="false" destfile="${build.dir}/${cod.name}.zip" basedir="${widget.dir}" excludes="**/build/**,**/.settings/**,**/.project" />
+    </target>
+    
+    <!-- BUILD -->
+
+    <target name="build" depends="package-app">
+        <bbwp code-sign="${code.sign}" />
+    </target>
+
+    <!-- BBWP MACRO -->
+
+    <macrodef name="bbwp">
+        <attribute name="code-sign" default="false" />
+        <attribute name="debug" default="false" />
+        <sequential>
+            <!-- check if debug flag was passed in and set an appropriate flag for CLI exec of bbwp -->
+            <if>
+                <equals arg1="@{debug}" arg2="true" />
+                <then>
+                    <property name="debug.flag" value="-d" />
+                </then>
+                <else>
+                    <property name="debug.flag" value="" />
+                </else>
+            </if>
+            <buildnumber file="${build.num.file}" />
+            <if>
+                <equals arg1="@{code-sign}" arg2="true" />
+                <then>
+                    <exec executable="${bbwp}">
+                        <arg file="${build.dir}/${cod.name}.zip" />
+                        <arg value="-gcsk" />
+                        <arg value="${properties.playbook.sigtool.csk.password}" />
+                        <arg value="-gp12" />
+                        <arg value="${properties.playbook.sigtool.p12.password}" />
+                        <arg value="-o" />
+                        <arg file="${build.dir}" />
+                        <arg line="${debug.flag} -buildId" />
+                        <arg value="${build.number}" />
+                    </exec>
+                </then>
+                <else>
+                    <exec executable="${bbwp}">
+                        <arg file="${build.dir}/${cod.name}.zip" />
+                        <arg value="-o" />
+                        <arg file="${build.dir}" />
+                        <arg line="${debug.flag} -buildId" />
+                        <arg value="${build.number}" />
+                    </exec>
+                </else>
+            </if>
+        </sequential>
+    </macrodef>
+
+    <!-- install debug token" -->
+    <macrodef name="generate-debug-token">
+        <sequential>
+            <exec executable="${blackberry-debugtokenrequest}" dir="." failonerror="true">
+                <arg value="-storepass" />
+                <arg value="${properties.playbook.sigtool.csk.password}" />
+                <arg value="-deviceID" />
+                <arg value="0x${properties.playbook.device.pin}" />
+                <arg file="${properties.playbook.bbwp.dir}/debugtoken.bar" />
+            </exec>
+
+            <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+                <arg value="-installApp" />
+                <arg value="-launchApp" />
+                <arg value="-device" />
+                <arg value="${properties.playbook.device.ip}" />
+                <arg value="-password" />
+                <arg value="${properties.playbook.device.password}" />
+                <arg value="-package" />
+                <arg file="${properties.playbook.bbwp.dir}/debugtoken.bar" />
+            </exec>
+
+            <replaceregexp 
+                file="${properties.playbook.bbwp.dir}/bin/bbwp.properties" 
+                match='&lt;debug_token&gt;.*&lt;\/debug_token&gt;'
+                replace='&lt;debug_token&gt;${properties.playbook.bbwp.dir}/debugtoken.bar&lt;/debug_token&gt;'
+                byline='true'/>
+        </sequential>
+    </macrodef>
+
+    <!-- CLEAN -->
+    
+    <target name="clean">
+        <delete dir="${build.dir}" />
+        <delete dir="${widget.dir}" />
+    </target>
+    
+    <!-- CLEAN DEVICE -->
+    
+    <target name="clean-device" depends="generate-cod-name">
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-uninstallApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.device.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.device.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    
+    <!-- CLEAN SIMULATOR -->
+    
+    <target name="clean-simulator" depends="generate-cod-name">
+        <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+            <arg value="-uninstallApp" />
+            <arg value="-device" />
+            <arg value="${properties.playbook.sim.ip}" />
+            <arg value="-password" />
+            <arg value="${properties.playbook.sim.password}" />
+            <arg value="-package" />
+            <arg file="${build.dir}/${cod.name}.bar" />
+        </exec>
+    </target>
+    
+        <!-- HELPER TASKS -->
+    
+    <target name="generate-cod-name">
+        <xmlproperty file="www/config.xml" prefix="config.xml" />
+        <propertyregex property="cod.name"
+                       input="${config.xml.widget.name}"
+                       regexp="(\W+)"
+                       replace=""
+                       casesensitive="false"
+                       global="true"
+                       defaultValue="${config.xml.widget.name}" />
+        <echo message="Generated name: ${cod.name}.bar" />
+    </target>
+
+    <!-- HELP -->
+
+    <target name="help">
+        <echo>
+NAME
+  ${ant.project.name}
+
+SYNOPSIS
+  ant TARGET COMMAND [-D&lt;argument&gt;=&lt;value&gt;]...
+
+DESCRIPTION
+  You can build and deploy your project to a device or simulator.
+  
+TARGETS
+  blackberry ........ Builds a cod file and deploys to a device or simulator
+ 
+  playbook .......... Builds a bar file and deploys to a device or simulator
+
+COMMANDS
+  help .............. Show this help menu.
+                        ant, ant help
+
+  load-device ....... Builds and deploys project to a connected USB device.
+                        ant load-device
+
+  load-simulator .... Builds and deploys project to default simulator.
+                        ant load-simulator
+
+  build ............. Compiles and packages the project for deployment.
+                        ant build
+
+  clean ............. Remove all files from the build/ directory.
+                        ant clean
+
+  clean-device ...... Remove this project from the connected USB device.
+                        ant clean-device
+
+  clean-simulator ... Remove this project from the simulator (takes a while).
+                        ant clean-simulator
+
+GETTING STARTED
+  1. Edit project.properties
+
+  2. &lt;ant &lt;TARGET&gt; load-simulator&gt; to run the project on the simulator
+
+  3. Customize your project by editing www/config.xml
+
+  4. To run the project on a BlackBerry device, you will need to obtain
+     code signing keys from RIM. Once you have the key, a project is
+     installed by connecting a BlackBerry via USB and running
+     &lt;ant &lt;TARGET&gt; load-device&gt;.
+        </echo>
+    </target>
+</project>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/project.properties
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/project.properties b/bbos/bin/templates/project/project.properties
new file mode 100644
index 0000000..31a28a0
--- /dev/null
+++ b/bbos/bin/templates/project/project.properties
@@ -0,0 +1,100 @@
+# BlackBerry WebWorks Packager Directory
+#
+#   The BlackBerry WebWorks Packager (bbwp) is required for compiling and packaging
+#   BlackBerry WebWorks applications for deployment to a BlackBerry device
+#   or simulator.  The bbwp utility is installed with the standalone BlackBerry
+#   WebWorks SDK, and as part of the BlackBerry Web Plugin for Eclipse.
+#
+#   Please specify the location of the BlackBerry WebWorks Packager in your
+#   environment.
+#
+#   Typical location of bbwp for standalone BlackBerry WebWorks SDK installation:
+#     C:\Program Files (x86)\Research In Motion\BlackBerry Widget Packager
+#
+#   Typical location of bbwp for BlackBerry Web Plugin for Eclipse installation:
+#     C:\Eclipse-3.5.2\plugins\net.rim.browser.tools.wcpc_1.0.0.201003191451-126\wcpc
+#
+#   The ANT script is brittle and requires you to escape the backslashes.
+#     e.g. C:\some\path must be C:\\some\\path
+#
+#   Please remember to:
+#     - Double escape your backslahses (i.e. \ must be \\)
+#     - Do not add a trailing slash (e.g. C:\some\path)
+#
+blackberry.bbwp.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks Packager
+playbook.bbwp.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks SDK for TabletOS 2.1.0.6\\bbwp
+
+# (Optional) Simulator Directory
+#
+#   If sim.dir is not specified, the build script will use the simulator directory
+#   within the BlackBerry WebWorks Packager.
+#
+blackberry.sim.dir=C:\\Program Files\\Research In Motion\BlackBerry WebWorks Packager\\simpack\\6.0.0.227
+
+# (Optional) Simulator Binary
+#
+#   If sim.bin is not specified, the build script will attempt to use the default
+#   simulator in the simulator directory.
+#
+#blackberry.sim.bin=9700.bat
+
+# (Optional) MDS Directory
+#
+#   If mds.dir is not specified, the build script will attempt to use the MDS that
+#   is installed with the BlackBerry WebWorks Packager.
+#
+blackberry.mds.dir=C:\\Program Files\\Research In Motion\\BlackBerry WebWorks Packager\\mds
+
+# BlackBerry Code Signing Password
+#
+#   If you leave this field blank, then
+#   the signing tool will prompt you each time
+#
+blackberry.sigtool.password=
+
+# Playbook Code Signing Password
+#
+#   If you leave these fields blank, then
+#   signing will fail
+#
+playbook.sigtool.csk.password=
+playbook.sigtool.p12.password=
+
+# BlackBerry Simulator Password
+#
+#   If you leave this field blank, then
+#   you cannot deploy to simulator
+#
+blackberry.sim.password=
+
+# Playbook Simulator IP
+#
+#   If you leave this field blank, then
+#   you cannot deploy to simulator
+#
+playbook.sim.ip=
+
+# Playbook Simulator Password
+#
+#   If you leave this field blank, then
+#   you cannot deploy to simulator
+#
+playbook.sim.password=
+
+# Playbook Device IP
+#
+#   If you leave this field blank, then
+#   you cannot deploy to device
+#
+playbook.device.ip=
+
+# Playbook Device Password
+#
+#   If you leave this field blank, then
+#   you cannot deploy to device
+#
+playbook.device.password=
+# PlayBook Device PIN
+#
+#   Fill this value in to use debug tokens when debuging on the device
+playbook.device.pin=

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/LICENSE
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/LICENSE b/bbos/bin/templates/project/www/LICENSE
new file mode 100644
index 0000000..9f761f1
--- /dev/null
+++ b/bbos/bin/templates/project/www/LICENSE
@@ -0,0 +1,296 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+==============================================================
+This product also include the following software:
+==============================================================
+
+--------------------------------------------------------------
+jasmine from GitHub
+
+   https://github.com/pivotal/jasmine
+
+MIT-style license
+
+license available from:
+
+   https://github.com/pivotal/jasmine/blob/master/MIT.LICENSE
+   
+-----------------------------
+
+Copyright (c) 2008-2011 Pivotal Labs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+--------------------------------------------------------------
+commonjs tests from the commonjs organization at GitHub
+
+   https://github.com/commonjs/commonjs
+
+MIT-style license
+
+license available from:
+
+   https://github.com/commonjs/commonjs/blob/master/docs/license.html.markdown
+
+contributor list available from:
+
+   https://github.com/commonjs/commonjs/blob/master/docs/contributors.html.markdown
+
+-----------------------------
+
+Copyright 2009 Kevin Dangoor
+Copyright 2009 Ihab Awad
+Copyright 2009 Ash Berlin
+Copyright 2009 Aristid Breitkreuz
+Copyright 2009 Kevin Dangoor
+Copyright 2009 Daniel Friesen
+Copyright 2009 Wes Garland
+Copyright 2009 Kris Kowal
+Copyright 2009 Dean Landolt
+Copyright 2009 Peter Michaux
+Copyright 2009 George Moschovitis
+Copyright 2009 Michael O'Brien
+Copyright 2009 Tom Robinson
+Copyright 2009 Hannes Wallnoefer
+Copyright 2009 Mike Wilson
+Copyright 2009 Ondrej Zara
+Copyright 2009 Chris Zumbrunn
+Copyright 2009 Kris Zyp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/NOTICE
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/NOTICE b/bbos/bin/templates/project/www/NOTICE
new file mode 100644
index 0000000..4e02ca4
--- /dev/null
+++ b/bbos/bin/templates/project/www/NOTICE
@@ -0,0 +1,8 @@
+Apache Cordova
+Copyright 2012 The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org)
+
+This product includes software developed by
+Jasmine (https://github.com/pivotal/jasmine)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/README.md
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/README.md b/bbos/bin/templates/project/www/README.md
new file mode 100644
index 0000000..61256fe
--- /dev/null
+++ b/bbos/bin/templates/project/www/README.md
@@ -0,0 +1,30 @@
+# Apache Cordova Hello World Application
+
+> Simple Hello World application and test suite.
+
+## Run Application
+
+    /www/index.html
+
+## Run Tests
+
+    /www/spec.html
+
+## Versions and Tags
+
+The Hello World's version is directly tied to an Apache Cordova release.
+
+For example, Hello World `2.0.0` is compatible with Apache Cordova `2.0.0`.
+
+## How to Update
+
+Update to Apache Cordova x.x.x by:
+
+1. `www/index.html`
+    - Update `<script type="text/javascript" src="cordova-x.x.x.js"></script>`
+2. `VERSION`
+    - Update the version
+3. Commit and Tag
+    - `git commit -am "[app] Version x.x.x"`
+    - `git tag x.x.x`
+

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/VERSION
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/VERSION b/bbos/bin/templates/project/www/VERSION
new file mode 100644
index 0000000..834f262
--- /dev/null
+++ b/bbos/bin/templates/project/www/VERSION
@@ -0,0 +1 @@
+2.8.0

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/config.xml
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/config.xml b/bbos/bin/templates/project/www/config.xml
new file mode 100644
index 0000000..0dc6aaa
--- /dev/null
+++ b/bbos/bin/templates/project/www/config.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.
+-->
+<!--
+  Widget Configuration Reference:
+    http://docs.blackberry.com/en/developers/deliverables/15274/
+-->
+
+<widget xmlns="http://www.w3.org/ns/widgets"
+        xmlns:rim="http://www.blackberry.com/ns/widgets"
+	version="1.0.0.0">
+
+  <name>__NAME__</name>
+
+  <author>Your Name Here</author>
+
+  <description>
+       A sample Apache Cordova application that responds to the deviceready event.
+  </description>
+
+  <license href="http://opensource.org/licenses/alphabetical">
+  </license>
+
+  <!-- Cordova API -->
+  <feature id="blackberry.system" required="true" version="1.0.0.0" />
+  <feature id="org.apache.cordova" required="true" version="1.0.0" />
+  <feature id="blackberry.find" required="true" version="1.0.0.0" />
+  <feature id="blackberry.identity" required="true" version="1.0.0.0" />
+  <feature id="blackberry.identity.phone" required="true" version="1.0.0.0" />
+  <feature id="blackberry.pim.Address" required="true" version="1.0.0.0" />
+  <feature id="blackberry.pim.Contact" required="true" version="1.0.0.0" />
+  <feature id="blackberry.io.file" required="true" version="1.0.0.0" />
+  <feature id="blackberry.utils" required="true" version="1.0.0.0" />
+  <feature id="blackberry.io.dir" required="true" version="1.0.0.0" />
+  <feature id="blackberry.app" required="true" version="1.0.0.0" />
+  <feature id="blackberry.app.event" required="true" version="1.0.0.0" />
+  <feature id="blackberry.system.event" required="true" version="1.0.0.0"/>
+  <feature id="blackberry.widgetcache" required="true" version="1.0.0.0"/>
+  <feature id="blackberry.media.camera" />
+  <feature id="blackberry.ui.dialog" />
+  <feature id="blackberry.connection" />
+  <feature id="blackberry.bbm.platform" />
+  <feature id="blackberry.invoke.card" />
+  <feature id="blackberry.pim.contacts" />
+  <feature id="blackberry.ui.contextmenu" />
+  <feature id="blackberry.io.filetransfer" />
+  <feature id="blackberry.io" />
+  <feature id="blackberry.invoke" />
+  <feature id="blackberry.invoked" />
+  <feature id="blackberry.push" />
+  <feature id="blackberry.media.microphone" required="true" version="1.0.0.0"/>
+
+  <!-- Cordova API -->
+  <access subdomains="true" uri="file:///store/home" />
+  <access subdomains="true" uri="file:///SDCard" />
+
+  <!-- Expose access to all URIs, including the file and http protocols -->
+  <access subdomains="true" uri="*" />
+
+  <icon rim:hover="false" src="res/icon/blackberry/icon-80.png" />
+  <icon rim:hover="true" src="res/icon/blackberry/icon-80.png" />
+
+  <rim:loadingScreen backgroundColor="#CFCFCF"
+                     foregroundImage="res/screen/blackberry/screen-225.png"
+		     onFirstLaunch="true">
+    <rim:transitionEffect type="fadeOut" />
+  </rim:loadingScreen>
+
+  <content src="index.html" />
+
+  <rim:permissions>
+    <rim:permit>use_camera</rim:permit>
+    <rim:permit>read_device_identifying_information</rim:permit>
+    <rim:permit>access_shared</rim:permit>
+    <rim:permit>read_geolocation</rim:permit>
+    <rim:permit>record_audio</rim:permit>
+    <rim:permit>access_pimdomain_contacts</rim:permit>
+  </rim:permissions>
+
+</widget>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/css/index.css
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/css/index.css b/bbos/bin/templates/project/www/css/index.css
new file mode 100644
index 0000000..51daa79
--- /dev/null
+++ b/bbos/bin/templates/project/www/css/index.css
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+* {
+    -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
+}
+
+body {
+    -webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
+    -webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
+    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
+    background-color:#E4E4E4;
+    background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+    background-image:-webkit-gradient(
+        linear,
+        left top,
+        left bottom,
+        color-stop(0, #A7A7A7),
+        color-stop(0.51, #E4E4E4)
+    );
+    background-attachment:fixed;
+    font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
+    font-size:12px;
+    height:100%;
+    margin:0px;
+    padding:0px;
+    text-transform:uppercase;
+    width:100%;
+}
+
+/* Portrait layout (default) */
+.app {
+    background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */
+    position:absolute;             /* position in the center of the screen */
+    left:50%;
+    top:50%;
+    height:50px;                   /* text area height */
+    width:225px;                   /* text area width */
+    text-align:center;
+    padding:180px 0px 0px 0px;     /* image height is 200px (bottom 20px are overlapped with text) */
+    margin:-115px 0px 0px -112px;  /* offset vertical: half of image height and text area height */
+                                   /* offset horizontal: half of text area width */
+}
+
+/* Landscape layout (with min-width) */
+@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
+    .app {
+        background-position:left center;
+        padding:75px 0px 75px 170px;  /* padding-top + padding-bottom + text area = image height */
+        margin:-90px 0px 0px -198px;  /* offset vertical: half of image height */
+                                      /* offset horizontal: half of image width and text area width */
+    }
+}
+
+h1 {
+    font-size:24px;
+    font-weight:normal;
+    margin:0px;
+    overflow:visible;
+    padding:0px;
+    text-align:center;
+}
+
+.event {
+    border-radius:4px;
+    -webkit-border-radius:4px;
+    color:#FFFFFF;
+    font-size:12px;
+    margin:0px 30px;
+    padding:2px 0px;
+}
+
+.event.listening {
+    background-color:#333333;
+    display:block;
+}
+
+.event.received {
+    background-color:#4B946A;
+    display:none;
+}
+
+@keyframes fade {
+    from { opacity: 1.0; }
+    50% { opacity: 0.4; }
+    to { opacity: 1.0; }
+}
+ 
+@-webkit-keyframes fade {
+    from { opacity: 1.0; }
+    50% { opacity: 0.4; }
+    to { opacity: 1.0; }
+}
+ 
+.blink {
+    animation:fade 3000ms infinite;
+    -webkit-animation:fade 3000ms infinite;
+}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/b66b2ef1/bbos/bin/templates/project/www/img/logo.png
----------------------------------------------------------------------
diff --git a/bbos/bin/templates/project/www/img/logo.png b/bbos/bin/templates/project/www/img/logo.png
new file mode 100644
index 0000000..9519e7d
Binary files /dev/null and b/bbos/bin/templates/project/www/img/logo.png differ