From the Inventor of TestMaker Open Source SOA Test Automation Tool

Frank Cohen

Subscribe to Frank Cohen: eMailAlertsEmail Alerts
Get Frank Cohen: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Java Developer Magazine, PHP Developer's Journal

Java Developer : Article

Dynamic Scripting on Java Moves Forward

TestMaker users are able to write tests in Java, Jython, JRuby, Groovy, PHP, and about 15 more languages

Frank Cohen's Blog

The expert group working on an enhancement to Java that will make dynamic scripting languages easier to code and more efficient to run met this week. The JSR 292 group has been quietly considering designs for a new Java byte code instruction called "invokedynamic".

Java 1.6 introduced the JSR 223 ScriptEngine API that makes it possible for TestMaker to support multiple languages to write test suites. With the ScriptEngine TestMaker users are able to write tests in Java, Jython, JRuby, Groovy, PHP, and about 15 more languages.

Some of the supported languages are on-the-fly byte-code compilers. For instance, Jython is the Python scripting language that runs in the Java Virtual Machine (JVM.) At runtime Jython converts a Python script into Java Byte Code and runs the script in the JVM.

For the on-the-fly byte-code compiler script engines, the current JVM lacks an efficient way to dynamically dispatch calls to methods. Enhancing the JVM with an "invokedynamic" instruction will make it much easier to write this kind of script engine.

Originally the JSR 292 project was lead by Gilad Bracha, an expert in object-oriented programming languages, in particular modularity, reflection and type systems. Gilad left Sun last year and John Rose, took the project and has been running with it.

JSR 292 will make significant changes to the JVM instruction architecture. The expert group wants public review of the changes early and is producing an EDR (early draft review required by JCP). To make the current Proof of Concept design public, the expert group needs to informally agree that the design shows a direction that is worth explaining and improving - sometimes called a "red face test."

The original JSR 292 language includes not only invokedynamic but also some sort of class modification or extension. Based on recent experience, the expert groups believes something is needed beyond invokedynamic to support some sort of lightweight behavioral extension (method handles, autonomous methods, etc.)

The group is planning to start an OpenJDK open source sub-project to help create the Reference Implementation (RI) for JSR 292. The group plans to meet again soon but there is no published calendar of milestones or dates.

This is very good news for Java and Dynamic Scripting.

-Frank

More Stories By Frank Cohen

Frank Cohen is the CEO and Founder at Votsh Inc. and the CTO at Appvance (formerly PushToTest). He is one of the world's foremost experts in software test tools, process, and methodology. He founded Regent Software, joined Peter Norton Computing, managed the successful merger with Symantec, joined Stac Electronics launched SoftWindows at Insignia, and led Apple Computer‘s middleware, networking and connectivity product lines as senior manager. He was also on the founding team of TuneUp.com, which was acquired by Symantec and CoFounder of Inclusion Technologies – interactive personalized communication and workflow function technology for Web sites.

Cohen authored four books including FastSOA (Morgan Kaufmann), Java Testing and Design: From Unit Testing To Automated Web Tests (Prentice Hall,) Java Web Services Unleashed (SAMS), and Java P2P Unleashed (SAMS) - See more at: http://appvance.com/about-us/executive-team/#sthash.dY4dqUi2.dpuf is the leading authority for testing and optimizing software developed with service-oriented architecture (SOA) and Web service designs. He is CEO and Founder of PushToTest and inventor of TestMaker, the open source SOA test automation tool, that helps software developers, QA technicians, and IT managers understand and optimize the scalability, performance, and reliability of their systems.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Java News Desk 11/10/07 10:45:51 AM EST

Some of the supported languages are on-the-fly byte-code compilers. For instance, Jython is the Python scripting language that runs in the Java Virtual Machine (JVM.) At runtime Jython converts a Python script into Java Byte Code and runs the script in the JVM. For the on-the-fly byte-code compiler script engines, the current JVM lacks an efficient way to dynamically dispatch calls to methods. Enhancing the JVM with an 'invokedynamic' instruction will make it much easier to write this kind of script engine.