Posts Tagged ‘Java’

Why Application Architecture Should Matter to Spring Developers

Thursday, June 10th, 2010

In the course of developing products and bringing them to market, it’s not always obvious which features are going to resonate with developers.  This week I had the pleasure of doing several demonstrations of MyEclipse for Spring 8.6 Milestone (M1) to Spring developers.  The premier 8.6 M1 features are the new scaffolding options, including Spring MVC, Spring Web Flow, Adobe Flex, Google Web Toolkit (GWT), and iPhone Web.  As would be expected, a demo typically consists of showing a fully generated, ready-to-run example for each type of scaffolding.  During a demo, I don’t usually have a ton of time to review the architectural implementation, and to be quite honest, most developers find architectural discussions during a demo to be very boring.

This week I was pleasantly surprised by how open developers were to taking a deeper dive into the generated code and discussing the architecture.  I started wondering why there was this sudden interest in the architecture, and I’ve come to the conclusion that it has to do with the fact that in order for an application to support multiple, concurrent web layers, it really draws focus to the other layers of the application that need to support those web layers.

If you are responsible for maintaining one or more web applications, the thought of rewriting the front-end has more than likely crossed your mind.  Considering all the choices there are for implementing web layers, the fear for some developers is how well the other applications layers are designed for re-implementing the web layer.  The following diagram shows the typical application layers of a web application.

The Java language and the Spring framework combination have excellent support for application layering, where each layer is represented by a Spring or Java stereotype: @Controller, @Service, @Entity and @Repository.

An ideal implementation of the service, domain, and data access layers should be able support multiple web layer implementations.  This also highlights something that I’ve been trying to explain to developers even prior to 8.6.  If you have selected a web layer technology that isn’t currently generated by MyEclipse for Spring, there’s still a lot of value in having MyEclipse for Spring generate the common layers for you.  The fact that common layers can support multiple web layer implementations (as proven by the 8.6 M1 scaffolding capabilities) is a testament to the architectural soundness of the common layers that are generated and the likelihood of being leverage-able by other web layer technologies.  This is even further emphacized when you consider that the common layers of the application architecture also support JAX-WS, REST, and Javascript/JSON.

There are two ways to get your hands on M1. Existing Pro subscribers can use the add-on option in the Dashboard tab of the Software & Workspace Center, while new MyEclipse users can download a free, 30-day trial at http://bit.ly/asbbYo

MyEclipse 8.5: Collaboration Application Lifecycle Management Delivered

Tuesday, March 30th, 2010

MyEclipse Blue Edition 8.5, simultaneously released, also includes much-requested Linux support, portal development and Websphere application editor and configuration management.

Today we’re pleased to announce the latest production release of MyEclipse Enterprise Workbench. The newest release includes updates for many popular open source frameworks (including Spring and Hibernate), and includes Genuitec’s C/ALM (Collaboration Application Lifecycle Management) technologies. For Blue users, MyEclipse 8.5 includes support for Linux operating systems and features a new WebSphere data source editing tool.

New & Noteworthy | Download

MyEclipse Standard and Pro editions 8.5 also include our C/ALM dashboard which provides a robust platform for managing tools, projects, teams, software delivery and updates. These three releases also support Spring 3.0, popular persistence frameworks updates and expanded coverage for server connectors (Glassfish 3, JBoss 6, Resin 4, Jetty 7, JOnAS 5, Spring tc Server and Sun Java System Web Server 7).

MyEclipse 8.5 is a whole new development technology that not only allows users to build rich Web and desktop applications, it also adds unmatched visibility and management into the development process with team collaboration, software lifecycle management and delivery processes using our integrated Pulse tools. If you haven’t used MyEclipse recently, experience Genuitec’s new C/ALM environment and start team building today.

Let us know what you think in the comments, and thanks!

and features Genuitec’s Collaboration Application Lifecycle Management (C/ALM) technologies using Pulse

MyEclipse for Spring Webinar – Q&A

Thursday, February 11th, 2010

During the MyEclipse for Spring webinar (replay is here), we received a lot of great questions from the webinar participants.  Although we attempted to respond directly to all of the questions raised during the webinar, unfortunately, we ran out of time and couldn’t respond to all of them.  In this blog post, I would like to address some of the questions that we didn’t get to answer and share some of the questions/answers that I think would be interesting to Spring developers.

What version of Spring is supported?

The MyEclipse for Spring milestone supports Spring 2.5.x, and the GA version will support both 2.5.x and 3.0.

Does MyEclipse for Spring support BlazeDS and Flex-Spring development?

Yes.  The only difference between a Spring web application and Flex-Spring application is that Flex (instead of JSP and controllers) is used for the web layer.  While the web layer may be different, the service and data layers are typically the same.  While MyEclipse for Spring doesn’t have any specific functionality related to Spring-Flex, MyEclipse for Spring can handle most of the bootstrapping for a Spring-Flex application.  Furthermore, MyEclipse for Spring can scaffold major portions of the back-end of a Spring-Flex application (i.e. service and data layers).  Look for an upcoming blog post, screencast and sample project dedicated to using MyEclipse for Spring for Flex-Spring development.

Is Spring-WS generation supported?

While we have done some work with Spring-WS, we aren’t planning on dedicated support for Spring-WS in the initial release.  MyEclipse for Spring will initially support generation of JAX-WS services using CXF.  With that said, MyEclipse for Spring scaffolds and generates application components using the standard Spring stereotypes/annotations.  In lieu of dedicated Spring-WS support, the Spring services (@Services) can be easily configured to be exposed as Spring Web Services.

Can MyEclipse for Spring leverage a legacy Spring app?

The general answer is yes, but it really depends on how you want to leverage the legacy Spring application.  Do you want to use existing application artifacts (i.e. POJOs, JPA entities, database tables) as an input into scaffolding?  Do you want to generate into an existing application?  Do you want integrate with a legacy application via database or web services?  For all these questions, the answer would be yes.

Can JSF/ICEFaces be integrated?

Spring supports the JSF framework, and MyEclipse for Spring provides tooling for both Spring and JSF.  Both the Spring Web Flow editor and JSF Visual Designer in MyEclipse for Spring support the development of web applications based on the JSF framework.  Look for an upcoming blog post, screencast and sample project dedicated to using MyEclipse for Spring for JSF development.

Does the MyEclipse for Spring subscription fee include the MyEclipse Pro fee?

Yes.  MyEclipse for Spring subscription includes all the functionality of MyEclipse Pro.

Are there any runtime royalties for commercial use?

Absolutely not. The generated code is straight, best practice-based, Spring code. There are no proprietary libraries or anything else included in any way. The generated applications are all yours to do with as you please, unrestricted.

Is this compatible with SVN plug-ins for MyEclipse?

Yes, absolutely. You can use SVN, CVS, or whatever version control system you like.

How does MyEclipse for Spring compare with MyEclipse Blue?

MyEclipse for Spring is similar to MyEclipse Blue in that it is designed for a specific, focused market. However, they are two separate products. Blue is focused on WebSphere development with more traditional Java EE technologies, and MyEclipse for Spring is focused on Spring development on any platform.

Is there Maven support in MyEclipse for Spring?

MyEclipse for Spring will have full support for Maven; however, there are currently some Maven-related bugs (see release notes) in the milestone release.  Look for an upcoming blog post, screencast and sample project dedicated to using MyEclipse for Spring with Maven.

How would a Spring application integrate with SOA (or previously created web services)?

There are a variety of technologies available for integrating a Spring application with web services, and they can all be used with the applications that are scaffolded or generated with MyEclipse for Spring.  MyEclipse for Spring also provides tooling for generating Java-based web service clients from existing WSDLs.

What is Atomikos?

Atomikos is an open source JTA transaction provider, and it’s the default transaction provider used in web applications that are bootstrapped or scaffolded with MyEclipse for Spring.  However, you can reconfigure the application to use whichever JTA provider you want.  None of the generated code references any Atomikos-specific classes.

Didn’t MyEclipse Pro already have Spring support?  How is MyEclipse for Spring different?

Yes, MyEclipse Pro has had Spring functionality for a few years now.  However, the existing tools don’t offer the advanced bootstrapping, scaffolding and code generation features that MyEclipse for Spring provides.

Is it possible to have the Junit tests generated into separate directory?

Yes, the destination directory and names of all generated artifacts can be easily customized.

What if you are the only member of dev team using the tool?

There are no caveats to using MyEclipse for Spring.  You can layer this tool right into existing projects to leverage what you have and generate new artifacts as you add new functionality to the existing project.  The tool works great whether you are a lone developer or part of a very large team.  It is all about the code, and MyEclipse for Spring generates standard Spring code and configurations.

Pulse 2.5: Eclipse Galileo Tailored for Enterprise Distribution

Monday, July 20th, 2009

The only cloud computing software delivery platform that delivers 64-bit Mac Cocoa for Eclipse

Genuitec announced today the immediate availability of Pulse 2.5,  the release includes Eclipse Galileo (3.5) support, intelligent algorithms for optimal download speeds and greater control of the entire Eclipse software catalog. Enterprises will enjoy the ability to manage and share proprietary software among users with expanded support for varying architectures.

Pulse 2.5 is currently available for download here.

Free for individual users, Pulse 2.5 boasts the most flexible Eclipse software profiles on the market – managing Eclipse even behind corporate firewalls (including in-house tooling). For software teams and enterprises, Pulse now has better compatibility within corporate network infrastructure. Using the new Communications Wizard, IT managers can help developers install all necessary Eclipse and corporate propriety software in a secure environment.

Greatly enhanced Pulse 2.5 capabilities are:

  • Accepts proprietary software into catalog for secure sharing
  • Includes entire Eclipse 3.5 Galileo catalog
  • Unique support for Apple’s 64-bit Cocoa
  • Speed upgrades
  • Greater control of software profiles and stacks
  • New download dashboard to pause, resume and re-route incoming software
  • User profile data lives in the Cloud for use anywhere on any machine and OS
  • Fully customizable tool stacks made from the catalog, update sites, drop-ins or any combination
  • Configuration simplification: No more “managed update sites” versus “local update sites”
  • Enhanced proxy support: huge improvements to work seamlessly with all common (and many not-so-common) proxy configurations
  • Still completely free of charge for individuals

More information on the Pulse product family may be found here: http://www.poweredbypulse.com

Pricing & Availability

Pulse 2.5 Community Edition is a free service, where Pulse 2.5 Freelance Team Edition is a value-add service allowing users to share their profiles and environment settings priced at $6 per month per user or $60/year, and is available for a free 30-day trial.

Pulse Private Label allows for total control and visibility of software access and distribution; pricing is based on individual requirements. Please contact Genuitec at: pulse@genuitec.com. Or call: 1 888-267-4176