Java2Script 1.0.0 M4 Released

After some delay, Java2Script 1.0.0 M4 now released.

New and Noteworthy
Java2Script Core
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
Java2Script SWT
1. CoolBar, ToolBar, Menu, ColorDialog, FontDialog, Tree, Table, Combo,
and other widgets improvement
2. Support org.eclipse.swt.widgets.Dialog#open in asynchronous mode.
Java2Script AJAX
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
October, 2006.
2. Google Group created.
Joined us!
Next Release would be 1.0.0 RC with improved performance in late
December, 2006.
Stay tuned.

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:

Posted in AJAX, Java2Script News | 3 Comments

About Soheil Hassas Yeganeh

Soheil Hassas Yeganeh, an Iranian developer, who lives Tehran, is a contributor to java2script project. He has many experiences using java and j2ee and also some hard core FreeBSD and Linux kernel projects. He is now a Software Eng. PhD student in Sharif University of Technology. He got his BS in SE and MS in AI from Sharif University of Technology.

Posted in Uncategorized | 1 Comment

Extending Java2Script Compiler

Now, the java 2 javascript compiler of the java2script can be extended. There is a tutorial for demonstrating the extension mechanism.
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 =….);


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(“”, “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.

Posted in AJAX, Java2Script News, JavaScript | Leave a comment

ColorDialog and FontDialog

Now comes JavaScript version of SWT ColorDialog and FontDialog:

J2S SWT Color Dialog

J2S SWT Font Dialog

Posted in Java2Script News, Screenshot, Sharing | 2 Comments

Java2Script Introduces Simple RPC

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.

5. In the end, use Java2Script compiler to compiler the Java SWT client into JavaScript RIA client and test it in browser.

For more details, please check out latest codes from SVN.

Posted in AJAX, How To, Java, Java2Script News, RPC, Simple RPC | 2 Comments

Java2Script M4 Delay to November

I am sorry for saying Java2Script M4 is delayed to November.

And considering M4 will be the final milestone with features frozen and the current works has not worked out all features scheduled, M4 will be put off to early November.

BTW: Use SVN to keep update with latest Java2Script. Or join Java2Script team contributing your efforts in implementations, tests or documents.

Posted in Java2Script News | Leave a comment

Java-JavaScript Compiler Discussion

Ash mentioned Java2Script in the thread of “Java-JavaScript Compiler” in GWT’s group forum. And I joined in the discussion. I was not intended to post another GWT v.s. JavaScript post there (But it seems it was a v.s. thing actually). I just wanted to share things, correct my understanding and learn new things.

In those discussion, Bruce from Google told us that GWT’s motivation is “to be as small and as efficient as possible” and its two separate goals are:
(1) Create highly optimized JS output
(2) Optionally, publish selected parts of your code with a JS-compatible API
I thought that wais a very clever design. And I admired GWT team for its “excellent 100k ~ 200k final *.js files with very good performance”.
OK, if you are interested in Java to JavaScript technology, just go to GWT’s forum and ask GWT team for more details.

By the way, it seems that Java2Script website provides no detailed documents about Java to JavaScript compiler technology. I posted some details there in the discussion. Just check it out there. Or you can check sources from SVN for more details.

Posted in Java, JavaScript, Sharing | Leave a comment

Java2Script SWT Widgets Updates

The updates mainly include Combo, Spinner, Menu, ToolBar and CoolBar. For more details, please check out latest sources from SVN, or stay tuned for 1.0.0 M4 scheduled in the next month.

Posted in Java2Script News, Screenshot, SWT | Leave a comment

LZ77 JavaScript Compressor Reloaded

Updated: June 4, 2007, LZ77 JavaScript Compressor is rebuilt using Java2Script Simple RPC technology.

In early of this year, I had a post “LZ77-JS-Compressor: Another way of compressing JavaScript“. It seemed that lots of people were seeking pure LZ77 JavaScript Compressor, and some of them clicked the above post. And the above link is on the top 2 position for key world “js compressor” in Google.

As mentioned in the above post, pure JavaScript decoder’s performance was very poor for large *.js file (>200k)! So I stopped focusing on further development of LZ77 JS compressor after the post. So no technical details were found there but pure LZ77 JS compressor’s poor performance was told there.

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):

LZ77 JavaScript Compressor“: This is a J2S/SWT application, sending the raw JavaScript sources back to server to do LZ77 compressing (Java servlet). (Mentioned: the server s eems being unstable with low bandwidth.)

J2S SWT LZ77 JavaScript Compressor

If you uncheck “RegExp trimming before LZ77” option in the above application, you can compress any plain text (HTML/CSS/SVG/…) besides JavaScript sources.

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.

PS: “LZ77 JavaScript Compressor” is now using LZ77-JS-Comopresser compressed JavaScript: (30k) rather than earlier (55k)

Posted in AJAX, JavaScript, Sharing | 4 Comments

Java2Script 1.0.0 M3 Released!

New and Noteworthy
Java2Script Core
1. No more need to enhance Eclipse JDT core jar for Java2Script compiler
2. Full support of Eclipse 3.2.0 besides Eclipse 3.1.*
3. Dynamic JavaScript loading (ClazzLoader)
4. Early Java reflection implementation.

Java2Script SWT
1. Improvement of CTabFolder, Table, Combo, ProgressBar, Scale
2. Support of embedding Shell inside normal HTML page (please visit inline demo of
3. Early key navigation support.
4. More LAF themes

Java2Script AJAX
1. Support loading classes asynchronously both in Java and Java2Script, please visit

Java2Script JUnit
1. Support JUnit tests both Test Case and Test Suite

More information, please visit updated homepage:

Posted in Java2Script News | 2 Comments