You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2012/09/26 08:13:21 UTC
[1/8] git commit: added blackberry project parser + specs in prep for
bb support
Updated Branches:
refs/heads/cordova-client 458f09c4f -> a533afb6a
added blackberry project parser + specs in prep for bb support
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/commit/a533afb6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/tree/a533afb6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/diff/a533afb6
Branch: refs/heads/cordova-client
Commit: a533afb6a6b717f0c4dc2d3ca3b6e2a994e6142f
Parents: 947fa69
Author: Fil Maj <ma...@gmail.com>
Authored: Tue Sep 25 23:12:26 2012 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Tue Sep 25 23:12:26 2012 -0700
----------------------------------------------------------------------
.../projects/native/blackberry/blackberry.xml | 356 +
spec/fixtures/projects/native/blackberry/build.xml | 144 +
.../projects/native/blackberry/cordova/debug | 53 +
.../projects/native/blackberry/cordova/emulate | 40 +
.../projects/native/blackberry/playbook.xml | 283 +
.../projects/native/blackberry/project.properties | 128 +
spec/fixtures/projects/native/blackberry/qnx.xml | 288 +
.../projects/native/blackberry/www/LICENSE | 296 +
.../fixtures/projects/native/blackberry/www/NOTICE | 8 +
.../projects/native/blackberry/www/README.md | 30 +
.../projects/native/blackberry/www/VERSION | 1 +
.../projects/native/blackberry/www/config.xml | 85 +
.../native/blackberry/www/cordova-2.1.0.js | 6675 ++++++++++++++
.../www/ext-air/Cordova_Network/library.xml | 40 +
.../src/org/apache/cordova/network/Network.as | 80 +
.../native/blackberry/www/ext-qnx/readme.md | 1 +
.../native/blackberry/www/ext/cordova.2.1.0.jar | Bin 0 -> 171380 bytes
.../projects/native/blackberry/www/index.html | 43 +
.../projects/native/blackberry/www/js/index.js | 49 +
.../projects/native/blackberry/www/json2.js | 482 +
.../blackberry/www/playbook/cordova-2.1.0.js | 7014 +++++++++++++++
.../projects/native/blackberry/www/plugins.xml | 34 +
.../native/blackberry/www/qnx/cordova-2.1.0.js | 5240 +++++++++++
.../projects/native/blackberry/www/spec.html | 68 +
spec/metadata/blackberry_parser.spec.js | 52 +
src/metadata/blackberry_parser.js | 21 +
26 files changed, 21511 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/blackberry.xml
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/blackberry.xml b/spec/fixtures/projects/native/blackberry/blackberry.xml
new file mode 100644
index 0000000..3555f59
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/blackberry.xml
@@ -0,0 +1,356 @@
+<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" />
+
+ <!-- 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>
+
+ <!-- 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" excludes="ext-air/**,playbook/**,ext-qnx/**,qnx/**"/>
+ </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<argument>=<value>]...
+
+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. <ant load-simulator> 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
+ <ant load-device>.
+ </echo>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/build.xml
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/build.xml b/spec/fixtures/projects/native/blackberry/build.xml
new file mode 100644
index 0000000..44c93be
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/build.xml
@@ -0,0 +1,144 @@
+<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" />
+
+ <target name="blackberry" >
+ <property name="subant.file" value="blackberry.xml" />
+ </target>
+
+ <target name="playbook" >
+ <property name="subant.file" value="playbook.xml" />
+ </target>
+
+ <target name="qnx" >
+ <property name="subant.file" value="qnx.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-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="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<argument>=<value>]...
+
+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
+
+ qnx ............... 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
+
+ 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. <ant load-simulator> 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
+ <ant load-device>.
+ </echo>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/cordova/debug
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/cordova/debug b/spec/fixtures/projects/native/blackberry/cordova/debug
new file mode 100755
index 0000000..2b10cff
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/cordova/debug
@@ -0,0 +1,53 @@
+#! /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 [ -z "$1" ]
+then
+ echo 'usage: debug <platform>'
+ echo 'where <platform> can be one of "blackberry" or "playbook"'
+ echo 'NOTE: please customize the project.properties file first before using this command!'
+ exit 0
+fi
+
+if [ "$1" == "blackberry" ]
+then
+ echo 'Do you have a BlackBerry smartphone connected to your computer? (y/n)'
+ read DEVICE
+ if [ $DEVICE == "y" ]
+ then
+ $ANT blackberry debug-device
+ else
+ $ANT blackberry load-simulator
+ fi
+else
+ if [ "$1" == "playbook" ]
+ then
+ echo 'Do you have a BlackBerry Playbook connected to your computer? (y/n)'
+ read DEVICE
+ if [ $DEVICE == "y" ]
+ then
+ $ANT playbook debug-device
+ else
+ $ANT playbook load-simulator
+ fi
+ else
+ echo 'Platform not recognized! Please use one of "blackberry" or "playbook" for the platform parameter.'
+ fi
+fi
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/cordova/emulate
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/cordova/emulate b/spec/fixtures/projects/native/blackberry/cordova/emulate
new file mode 100755
index 0000000..dc368b5
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/cordova/emulate
@@ -0,0 +1,40 @@
+#! /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 [ -z "$1" ]
+then
+ echo 'usage: emulate <platform>'
+ echo 'where <platform> can be one of "blackberry" or "playbook"'
+ echo 'NOTE: please customize the project.properties file first before using this command!'
+ exit 0
+fi
+
+if [ "$1" == "blackberry" ]
+then
+ $ANT blackberry load-simulator
+else
+ if [ "$1" == "playbook" ]
+ then
+ $ANT playbook load-simulator
+ else
+ echo 'Platform not recognized! Please use one of "blackberry" or "playbook" for the platform parameter.'
+ fi
+fi
+
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/playbook.xml
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/playbook.xml b/spec/fixtures/projects/native/blackberry/playbook.xml
new file mode 100644
index 0000000..1e4b4b4
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/playbook.xml
@@ -0,0 +1,283 @@
+<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>
+
+ <!-- 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">
+ <bbwp code-sign="true" debug="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>
+
+ <!-- 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>
+
+ <!-- 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="playbook/**"/>
+ </fileset>
+ </copy>
+
+ <!-- Overwrite the cordova js with the playbook specific cordova js -->
+ <copy todir="${widget.dir}" overwrite="true">
+ <fileset dir="www/playbook">
+ <include name="*.js" />
+ </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>
+
+ <!-- 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<argument>=<value>]...
+
+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. <ant <TARGET> load-simulator> 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
+ <ant <TARGET> load-device>.
+ </echo>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/project.properties
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/project.properties b/spec/fixtures/projects/native/blackberry/project.properties
new file mode 100644
index 0000000..67213c2
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/project.properties
@@ -0,0 +1,128 @@
+# 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
+qnx.bbwp.dir=/Developer/SDKs/Research In Motion/BlackBerry 10 WebWorks SDK 1.0.1.17
+
+# (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=
+
+# BB10 Code Signing Password
+qnx.sigtool.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=
+
+# QNX Simulator IP
+#
+# If you leave this field blank, then
+# you cannot deploy to simulator
+#
+qnx.sim.ip=
+
+# QNX Simulator Password
+#
+# If you leave this field blank, then
+# you cannot deploy to simulator
+#
+qnx.sim.password=
+
+# QNX Device IP
+#
+# If you leave this field blank, then
+# you cannot deploy to device
+#
+qnx.device.ip=
+
+# QNX Device Password
+#
+# If you leave this field blank, then
+# you cannot deploy to device
+#
+qnx.device.password=
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/qnx.xml
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/qnx.xml b/spec/fixtures/projects/native/blackberry/qnx.xml
new file mode 100644
index 0000000..2952f54
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/qnx.xml
@@ -0,0 +1,288 @@
+<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.qnx.bbwp.dir" message="Please specify BlackBerry WebWorks Packager directory using 'qnx.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.qnx.bbwp.dir}/bbwp" else="${properties.qnx.bbwp.dir}/bbwp.exe">
+ <equals arg1="${isMacOSX}" arg2="true" />
+ </condition>
+
+ <condition property="blackberry-deploy" value="${properties.qnx.bbwp.dir}/dependencies/tools/bin/blackberry-deploy" else="${properties.qnx.bbwp.dir}/dependencies/tools/bin/blackberry-deploy.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.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${cod.name}.bar" />
+ </exec>
+ </target>
+
+ <!-- DEBUG-LOAD DEVICE -->
+
+ <target name="debug-device" depends="package-app">
+ <bbwp code-sign="true" debug="true" />
+
+ <exec executable="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-installApp" />
+ <arg value="-launchApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${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.qnx.sim.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.sim.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/simulator/${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="playbook/**"/>
+ </fileset>
+ </copy>
+
+ <!-- Overwrite the cordova js with the qnx specific cordova js -->
+ <copy todir="${widget.dir}" overwrite="true">
+ <fileset dir="www/qnx">
+ <include name="*.js" />
+ </fileset>
+ </copy>
+
+ <!-- Update WebWorks Packager with the QNX APIs -->
+ <copy todir="${properties.qnx.bbwp.dir}\Framework\ext" overwrite="true">
+ <fileset dir="www/ext-qnx" excludes="readme.md" />
+ </copy>
+
+ <!-- copy over the webworks.js file -->
+ <copy todir="www/js" overwrite="true">
+ <fileset dir="${properties.qnx.bbwp.dir}\Framework\clientFiles">
+ <include name="webworks*.js" />
+ </fileset>
+ <globmapper from="webworks*.js" to="webworks.js" />
+ </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="-g" />
+ <arg value="${properties.qnx.sigtool.password}" />
+ <arg value="-o" />
+ <arg file="${build.dir}" />
+ <arg line="${debug.flag} -b" />
+ <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}" />
+ </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="${blackberry-deploy}" dir="." failonerror="true">
+ <arg value="-uninstallApp" />
+ <arg value="-device" />
+ <arg value="${properties.qnx.device.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.device.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/device/${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.qnx.sim.ip}" />
+ <arg value="-password" />
+ <arg value="${properties.qnx.sim.password}" />
+ <arg value="-package" />
+ <arg file="${build.dir}/simulator/${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<argument>=<value>]...
+
+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. <ant <TARGET> load-simulator> 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
+ <ant <TARGET> load-device>.
+ </echo>
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/www/LICENSE
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/www/LICENSE b/spec/fixtures/projects/native/blackberry/www/LICENSE
new file mode 100644
index 0000000..9f761f1
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/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/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/www/NOTICE
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/www/NOTICE b/spec/fixtures/projects/native/blackberry/www/NOTICE
new file mode 100644
index 0000000..4e02ca4
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/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/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/www/README.md
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/www/README.md b/spec/fixtures/projects/native/blackberry/www/README.md
new file mode 100644
index 0000000..61256fe
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/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/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/www/VERSION
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/www/VERSION b/spec/fixtures/projects/native/blackberry/www/VERSION
new file mode 100644
index 0000000..7ec1d6d
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/www/VERSION
@@ -0,0 +1 @@
+2.1.0
http://git-wip-us.apache.org/repos/asf/incubator-cordova-labs/blob/a533afb6/spec/fixtures/projects/native/blackberry/www/config.xml
----------------------------------------------------------------------
diff --git a/spec/fixtures/projects/native/blackberry/www/config.xml b/spec/fixtures/projects/native/blackberry/www/config.xml
new file mode 100644
index 0000000..c196817
--- /dev/null
+++ b/spec/fixtures/projects/native/blackberry/www/config.xml
@@ -0,0 +1,85 @@
+<?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" id="cordovaExample">
+
+ <name>cordovaExample</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.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.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:permissions>
+
+</widget>