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.

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.

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.

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.

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.