BDNradio: Bob Evans chat on JBuilder 2005 unit testing, XML refactoring, and more

By: John Kaster

Abstract: In this live interview, Bob Evans, a Borland R&D Engineer, discusses his work on JBuilder 2005

VIP Lounge

This is a log of the chat rooms during the live audio chat from November 29, 2004 on JBuilder 2005 with Bob Evans, a Borland R&D Engineer.

Note: This log is only the chat room transcript. There is much additional information covered in the audio replay that is not available in this chat log. For all previous and upcoming live chats, see

jkaster : aohlsson : "How easy/hard is it to add your own appserver integration?" - First, it takes a lot of coffee. Second, we have all the setup in the framework to write a plug-in. WebSphere is a very powerful and complex app server, so it takes a lot to support it. JBuilderOpenTools allows you to create editors for the XML files an AppServer uses, customization for deployment descriptors, debugging support has to be mapped back to the source.

jkaster : jkaster : "Are there any tools for unit testing Swing user interface interaction?" - My personal recommendation is "don't do it." JUnit made unit testing a lot easier, and started pushing its boundaries. First I was gung-ho and started testing the UI. But in short order we realized that UI testing was a problem because it changes so much. The UI should be a "dumb" thing that just connects to the data, but you're actually often putting business logic into the UI. ....

jkaster : aohlsson : "Did you work on any other appserver integrations than WebSphere?" - For a brief time, I worked on the Sybase plug in, but then we sent that back to Sybase to work on.

jkaster : jkaster : "Do you have suggestions for references on unit testing in general, and java unit testing in particular?" - If you're not familiar with JUnit, the first thing to check out is the "test infected" article by Erich Gamma and Kent Beck.

aohlsson inserts the following link: /0321146530/qid=1101752865/sr=1-2/ref=sr_1_2/002-1009495 1578411?v=glance&s=books
aohlsson : "Test Driven Development: By Example"

jkaster inserts the following link: 1/ref=pd_ka_b_2_1/002-0076281-0534465
jkaster : "Working Effectively with Legacy Code" by Michael Feathers

jkaster : doychin : "How you support the move from one server to another when you have to deal with app server specific features?" - From the user standpoint, the biggest problem was the calculation of the n weight interdependencies of the frameworks in our stack. There was also database issues, reporting libraries, etc. ... lots of staging and testing. In regards to Application Server specfiic things, we tried to minimize vendor-specific features. We've implemented features in JBuilder that make switching AppServers really nice. And you guys should use that, because it was a lot of work.

jkaster : doychin : "How do you think an ejbdesinger should look for EJB 3.0?" - I'm not working on this, but I have a colleague who is ... it's kind of tricky because there's two different ways of building EJBs, and they both have their pros and cons.

jkaster : jkaster : "How is find references and associated features different from a good grep tool?" - You're not having to write great regex's that can also give you false matches on textual references to the identifiers, and relying on a variety of other tools. The Abstract Syntax Tree gives you accurate information about class references. you get much more power and precision with refactoring

jkaster : jkaster : jkaster : "What are the significant feature areas of "XML support" in JBuilder 2005?" - One is the property sheet editor that allows you to edit a given node, and will be a big part of JSX. Code completion, error insight for a given XML document. This also creates better formatting, and we've enhanced that in JBuilder 2005. The easy extensibiilty of XML refactoring is very nice.

jkaster : jkaster : "Where can I find information about the Mocks framework?" - EasyMock is one. C2 wiki is another.

jkaster inserts the following link:

jkaster inserts the following link:

jkaster : yogi: "you've mentioned the extensibility of the xml refactoring, but i don't think i've heard you give any details yet. maybe you could give a quick high level overview, such as pointing people at the lib/languageMaps directory" - Right. That's the actual directory where we store some of the language mappings.

jkaster inserts the following link:
jkaster : is Bob's blog location

jkaster : Bob: "this week I'll get a blog entry up that describes this with some examples"

jkaster : pfurb : "Speaking of mock objects and OT API ... can you speak about unit testing OpenTool code which relies on primetime or jbuilder package classes? Strategies, and so." - That's a good question. Inside, we have a very large elaborate mock framework that sets up a JBuilder environment, but it's not ready for public consumption. You could mock what you expect from the JBuilder OT. That's the first thing I'd try, for example, something that returns a list of files you'd expect from JBuilder. You can also tweak the way that JBuilder loads by tweaking the open tools manifest.

jkaster : pfurb : "But the idea of unit testing with mocks is that you don't have to do the very expensive launch of an OT type rtconfig" - That's one of the interesting parts of building plug-ins to a large framework. If you know that your plug-in is only going to exercise one given API, you want your mock to be very lightweight whenever possible, but it's not necessarily easy.

jkaster : doychin : "maybe using audio chats is also good idea for thos of us who are on the other side of the world ;-)" - good idea

Public chat

Welcome to the moderated Borland Community Chat!
You are allowed to speak freely with everyone in this lower window. In the upper window you'll find all messages written by moderators and invited speakers. To submit a question, click on the ASK Button.

doychin : thanks for the chat

Server Response from: ETNASC02