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.