Chapter 6

Rose J Add-In

The Rose J Add-In supports true round-trip engineering and has support for large frameworks.

The following sections provide information on the Rose J Add-In:


New Rose J Add-In Features and Enhancements

The Rose J add-in supports true round-trip engineering and provides support for large frameworks. This release of the Rose J add-in provides the following new capabilities:

Rose J Design Pattern Support (Not Available on HP-UX 10.20)

When you apply a design pattern to your model, Rose J adds it in the form of new classes and components for each participant in the design pattern. Rose J places new Rose elements (classes, methods, packages, relations, etc.) in the Logical View and adds a component in the Component View for every added or updated class. The component name also appears in parentheses beside the class name in the Logical View.

When you forward engineer your model into Java code, Rose J populates the design pattern participant classes with methods that have complete code bodies, as well as methods with empty code bodies to be filled in by you.

Rose J includes support for the following design patterns covered in the book, Design Patterns, Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2), by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, often referred to as the "The Gang of Four."


Known Rose J Add-In Problems and Limitations

The following table contains known Rose J problems and limitations in Rose for UNIX/Linux.

Defect
Description
10988

Get/set operations are not visible in Sequence Diagrams.

11721

Unable to create directory on an NFS mounted disk when defining source directory using Java or CORBA project specification.

12237

Code generation error when placing a static attribute in the Java inner interface.

12950

Rose J uses a code generation property to indicate if an operation is abstract, rather than the model property used by the Rose specifications. For this reason when you specify an operation as abstract in the Standard Specification this is not reflected in the Custom dialog box. The reverse is also true.

13935

Utilizing tabs in the Rose J style specification causes errors when round trip engineering.
Workaround - Utilize spaces instead of tabs.

14628

Reverse engineering of very large Java files, can cause memory issues.

15230

If the R2Editor process is killed or crashes, user will be unable to restart the R2Editor in the same session.
Workaround: Close and restart Rose in order to restart the R2Editor.

15420

Code generating for EJB's does not prompt user for all classes at the same time (only prompts for one at a time).

15481

No warning dialog to indicate there are warnings in log if in Java Auto Sync Mode.

15487

Java code gen does not begin when class is created with Auto Sync already enabled.

15554

When reverse engineering .cab files (which include .java and/or .class files), the method body contents of the source files is missing.

15583

The R2Editor displays carriage returns and line feeds as ascii characters. This occurs in the output window only, not in the R2Editor, itself.

15891

Reverse engineering of .cab files may produce unpredictable results.
When reverse engineering .cab files (which include .java and/or .class files), the resulting Rose model may not be correct.
The Rose log records errors, but does not alert the user.

16018

No context sensitive help for EJB & Servlet Class Properties treeview items.

16021

No context sensitive help for object finders labels in EJB Persistence Properties window.

16032

Utilizing the "Generate Fully Qualified Type" option on Container Class type, causes incorrect code generation to occur.
Workaround: Do an import for the package in which the Container Class type is defined and do not use the "Generate Fully Qualified Type" for the Container Class.

16037

If you have a package in your model that has a space in its name, for example "w p" and a class attribute references a type defined in that package, the generated code will include the space and will be incorrect.

16295

JavaDoc tags are not generated correctly.

16391

In the Rose J online help, obsolete Java frameworks are mentioned. When you start Rose, check the Frameworks dialog to see the extant Java frameworks.

16490

When performing compilations using the R2Editor, a message indicating "Compile Operation Completed successfully", will occur when the compilation was actually unsuccessful due to compilation errors.

16517

The online Help states that the EJBHomeMethod is updated using the Update EJB to Interface and Update Interface to EJB. However, the stereotype with this version of the specification is an abstract stereotype that is specialized by EJBCreateMethod and EJBFinderMethod where an update of the model is available.
This stereotype is not related to the concept of Home Method introduced by version 2.0 of the EJB specification.

16593

EJB DocComment - extra newline erroneously inserted and inconsistent indentation in code.
To reproduce: Create a class and convert it to EJB. Enter multiline comments in the DocComment fields for the class, for the operation and attributes. Generate code. Extra new lines are inserted between consecutive lines of comment in the model. The indentation is also inconsistent.

16663

No context sensitive help for EJB & Servlet Class Properties treeview items.

16665

Incorrect EJBHomeMethod information in Rose J help.
The online help states that the EJBHomeMethod is updated using the Update EJB to Interface and Update Interface to EJB. However, the stereotype with this version of the spec is an abstract stereotype that is specialized by EJBCreateMethod and EJBFinderMethod where an update of the model is available.
This stereotype is not related with the concept of Home Method introduced by the 2.0 EJB spec. As a reminder the version supported by the Add-in is the 1.1 EJB spec.

16809

Browsing source (R2Editor) which includes a line exceeding 16384 characters may crash the R2Editor.

16881

The R2Editor's compiler will not detect major modifications in Java source code.

17256

Unable to create new EJB/Servlet from statechart icon.

18021

Putting EJBPK in the New EJB dialog Remote field causes terminal loss of focus.

18195

The Java code generation OK prompt (modal dialog) can infrequently go behind Rose. If this occurs, it will be necessary to move Rose to respond to the modal dialog - before proceeding with Rose activities.

20257

Pattern Support -> Singleton - Singleton interface should implement java.lang.RunTimeException when exception is thrown.

21096

For J2EE, EJB classes and the diagrams that contain them must be in the same package in order for the EJB Update to work.

24389

The rjavarelay.exe will not exit unless you properly shut down the Rose VAJ Link Plugin Toggle. To ensure proper shutdown, do one of the following before exiting Visual Age:

26170

Inserting new EJB method when autosync is activated may cause Rose to crash.

31374

Unable to delete Finalizer method from browser after turning on Autosync.

31538

Double clicking on the title bar of the Rose editor may cause the editor to go behind Rose. This only occurs on Solarix 7 and 8 displays. Will not occur on PC using Exceed.

31620

Changing a class attributes Bean Property after saving the file in the editor does not update the code correctly.

53982

When using JBuilder IDE Link and attempting to Reverse Engineer, the following error message may occur:
"Project contains no file. Project files' directories will not be added to classpath for reverse engineering."
This occurs even though the Project files' directory is correctly set in the classpath and reverse engineering is successful.


Fixed Rose J Add-In Defects

The following table contains Rose J Add-In defects that have been fixed since the previous release.

Defect
Description
3881
19639


Rose may hang if a Rose J or CORBA Operation and Attribute Specification dialog box is viewed while the browser is undocked. Rose is unable to gain focus, once the Specification dialog is closed.

12122

If you define a component hierarchy that is different from the logical hierarchy, Rose J will generate incorrect code.
The package is specified according to the component hierarchy; the return type is according to the Logical View.

12323

Comments will be missing after forward engineering with Rose J.
If a user has an instance variable and defines an in-line comment "//" after the line or a multi-line comment "/* */" above the line, then when forward engineering is done these comments are silently lost. This is true for comments anywhere, as they are not associated with a Rose element.

13318

Utilizing the Java Specification window may cause component to lose it's stereotype.

14927

"Remote Exception" should automatically be placed in the Detail Exception.

15493

Selecting Show Tabs in the Options dialog does not cause the editor to show tabs.

15518

Generating the Setter method for the Bean property does not properly update the Setter method when there is a change in the Bean property type.

15794

Using an interface from a class with the same name, but created in a different package will cause incorrect code to be generated.

15853

Jar tool location and creation of *.jar and *.war file name must be entered using the browse "..." button.

16258

APPLY button not enabled for Java class, operation, and attribute specifications.

16417

Reverse engineered Java code that does not contain a visibility indicator (public, private, etc), will be represented as package visibility in Rose

16433

Java AutoSync feature does not appear to receive all events from Rose model.
The AutoSync events need to be first updated by Rose, and then the Rose J Add-In needs to be updated to perform correct processing.

16482

Rose J code generation does not remove the link in an inner / nexted class.
Workaround: Do not nest the classes or do not enable AutoSync.


16485

Code generation incorrectly occurs when an inner class includes static members.
Rose displays an error "... - an inner class cannot have any static members", but proceeds to generate code.

16492

A model is not automatically updated via Autosync when a new J2EE action is performed. Some code generation aspects may therefore be missing in the model.

16498

Rose J reverse engineering error "Parser Error: near token }" occurs with the following code:
public interface test
{
public char opname();

/**
* comment to see if will get an error while parsing
*/
}

Workaround: Do not use "/**" as a comment, "/*" will work.

16524

Comments are not generated correctly for EJB/Servlets.

16526

Error occurs in specification of "throws" classes.
When specifying an operation via the "Method Specification" dialog that is obtained by double clicking on the method itself in the model browser window, the user can only enter exceptions in the "throws" list box by explicitly specifying the exception class with its package. It is not possible to pick the exception in the popup browser dialog because this only displays packages and not actual classes within them.

16664

No context sensitive help for object finders labels in EJB Persistence Properties window.

16764

J2EE - Servlet and DoGet Method causes a duplicated signature for the doGet method.
This occurs by creating a new Servlet, adding the methods "init" and "doGet" and adding a value for the buffer size.
Workaround - Add a "Servlet Content Type" or create a normal class and configure it to be a servlet (the Servlet content Type is added by default).

16780

Java code generation does not code the relation to an inner class correctly.

16902

Servlet global import statements do not reverse engineer properly from .class files. Upon creating a Servlet with an operation (for example, doPost) global imports may be missing.

17174

Rose adds changed interface method instead of changing the current method.
If a class implements an interface, the interface methods are added to the implementation class automatically by Rose during code generation.
If the interface signature changes, Rose does not change the implementation class but adds again the changed interface methods without warning or messages. This means the old interface method becomes a regular method still containing the implementation and the "new" interface method is empty.
Workaround: To prevent this behavior, delete the methods from the implementation class before starting a new code generation.

17275

Parser error occurs when attempting to reverse engineer a class which contains an anonymous inner class that extends a non anonymous inner class, belonging to another class.

17375

Dragging and dropping a .jar file into Rose in order to reverse engineer Java files will prevent the user from forward engineering unless the .jar file is removed from the path statement in the Java Project Specification directory.

17438

When using 'Update Remote Interface' from J2EE for a Bean class, the corresponding method interface is created in the remote interface, however the documentation and exception properties are missing.

17684

After a method name in an abstract class is changed ,the former method remains in a sub class after code generation.

17811

Once a container class has been defined using the custom Rose J specifications, it cannot be removed.

17925

The Java add-in uses the <install dir>\Rose\java folder to store the temporary Code.xml file. If the user running Rose does not have administrator privileges, this will fail on Windows 2000.

18043

A modal dialog from the Java and CORBA Project Specification goes behind Rose and still holds focus.

18591

On reverse engineering Rose will incorrectly report a syntax error when an opening brace '{' is followed by an opening C style comment '/*'

21178

When using IBM VAJ, if the IDE crashes, Rose will be unable to auto-start the IDE. Workaround: Manually start the IDE.

21203

Rose does not generate default return statements for certain J2EE methods.

23948

Rose on Linux x86 may hang when creating a jar or war file. If this occurs contact Rational Technical Support.

31104

Changing the return type of an operation generates an error, rather than generating code.


      

Rational Support

techpubs@rational.com
Copyright © 2001, Rational Software Corporation. All rights reserved.