Today, I came up with 280 Slides, a web presentation design editor. I was shocked by its pretty looking Mac-like UI at the first glance.
And it is great to hear the news that Cappuccino and Objective-J will be open-sourced at http://objective-j.org/ in the near future.
Eclipse RAP team has just released its 1.0.
The RAP project enables developers to build rich, Ajax-enabled Web applications by using the Eclipse development model, plug-ins with the well known Eclipse workbench extenstion points, JFace, and a widget toolkit with SWT API (using qooxdoo for the client-side presentation). The project has graduated from incubation and released its 1.0 release.
In fact, Eclipse RAP and Java2Script have a lot in common. Both are based on SWT API and have goals to provide ways for developers to share the same base of code for products that deploy to the web and the desktop. Here is overview of Eclipse RAP. And you can also read Java2Script’s overview for comparisons.
And you can also check out Eclipse RAP demo to get more details. It’s interesting to see that RAP and Java2Script have 2 very similar demos: RAP’s RWT Control Demo and Java2Script’s SWT Control Examples.
More discussion may be found at ajaxian.com.
Related link: InfoWorld Eclipse offers AJAX server
Here comes Java2Script 1.0.0 final release!
Please visit http://j2s.sourceforge.net/ for more information.
4. Support incremental building for Java projects
6. Support most classes in java.lang.*, java.utils.* and others packages
8. Support creating Java2Script projects by wizard, including Servlet project
9. Support loading *.js from Firefox Add-on.
10. Support Eclipse 3.1.*, 3.2.* and 3.3.*
2. Window manager is built inside
3. Support UI blocking fow SWT’s Shell and Dialog
4. Support SWT deffered layout
5. Support detecting font size change in Firefox
2. Simple RPC API is introduced to call back Java server, which supports Cross Site Scripting
4. Support Java reflection (early implementation)
1. Support JUnit tests both Test Case and Test Suite in text mode.
2. SWT Control Examples ( http://demo.java2script.org/controls/ )
For more feature detailed description, please visit:
I spent about three days writng an SWT based Google Talk client. And the client used Smack Jabber library, which has simple APIs. As writing the client, I kept the code compatible with Java2Script, which means that I can use the latest Java2Script daily release to pack it as a web servlet application and deploy it as rich internet application (RIA). Here is snapshot of Java2Script version of Google Talk:
And here is the online Java2Script’s GTalk.
And because Java2Script’s SimpleRPC supports Cross Site Script, the above application can be loaded from any pages by adding the following HTML
to your page.
By digging about Google Talk on Digg.com, I found that Google Talk Gadget on Google’s personalized homepage was really hitting the latest news.
The Java2Script’s Google Talk sources are available at SVN repository now:
And you can also download j2s-1.0.0-m5-gtalk.zip, unzip it and deploy gtalk.war to your Java servlet container.
Copy following as a link and paste in your browser address bar (A new tab or a new window, or other existed tab page[Maybe a Google search result page, not this blog page]):
According to your connection speed, it may take a few seconds before some Java2Script things come up. Enjoy it.
I spent some time to enhance a web notepad with auto-save feature. Here is screenshot:
As a matter of security fact, it is not ready for public tests, so now I am not publishing the . Maybe later I will add more strict rules to the notepad so that no malicious modifications harm the system. Or maybe I will not take such a risk.
Actually, more desktop applications can be converted into rich internet applications. I even consider converting a terminal console into Java2Script web application is possible. But maybe I won’t do so.
After some delay, Java2Script 1.0.0 M4 now released.
New and Noteworthy
1. Support org.eclipse.swt.widgets.Dialog#open in compiler level
2. Extension point for external script visitor, see
3. Bug-fix of M3 compiler
1. CoolBar, ToolBar, Menu, ColorDialog, FontDialog, Tree, Table, Combo,
and other widgets improvement
2. Support org.eclipse.swt.widgets.Dialog#open in asynchronous mode.
1. Simple RPC. See
2. Update HttpRequest according to working draft of
Java2Script Developer Team
1. Welcome our new developer – Sal Ferro, who joined Java2Script in
2. Google Group http://groups.google.com/group/java2script/ created.
Next Release would be 1.0.0 RC with improved performance in late
As a matter of mistake, I placed 1.0.0 M3â€™s â€œj2slibâ€ into Java2Script
1.0.0 M4 for Eclipse 3.2 (Eclipse 3.1 was not affected). I just
repacked and released 1.0.0 M4. If anyone happened to download and
install M4 with M3â€™s â€œj2slibâ€, please re-download and re-install M4:
This extension mechanism can be used to override default behavior of java2script compiler. So, why do we need to override the default behavior of the java2script compiler? Let’s have a simple example. Suppose an application that uses a library that can not be converted to java script, an ejb invocation:
EJBX x = EJBUtil.newInstance(EJBX.class, jndiName);
Now if we use the default java2script compiler the code would be something like:
var x = foo.bar.EJBUtil.newInstance(….);
But, we now that this will not work. It seems to be unsolvable before the extension mechanism is introduced. But now the java2script compiler can be extended to convert such these codes to another java script code that does work on a browser and also does not use the library.
Now if we extend the java2script compiler we can generate a stub invocation like this, that sould work without any ejb import or invocation:
ServletFacade.runEJBMethod(“foo.bar.EJBX”, “methodA”, jndiName);
//And the ServletFacade could be an stub for calling a servlet that can run EJBs
So, with this mechanism, one can convert any source code in his own way.
Java2Script now introduces Simple RPC, which is aiming to help Java
developers balancing and debugging *local* and *remote* procedure calls for AJAX RIAs without knowledge of serialization and deserialization.
In Simple RPC, Java client have two modes: AJAX mode and local Java Thread mode (Default mode).
Here are some simple words describing the procedure of developing AJAX RIAs with Simple RPC.
1. Java developer can debug those procedure calls in local Java Thread mode with local Java SWT client.
2. After functions implemented, they can add a Java servlet wrapper (Java2Script provided), export all things as a JAR file and deploy it to Java EE container.
3. And now switch Java client to AJAX mode (set some static variables) and test whether the deployed servlet is OK or not.
4. If not correctly deployed or bugs popup, developers can switch back to local Java
Thread mode and do their debugging again.
For more details, please check out latest codes from SVN.
But as top 2 position link for key world “js compressor” in Google, I decide not to disappoint visitors with no discrete implementations any more. Here now, I give an implementation (Thanks for J2S 1.0.0 M3, so such a solution does not require much time and pains):
This LZ77 implementation was considered as buggy. I used in J2S Clazz.
BTW: Developing the above J2S/SWT application (including wrapping the old LZ77 utilities into a servlet) took me about 2 hours.
For JS compressor, I recommend you to use Dean’s Packer.