Thank you for your interest in the MyEclipse for Spring early access release. Our goals for this public milestone (M1) were ambitious, and we're excited to share the progress we've made with the MyEclipse community. The M1 release includes most of our planned features. The features vary in degrees of completeness, but we think there is more than ample Spring web application development functionality in M1. Some of the M1 features came together toward the end of the development cycle, and as a result these features have had limited QA. The M1 release note is intended to give guidance on which features are complete and report any known issues.
Features
MyEclipse for Spring Milestone 1 includes the following:
MyEclipse for Spring - Menus
Spring Code Generation --> Add Spring Code Generation Capabilities
Spring Code Generation --> Add Spring Runtime Dependencies
Spring Code Generation --> Scaffold Spring MVC CRUD Application from...
Spring Code Generation --> Scaffold Spring Security
Spring Code Generation --> Update Models from Source
Spring Code Generation --> Generate
Spring DSL --> New Model Package
for creating new model packages (correlates directly to Java packages) for namespacing and grouping Spring DSL artifacts using Spring DSL
Model Package --> New Service
for creating new Spring Services (@Service), Java interface and Junits using Spring DSL
Model Package --> New Controller
for creating new Spring Controllers (@Controller) and Junits using Spring DSL
Model Package --> New Component
for creating new Spring Components (@Component) and Junits using Spring DSL
Model Package --> New Operation
for creating new methods in a Service, Controller or Components (@Component) using Spring DSL
Model Package --> New Domain Object
for creating new domain objects using Spring DSL
Model Package --> New Data Access Object
for creating new data access objects using Spring DSL
Model Package --> New Model Package
for creating new model packages (correlates directly to Java packages) for namespacing and grouping Spring DSL artifacts using Spring DSL
Model Package --> New Exception
for creating new Java exceptions
MyEclipse for Spring - Wizards
Add Spring Code Generation Capabilities
enable Spring DSL; show Spring DSL; enable Spring Nature; enable code generation by layer; add runtime dependencies (single project configuration)
Add Spring Runtime Dependencies
add runtime dependencies (principally to support multi-project scenario; limited testing for M1)
Scaffold Spring MVC CRUD Application from...
generate web/service/domain/dao layers
support scaffolding from DB tables, Java beans, JPA entities or domain objects
generation of @controllers, @services, @entity, @Repository annotated classes, relevant Java interfaces, and JUnits
generation of JSP pages using Spring Form taglib and Spring Javascript framework (client-side validation using DOJO)
generation of configuration files, including Spring, persistence, and localization
Scaffold Spring Security
generation of User and Authority entities
generation of Spring Security configurations for securing application resources
New Service
for creating new Spring Services (@Service), Java interface and Junits using Spring DSL
New Controller
for creating new Spring Controllers (@Controller) and Junits using Spring DSL
New Component
for creating new Spring Components (@Component) and Junits using Spring DSL
New Operation
for creating new methods in a Service, Controller or Components (@Component) using Spring DSL
New Domain Object
for creating new domain objects using Spring DSL
New Data Access Object
for creating new data access objects using Spring DSL
New Model Package
for creating new model packages (correlates directly to Java packages) for namespacing and grouping Spring DSL artifacts using Spring DSL
New Exception
for creating new Java exceptions
MyEclipse for Spring - Editors
Project Editor
configuring Spring Security
configuring global project code generation, including destination projects/folders
Service Editor
configuring service-level transactional properties; bootstrapping and configuring JAX-WS support; bootstrapping and configuring DWR support; wiring to other Spring components
Controller Editor
configuring request handlers, configuring data binding;wiring to other Spring components; configuring controller-level transactional properties
Component Editor
configuring component attributes; configuring controller-level transactional properties
Domain Object Editor
modifying Java bean; configuring JPA properties
Data Access Object Editor
managing named queries; configuring persistence properties
Exception Editor
defining custom exceptions
Web Flow Editor
bootstrapping project for Spring Web Flow support; maintain flows and sub-flows
Operation Editor
configuring method-level transactional properties
MyEclipse for Spring - Project Properties
enabling/disabling code generation and code synchronization
MyEclipse for Spring - Workspace Preferences
configuring editor preferences
Known Issues
Limited Maven configuration support - M1 includes Maven support, but it was added late in development cycle. There has only been minimal Maven testing. For M1 it is recommended that workspace JRE be set to JDK 1.5. Prior to scaffolding or adding Spring code generation support to a project, you should create two source folders: /src/main/java and /src/main/resources. Full Maven support will included for GA.
Editors require Spring DSL enabled project - In order to use the Spring editors, the project must be Spring DSL enabled. The editors can be used to maintain Spring DSL artifacts and maintain Java artifacts. The "Open With --> Spring Editor" option is available on a supported Java artifact (a non-annotated Java bean or class annotated with @Controller, @Service or @Component), but changes made with the Spring editors will not be reflected in the Java artifact if the Code Synchronization builder isn't enabled. For GA the code synchronization builder won't be required.
Missing JSTL library
Scaffolding from JPA entities causes compile errors - still working on support for different implementations
Spring Security scaffolding requires Spring DSL enabled project - The scaffolding wizard prompts you for a model package for generating User and Authorities entities, and model packages can only be created and accessed from Spring DSL enabled projects. For GA the plan is to let you alternatively pick a Java package.
CSS is scaffolded user interfaces cuts-off some HTML tables - Depending on the browser being used, the CSS stylesheet that's produced with web layer scaffolding may cut-off some wide tables. For GA the stylesheet will be re-worked. For M1 the workaround is to limit the data displayed in the table by removing irrelevant columns or customize the scaffolded stylesheet.
Content assist for Web Flow expressions doesn't work - The web flow editor is supposed to provide content assist when inputting expressions. This isn't working in M1.
Duplicate foreign keys created in the generated in the database - When the "Allow persistence provider to create/update tables" option is selected in the DAO editor, duplicate foreign keys will be created in the database tables. The editor is functioning correctly, but the Hibernate library isn't respecting the configuration. This bug has been fixed in Hibernate (HHH-3532), but the libraries couldn't be added in time for M1.
Relationships from scaffolding related entities aren't reflect in domain objects - When the Spring DSL is enabled, the scaffolding engine will create domain objects corresponding to the entities. In M1 the relationships between entities isn't reflected in domain object. This may cause errors when updating the domain objects using the Domain Object editor.
Code synchronization of binary data types is not functioning- In M1 there are exceptions when the code synchronization function reverse-engineers a Java class that used binary data types.
Compile errors when changing controller annotations using Spring MVC editor - The initial configuration of a controller method using Spring editor works fine, but a Java compile error is introduced to the controller if you switch an existing annotated method to another annotation.
Unable to edit request handler parameters using Spring MVC editor - workaround is to modify in directly in Java code.
Cannot scaffold domain objects with unspecified primary keys - In order to scaffold from Domain objects the domain object must have primary keys specified.
Opening Java bean with Spring Editor isn't annotating bean correctly - When opening a non-stereotyped Java bean with the Spring Editor, the developer will be prompted how the Java bean should be annotated. However the Java bean isn't being updated with annotations.
Can't specify parent JPA entities in scaffolding - When scaffolding from multiple JPA entities, there isn't a way to specify the parent entity.
Renaming relationships on domain objects cause exceptions - Renaming relations on domain objects causes Java compile errors in generated code.
persistence.xml may be overwritten - Manual modifications made to persistence.xml file may get overwritten on regeneration. The ongoing generation of the xml can be disabled using the Code Generation tab of the project editor.