Building Java Enterprise Applications, Volume I
Summary: Building Java Enterprise Applications is an excellent book, and ought to be on the bookshelf of every J2EE programmer working on the mid- and back-tier. If you are like me, then you then have a series of books on various parts of the J2EE alphabet soup -- a few on EJB/JNDIs, one on JMS, one on RMI, one on JDBC, a database/SQL primer, a J2EE patterns book (I recommend Depur et al. by the way), maybe even some hyped-up case studies from Sun's press etc -- but nothing on how to design an entire J2EE application from scratch. There is nothing scarier than a blank piece of paper at the beginning of a project -- this book provides a combination of a tutorial and worked example, along with an insight into the thought processes of the designer.
There are not enough books of this type for the J2EE platform; the emphasis on tying together disparate technologies to build a coherent system is exactly what I need at this stage of my career, and I found the author's constant revisions and tweaking of his design fascinating and reassuring. I'm going to pre-order Vols. II and III.
Check your sources.
You might recognise the author's name -- Brett McLaughlin is the author of another O'Reilly title, Java & XML*, and writes for flashline.com, IBM Developer Works, JavaWorld and others. You can either Google for these or visit the web-site newInstance. In my opinion he knows his onions, is aware of what other root vegetables are out there, and, most important, he can communicate well.
What's the book about? I'll give you a bit of the blurb first, as it's a fair description of the material:
"Java has many enterprise APIs: JNDI, EJB, JMS, JAXP, and the other XML APIs, JDBC and more. But how do you as a developer put the pieces together and build something that works? How do these components integrate with back-end servers (databases and directories) and with front-end platforms (web servers and web services)?"
"[This] is Volume I of that series; it covers the business logic and back-end of an enterprise system, including entity EJBs, JDBC, JNDI (...), and JMS. Volume II will discuss architectures for web applications; Volume III will venture into the still-uncharted territory of web services."
That's quite an ambitious series; and something of a departure in style for O'Reilly, who have built their enviable reputation by providing definitive titles on one technology at a time. This more a book on when to use a tool, and which tool to use, rather than how to use a tool. I think it's good to see O'Reilly branching out in this way, but it brings them into the preserve of other publishers. It might be interesting to see how this new type of title does.
So what is covered in detail? Let's have a detailed look at the contents:
- Introduction
- Blueprints
This chapter outlines the case study that the author uses for the remainder of the book. This takes the form of a simple, but not trivial, financial-services tool. The blueprints are high-level sketches of the business need, the Data Layer, the Business Layer, and the Presentation Layer. - Foundation
This covers designing the data stores, databases and directory servers. - Entity Basics
Basic design patterns, coding and deploying beans. - Advanced Entities
IDs and CMP, data modeling and the nasty details. - Managers
Managers, in the facade sense, for entity beans and the LDAP directory. - Completing the data layer
Nasty details, populating the data store. - Business Logic
The facade pattern and stateful/stateless design. - Messaging and packaging
JMS on the client and server. Packaging. - Beyond flexibility
The wrap-up chapter, covers the major design points, discusses adapting the material to your own projects, and hints and what presentation layers may be added as a teaser for Vols. II and III.
As you can see there are no surprises in the contents. Once the high-level problem and solution is laid out, there's just a sensible progression through the layers. I particularly liked the practice of stopping and reviewing at regular checkpoints -- it helped tie the material together and emphasize the layering in the design.
There are some detailed appendices giving vendor specific instructions for databases, containers etc. This section also contains all the non-unique code for each layer, e.g., all the entity beans that weren't discussed in detail.
- SQL Scripts
Cloudscape, InstantDB, MySQL, Oracle, PostgreSQL. - SQL Deployment
Ditto. - Directory server setup
iPlanet, OpenLDAP. - Application server setup
BEA Weblogic only. - Supplemental code listings
All code also available in completed final form on the associated web-site.
Sounds wordy... It's not. This is a short book, only about 300 pages including appendices and index. (Compare that to something like Roman's classic EJB book ...) Chapter content is only 200 pages. Fully a third of the content of the book is code; this is definitely one for the programmer, those of you who delight in detailed breakdowns of requirements, user stories, schedules, etc will find little or nothing of interest here.
Equally, there is little in the way of explicit (non-coding) high-level design discussion -- all the code is evolved directly from the well-written text. This is not a bad thing at all -- the design seems sensible and straightforward, always a good sign, and mostly presents an admirable example to any young programmers watching.
All this doesn't mean you are reading a listing though. As on any
project involving EJBs, there is a lot of more-of-the-same code between
beans -- most of this code is concentrated in the appendices, and only
the material under discussion is presented. New code is always presented
in full, from package declaration to closing brace. This is
refreshing and permits you to actually get something working as you read
through the text, although you'll need to be prepared to set up app
servers, databases etc to get maximum benefit.
Target audience? Experienced Java programmers who have started using the J2EE platform and are fairly comfortable with all the bean types, JMS, JNDI etc. This book states several times that it is not a primer on any one technology, and provides ample references to more detailed texts when appropriate.
This is very much a book for a wannabe J2EE developer who can't quite figure out how to fit the pieces together, or, like me, just has a gap in his/her skillset when it comes, to, say, LDAP.
What's good? Lots of it. Mainly, the best thing is the clear presentation of a LOT of code via a well partitioned example application (which will also be re-used in Vols II and III). The code is of good quality too, and presents several idioms that while obvious now, were unknown to me when I started EJB work... with the usual reworking-over-a-weekend later on. In particular, there are some commonsense pieces of code -- like a nested exception class for those of us still using pre-1.4 (and remember, you're tied to what your app server supports), some simple session and entity bean
Adapter
classes, simple Value Object classes etc. As I said,
nothing earth-shatteringly novel, but it's nice to see a lot of these
idioms used together to simplify the code.
Another admirable thing about the book is the handling of the detail.
I've read several books which follow the practice of putting in
Gotcha! box-outs, and to be honest, few of them are that
useful unless you are a novice. I'm been programming for a few years now,
and was amazed at the silly difficulties I've had with my first EJB
project -- as a result I'm pleased to say that the box-outs indicating
problem areas sound like the voice of bitter experience. For example,
there is discussion on following the correct style for accessors/mutators
under CMP (getId works, getID cheerfully
fails), advice on the very fixed order in the deployment descriptor XML,
problems with case-sensitive searches in JNDI, etc. Those of you
who've worked with, particularly, EJB1.0/1.1, will undoubtedly have
groaned as you realised the problem de jour was something
simple-but-outside-your-code like those examples.
Admittedly it's not my area really, but I also found the whole treatment of directory servers very clear and useful. For the first time I understood (a) how they work (b) when they complement databases (c) how to use them easily from my code. Again, I admire the level of detail achieved without being confusing -- I don't see many introductory books include things like the default port number for directory servers using SSL (636 - well, I didn't know that!).
What's bad?
Not much. By nature of the book it doesn't go into huge detail on all technologies used -- there were a few areas where I wanted more. In particular I would have liked to have seen more on testing; now that XP is pretty much mainstream, no one can deny that unit testing is vital on production projects. (When I started using EJBs I had to kludge together a nasty version of JUnit which fitted into the sub-optimal build and client-server framework we were using. I've since found that there are better ways to test EJB layers, but I can still only think of one book, by Richard Hightower, which walks you through examples.) Although the build files in the example use Ant, which makes JUnit and other tools very easy to integrate, there is no mention of unit testing. This is a pity.
The only other things that caught my eye were minor -- coding style
in
particular. The coding style in the book is very straightforward and Sun-standard, but I have to admit that
I'd have liked more JavaDoc'ed code. The code on the website
is much more fully commented. I understand that printing this means more
paper, and thus a thicker and more expensive book, but on some of the
custom methods it would have clarified things for me.
In particular, and I'm being picky here, I didn't find that the
authors practice on handling nulls and errors fitted with my
own -- admittedly I don't so much practice "defensive coding" as
"paranoid coding." Most methods were not null safe, and that
can be a nightmare to debug in an n-tier system. Also, he
took the line of returning null to indicate failure or
error. I understand it's a valid design decision -- my experience says to
go with more explicit errors in a larger project, and I would have liked
a page or two on the choices here.
Another area where I feel there is room for improvement in the
presented style is in the use of hard-coded Strings for
lookups - for example, in the AccountManager object there
are several lookups of the AccountHome, e.g.:
AccountHome accountHome = (AccountHome)context.lookup(
"java:conp/env/ejb/AccountHome"; // Whoops, finding this can be tough!
From experience code reviewing EJB based projects, it's going to save a
lot of pain looking for typos if this repeated hard-coded
String is (a) extracted as a constant so it can only be
mistyped in one place and (b) refactored into a lookup method. It's a
fairly minor point, but useful to do right from the start on an EJB
project and worth pointing out to someone starting their first one.
(Mis-typed meta-data like this is a bit of a weakness in the J2EE
framework in my opinion - I always feel that I'd save a lot of time if
the compiler or some J2EE aware verifier could check over those
Strings to see if they match anything else in the build...
I've used vendor tools which claimed to do so, but as they didn't even
check that methods/lookup names were in the bean source I wasn't sure
what was being verified!)
One last thing: I know it's minor, but why the insistence on importing explicitly? I feel it makes maintenance more difficult -- change one LinkedList to an ArrayList and you're off fiddly with minor imports again. I also didn't find this:
import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; import javax.jms.TopicSession; import javax.jms.TopicSubscriber;as appropriate for a printed book as this:
import javax.jms.*;It would have been nice to trade those 10 lines wasted for some custom
JavaDoc. However, all told there is remarkably little to grumble about in this book -- I couldn't even spot the obligatory editorial mistake. (That really annoyed me.)
Alternate titles?
Can't think of a good one. (Either a sign that this book is one you might want to look at or else so completely specialised as to be of use to only one person in the world, and that person is probably the author. Luckily, I think it's the former in this case.)
It is however worth a trip to the bookstore for companion, as opposed to alternate, titles before reading this - it assumes detailed knowledge of several J2EE areas, but provides suggested (O'Reilly) titles for reference.
Sounds good -- but what do you know anyway?Time for the disclaimers. Some material in the book I found useful because I lack experience -- in particular, some database and LDAP stuff.
However, 5 years of getting paid to play^H^H^H^Hcode, and a personal reference library of some 120+ books has made it easier to spot the rare decent title! Most of my J2EE books are from my experience of EJBs for the last year or two, so I know what mistakes are easy to make, as I've made 'em. [I'm actually catching up on my reading, and hence reviewing, due to the Great Telecomms Downturn finally affecting me - anyone want a J2EE developer? :-) ] Finally, I paid for this book (which isn't the case for some of my other reviews).
You can purchase Building Java Enterprise Applications, Volume I from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
(* Bonus mini-review: a useful book, but not easy reading, I found it hard to slog through, but managed my first XLST work in about 10 minutes using it.)
This was an enteprise length review! You sure need to be hired in a big corporation and/or goverment to have enough spaceout time to read it. And then even have time to write a comment.
I work for the goverment, did I say that?
How much E17 do you want to be?
- To understand recursion, we must first understand recursion -
Only if you made so much money that you have to dump it back into infrastructure without increasing physical assets.
You think that I'm crazy, you should see this guy!
I thought this whole "New Economy" was dead & buried. They should have released this book last year, when marketroid expressions like "middleware", "b2b", "j2ee", yada were not yet the butt of jokes.
"What is the sound of one belly slapping?"
Pretty soon, you will need a 3.6GHz dual P4 system just for word processing and simple tasks. ;)
Hey editors? Why did you reject this?
http://www.voiceofwebcasters.com
Representative James Sensenbrenner (R-WI) introduced a bill late Wednesday, Sept. 27, that will put a 6 month stay on the CARP sound performance copyright rate - in essence giving webcasters and Congress time to sort through the issues and come up with a better solution than the current exorbitant rate that threatens Internet Radio. HR 5469 will be voted on Tuesday, October 1 but in order to make sure it passes, we need all of you to CALL your House reps before next Tuesday. (Click here for more information)
what's the subtle message in the exclusion of iPlanet, WebSphere, JBoss, etc. with the summary line: "Application server setup - BEA Weblogic only"
no doubt in my mind BEA makes a helluva product, but i'm surprised the king of the open source publications doesn't have an entire section devoted to Building Enterprise Java Applications with _______ (insert your favorite jakarta packages here)
when it rains, it gets real soggy. when it pours, i'm under the tap just _waiting_ for the joy
For the person who is learning, it's beneficial to see exactly which package a particular class belongs to. Obviously in this code example it didn't matter but if you were dealing with 4 different packages all added using a *, then one might be hard pressed to find a class.
Considering it's a book on Java, being specific suits it's audience. The author isn't worried about code maintenance issues here.
http://www.cgisecurity.net/lib/J2EEandDotNetsecuri tyByGerMulcahy.pdf
Yeah, but reading it is easier, especially if you're skimming through or haven't read a particular chapter where they introduce all their constants. Obviously, good practice differs.
So that readers can see the exact dependencies of the class you're writing. In fact, I often write imports explicitly in production code as a form of documentation, but usually not for packages like java.io or packages where nearly every class is needed.
Handling nulls is crucial, but it also clutters the example and makes it longer (somewhat). I would look at it (if they'd included it) and known they were being defensive, but I could see another reader possibly mistaking it for a special case? But i assume page length was [probably the main reason.
Books can strive to give you as much code as possible, but really, you shouldn't use it (and many books have such disclaimers). You're not buying code, you're buying the ideas behind it, so code should be explanatory and descriptive rather than production ready. Some books come with utility libraries or include code from popular, well-used libraries, but even then never cut and paste book code into a production project!
people still use java?
http://www.biker-needs-a-harley.org
Bikers still want harleys? sheesh...
Um, is it me or does this review seem a little too optimistic and not objective enough? I think so ...
I've read the book and eagerly await volumes 2 and 3. It is one of few comprehensive approaches at building serious software. If you learn by example, this is a good book for you.
-- Solaris Central - http://w
Jesus Hates Java
I usually pay attention to their reviews, particularly when you can get at least 3 people responding.
5 96 001231/qid=1033485007/sr=1-1/ref=sr_1_1/103-198980 7-1175041?v=glance
http://www.amazon.com/exec/obidos/tg/detail/-/0
Not a great review; the primary complain is too many mistakes and typos.
You were mistaken. Which is odd, since memory shouldn't be a problem for you
"Building Java Enterprise Applications"
Enterprise uses Java for it's computer systems? No wonder it can't go faster than warp 5...
On the other hand, it does make their system portable to other races' ships.
AM
It got a "9".
Just like every other book review on slashdot.
Therefore, the review was neither optimistic (> 9) or pessimistic ( 9).
The No 1 most in demand programming skill by job adverts is C++, just behind C++ the Number 2 most in demand skill is Java so I guess that means some people still use Java.
If you doubt this statement, try some searches at job websites. Always handy to do a little research to keep your thoughts matching reality.
"pessimistic ( 9)" should have been "pessimistic (less than 9)"
Slashcode mistook my "less than" sign for a tag.
Amazon says: "ASIN 0596 001231 does not exist in our catalog. Would you like to try your search again?"
The No 1 most in demand is Java and C++ after that , espexially in enterprise computing .
will also break when using a non-RMI messaging layer (like CORBA). I've done the same myself in projects but to be fully compatible, you need:
Also, it seems to be common practice now to put these lookup/casts in static methods of a utility class, (XDoclet will write the class for you) both to keep them in one place and to keep the code clean.
Is this book, or will this book, be available through the Safari subscription programme? I'm considering subscribing and this book would certainly be a candidate subscription for me. Anyone from O'Reilly care to answer?
Your pizza just the way you ought to have it.
good lord, that's horrible
Provide a link to this "rumor". I don't believe it.
".not the enterprize platform of choise"
Your so full o shit.
Pls go and play with your balls elsewhere stupid ass.
sometimes i thing that we are surronded by drones... wait that's true.
does anybody know of a j2ee / jdbc book that has in-depth coverage of distributed transactions? i have a j2ee book that tells you how to do it, but i want hard core examples and more than several pages on the subject.
thanks.
andrew
Why did I lurk so long before registering for a Slashdot account? I could have had a Slashdot ID of less than 100000.
Why , ,
the hell
everything should be written on Microsoft-based tools ?
Kinda neat?!
Sorry , Dude , I dont like microsoft that much . Matter of taste , but not just that . Mono Project is still not-mature .
I noticed the same reference to Stephen Hawking the other day...don't really see the point.
Also, he took the line of returning null to indicate failure or error.
and he's a Java expert? O'Reilly used to have better editorial control.
It looked like a great book and I had some free slots left, so I just added it to my bookshelf - very good so far.
This sort of book is exactly why I subscribed to Safari. It's very handy but I'm not sure I want a physical copy, I can read through the whole thing to decide that.
One warning though, I think the book was three points!! Safari subscriptions work by using a fixed set of points to put books on your "bookshelf", which then must sit there for about a month before you can replace it with another book. Very fair and ten points are $14.95 a month, most books are only one point.
BTW, you should be able to see for yourself what books are on Safari, it lets you browse and see excerpts I beieve. It's only when you try to read a book that you need the subscription.
A side note, I'm also evaluating the online book site "books24x7" for work and I like Safari quite a bit more,both in terms of site usability and quality of books.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Brett McLaughlin is the author of another O'Reilly title, Java & XML
I have to say this is not a good exultation for this book.
Brett McLaughlin Java & XML* book is the weakest book in the O'Reilly stable by a considerable margin. It has a very babbled writing style and lacks clarity, it is poorly structured/organised and very disjointed, being neither reference or tutorial. I suspect that he learnt XML as he wrote the book. The Index is useless, the topics show little natural progression and many XML related topics lack proper explaination.
he can communicate well.
I have to strongly differ.
That isn't Java related .
,
Fuck you
I hate these niggers here .
Come on! That was really, really, funnny! Mods, give credit where credit is due!!!
Yes, these are buzzwords, but frankly the J2EE framework is very useful even if it's a big buzzword. The funny thing is that most of the companies doing work with things like EJB's aren't little dot bombs, but rather large corporations. Banks, insurance companies, etc, are the things that need the huge transaction that make things like EJB useful.
This sig has been temporarily disconnected or is no longer in service
I have not read the book in question, but I did find another poster's comment amusing about basing the book on Weblogic instead of open source - grin .
Almost all of my Java consulting involves small or medium scale deployments, so open source solutions like Tomcat/JSP or Tomcat/JBoss/JSP (if transactions required) is all I really need.
re: posts on why use Java at all:
There is also great support for doing web services in Smalltalk, Python, etc. (i.e., support for light weight HTTP service, SOAP, etc.). That said, Java with great tools (like Tomcat, JSP, etc.) is a great platform. Really, language is not so critical, but good design is.
-Mark
For your information: 'tier' != 'box';
.NET and web services - many boxes servicing components for any tier.
You can have all 'n' tiers of an 'n' tier application running on the same box, 'n-1' boxes or (in the simple case) 'n' boxes.
If you distribute the application components then you could be running on n+nX boxes - i.e. think about
Explicit import statements are generally preferred for a number of reasons. Consider the following:
import java.io.*;
import java.util.*;
import java.sql.*;
import javas.jms.*;
If you see a reference in the code to Session, you will either
Also, when someone reads your code, they can browse the imports to check for specific classes you use that they are unfamiliar with. No one is going to read the entire documentation for all the packages you may have used if they only need to understand a few classes.
The gripes about typing are somewhat unfounded. Any reasonable java-aware editor will be able to automatically manage you import statements.
Remember: "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler)
What the heck is an 'Enterprise' application anyway? Sounds like a silly marketspeak to me.
I like traffic lights
I think that should be...
im_a_racist_pig->fuck(niggers && jews);
Why? There's a fundamental issue at stake that Sun has partially solved, but not completely: What your application does should have nothing to do with how it does it.
For example, take the "bank account" app that I've seen used as a tutorial in many places. Customers can have one or more accounts, and they can perform operations on those accounts (deposit, withdraw, transfer). The code necessary for those operations is trivial. It's the support code that makes writing enterprise apps so difficult. At the minimum, you need:
You'll probably want to expose a few other interfaces, like an API for your app to be used on a message bus so other apps can access it.
It sucks to have to write all of that extra code. It gets even worse if you have to modify your app (add/delete fields, features, etc). Sun is slowly chipping away pieces of the problem (EJB sort-of makes persistence easy, unless you need stored procs, etc), but they haven't solved one of the big the underlying issues:
The application has data that can exist in multiple representations. Each representation requires work to make sure it's always in sync with the rest of the representations.
There's an easy way out - define your data, and let the computer generate the different representations for you. While you're at it, have the computer write the code that can convert data in one format to another format. This is obvious for things like going from one XML format to another, but not so obvious when trying to convert a web form into a java object, or a java object into a database record.
By defining your data and using code generators or other automation techniques (reflection) to create those different representations, you can slash maintenance costs, time to add new features, etc. Want to add a new field to an object? Update the canonical representation of the object, and presto, your entire app supports it, from the web UI down to the DB schema. Want to add a new data format? Write a generator for it, and all of your objects automatically support that new format.
The overhead is higher at first, but it pays off incredibly quickly. On my last project we saved many many man-years by doing this. Check out thesandbossproject for an LGPL set of tools to help out with this, based on the SAND architecture.
(Yes, I've glossed over about a zillion issues. It's not that I havent thought of them, it's that the problems are solvable. The main point is that your data representations should always be in sync with each other, without your lifting a finger. And no, UML doesn't quite get you there yet).
reinterpret_cast_ration(im_a_racist_pig->fuck(nigg ers && jews));
Ok, something i've never quite understood. What is the benefit of Java on the server? It sort of made sense on the client even though most /., and ignoring the M$ hype about how much faster it is, it does a
companies have standard client configurations. I fail to see any advantage on the server. It seems to me that when installing / designing a back
end to a n-tier system the ability to be cross platform doesn't buy you much. The servers are specified to match the application. Java's
'standard' API's for database manipulation seem to come at the cost of performance. Yes, i've heard all the arguments about java
performance, but lets face it highly performance critical systems simply cannot be tuned as easily when you have a JVM between you and the
hardware and a set of generic libraries between you and the database, communications etc interface. So, lets assume that the applications don't
really need the performance. It then comes down to the question of whether or not Java and friends provide sufficiently high level abstractions
to ease development costs. Again, I simply don't find the java tool kits sufficiently better than assorted 3rd party system, even ones not
designed for building middle tier systems. Take Delphi for instance, the built in database manipulation components and its ability to handle
distributed systems, aren't really its strong point (building front ends) but its secondary support in the enterprise versions seems better than
J2EE. Then there are M$ offerings like C#.net. Admittedly a dirty word on
damn good job at enterprise backends.
In the end it seems to me that (especially here on /.) J2EE's strongest benefit is that you can build a system without involving M$. The
negative is that it seems to cost more, particularly for development.
> The No 1 most in demand programming skill by job adverts is C++
:(
If only it were true
someone mod this up...the guy is right. If you've ever tried to build and maintain a big app, one of the biggest problems is making your data behave.
Everything is true , with the exception of
.
"Sun makes Solaris, and Sun makes Java; that's all that needs to be said about that."
This is not entirely true (the Java part)
Uh, imports don't exist at the runtime level (unless, I suppose, you're using some special runtime tool that scans all the source files for import statements). All class references are made fully-qualified in the generated .class files.
Any more than one and there's a potential for name conflicts.
Exactly - this is the real reason why imports should usually be explicit.
Female Prison Rape in NY
Now changing LinkedList to ArrayList is simple and involves no import changes. Always work with the interface where one is available to you -- you should rarely pass around the actual class if an interface is available.
I hope Brett hires you again .
I think that should be...im_a_racist_pig->fuck(niggers && jews);
No, that is still not proper Java. If you are going to be an evil biggot, then please format it properly. Where do these newbie biggots learn to program? KKK University low on funding?
Book Review of Building Java Enterprise Applications Vol. 1 Architecture
"Before you dive into the coding, read this book to summarize and organize your overall design and implementation. It will be well worth your time. I'm looking forward to seeing the rest of the volumes in this series."
J2EE framework is designed for the three tiers you mention:
:
- jsp pages contain presentation in HTML with a bare minimum of actual java, it references:
- JavaBeans, that contain all the "business" logic, this in turn references
- RDBMS that contains all the raw data.
People just don't use them right. And I agree with you that that's a minimum. The Actual java code should probably be broken up into some higher level and lower level tiers.
Actually the first is also valid if the AccountHome is a local home. /jonas
PortableRemoteObject.narrow(...) is only used for remote objects.
Because programmers using wild card imports should be taken out the back and shot in the head. I don't want to spend 10 minutes searching for class Foo that is in one of the 20 packages you happened to import with an 'import x.y.z.*'.
However, I agree it doesn't make that much sense in book source code examples.
Does anybody look at thisclassy, oversyntaxed, OO parody of an example and think to themselves, WTF? Why are you using such a constipated language?
to piss off your dumb fucking ass
I think you were referring to "Core J2EE Patterns: Best Practices and Design Strategies"
by Deepak Alur, et al.
Depur et al does not exist.
clueless. which job site are u searching?
if you know bot c++ and java, and an experienced one at that, youll know why c++ would be obsolete in the near future, sooner than u think.
I bought the book some time ago, and I really like it. I am a Java trainer (Sun) and read a lot of similiar books, but this is one is really "small and beautiful", easy to read, lots of good code. I am waiting for part II.