I recently came across spring surf project and Spring webscripts .
Both these technologies (I guess) seem to come from Alfresco developers
Web Scripts
Surf
Is it correct ?
As I was investigating both of them couple of hours, it seems to be very clever technology. Little bit focused on CMS, but it makes better impression and sense than JSPs, Icefaces (which I haven't liked for many years, but I've been forced to use them).
It's a shame that both technologies are in state of incubation within springsource.
Could please anybody who has experience with them tell us some stories from production use ?
I noticed that Surf can be used together with Spring Roo. Is there any other support, like maven, IDE etc ?
Yes, those technologies were developed by Alfresco and then donated to Springsource to detach them from Alfresco and become first-class web development libraries.
I'm not aware of any remarkable use of those libraries out of the Alfresco scope, but that's most likely because of my current focus being on Alfresco, or because they are still quite new as standalone projects.
Have a look at Alfresco Share or the Web QuickStart to see how web scripts and Surf are used to create fully functional and standalone applications.
Spring Surf and web scripts are built with maven and deployed into Alfresco maven repository, which should give you enough support for your maven builds. I'm not aware of any maven archetype for Surf or web scripts.
As per developer tools, I'm only aware of Spring Roo. The official documentation could bring some more information, though.
Related
I'm trying to develop a simple starter project on Spring-WS using STS 3.9.
I'm new to this technology I'm done with theoretical concepts of web services and Spring-WS.
I have also gone through the spring.io official website for project creation but things over there were not very clear to me.
Can anyone please share some links that shows step by step development of project creation.
Also i also want to know apart from STS spring framework jars what all jars file are required for the same project.
I would highly recommend to take a look at the guides at https://spring.io/guides/. They provide simple-to-follow guides for a wide variety of topics around Spring, including web services. Not sure exactly what kind of web service you are looking for (RESTful or SOAP, whereas RESTful services are the preferred way nowadays), but you will find guides for both.
In case you found a guide that helps you, you can import the guides directly into a workspace in STS via the "Import Spring Getting Started Content" wizard, which you can find via the "New -> Other" and search for "Spring".
I was considering using the Play! framework on Google App Engine for a simple to medium complexity web application.
It looks like I am limited to Play 1.x. The GAE module 1.6.0 is supporting GAE SDK 1.6.0 and when installing it says it supports Play 1.2.4. The Siena module 2.0.6 says it supports Play 1.2.3.
I feel like the whole setup I am thinking about is completely outdated and the components are not active at all. Is that the case? This will be a production web application that will be used by hundreds of thousands, I can't afford any integration issues or bugs that won't be fixed by updating the framework or the modules just because there are no new releases. I feel very limited with this setup.
I can't change GAE as the platform but I can choose any other framework with better support, the only reason I was thinking about Play is because it seems flexible, easy to learn, fast to develop and not bloated. I don't have the time to spent/waste on understanding and configuring frameworks like Spring or similar.
So, am I right thinking this is a bad choice? And if yes, what would you recommend for a Java developer on GAE?
If you are willing to consider Groovy, how about Gaelyk?
I'm looking for good java MVC web application development kit (or framework), with servlet engine, database persistence layer and viewer layer included and ready to go? One example is TDK (Turbine Development Kit), but it's kinda outdated, and their M.E.T.A. is very hard to work with (it uses maven 1.0).
Thanks,
David
There's AppFuse and Roo if you're looking for "make it go".
If you're not dead-set on Java, there's Grails (and JRuby on Rails).
Give a shot to AppFuse. It will leverage either Struts 2 or Spring MVC for you, with a nice persistence layer.
There are many good 'stacks' that you could use, some of which have already been mentioned.
They all have their own strengths & weaknesses, and you really need to select a stack that best fits your requirements.
The Spring/Roo, AppFuse & Seam are all great, but they do come with a certain amount of... errm... bloat.
You may find that picking and mixing technologies actually provides you with a lighter weight and more performant solution, so long as the technologies you choose integrate relatively seamlessly.
If you're looking to package a full execution environment including the servlet engine as part of your application, Jetty is a good choice, and you can easily integrate it into a Maven build environment.
You may also want to investigate using HyperSQL for your database, which will allow you to prototype using an SQL compliant database without having to worry about installing a full database manager such as MySQL or PostgreSQL.
Is there a Java Web Framework, with mvc, thrid-party integration APIs, libraries and tools? Something like Zend Framework for PHP?
There are a lot of Java web Frameworks, here you have a list with lots of them: http://java-source.net/open-source/web-frameworks
The most "famous" would be Struts, JSF or Spring mvc framework (not in that particular order).
Play Framework is more light weight compared to Spring , JSF or Struts. More close to Zend in some sense. and has scala support :)
Using Zend for a while, I found the transition to Spring fairly easy.
Spring does come with more bells and whistles (Dependancy injection, AOP etc)
You also have AppFuse
AppFuse is an open source project and
application that uses open source
tools built on the Java platform to
help you develop Web applications
quickly and efficiently. It was
originally developed to eliminate the
ramp-up time found when building new
web applications for customers. At its
core, AppFuse is a project skeleton,
similar to the one that's created by
your IDE when you click through a
wizard to create a new web project.
AppFuse 2.x is a restructuring of
AppFuse 1.x to use Maven 2 and JDK 5
and annotations. The major reasons we
use Maven 2 are:
Dependency downloading
Easier maintenance (everything can be compiled at once)
Easier upgrading for end-users
If you'd like to help out or ask
questions about AppFuse 2.0, please do
so on the user mailing list. If you'd
like to use AppFuse 2.0, see the Demos
and Videos and use the QuickStart
Guide to get started.
is Spring Roo supposed to be only a tool for rapid development of web applications, thanks to all that scaffolding, source code generation and similar stuff, such as grails for groovy.
Or can it be utilized as a source code generator / osgi platform for building enterprise applications ? What I mean is, that there are source code generators, that generate only domain model and light DAO layer based on metadata definition when starting a new project and you have to stick to the objective - create a web app. But there are also generators, that generate the entire DAO and service layer - fantastic for iterative dev process of bigger apps - and you are not restricted otherwise, you are just using it to build you enterprise app step by step. With this you can really build a huge enterprise applications / platforms that will be maintainable for a very long time.
Also the OSGI model could be employed in a way, that you might develop a core portal application for instance, with a package of social office addons that you may plug in, etc. etc.
My point is, that Java development needs to be "Rubyfied". I mean Ruby on Rails environment where you have everything unified and standardized. A platform that could rule the java world some time :-)
Since Thomas and #jhericks trashed Spring Roo I'm going to say I actually like it mainly because its not a framework. Roo also (now) support multi-maven modules.
To answer your question: Spring Roo is not framework. It is code generation.
So yeah it is a code generation platform not only for web apps but any Java app.
There are couple of reasons why some people don't like Roo:
It uses AspectJ
It uses Spring
It does Code Generation
After building several applications with Spring Roo I can say its greatest value is its ORM generating abilities and its DataOnDemand test generation.
Other than that Spring Roo is really just Spring *.
Frameworks like Play and Ruby on Rails are just not really the "Java Way". That is most Java (Web) Apps I see are combination of libraries and not a giant framework.
As far as I experienced, Spring Roo is meant to be a RAD/bootstrapping tool for web applications. There are some major features missing and not on the roadmap that would make it truly useful in an enterprise application context. An example being multi-module Maven support.
This rather polemic article and its follow ups summarize quite well how I feel about Roo and similar projects like Seam Forge.
If you are looking for something RoR-like for Java check out the Play Framework that currently seems to gain momentum.