I’m looking into creating a Usergrid 2.x release, both in source-code and
binary (convenience release) form.

Problem is, Usergrid 2.x depends on some patched dependencies. These are
Java WNS, for sending Windows Phone push notifications, and Astyanax for
Cassandra storage.  We need the patched versions to work around critical
bugs in these components.

Currently, these two components are stored as JAR files in local Maven
repositories within our Git repo and cannot be included in our source code
release.

Possible solutions to this problem:

1. Wait for component owners to accept our patches, make releases and
publish to Maven Central
We’ve been waiting for a long time and may have to wait longer.
Not really an acceptible solution.

2. Wait for somebody else to publish their own patched version of these
components to Maven Central
Somebody else can fork and public patched builds to Maven Central with a
different groupId.
Are there Apache Policy restrictions that prevent us from doing this?

3. With our source code release: include docs that explain how to patch and
build those components.
This is very annoying and inconvenient for our users.
Are there Apache Policy restrictions that prevent us from doing this?
Would be better to have use Git to get our release tag.

I believe that the problems with Java WNS and Astyanax are not really a
problem for our binary (convenience) release. The dependencies above would
simply be build into the ROOT.war and would not cause problems for
end-users.

At this point I think a combination of solution #2 and #3 is best for our
end-users. We would depend on patched versions of the components published
to Maven Central by somebody (Apigee) *and* we would include instructions
on how to recreate those components from the original sources.

More food for thought: I’m thinking about the following layout for our
binary release:

+- apache-usergrid-2.1.0
   - README.txt
   - webapps/ROOT.war
   - lib/usergrid-java-sdk.jar
   - lib/usergrid-deployment-example.properties
   - lib/usregrid.js

Thoughts?

Thanks,
Dave

Reply via email to