Sorry about the red box, but we really need you to update your browser. Read this excellent article if you're wondering why we are no longer supporting this browser version. Go to Browse Happy for browser suggestions and how to update.

Push Service SDK Release Notes

New in version 1.2.0.29

General

Version 1.2.0.29 contains significant API Reference improvements, including more information and detailed explanations for several classes in the low-level and high-level APIs. For more information, see the Low-level API Reference and the High-level API Reference.

Fixed issues

Item

When a file larger than 8 KB was submitted to a BlackBerry Device Service PPG, the high-level and low-level sample Push Initiators were hanging because the exception returned couldn't be handled correctly. This was resolved, and an error message is now displayed when this error occurs. (319898)

When performing status queries in the high-level APIs for a PushApplication object with a mixed type of PUBLIC_AND_BDS_PUSH, ENTERPRISE_AND_BDS_PUSH, or PUBLIC_AND_ENTERPRISE_AND_BDS_PUSH, the wrong result was returned when a push message was sent to only one group of subscribers in the mixed type. For example, if the type was PUBLIC_AND_BDS_PUSH, and the push message was sent to the BlackBerry Device Service subscribers only, the status query result mistakenly indicated that there was no record of a push message sent to any subscribers. The status query now returns the correct result for mixed types. (308126)

Periods were added to the list of valid characters that you can use to specify a push application ID when you add a push application to the SDK. (306770)

Certain push management web pages from the high-level sample Push Initiator were not working properly in Internet Explorer. This problem was corrected.

The Javadoc for the StatusCode class from the SDK was improved to clearly indicate which status codes apply to the BlackBerry Internet Service PPG, the BlackBerry Enterprise Server PPG, and the BlackBerry Device Service PPG. (307982).

The SDK Data Access Objects (DAOs) were changed for the high-level APIs to use the JDBCTemplate from the Spring Framework instead of the deprecated SimpleJDBCTemplate.

The IdGeneratorImpl class was updated to restrict the length of the Push IDs that can be generated as well as the length of the domain prefix. (296025)

If the store push requests flag for the push application is set to true when you perform a status query using the high-level APIs, a local query to the SDK’s database is still performed. If the address that you specify in the status query can't be found, the operation returns an ADDRESS_ERROR (2002) error instead of an ADDRESS_NOT_FOUND (2003) error. This behavior is now consistent with what happens when you perform a status query, and the store push requests flag for the push application is set to false. When the flag is set to false, the query goes to the PPG instead of the local database.

New in version 1.2

General

  • Added support to the SDK for the BlackBerry Device Service to act as the Push Proxy Gateway (PPG). The addition of the BlackBerry Device Service provides support for BlackBerry 10 devices in enterprise environments.
  • Removed all APIs and properties from the Push Service SDK 1.0 that were marked deprecated.
  • Renamed the Debug Portal application to the high-level sample Push Initiator.
  • Renamed the Sample Push Initiator application to the low-level sample Push Initiator, and converted the sample Push Initiator to use the low-level APIs instead of the high-level APIs.
  • Removed the PapNotify and PushSDK helper web applications because the low-level and high-level sample Push Initiators have the same functionality.
  • Removed the sample push-enabled application from the Push Service SDK. We include sample push-enabled applications in the following SDKs as separate downloads.

    You can also use the BlackBerry WebWorks SDK to develop a push-enabled application for BlackBerry 7 and earlier devices. For more information, see the API Reference.

Updated third party libraries

The following third party libraries are updated to more recent versions.

Component

Old Version

New Version

SLF4J

1.5.11

Upgraded to 1.6.4

Spring Framework

2.5.6.SEC02 (3.0.5.RELEASE)

Upgrade to 3.1.2.RELEASE

Apache Commons Codec

1.3/1.3.2

Upgraded to 1.6

Apache Commons IO

1.4

Upgraded to 2.2

CGLIB

2.2

Upgraded to 2.2.2

Apache Commons Pool

1.5.4

Upgraded to 1.5.5

Apache Commons FileUpload

1.2.1

Upgraded to 1.2.2

MySQL

5.1.34

Not shipped but support upgraded to 5.5.xx

AspectJ

1.6.4

Upgrade to 1.6.10

Apache Tomcat Binaries

6.0.32

Upgraded to 7.0.26

EHCACHE

2.1.0

Upgraded to 2.5

MySQL Connector/J

5.1.6

Not shipped but 5.5.x Connector/J required

ASM

3.1

Upgraded to 3.3.1

OJDBC6

11.2.0.1.0

Upgraded to 11.2.0.3

DWR

2.0.6

Upgraded to 3.0.RC2

jQuery

1.5.1

Upgraded to 1.8.2

jQuery UI

1.8.14

Upgraded to 1.9

jQuery Form Plugin

2.12

Upgraded to 2.83

jQuery Timepicker Addon

0.9.5

Upgraded to 1.0.5

jQuery BlockUI

--

2.50 *new*

jackson-core-asl

1.8.5

Upgraded to 1.9.2

jackson-mapper-asl

1.8.5

Upgraded to 1.9.2

Setup application

  • A new installation option is available to install and configure the low-level sample Push Initiator. The setup application prompts you to deploy the high-level or low-level sample Push Initiator, or both at the same time.
  • The setup application accepts a BlackBerry Device Service URL, and can configure the SDK to use the BlackBerry Device Service as the PPG.
  • The setup application can run in a Mac OS X environment.
  • The setup application no longer creates a helper applications folder. For the SDK distribution for the high-level APIs, the setup application creates the pushsdk-high-level folder, and the high-level sample Push Initiator is in the high-level-sample folder. For the SDK distribution for the low-level APIs, the setup application creates the pushsdk-low-level folder, and the low-level sample Push Initiator is in the low-level-sample folder.
  • The setup application installs Apache Tomcat 7.0.26 (updated from 6.0.32).

Configuration files

  • In the PushSDK.properties file, the bds.ppg.address property is available.
  • The use.public.push and ppg.address properties were marked as deprecated in the previous version, and are now removed because they are no longer supported.
  • The dtd.declaration.enterprise property is updated to match what the enterprise PPGs actually use. The BlackBerry Enterprise Server or the BlackBerry Device Service can act as enterprise PPGs.
  • In the pushsdk-commons-context.xml file, the httpClient bean definition includes a new property that determines whether the HttpClientImpl class validates SSL certificates. The new default behavior of the class is to validate SSL certificates. Note that setting this value to false has a global side affect on the JVM. For more information about the HttpClientImpl class, see the Low-level API Reference and the High-level API Reference.
    <bean id="httpClient"
      class="net.rim.pushsdk.commons.http.HttpClientImpl">
      <property name="pushSDKProperties" ref="pushSDKProperties" />
      <property name="validateSSLCertificates">
        <value>true</value>
      </property>
    </bean>

Database scripts

In the database-scripts folder, in the mysql and oracle subfolders, database migration scripts are available for you to migrate your database from earlier versions of the SDK to version 1.2.0.x. The migration scripts automate the task of migrating the SDK database for the following upgrade scenarios:
  • From version 1.1.0.6 to version 1.2.0.x
  • In stages from versions 1.0 to 1.0.1, and then 1.0.1 to 1.1, and then 1.1 to 1.2.

PAP component

  • A new enumeration is added to the control subpackage called PPGType.
    /**
     * A public (BIS) type of push application.
     */
    PUBLIC_PUSH("Public Push"),
    
    /**
     * An enterprise (BES) type of push application.
     */
    ENTERPRISE_PUSH("Enterprise Push"),
    
    /**
     * An enterprise (BDS) type of push application.
     */
    BDS_PUSH("BDS Push");

    This enumeration defines the different PPGs that you can send a push message to. The BlackBerry Internet Service, the BlackBerry Enterprise Server, or the BlackBerry Device Service can act as the PPG.

  • The <*>MessageControl classes (for example, PushMessageControl), inlcude the following functional changes:
    • The constructors are changed to use the new PPGType enumeration to indicate which PPG is being targeted.
    • The constructors that previously used a Boolean are deprecated.
  • The StatusCode class is updated to include new status codes returned by the BlackBerry Device Service.
  • The <*>Response classes, and ResultNotification class, have the new productName property that is extracted from the PPG PAP XML, if present.

Commons component

The default behavior of the HttpClientImpl class is changed. In previous versions of the SDK, the implementation implicitly trusted all SSL certificates by overriding the TrustManager in the JVM. The new behavior of the class validates SSL certificates. To obtain the previous behavior, you can set a validateSSLCertificates boolean flag to false.

Using this class to not validate all SSL certificates has a global side effect within the JVM. All other applications deployed in the same JVM automatically inherit this behavior. We recommend that you only configure this class to not validate SSL certificates in an isolated environment, or if you fully understand the impact to other applications in the same JVM that rely on SSL.

subscription package (Core component)

The SubscriberType enumeration in the subscription subpackage is modified to include a type for BlackBerry Device Service subscribers.

pushappmgmt package (Core component)

  • The PushApplicationType enumeration is modified to include a type of BDS_PUSH for the BlackBerry Device Service.
  • The PushApplication class includes the following changes:
    • username property is renamed to enterpriseUsername.
    • bdsUsername property is added.
    • bdsPassword property is added.
    • bdsNotifyUrl property is added.
  • The PushApplicationService interface is modified to include several new APIs so that you can change the type for the PushApplication object after you create it.
  • The PushApplicationService interface is modified to include a new API so that you change the credentials for a PushApplication object with a type of BDS_PUSH or a mixed type that includes BDS_PUSH (for example, PUBLIC_AND_BDS_PUSH).

Debug Portal

  • The Debug Portal is renamed to the high-level sample Push Initiator.
  • The sample Push Initiator includes an updated look and feel, and makes use of AJAX to provide an easier and nicer to use interface.
  • Functionality is added and/or modified to support the BlackBerry Device Service PPG, such as the ability to add and update a PushApplication object with a type of BDS_PUSH or a mixed type that includes BDS_PUSH (for example, PUBLIC_AND_BDS_PUSH), send push requests, status query messages to it and receive result notifications.

Sample Push Initiator

  • The Sample Push Initiator is re-purposed as a new sample Push Initiator that demonstrates the use of the low-level APIs, and is renamed to the low-level sample Push Initiator. In previous versions of the SDK, the Sample Push Initiator was a high-level API sample application.
  • The new low-level sample Push Initiator demonstrates initiating a push request, status query request, cancel request, and subscriber query request. The sample also demonstrates accepting subscription requests from the device, and result notifications from the PPG.