The Java BluePrints Solutions Catalog is an effort by Sun's BluePrints team (http://java.sun.com/reference/blueprints/index.html) to create a solution-focused catalog for the latest Enterprise Java topics. Current topics include:
- Posted by: Larry Freeman
- Posted on: December 14 2004 16:55 EST
* Web Tier and Java Server Faces Technology
* Service Oriented Architectures with Web Services
* Business Tier with the J2EE Platform
This is part of Java.Net's Java Enterprise Community (http://community.java.net/java-enterprise/)
The Java Enterprise Community is a growing community of Enterprise Java projects.
This Solutions Catalog is also available as part of NetBeans 4.1 (http://www.netbeans.org/community/releases/41/announce.html)
- Direct link for BluePrints Solutions Catalog by Larry Freeman on December 15 2004 16:13 EST
- Sun releases update to Java BluePrints Solutions Catalog by Konstantin Ignatyev on December 15 2004 17:27 EST
- Displaying and Navigating Database Query Results by Evgeny Goldin on December 16 2004 05:51 EST
- The link by Evgeny Goldin on December 16 2004 05:55 EST
- Displaying and Navigating Database Query Results by Vic Cekvenich on December 16 2004 07:57 EST
Java BluePrints is open to feedback by Larry Freeman on December 16 2004 01:53 EST
- Java BluePrints is open to feedback by Evgeny Goldin on December 16 2004 03:54 EST
- Java BluePrints is open to feedback by Vic Cekvenich on December 16 2004 04:32 EST
Java BluePrints is open to feedback by Clinton Begin on December 16 2004 08:02 EST
Java BluePrints is open to feedback by Larry Freeman on December 17 2004 12:22 EST
Java BluePrints is NOT open to feedback by Vic Cekvenich on December 17 2004 06:18 EST
- Java BluePrints is open to feedback by Larry Freeman on December 17 2004 04:25 EST
- Java BluePrints is NOT open to feedback by Vic Cekvenich on December 17 2004 06:18 EST
- Java BluePrints is open to feedback by Larry Freeman on December 17 2004 12:22 EST
- Java BluePrints is open to feedback by Larry Freeman on December 16 2004 01:53 EST
The direct link for the Java BluePrints Solutions Catalog is here:
all the variants seem inferior to SiteMesh or even Tiles. Did I miss something?
Could somebody show me how SiteMesh like simplisity can be achieved in JSF?
Konstantin, from what I saw - pure-JSF solutions look very poor, just like described in the BluePrints ... We're using Tiles for our templates.
And what does it mean "pure-JSF" here?
Take a look on "Displaying and Navigating Database Query Results" in JSF section.
Authors are going to the great length trying to push the ResultSets and RowSets as data sources for the UI components. I'm still amazed of people thinking that gluing the RDBMS and Web UI layer makes sense (same about JSTL and it's evil sql tags). How about testing your components in a standalone environment ? Without DB ? With plain-text data files ? Isn't it obvious that tying Web UI with RDBMS is a lousy solution ?
Sorry, can't provide the link - TSS system insists on illegal HTML in the message body ... Weird.
Sorry, can't provide the link - TSS system insists on illegal HTML in the message body ... Weird.
TSS does not assept https links with that error message. Hey TSS, please fix it.
Isn't it obvious that tying Web UI with RDBMS is a lousy solution ?
This is Old propriatory Sun's BluePrints. They have a reputation. I think the community consensus is to ignore them back and use:
http://ibatis.com/jpetstore/jpetstore.html, now an Apache PetStore as a reference Blueprint to improve from. Everyone just uses a DAO interface layer to isolate application from DAO implementation. No rowset or EJB is known to application.
The new Sun, w/ the new Swing is OPEN SOURCE on development and new BluePrints for JDNC RiA/SoA. See how the plan is to air it 1st:
http://jdnc.dev.java.net/documentation/roadmap.html .This way before they publish final, us "non-experts" get to validate and adjust it.
This is the new Sun, open source and users; so I am execting a lot from that group. For one, no RowSet, but a Collections based interface that can be implemented any way.
I am very sorry to hear that Java BluePrints has "reputation".
As the Manager of Java BluePrints, I am very open to hearing comments and fostering discussion on best practices with regard to the J2EE technology and best use of component technologies.
I see jpetstore as confirmation of this approach since it really takes the main ideas behind Java BluePrints and provides an interesting implementation. The goal, from our view, is to foster discussions and insights.
Over the past year, our focus has been on web services and the Java Adventure Builder reference application. I think it is awesome that people such Rod Johnson, Clinton Begin, and Bruce Tate are using Java Pet Store as a model for explaining their ideas and their frameworks.
We are presenting the Solutions Catalog as the next steps in a more collaborative and open discussion on J2EE/SOA topics.
I would be very intersted in hearing comments on the relevants of the topics selected in the catalog and any issues or questions about the solutions proposed.
Software Engineering Manager
I think it is awesome that people such Rod Johnson, Clinton Begin, and Bruce Tate are using Java Pet Store as a model for explaining their ideas and their frameworks
Like this ?
Perhaps the worst thing Sun has done in the history of the J2EE is produce the Java Pet Store and advance it as an example of best practices for J2EE. The Pet Store is bloated, inefficient and has given Microsoft a perfect target to attack J2EE.
I don't know - my be Rod has changed his mind since then .. Honestly, I still didn't finish reading all JSF-related (that what I'm currently interested in) BluePrints but from what I saw so far - I'm getting that feeling again that Sun is still talking to some kind of "corporate zombies" stuck in the world of entity beans and needing an explanation how to store the state on client. Ok, may be it's just that "Displaying and Navigating' entry made me feel that way. Let's see how the validation articles go ..
Btw, when I said pure-JSF solution I meant solution invloving only <f: and <h: tags, no <tiles: or anything else. AFAIK, your best shot in pure-JSF app is <f:subview with static/dynamic JSP includes which is, of course, nothing more than usual JSP includes providing one support for only over-simplified "include header/content/footer" examples (like the one in catalog).
When I say that I approve of the Java Pet Store type efforts I am not saying that I agree with every statement a person makes.
As far as the statement you reference, I disagree with Rod. My point is that Rod Johnson use of Pet Store as a model speaks loudly about the strength of the Java Pet Store effort. The purpose of Pet Store was always to help identify critical design decisions and promote developer success with the J2EE technology. Rod's effort is really about using a Java Pet Store type model to promote ideas that he believes in.
It is from this perspective that Rod and others owe a debt to the Java Pet Store demo. I hope that answers your question.
"Perhaps the worst thing Sun has done in the history of the J2EE is produce the Java Pet Store and advance it as an example of best practices for J2EE."
That is the reputation and more.
I am a plesently suprised that your group would consider feedback and not get defensive.
I personaly plan to work w/ JDNC group and feedback their BluePrints before they finalize. If there is a specific blue print related to SoA that you want my feedback on, I would email my comments.
But of the top:
- EJB is not allways the best DAO. I do not know if that is even open for discussion, w/ the "elimination" of JDO.
- DAO and ... almost evertyhing should be an interface and an implemenation. (does not have to be IoC or CoR but somethings. Yes, sometimes a factory). So we can change the implemnation w/ minor impact to the application or users of the interface. Andother example a SoA interface. If I implement Soap,or Hessian or JMS or bla, bla, I should have minimal impact.
- If it's not testable and managable (mock, jUnit, JMX)... it does not exists.
- Architecture must consider overall performance (such as SQL explain plan). And even ... mockups, prototypes are part of it. UI can be an example of interface that we implement as CRUD. It must also consider ROI, cost to develop and operate vs business benefits of having the system in operations.
- Goal of programing is to reduce complexity, in order to be able to solve more complex problems.
- Productivity via reuse is good. One way to get reuse is by leverging some OO capabilities.
- It should be be scientificaly reproduciable. If Project X uses architecture designs Y and gets results Z, I should be able to reproudce their results (sucess or failure).
Sometimes things have a good reputation, such as MVC/Model 2, documented best at the Sun web site. (Collections, servlets, etc.)
(my email is vin at friendVU.com - you can even hire me)
ps: there is a good book on "Best Practices" at sandraSF.com, a best seller in it's catagory in Europe.
I think it is awesome that people such Rod Johnson, Clinton Begin, and Bruce Tate are using Java Pet Store as a model for explaining their ideas and their frameworks.
I'd like to clarify, as I didn't create JPetStore to explain my ideas, and the framework didn't officially exist when I wrote JPetStore (that was an unexpected side effect).
I wrote JPetStore to demonstrate 3 things:
1) Java is just as EASY as .NET
2) Java is more PRODUCTIVE than .NET
3) Java is CHEAPER than .NET
Even after two years, it has yet to be challenged. Probably because it no longer matters.
Sun and every other J2EE vendor has failed to demonstrate the value of Java to the industry, and they continue to fail. Ironically, the most successful J2EE vendor is the one with the worst products --IBM. Seriously.
Companies believe that "Java is Sun", and that Sun is destined to fail. Unfortunately, Java's chance for success is now tied to Sun's stock price.
Every day I watch companies switch to .NET for all of the wrong reasons. Companies are switching because they believe .NET is easier, cheaper and more productive than Java. They believe that their software projects will be more successful if they switch to .NET.
The truth is, projects succeed or fail for many reasons, but none of them has anything to do with Java or .NET. Those companies have been fooled, and they don't even know it. But that's not their fault, there's nobody around to tell them otherwise.
The original JPetStore whitepaper is still available, as is the presentation I did for Sun Developer Days. Please read them, as unfortunately I think Sun is the only company left that still doesn't understand.
With all due respect,
iBATIS Team Lead
Thank you for your comments. With all due respect, we may be getting into a bit of semantics here.
I have been following your project since I first heard about it, probably in 2001. By "framework," I really mean approach. I mean that you were using the Pet Store use case to show how "easy" it could be to program using the J2EE platform.
The value of your sample code stems from the use that people make of it. The original Java Pet Store demo was also not intended as a framework but it became used as one because at the time there wasn't much else.
I am very sorry to hear about your concerns about the state of the Java platform. I think that you are addressing a different point than I am making.
The goal of Java BluePrints is not to solve all the world's problems and it is not to be the perfect program. From my view, it is really about presenting ideas and engaging the community. Our focus has always been the Java BluePrints guidelines and the application is really about providing sample code that goes along with the ideas in the guidelines.
Java BluePrints has intentionally stayed out of the J2EE platform vs. .Net debate. We have always believed that the best way to compete is really to focus on the J2EE SDK and to work hard on enabling developers to get the most from its latest features.
Clinton, I respect the work that you have done. My point is really that your development of JPetStore, the development of an XDoclet based PetStore or any of the many other Pet Stores is really about taking Java Pet Store demo as a use case and using it to highlight and explain the recommended uses of J2EE platform features.
I am making the point that in doing this effort you are fitting into our mission at Java BluePrints of promoting J2EE developer success.
I do not think anyone knows of a USE of whatever you think your or Sun's goals are (I feel bad for developers that have to work for Sun).
And I also 110% agree w/ Clinton on what the EFFECT is.
Working w/ Java, one 1st has to stomack Sun (and explain to C# converts that Sun != Java). There is jRockit (works great as jdk v1.5 w/ Eclipse 3.1, Tomcat5.5) and GNU Classpath, et all. That is the real Java lang. and the community.
According to ORiley
Sun use of Java name in the above one case
"sems a bit of a red herring--if not a rape of community property".
There are 2 Java's. Sun's brand name and Java the lang. community..
(JavaLobby also has been public w/ it's own issues.) So it all goes into perception and reputation. Thanks for ignoring us.
I am "making a loud sematics point" ;-) that clearly, there is a rift btwn Java Community and Sun. PetStore/BluePrints is just another case. (EJB (elephant) ,JSF, Gridbag, etc. are other exampples IMO.)
It may be a "sematic" :-) but I like to point out that according to one survey, the production market share is
0% for Sun as compared to other 12 vendors, and Tomcat+Resin+IBM+Oracle(Orion) == 90% of production market share (if there are other market share studies, I'd like to know). Why would they even think that they should tell us how to do something, they can't do it themselfs?
"Don't try to teach a pig to sing, it frustrates the pig... and it does't work."
http://sandraSF.com for RiA-SoA
Our goal at Java BluePrints is to foster discussion about using the latest features of the J2EE SDK and promoting developer success.
I don't really want to argue about how Sun is doing but since you cited a netcraft report from April 2003, here's what's happening in 2004:
NetBeans 4.0 is out and it is hot:
The J2EE 1.4 SDK is doing very well, espeically in terms of developer mindshare:
I agree with Clinton that we can do better and we need to do better. I agree with you, Vic, that the Java BluePrints team can get closer with the Java Community. We are actively working on this. :-)
I would encourage you to check out the Solutions Catalog. I think that you will like what you see.
I think that it is very valuable to discuss the topics listed there. There is lots of opportunity to get your technical views heard.
Java/ Sun/ etc wars are a lot of fun but back to topic.
Larry I appreciate your teams effort in releasing something. These days if you voice an opinion that differs from the "hot" frameworks you are shouted down by aggressive zealots.
Whilst the hot frameworks are very cool (I'm a hibernate user myself), the biggest advantage .net has over java in the market is the rapid development of web front ends.
I see the push for rowsets and jsf as a slow attempt to get something in place that can be well tooled. (and co-incidentally strongly in alignment with Sun's new studio product).
Whether it is Sun's product or another that finally succeeds in this space doesn't matter. It is vitally important that some product does succeed.
Java has done well with it's use of standards to remove vendor lock-in with the run-time container. If this can be extended to provide for rapid development without lock-in to the development tool, Java could beat .Net in yet another aspect.
Anyway, thanx Larry, keep-em coming.
These days if you voice an opinion that differs from the "hot" frameworks you are shouted down by aggressive zealots
No, it's when you're doing something stupid which only lazy developers appreciate (like bringing RowSet to the Web layer instead of wrapping the data access by the simple DAO layer) and then even dare to call it "best practice" - that's when you get shouted at.
As about rapid development - I personally never liked the idea. Even in desktop UI I'm sure most of real professionals gets dirty and work in their editors instead of drag-n-dropping visual components ... But that's an offtopic already :)
Btw, back to the BluePrints - I must admit that rest of JSF materials are good tutorials providing a high-level overview of the possible options. Thank's for that !
No, it's when you're doing something stupid which only lazy developers appreciate (like bringing RowSet to the Web layer instead of wrapping the data access by the simple DAO layer)I can't say I'm a fan of this approach either. However for all of the front-end intensive projects I've been involved with recently, everything seems ludicrously repetitive. Build queries to pull out a graph of objects, pass this through the layers, write tags/ HTML to display this data.
What is the answer to this? Code generation? This strikes me as a route without much of a future - how are 4GL -> Procedural development environments doing in the marketplace these days?
Rapid development is obviously a requirement - it also has been and always will be. I've seen experienced powerbuilder developers working in the past. That experience sets my minimum expectations. In recent years I've seen web projects go to .Net because web intensive front ends take too long to develop in Java.
Whilst I think that coupling presentation logic with data logic cannot be a step forward, I also feel that current Java web front end development is ungainly and repetitive.
I've seen quite a few different front end development tool attemps now, but they (including perhaps the current JSF set?) fail on:
1. forgetting the middle tier - multitier will not go back to a two layer architecture
2. vendor lock-in at development time; platform freedom is a requirement from most java developers - and this includes develop-time as well as runtime.