Showing posts with label RAD. Show all posts
Showing posts with label RAD. Show all posts

Friday, July 9, 2010

RAD Tooling for OSGi Applications

RAD V8 Beta 2 is now available with updated support for developing, deploying and testing OSGi Applications using the WAS V7 Feature Pack for OSGi Applications and JPA 2.0. I'll describe some of the new OSGi capabilities of RAD in this post.

Built on top of the latest version of Eclipse (Helios), the RAD V8 Beta provides OSGi tools for enterprise Java developers. While most of the development activities, and hence development tools, for enterprise OSGi applications are common with Java EE there are some new considerations. Primarily, these are around the compile-time classpaths, the authoring of new metadata (the OSGi bundle and application manifests) and, optionally, Blueprint bean definition files. RAD introduces new project types for OSGi Bundle projects and OSGi application projects and a variety of new editors and tools for developing components in these types of projects. OSGi modularity semantics are honored in the project build paths to actively encourage modular design: each project has the scope of a single bundle, with Java package visibility between projects restricted to those packages explicitly imported/exported by the project's bundle manifest. This supports the careful and deliberate exposure of only those Java packages that are intended to be used external to a project . RAD's facet-based configuration enables OSGi projects to be configured as OSGi Web projects or OSGi JPA projects and integrates tools for authoring web.xml, persistence.xml and blueprint.xml. OSGi application projects - representing a complete enterprise application consisting of multiple bundles - can be imported from or exported to enterprise bundle archives, and can be tested and debugged on WAS V7 from the RAD workspace. RAD's SCA development tools are also extended to support "OSGi Applications" as a new implementation type for SCA components. The SCA tools accelerate the assembly of SCA composites; these can include OSGi application components which may selectively expose OSGi services outside the OSGi application and define remote bindings for these services. There's more about the relationship between OSGi services and SCA services here.

One of the quickest ways to explore the new OSGi features in RAD is to import one of the sample applications provided with the WAS V7 feature pack into a RAD workspace. The feature pack's Blog Sample, was described in an earlier post so I'll use that as my example. Start RAD and run the File->Import->OSGi Application (EBA) wizard, enterng the location of the com.ibm.ws.eba.example.blog.eba file (found in the WAS_INSTALL/feature_packs/aries/installableApps directory). Since one of the features this sample is designed to show is the deployment of an application which includes content provisioned from a bundle repository, you also need to make the com.ibm.json.java_1.0.0.jar available in the workspace - which you can do through File->Import->OSGi Bundle. The result is 4 OSGi bundle projects and an OSGi application project in the workspace, with everything correctly resolved.

You can see the relationships between the bundles in this application using RAD's new Bundle Explorer. The figure on the left shows the Bundle Explorer view of the Blog sample application project. Click on the image to enlarge it.

RAD gives you all the syntax assist, refactoring support, and problem quick-fixes you expect as well as new editors for bundle manifests, application manifests and blueprint bean definitions. By encapsulating business logic in POJO Blueprint beans and accessing persistent data through JPA entities, unit testing can be performed with simple frameworks like JUnit without requiring an application server to be running. And, of course, RAD includes integrated support for running and debugging entire OSGi applications on a WAS server, straight from the workspace.

Wednesday, April 7, 2010

XML Feature Pack 1.0.0.3 Available

I'm happy to announce another major update to the XML Feature Pack and its impact on our development tooling - Rational Application Developer for WebSphere.

We just released the 1.0.0.3 version of the XML Feature Pack that has two major new features (as well as some small bug fixes). The two new features are:

XQuery Schema Awareness



In the initial release we had Schema Awareness for XSLT 2.0. In this release we add similar function to XQuery. Specifically this means we started to support the optional XQuery 1.0 features of schema import and schema validation. With these features you can use your own type information in XQuery programs. A common scenario would be looking for all addresses in an input document, regardless of they were "billingAddress" or "shippingAddress". Programming based on type information is a powerful concept that leads to more flexible implementations. Also, validation allows you to validate incoming documents, xml trees and whole output documents. This allows for greater reliability in your XML processing.

Debugging support for XSLT 2.0 under Rational Application Developer (RAD) for WebSphere



Previously with RAD you could debug XSLT 1.0 stylesheets. With this new release of the XML Feature Pack and with RAD 7.5.5.1 you can debug XSLT 2.0 stylesheets. This isn't just about moving to a newer stylesheet level. With all the changes in the data model and advanced new concepts like grouping, there are many improvements in visualization with debugging over the XSLT 1.0 debugger.

What is also interesting is that this is a converged debugger. While there are other XSLT 2.0 debuggers out there, they only work on the stylesheet itself. With this support in RAD, you can debug not only the stylesheet, but also the Java code in your web application that invokes the XSLT engine along with any Java extension functions you might have. If you are using XSLT 2.0 in the application server, this is the tool you want for debugging end to end.

I hope to do a video demo of this Rational Application Developer functionality. Imagine setting breakpoints in XSLT as well as Java and being to jump between them. Anyone interested in seeing such a video demo?

Have fun with the new functions!

Friday, December 18, 2009

RAD 7.5.5 adds support for XPath 2.0 and XSLT 2.0

Today, RAD 7.5.5 became available. Of interest to WebSphere XML customers, you'll see major new function in the XML areas to complement the features provided by the Feature Pack for XML.

IBM Rational Application Developer 7.5.5 provides enhancements to the existing XSLT 1.0 and XPath 1.0 authoring tools to support XSLT 2.0 and XPath 2.0, as well as the ability to program against the new IBM XML API and invoke the XML runtime provided by the WAS Feature Pack for XML. Developer benefits include: the ability to work seamlessly with XSLT 1.0 and 2.0 artifacts using a consistent set of tools, the ability to author - create, edit, validate - XSLT 2.0 artifacts, the ability to invoke the XSLT 1.0 or 2.0 processor with ease using the enhanced XSLT launch configuration and the ability to easily configure a project's classpath to program against the new XML Application Programming Interface.

There is more info on what's new here.


- You can now compile and integrate XSL 1.0 and 2.0 stylesheet documents into Java projects. This new functionality automatically handles classpath and runtime configurations. Also, a new option is available to incorporate a Java utility class is offered so that you can integrate compiled stylesheets.
- The Expression Builder tool in the XSL Editor now supports as-you-type evaluation for XPath 1.0 and 2.0.
- The XSL Editor now supports grammars for XSL versions 1.0 and 2.0. Content assist has been enhanced to incorporate better prefix handling, customized icons and detailed descriptions for all XSL element suggestions. Version sensitive file decorations are now available for XSL documents.
- You can now run XSLT 2.0 transformations.
- Content assist for XPath 2.0 and XSLT 2.0 functions in the XSL editor and XPath Expression Builder is now available.
- The XSLT validator now supports both XSLT 1.0 and XSLT 2.0, and provides build, manual and as-you-type validation. The validator helps you ensure that your XSLT documents are correct according to the XSLT 1.0 or 2.0 specifications.
- XSL templates are now available that can be added to new XSL files from the New XSL wizard. The templates can also be inserted into XSL files through the content-assist feature in the XSL editor.
You can modify the XSL templates through XML preferences page (Window > Preferences > XML > XSL> Editor > Templates).
- A new XSLT 2.0 sample is available that demonstrates the XSLT 2.0 transformation using context menu and Java code.


There are many other improvements and new features in RAD 7.5.5 and I expect Tim or I will blog about them in an upcoming blog post.

Friday, December 12, 2008

Service Component Architecture GA

Just a quick note that the Service Component Architecture Feature Pack for WebSphere V7.0 is now generally available for download here.

In addition to the code download, here are some other useful links:
SCA Feature Pack InfoCenter
SCA Feature Pack Release Notes
SCA Feature Pack developerWorks Roadmap (available here soon)

As an early Holiday Present for developers, Rational has announced an open beta program which demonstrates among other things, a new visual composite editor for Open SCA. Details about the program can be found here.

Happy coding!

Friday, May 23, 2008

Evans Data Study: RAD scores the highest user satisfaction

It was with great pleasure that I read the Evans Data Study that was released this week; the study was a survey of over 1200 IDE users, and the bottom line was that RAD had the highest user satisfaction scores among the IDEs rated (including Oracle JDeveloper, Microsoft Visual Studio, MyEclipse and NetBeans). A survey is a survey; I have no doubt that you could find users of all of the above IDEs who are passionate supporters of their product of choice – but this survey revealed that compared to the other IDEs (and I’m quoting here) “RAD is just head and shoulders above them when it comes to user satisfaction.”

Cool; that’s what we’ve been trying to deliver, and it’s gratifying to see that our users are pleased with what we deliver.

What was most heartening to me, though, was what the survey didn’t measure; namely RAD 7.5. I think RAD 7.0 (which is the latest GA version of RAD that’s available) is a pretty darn good product, and the survey seems to agree with me – but I am even more pumped about what we have coming down the road, in the form of RAD 7.5. As I’ve discussed in this blog, we’ve had RAD 7.5 available in open beta since late last year – that code was refreshed at the beginning of May, and we’re still working on it. The fact that we were able to deliver public beta code so early in the schedule is a testament to the state and the quality of the release; we’re still adding features and function, we’re still fixing defects and improving the quality even more, and we’ve also got the benefit of lots of additional user feedback, with enough time (for a change) to do something about it. Put it all together, and I’m convinced that RAD 7.5 will be the best RAD we’ve ever delivered.

Back to the survey; results were provided giving an overall satisfaction of the different IDEs, and the various capabilities within the IDEs were also rated (how does your debugger rate, how do your web design tools rate, etc). Although we were first place in the overall rating, the RAD results in the individual areas were mixed; we did great in some places (application modeling tools, tech support, profiler, web design tools), and less well in other aspects. There was not a lot of variability in the rating for editors, all the products scored well - but in that category, RAD was in last place, for example.

That actually doesn’t surprise me, as the editors were one of the areas I was most concerned about as well – and for that reason, the editors, and the editing experience were one of the areas we’ve spent the most time and energy on, in RAD 7.5. I was presenting at the IBM Impact conference in April, and showed off some of the new features in RAD 7.5 – let me share a couple of highlights with you:

  • The various deployment descriptor editors in RAD 7.0 were attempting to abstract away the details of the actual changes being made to the underlying files – but we’ve heard from numerous customers that it’s more important to assist the developers… but still “leave them in touch” with the underlying files being updated. We have a great new editor framework (the source of several patents) that we’re using across RAD 7.5, that means developers who make a change in the editor, will have no problem know what (and where) they have changed in the actual file – but at the same time, we still provide lots of help and validation in editing the actual contents. These new editors are getting great feedback from our beta customers.

  • We’ve had a big focus on refactoring operations and quick fixes, both of which surface via editors of all shapes and sizes. Eclipse has a great history when it comes to providing refactoring operations, and RAD 7.5 really takes and extends that model; we participate in many existing eclipse refactoring operations now (for example, a rename will do the right thing across the many J2EE artifacts, as well the just the Java code), and we have added several of our own, J2EE specific refactoring operations. These refactoring operations allow us to provide significant help to developers who are updating their code, while leaving the editors to do just that – provide a good, focused, editing experience. Again, the feedback from beta users to date has been very positive on the changes we’ve made.

  • JavaScript is increasingly important in a web 2.0 world, and so we’re introducing significant new support for JavaScript in RAD 7.5 – we have a comprehensive new JavaScript editor, which we’ve integrated into all the right places; you’ll now get support like code assist, syntax validation, and colour highlighting whether you are editing a standalone .js file, or a JavaScript snippet embedded in the middle of an HTML file, while you’re using the RAD page design tools.

These are just a few examples of the changes, improvements, and new features we’ve been developing for quite a while in RAD 7.5 – and the Evans survey has simply validated many of the decisions we’ve made; if we can be number one in user satisfaction with all our old editors, I’m super confident that we’ll be able to make developers even happier, and even more productive, with RAD 7.5.

Next up for me is the RSDC conference, in Orlando – we’ll be presenting and demoing RAD 7.5 there, so come by and say hi if you’ll be there.

Tim

Friday, February 15, 2008

The facts of RAD

MyEclipse has issued a press release that mentions RAD, and may cause some confusion, so I'd like to take this chance to set the facts straight.

First of all, the transition from WSAD to RAD was purely a naming one. WSAD was delivered prior to IBM's acquisition of Rational, and RAD 6.0 was simply the next version of "WSAD" released under the Rational brand. RAD is entitled as a free upgrade to all active WSAD customers; there is no new cost - describing the transition from WSAD to RAD as complex or costly is either uninformed, or intentionally misleading.

The plumbing that formed the core of both WSAD and RAD was donated by IBM to the eclipse WTP project, to provide a defacto standard interface that others could extend - meaning that any tool extensions will work correctly and naturally with RAD. MyEclipse uses this base, so the basic project structure is the same - but the vast majority of the components that form RAD are not part of WTP; they are only available in the IBM offerings. Those value add components and functional areas are where we're spending most of our time and energy on, and that's where the real benefit of RAD comes from.

RAD 7.0, which has been available for over a year, includes comprehensive support for J2EE & Web Application developers, with support for pure spec compliant applications, as well as integration for all the WebSphere extensions - for example we don't just support JSF, we also ship and have outstanding support for the IBM JWL widget library; the latest version of JWL (which is only available with RAD) makes it fall-off-a-log easy to create an Ajax application, with no handwritten javascript at all (see http://webspherecommunity.blogspot.com/2007/06/simple-ajax.html for more details).

That said, simply providing spec level support is not really a differentiator today; that's why we donated the code we did to WTP. The RAD value proposition is it's ability to improve the productivity of developers across the entire development life cycle. Some examples:
  • Some other products provide simplistic support of UML, that requires iterative generation of java code, followed by import actions to keep the diagrams and code in sync. This round trip engineering approach was available back in Rational Rose, and is a long way from state of the art now. RAD provides much more than that - for example, we provide UML visualization, which allows you to view, edit, and update Java code using UML views. There's no separate model to get out of sync; you're editing the live code, but in UML.
  • All modern IDEs include support for database interaction and definition, but RAD has the benefit of working with the DB2 developers to provide exceptional support (for all major databases); RAD includes graphical views of your data topology, a SQL scrapbook, impact analysis tools, the ability to write user-defined functions (UDFs) & stored procedures, and phenomenal support for embedded SQLJ.
  • RAD has in-depth support for application profiling, analysis & testing; you can execute, monitor, and trace the flow and performance of your application, right out of the box.

Of course, we also have the benefit of working hand in hand with our IBM colleagues, to provide the very tightest integration with WebSphere. It's not hard to deploy an application to WebSphere Application Server, but only RAD includes copies of three versions of WAS, to simplify your unit testing on a "real" WebSphere server, at no additional cost. Because we actually embed the WAS server, we support both remote application deployment and local application deployment, which gives you better deployment performance because there's no copying of files necessary. RAD also includes complete support for WebSphere Portal Server, including creation wizards, views, and editors that enable you to develop, test, debug, and deploy portal and portlet applications.

When it comes to production application deployment, RAD includes an advanced Jython editor, designed to simplify the task of developing and testing WebSphere automation scripts. We also offer unique integration with the WebSphere admin console, allowing you to capture key actions in the admin console and turn them into the equivalent Jython script commands. Finally, there's an embedded Jython debugger, that will let you single step through the admin script, examine variable values, etc.

IBM remains strongly committed to RAD; the next version of RAD (7.5) has been available as an open beta since late last year; you can find more details here: http://webspherecommunity.blogspot.com/2007/11/rational-application-developer.html. As you'll see if you try this code, RAD 7.5 provides many compelling features that focus on developer efficiency such as JEE refactoring and quickfix operations, while offering enhanced integration with products from all IBM brands, but especially Rational, WebSphere, and DB2. As I said in my blog entry, I'm really pleased with the progress the team has made on RAD 7.5; even though this is just a beta, the code is great quality, the performance is good, and all early reports are extremely positive - come check it out!

Tim Francis,
WebSphere Tools & RAD Chief Architect

Tuesday, November 6, 2007

Rational Application Developer

I have not posted to this blog for a while, and I can now explain why. Today, at the WebSphere Technical Conference in Vienna, we announced the upcoming availability of an open beta for the next major version of Rational Application Developer (RAD 7.5). Those of you who've read my previous posts (hi Mom!) will not be surprised by the themes we're focusing on for RAD 7.5; better support for the complete application development lifecycle, including refactoring operations and quickfixes that cover the complete Java EE programing model.

The RAD 7.5 beta also provides support for the WebSphere EJB3 feature pack, the beta for which is available now for WebSphere 6.1. The RAD support for EJB 3.0 allows us to really exploit annotation based programming models. Previous versions of the spec focused on deployment descriptors, and the matching RAD releases had advanced editors to support that. In RAD 7.5, the focus is on Java developers, and using the Java editor as a base - but extending the already powerful Eclipse editor by adding significant new function and capability to support developing an annotation based application.

The intent is simple; most developers creating applications for WebSphere are quite comfortable using Java, and we have a great Java editor in RAD/eclipse - so it's a mistake to force them to switch to a whole new environment (with wizards and graphical editors) when they want to define some aspect of server interaction (such as Web Services or EJBs). This is a natural extension to what the spec defines, but the way we're supporting that pattern within RAD is new, easy to use, and productive.

The other aspect that I'm thrilled about is just the fact that we're running an open beta, less than a year after we shipped the last major version of RAD. We're not done yet, and we have more good ideas that we're still implementing - but the code is great quality, and the performance is good... and this shows a commitment to delivering a rock solid, robust, and well performing RAD. The intent is to encourage developers to explore the product, and not feel concerned that they'll get in trouble if they try something non-standard or off the golden path.

I'm really pleased with the progress the team has made on RAD 7.5; this is going to be the best version of RAD we've ever delivered, and the open beta gives you a chance to see where we're at, comment on what you see, and help us refine the product to make it exactly what you need. You can sign up for the beta here, and there will be newsgroups available to report problems, ask questions, and give us your feedback.

Tim Francis