4

I've been searching the web for a Apache Shindig Java port to Google App Engine, but I only found a Python version. Is there a Java port? or are there blocking dependencies that make it very hard to port Apache Shindig to Google App Engine (besides the database part)?

Hilbrand Bouwkamp
  • 13,509
  • 1
  • 45
  • 52

2 Answers2

3

Unfortunately, there is currently no GAE Java port of Apache Shindig. However, you do have options:

  • If you consider porting to the Java port yourself, I also recommend starting from the existing Python-GAE port or the PHP-non-GAE port instead of from the Java-non-GAE port.
  • Additionally, you may consider running the Python-GAE port using Jython on the GAE Java SDK, instead of porting your own version from scratch.

Read below for more details:

Use Jython to port Python-GAE to java-GAE:

The main advantages of using the Jython abstraction are as follows:

  • You may have a working Java-GAE SDK version up and running sooner rather than later.
  • You will still have the option to port the Jython code to pure Java in the future, in small iterations, as your business goals allow.

On a side note, I have a version of the JQuery Form Builder Plugin running on the Java SDK:

  • Originally written in PHP for the LAMP stack
  • Running on the GAE-Java SDK
  • Using the Querces PHP Servlet to compile the PHP to Java.
  • The original Form Builder PHP code can access a Java DAO class that I wrote as a wrapper around the data store.

Jython is a similar abstraction that may help in a similar manner and avoid the need to rewrite most of the code. Read more below about Jython development on Google App Engine: Jython Development on Google App Engine

Avoid trying to port from Java-non-GAE to Java-GAE

The Java version of the OpenSocial application is multithreaded, so it will have a lot of trouble running on App Engine. Moreover, it's definitely easier to port the PHP version to Java, as App Engine doesn't support multi-threading at this time, and the PHP version is most likely not multi-threaded.

As a result, this is why the Python OpenSocial port's roots belong to the PHP version of Shindig/OpenSocial and not the Java port. I suggest following their lead and doing the same, if you do decide to port from the non-GAE version.

Community
  • 1
  • 1
jamesmortensen
  • 33,636
  • 11
  • 99
  • 120
  • Porting from php/phyton is an option. The disadvantage is that I need to maintain the code whenever changes are made to opensocial. If I started with the Java version I get a large code base, but it needs to be modified to remove the threading and probably also implement a GAE compatible database layer. I just don't know if it's more work to port or rewrite from php and if a port deviates so much from the original implementation that a rewrite will get as much maintenance as a port for future changes. So far it seems I just have to go and start somewhere. – Hilbrand Bouwkamp Jan 18 '11 at 10:29
  • Did you ever get a satisfactory resolution on this? What did you do? – Pandalover Oct 31 '11 at 16:45
0

There doesn't seem to be a project which specifically runs on Java on the Appengine. However it should be possible to port the current java version to Appengine as there is a python version which has the same limitations.

TomHastjarjanto
  • 5,386
  • 1
  • 29
  • 41