Skip navigation
ANNOUNCEMENT: community.oracle.com is currently Read only due to planned upgrade until 29-Sep-2020 9:30 AM Pacific Time. Any changes made during Read only mode will be lost and will need to be re-entered when the application is back read/write.

Welcoming former jini.org projects

According to Jim Hurley's e-mail of a few months back, A New Day..., today is the day then jini.org is supposed to be decommissioned in favor of a simpler, informational/pointer site. Of course, that mail is from three months ago, so the timetable may have changed in the meantime (I think we're still waiting on the proposed submission of Jini itself to the Apache Foundation, among other things). But for those moving your projects over to java.net, we're here to help.

After all, both the former and current editors of the site have used Jini and really like it.

The Jini Community on java.net is still getting on its feet, surely slowed somewhat by the post-JavaOne breather and Summer vacation period (remember, Sun is shut down all of next week). Some older Jini news is on the Jini Community page, while the Jini top-level projecthas some more timely information wrapping up JavaOne activities and getting ready for the 10th Jini Community Meeting, being held in Brussels in September. This page also lists a couple dozen projects that have moved over to java.net from jini.org.

But how do you move a project? For those migrating projects from the jini.org to java.net, there's now a guide on Moving Source from jini.org to java.net. This guide assumes that you have set up a new java.net project and that you'll be using subversion for the new project, and walks through the cvs checkout from jini.org and the subversion import to java.net.

So, welcome Jini folks. We hope you enjoy the site's many features and its active community. Who knows; maybe we'll see some interesting integration of Jini and other technologies take root...


Also in the Java Today section, "Sun's chief open source officer has told a conference to forget volunteerism and ideals, and think more like Warren Buffett", according to the ZDNet article Sun: Open-source is about self-interest. Saying the open source community needs to look to the lessons of capitalism, Phipps is quoted as saying "this is not volunteerism [...] It is directed self-interest, synchronised self-interest and there is nothing wrong with self-interest."

A recent ACM Queue article, Untangling Enterprise Java looks at the history of Java enterprise frameworks and their approaches to dealing with crosscutting concerns. "In this article we look at the evolution of enterprise Java frameworks that tackle crosscutting concerns. We address how dissatisfaction with the first-generation frameworks, which were based on the EJB (Enterprise JavaBeans) programming model, prompted the development of dramatically better frameworks. These newer-generation frameworks are based on the POJO (Plain Old Java Object) programming model."


The latest java.net Poll asks "What do you think of the inclusion of Java DB in JDK 6?" Cast your vote on the front page, then visit the results page for results and discussion.



 

Mason Glaves spins A tale of two GUIs in today's Weblogs: "Two friends of mine, both excellent Java programmers, just recently got into an incredibly heated argument on the subject of unit testing. On the left was the server-side web application developer and on the right was the client-side Swing developer. On the one side a happy village, with crops of green test lights in neat little rows, on the other a dark jungle where code roamed free and wild, and any step you took could be your last."

Speaking of the wilds of Swing, Eitan Suez has some thoughts about Where Swing should Venture: "An increasing number of frameworks are appearing that I find particularly interesting. They're web AJAX frameworks where the details of the HTTP communication and of all the HTML and JavaScript on the front-end are hidden behind a Swing-like API."

In More Literate Programming: Language-Level Anaphora, Tom White writes: "Following on from a previous post about using anaphora (a word like it that refers to something previously referred to) to make jMock tests more readable, I ask 'Can we have language-level anaphora?'"


In today's Forums,luimen seeks JXTA guidance on how to create an output without getting a pipeadvertisement: "I'm developing a system based on jxta. actually i've two clients, say A and B. A creates an input and an output pipe and publishes the input pipe advertisement. B initially creates its inputpipe and starts asking for A's adv. when B receives A's adv, it creates an output pipe so he can communicate to A. As soon as the pipe is resolved, B sends to A its input pipe id/name. A Gets B's input pipe values and builds a PipeAdvertisement through the AdvertisementFactory. A now tries to create an output pipe to B, but it never gets resolved. WHY? if i force A to request B's adv, everything goes well. obviously i've checked the values B sends to A. It seems that A must receive at least one adv from B before being able to resolve B's pipe."

The message Re: [JAI-IMAGEIO] Rendered JPEG image not smooth wonders aloud about multi-pass image operations: "Yes this is an old topic and both Aarons and Brians suggestions refer to what has been said before and AFIK correct.. But one thing I've not seen discussed is: Why is it that to get a 'properly' scaled down image we need two operations in JAI? A low pass and scale. I sort of understand the philosophical issue, I guess, but one would think that a single operation to do the scaling and averaging (low passing) could be implemented to be much faster. Or is that not so?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Welcoming former jini.org projects  
kfarnham

Into the Great Wide Open Blog

Posted by kfarnham Jun 29, 2006

Taking Aerith's source code for a spin

The cause of quite a bit of complaining and demanding -- even the Java Posse were calling for it to come out already -- the source for Aerith, the 2D/3D/webservices photography and mapping mashup from the first JavaOne 2006 keynote, is finally available from the Aerith project.

Granted, it's not just about Aerith, but rather a history of JavaOne "gee whiz" demos whose source was never made available, making it far more difficult for others to duplicate the demos' accomplishments. In some cases, presenters have code that works but is poorly organized, and they don't want to put that out as a model of Java programming. Aerith had not only this problem, but also legal entanglements from the various third-party API's they used, meaning there was that much more to deal with in the post-JavaOne come-down in order to get a release out.

Two blogs offer two distinctly different perspectives on the release. Joshua Marinacci's Aerith Code is Go! covers some of the licensing and techincal issues, with a little bit of expectations-setting to boot:

A word of warning. Aerith requires a fast machine and a recent copy of Mustang. This is to support the 2d/3d integration that was a key component of the demo. Also, the code is rather crufty and not all parts may work. If you'd like to fix some of these bugs please download the code and get involved on the mailing list. This is a demo, not a real product, so we can't spend much time polishing it, but we always welcome outside contributions.

Meanwhile, Richard Bair's Aerith is free! flashes back to the genesis of Aerith as a mad rush to be ready in time for James Gosling's keynote "tryouts":

Romain, Josh and I setup a war room in one of the conference rooms here on campus. As all good war rooms, ours was stocked with food, liquid nourishment (water for me, on a diet :-)), and pizza (so much for the diet). Oh, and chocolate cake. No "Romain" war room is complete without chocolate cake.

In three days of intense coding (Thursday, Friday, and Saturday. Usually about 18 hours+ each day) we wrote the entire map viewer and editor, and part of the applet. The original applet contained only the 3d "twinkle" code. (For those familiar with Romain's blog, Twinkle is one of the projects he released that we reused for this demo). With that, the demo was more or less feature complete. Later that week I added what we called the "Indiana Jones" viewer in the applet. Otherwise, bugfixes occupied our time. And endless tweaks to get things up to Romains standards.

Oh, and for those of you who were wondering about Aerith co-author and Swing rock star Romain Guy, he's still around, and added a one-line blog of his own to mark the occasion.

Also in Java Today, Artem Ananiev and Alla Redko discuss Using Headless Mode in the Java SE Platform: "Headless mode is a system configuration in which the display device, keyboard, or mouse is lacking. Sounds unexpected, but actually you can perform different operations in this mode, even with graphic data."

Linda DeMichiel is Sun Microsystems' specification lead and chief architect for Enterprise JavaBeans 3.0 and the Java Persistence API (JSR 220). In the concluding segment of a two-part interview, Refactoring the EJB APIs: A Conversation with Linda DeMichiel, Part II, she discusses the role of interceptors, dependency injection, the Java Persistence API, and how EJB 3 relates to other Web frameworks


In our Feature Article, Jason Zhicheng Li looks at how to Validate Java EE Annotations with Annotation Processors. Annotations are one of Java 5's most compelling features, but their openness is in some ways a curse: there's nothing keeping you from declaring illegal combinations of annotations (like @Stateful and @Stateless). Annotation processors give you the opportunity to inspect annotations, either with the currently available Apt or or the upcoming JSR-269 annotation processor. Jason takes a look at both in this article.


Ethan Nicholas says So long, and thanks for everything in today's Weblogs. "After eight years with Yahoo!, I just gave notice. What could lure me away? Here's a hint: it starts with 'S' and ends with 'un'."

In Immunizing the Internet, or: How I Learned to Stop Worrying and Love the Worm, James Gosling recalls, "When we first released Java in 1995, we made all of the sources available on the net. Most people just downloaded the binaries and used them, but a lot of folks downloaded the sources, and many of them spent many hours trying to figure out how to break the security of the system."

Billy Newport has just finished a web application and wonders aloud about the relative advantages of Java versus PHP: "I've been building a PHP site over the past 6 months and it's been interesting given my Java background."


In today's Forums,deronj discusses why server-optimized Java is a disaster for client apps like Looking Glass in Re: No 64bit release for 0.8.1: "The problem with using the server vm for an interactive client application is that, at least in the case of [Looking Glass], the server compiler applies considerably more aggressive optimizations than the client vm, and so compiles take longer. Thus, it can take several minutes before the 'compilation burst' which occurs at LG startup has subsided."

Justin Couch seeks some domain-specific help in Anyone doing motion capture work? "I've just finished off a file parser for the somewhat industry-standard C3D file format. I'm looking for some live motion capture data to test with beyond what I already have. Most of my data comes from a ViCON 2.5 application, and I'd like to test against output from some other systems."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Taking Aerith's source code for a spin  

Mustang later this year, Dolphin in 2008

Ray Gans' blog Update on Mustang, Dolphin and the JDK Community is on the site's top spot today, because it's absolutely jam-packed with information. Coming a month after JavaOne, what he lays out is an updated roadmap of JDK-related efforts and timelines.

Currently, an overlapping period of time is about to begin, whenDolphindevelopment will begin in earnest while the final touches are put on Mustangfor an Autumn release (Autumn in the Northern Hemisphere, that is... your climate may vary). Mustang development now means bug-fixes only: "new feature work, contributions and non-critical bug fixes will now be considered for future inclusion in Dolphin."

Since some people were disappointed when they had feature requests or API changes that didn't make the Mustang cut-off, now's probably the time to engage the bug parade, JCP, or other means of getting your voice heard for Dolphin. 2008 seems like a long way off, but you don't want to miss this deadline and have your feature request slip to 2010, do you?

Then there's the topic that so many people are focused on, the promised open-sourcing of Sun's JDK implementation. Here's the unedited line from Ray:

No date has been set yet for open sourcing the JDK (though we definitely plan to do this within a reasonable period of time). There is a lot of planning and preliminary work that must be completed before we can roll things out. We are working hard to resolve business, community and compatibility issues around open source, plus we're investigating the infrastructure and organizational changes needed to support it -- so stay tuned, we'll have much more to report during the coming months. In the mean time, we're continuing our efforts to improve the JDK by working closely with interested developers through the JDK Community on java.net.

Ray also mentions two java.net projects in the JDK community of particular importance to certain subsets of the developer community. The jdk-distrosproject supports the Distro License for Java which allows for Linux and OpenSolaris distributions to include Sun's JDK or JRE. Then there's the jdk-api-localizationsproject, which hosts multiple volunteer efforts to translate the JDK javadocs into various languages.


Also in Java Today, the JavaServer Facesproject's wiki page RealWorldJSFLinkscollects instances of known real-world deployments of JSF technologies. "It turns out that there are hundreds of public sites on the web obviously using JSF technology. We don't know how many non-obvious JSF sites are out there, nor how many intranet sites are using JSF."

Airlan San Juan talks up the value of Java User Groups in Jugging in Place. "Where can you snack on free pizza, get some freebie books, mingle with other Java knuckleheads, and bone up on the latest fashion trends in Javaland - all these being just a drive away from your home? If you answered JavaOne, then you weren't paying too much attention to the question. Give yourself a wedgie and say 'Jumanji'. The answer, of course, is your local JUG, which is the usual acronym for a Java User Group."


Vikram Goyal asks Did you ask the users before implementing AJAX? in today's Weblogs. "Would it come as a surprise to you that my good intention of using AJAXish behavior on an existing web application turned into a nightmare of gargantuan proportions, and it had nothing to do with knowing how to use AJAX? It had all to do with knowing when to use AJAX."

John O'Conner has an important reminder: String's equals method isn't always enough. "Comparing Strings with '==' is almost never correct, and comparing with the equals method is often wrong too."

In Swing and Non Blocking JAX-WS, Richard Bair offers a mea culpa for making an unfortunately common mistake: "This is a follow up on yesterday's blog about using JAX-WS and Swing. Yesterday I was a bad, bad, boy. I was making a web service call from the Event Dispatch Thread. Doh! Today, I introduce BackgroundWorker, a SwingWorker like JavaBean and repent of my old EDT-blocking ways."


In today's Forums, the message Re: JXTreeTable: Icon in hierarchical row & proposed interface changes explains a coding philosophy and how it relates to Swing: "Generally, I prefer delegation over inheritence if the functionality of the delegate is nicely bounded. That's the case when it comes to change notification. It's in-line with PropertyChangeSupport but contrary to core Swing custom of providing a AbstractXXModel which doesn't do much more than change notification. I never liked the Swing way - it forces me to c&p the whole bunch of notification code if I can't extend the AbstractXX."

afishionado seeks Sound effects for GPL/MPL projects: "I'm trying to find some beep/click sound effects for some of my Open Source projects. I want to be able to play them without having to pull in any extensions to the JRE, so they need to be in .wav or .aif format. Does anybody have any suggestions for places to look? Google so far has been pulling up lots of really crummy free sound collections. I don't think that what I'm looking for is that hard to create--just some little beep noises for doing a countdown sequence, and maybe a happy startup sound."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Mustang later this year, Dolphin in 2008  
kfarnham

Too Good To Be True Blog

Posted by kfarnham Jun 27, 2006

How far should we push Ajax?

The thing about Ajax is that most tutorials are heavily slanted towards replacing existing web apps, so they add a little bit client-side functionality, but they are still heavily focused on the server and the interaction between the server and the "thin" client (a term that is getting increasingly inappropriate for browsers where Ajax is involved). So, you start with a webapp that refreshes the whole page, and then you see how to replace the refresh and instead send a little XML that the client parses and uses to alter the DOM and thus update just the parts of the page that need updating. And so far, that's been really helpful for a lot of people.

But what if you put aside the web app paradigm for a second and looked into just how far you can get on the client side? Even if it's a "just for fun" investigation, thinking not in terms of existing webapps but in terms of more powerful client-server systems might be a mental jump well worth taking.

As an exercise in this kind of thinking, Simon Morris offers a tutorial for the new Google Web Toolkit that throws out the server entirely In the Feature ArticleKickstarting Google Web Toolkit on the Client Side he takes an entirely client-side view of GWT, which allows you to write Java code that is then converted into JavaScript for use by many popular browsers. Adding in client-side interactivity and animation that puts Tumbling Duke to shame, it sort of feels like when applets first hit the scene, and we wondered what we could do with them. Client-side GWT may offer some of the same capabilities, without the struggle to get a JVM on your clients' systems.


In Java Today, Claudio Miranda asks: "How much time do you need to assemble and configure a usable java development environment with the regular tools a java developer needs to start coding ? Well, you can cut some time here, by using a Linux LiveCD with Java Tools, just boot it up and your initial java environment is ready to the first javac."

An ACM Queue article by Michi Henning looks at The Rise and Fall of CORBA. "Given that only a few years ago, CORBA was considered the cutting edge of middleware that promised to revolutionize e-commerce, it is surprising to see how quickly the technology was marginalized, and it is instructive to examine some of the deeper reasons for the decline." The article draws some lessons from CORBA's failure, and notes that the open source community has better followed these guidelines than have industry consortia.

2006-06-22: Attendees from countries including Austria, China, Finland, France, India, Japan, Korea, Spain, Sri Lanka, Sweden and the USA presented thirty two position papers on 9-10 March in Tokyo at the W3C Workshop on the Ubiquitous Web. They proposed ways to standardize distributed applications that adapt to context: user preferences, device capabilities and environmental conditions. Theworkshop report has been published.


Ethan Nicholas talks All about intern() in today's Weblogs. "String.intern() is a widely ignored and misunderstood method which can have serious performance implications. Let's dive in and take a look."

In An EJB 3 Glossary for Elvis, Cay Horstmann writes: "I am working on a glossary of EJB 3 terms that gives both the official definitions and explanations that Elvis can understand. (Elvis is the programmer persona who is neither Einstein nor the point-and-click/drag-and-drop "just give me a wizard" Mort.) What other definitions would you like? Do you spot errors or inaccuracies? Please let me know."

Richard Bair offers a tutorial on combining Swing, JAX-WS, and JavaBeans: "JAX-WS can be a bit daunting, especially for the desktop developer. In this blog I show a simple web service, simple form, and how to use JavaBeans to tie it all together."


Richard also has a few things to say about the direction of Swing in today's Forums. In Re: JDNC house cleaning, he writes: "It is also very important that we reach out to development communities that have not in the past used Swing. I'm thinking of many web developers, Microsoft developers, Pascal (Delphi) developers, and so on. I want to enable people to write cool apps like Aerith with little difficulty. Aerith is far from a gimicky app. It has real monetary potential. It may not be enterprise, but it is consumer. Consumer oriented apps has always been a weak spot for us. Hopefully we can take some steps to address that."

In Re: Compare and contrast Entities and Instances.,stvconsultants writes: "My aim for this thread is to have a debate (even if only with myself, but I'm hoping for more than just me) where people can try to tease out an understanding that allows us to explain what happens. I fully expect that as people contribute their thoughts to this thread, I will be forced to re-examine my interpretation of the specification until I come up with a consistent interpretation that makes sense all the time. OK, now back to the first two paragraphs of the spec, and my interpretation of them."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



How far should we push Ajax?  
kfarnham

I Won't Back Down Blog

Posted by kfarnham Jun 26, 2006

Are you messaging, or just performing a series of remote calls?

Some blog descriptions just beg for vigorous debate and argument. Like this one:

After reading several recent posts on other Java sites boasting how distributed messaging is somehow 'superior' to distributed objects; well, I have reached my limit. While I agree the technique is useful; it is but a trivial subset of a Remote Procedure Call. Are you curious to know why?

John Catherino goes on to explain how, in his view, Messaging is degenerate RPC. He adds a class to the cajo distributed computing project to show how the concept of messaging is a straightforward use of remote calls, and then concludes: "If you want messaging, by all means, go for it! It is a very useful technique. However, it must be seen for what it is; degenerate synchronous RPC: i.e. a tiny subset of the functionality that is possible with distributed objects."

The discussion's already underway, with some commenting that you can turn the tables and see RPC as just a special case of messaging. As John replies, this may depend "on how low into the protocol you want to go." Surely with all the interest in distributed systems and the metaphors by which we develop for them, this should be one of the hotter topics today...


Also in today's Weblogs, James Gosling discusses clusters, single-threading, and other hazards of scientific computing in MPI meets Multicore: "To get the best CPU utilization the apps have to be written to be multithreaded on a cluster node, and use MPI between nodes. This is the worst of both worlds because you have to architect for threading and clustering at the same time. This is pretty straightforward in the Java world because we have great threading facilities, but folks with bags of Fortran code have trouble."

John Reynolds offeres Why JMatter matters - a wake-up call for programmers: "My fellow blogger Eitan Suez open-sourced jMatter last week... a Naked Objects inspired framework for creating workgroup business applications. I am always interested in Eitan's activities, but jMatter really struck a chord when I read a bit about its background on the jMatter mailing list."


In Java Today, the article What's New in the Sun Java Wireless Toolkit for CLDC 2.5 Betacovers the new features in this toolkit for mobile developers. The new version includes support for five optional API's: the SIP API for Java ME (JSR 180), Scalable 2D Vector Graphics for Java ME (JSR 226), Payment API (JSR 229), Advanced Multimedia Supplements (JSR 234), and the Mobile Internationalization API (JSR 238).

"Until recently, converting data back and forth between database and XML representations used to be a major task that would take a large chunk of application development and testing resources. Fortunately, the newest version of the JDBC API provides features such as precise navigation through the result set, caching of result sets, writing result sets to XML, and so on." In Making the Most of JDBC with WebRowSet, Sharad Acharya introduces JDBC's XML-friendly interface for working with results, converting to and from XML, and performing updates by manipulating the WebRowSet object.

Interested in learning how to simplify data access when building web applications? Learn how in the hour-long webinar, "Simplifying Data Access Using Java Studio Creator 2", available during the week of June 26th . After the webinar, post any questions you have on this topic to the Ask the Experts page  and get answers online from Sun Staff Engineer, Peter Bisso. You can post questions starting on June 26.


In this week's Spotlight, the Sun Grid Cool Apps Developer Challenge is offering a total of $50,000 in prizes to developers of the "coolest" apps for the Sun Grid Compute Utility. There are actually two contests: one for apps that use the Compute Server plugin for NetBeans (open to US and international participants), and another that actually runs on the grid (US participants only). The contest submission deadline is August 31, with a community vote scheduled for early September and announcement of the winners expected in mid-September


In today's Forums,sbusch discusses Swing approachability in Re: JXTable w/ a multi-line header "You want to have a JButton, as a cell, well, this doesn't work out of the box. There are 14 godzillion ways to do this (there are), but then try to show that the button is actually pushed, that doesn't work out of the box. Many hours later, I realize it's a two liner. Please, please, please, make this all easy to use. Please, please, please, don't make me learn VB. End of rant."

dj_lucas notes that Tiger updated source is still missing...: "It seems that Tiger source releases have been overlooked...again. Since my last few messages and bug reports have went unacknowledged, I figured I'd post to a more public forum in hopes that somebody might see this and know why this is, or if the location of update sources has moved or what the heck has happened? Any answer is better than silence. I mean, even if somebody screwed the pooch, a simple 'Update release sources will no longer be provided.' would be sufficient. Patchsets would be fine too! If I've simply overlooked something, please direct me to the proper place."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Are you messaging, or just performing a series of remote calls?  
kfarnham

Signs of Life Blog

Posted by kfarnham Jun 23, 2006

Whatever happened to JDNC?

For a while, there was all this activity in the JDNC project, and it looked like a crucial element in the future of Swing. Then suddenly, it went cold and all the activity moved over to JDIC, with its native browser integration, dock/tray API, screensavers, etc. Great, but what happened to JDNC? And what's the difference?

The SwingLabs team has started clarifying the future of these two projects. They mentioned the plans for JDNC in their interview with the JavaPosse, and a recent from Richard Bair further clarifies the JDNC house cleaning. "For those who've been keeping score, not a lot has happened with the JDNC project since it was split out into SwingX and Databinding. That is about to change. The JDesktop Network Components project has been a dead area for a while since most work was going into the SwingX components and the databinding framework. Since last year, the landscape has changed and its time to bring JDNC back into action." Citing a FAQ, he says "The JDesktop Network Components project (JDNC) will eventually house components (both visual and non-visual) for working with webservices. For example, the JXMapViewer component that was shown during the JavaOne 2006 keynote as part of the Aerith project will be released as part of the JDNC project. Basically, if the component is all about webservices or working on the net, then it'll probably end up in JDNC."

This looks like a pretty tidy dichotomy -- purely local components like the wonderful MultiSplitPane go to JDIC, while those backed up with network-acquired content, like Aerith's map components, go to JDNC. It'll be worth watching how JDNC develops with this new mission.


Also in Java Today, The JXTA Community has made announcements of new releases of the three major JXTA implementations. The JXTA Java SE team has announced release 2.4, "Umqhusho", which improves configuration features and moves from Log4J to java.util.logging. On the JXTA-C side, version 2.5, "Mahabaleshwar", features thread pool support and a change in a callback prototype. Lastly, the JXTA Java ME release, 2.1.3 "Giza", makes a number of bug and performance fixes.

A lot of emphasis has been placed on implementing Service Oriented Software according to best practices and principles. But how about the worst practices? In SOA Anti-Patterns, Steve Jones from CapGemini goes over some of the most egregious and thorny antipatterns based on his experiences in the industry and discussions with other SOA thought leaders.


Having mentioned Aerith earlier in the blog, Joshua Marinacci has a minor update on when we'll see its source in today's Weblogs. In Java One, Future Projects, and Back to Work, he writes: "So you have probably wondered where I've been. Possibly even missed me. Or maybe you haven't and are glad I haven't wasted any of your precious packets during the last month. In either case: I'm back with lots of interesting things on the way. I've been on vacation, traveling, spending time with family, and then back on the job working on Aerith and getting Mustang ready for Vista."

Meeraj Kunnumpurath continues his conference coverage in TSS Symposium Europe - Day 2 Today's sessions started with a keynote address by SImon Phipps from Sun on the benefits of open source software. Simon emphasised on the importance of community-based ownership and the different models behind open source software development. There were a whole variety of other interesting sessions including message-based architecture, an update on Spring 2.0, WSRP, JBI & Servicemix, JPA, transparent JVM clustering, space-based architecture etc.

In Swing and Roundabouts 2: Going into Action, Evan Summers "looks at Swing actions, which are used for buttons, menu items and keystrokes eg. Ctrl S. We need to configure actions centrally, so that consistent labels, icons, mnemonics and keystrokes are associated with a given action, such as 'Save' or 'Exit.'"


The latest java.net Poll asks "Are you represented in the Java Community Process?" Cast your vote on the front page, then visit the results page for results and discussion.


Sun Microsystems, Inc. invites you to take this one-page survey for developers. Name and email are not required, unless you want to participate in the random drawing to WIN a six-month subscription to the java.net Safari Bookshelf.


In today's Forums,avinashdha describes some Mustang Tiger incompatibilities: "It doesn't work with XML either. The problem seems to be that when we serialize a class into XML format the type of the class when serialized in Tiger shows up exactly as the name of the class in the XML representation. But the Mustang representation seems to require the same name in lower case. For eg. if the name of the class is BDBReadResponseMessage, in Tiger the type value in the XML is BDBReadResponseMessage and in Mustang the same value shows up as bdbReadResponseMessage. This seems to cause the problem. However Mustang serialization and deserialization have no problem. It is only when one serialized in Tiger and tries to deserialize in Mustang do we have a problem."

In Re: Why is there no Event chaining API?, coxcuexplains this feature request: "Event chaining would be used when event handling causes additional events to be fired. The new events would be created with the handled event as the cause. Sometimes, it would also be useful to examine the cause(s) of an event when handling it."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Whatever happened to JDNC?  
kfarnham

Welcome to the Machine Blog

Posted by kfarnham Jun 22, 2006

Let code generation figure out web services for you

Machine-readability is an essential asset in web services, reducing the amount of code that developers need to write to connect services -- if the machines can talk to one another, then we can move further up the stack. As Ajith Ranabahu puts it in today's Feature Article:

Code generation for web services comes from the fact that the WSDL document associated with the web service describes the service fully in a machine-processable way. Hence, a tool can parse the WSDL and figure out how to call the service without human intervention.

The code generator has two uses as far as the generation of code from WSDL is concerned. It can generate code to access a service as a client, or it can generate the skeletal code to implement the service on the server side. The latter is referred to as the contract-first approach, where the WSDL is made prior to the service implementation.

In A Dive Into the Generated Client Code in Axis2 he takes a look at Apache Axis2 and how it provides flexibility for different code generation scenarios.


In today's Forums,qpool_char is trying to figure out the next step for the server-side of a web service in Re: JAXWS & HTTP POST ?: "Hello Marlor, I have a similar problem. I dont know how to create a WebService Endpoint out of a HttpServlet class. The problem is that there is the abstract "service"-method which cannot be processed by WSGEN cause its abstract. Is there any Sample or tutorial showing how to use existing HttpServlet classes as endpoints?"

patrick2edfe9 needs a solution for Compiling Apple .pkg Install files in Windows: "I'm looking to port my java swing app to Macintosh. I need to create a completely native feeling installer, that's compatabile with my already built custom auto-updator, and that means using .pkg install files & not Java Web Start. My app is a group collaboration app where users need to download an installer that contains a config file pointing to the specific IP-address & port of the workspace server. That means each workspace requires its own installer. For the windows install, I use the NSIS installer. When a new workspace is created, a new NSIS installer is auto-generated on the server (windows server 2003). I need to do the same thing with mac .pkg package files ON THAT SAME WINDOWS SERVER. So my question is, does anyone know how to compile/create .pkg files on windows servers?"


In Java Today, the JDJ article Swing Baby, Yeah!!!sees the beginnings of a Swing renaissance: "More intelligent and demanding users are become increasing disillusioned with the poor page-based, latency bound user interface model that the browser-centric world delivers. To a large extent all of the AJAX hype being whipped up at the moment is a recognition of this fact, although what it's actually doing is elevating the discussion to be one of 'how do we deliver rich content' rather than bun fights over 'HTML rocks, Swing sucks, baa.'"

Danny Coward and Mark Reinhold offer a quick take on the top 10 features in Java SE 6 beta 2, as well as a list of approved and co-bundled features, in the SDN article What's New in Java SE 6 Beta 2 (Mustang): "Version 6 of the Java Platform, Standard Edition (Java SE), code-named Mustang, is currently in its second beta release – which is right on track for moving along to its Fall general release. So here are the top 10 things you need to know about Mustang, if you're still hovering hesitantly over that Beta 2 Download Page link."

Blogger Cay Horstmann uses personal experience to make the case for Why Java Developers Should Switch to Linux: "In the last five years, I regularly used Windows XP, Mac OS X, and Linux (Fedora and Ubuntu). In my experience, Windows XP is just fine when well-tuned, but not easy to keep that way, and totally wretched when it is not. Mac OS X is pretty if you are into blue and brushed metal and the mouse and Java 1.4.2--as you should be if you are a right-thinking citizen. I much prefer Linux, particularly for Java development. I'd like to convince you to switch to Linux as well. My motivation is simple and selfish. If lots of programmers work on Linux, then Java support will for Linux will get even better."


Meeraj Kunnumpurath has a recap of TSS Symposium Europe - Day 1 in today's Weblogs. "The Serverside symposium in Europe kicked off in Barcelona, this morning. The first day included a variety of sessions on SOA, ESB, flow and continuations, AJAX & DWR, web services, BPM, EJB 3.0, TestNG etc. Since there were always three sessions running in parallel, it was difficult to cover all the topics that was being discussed. This is a quick overview of sessions I could attend."

Jean-Francois Arcand addresses Dynamically Adding Virtual Server in GlassFish: "This blog describes the simple steps to dynamically add virtual-server(host) and http-listener in GlassFish, without having to restart the monster."

In It's a build, sorta, Sonya Barry says: "You win some, you lose some. Overall I count the last few days as a success, although I didn't quite get the outcome we were looking for."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Let code generation figure out web services for you  
kfarnham

Wish You Were Here Blog

Posted by kfarnham Jun 21, 2006

The process behind the feature articles

A bit of an aside today... since we don't really have a "how to write an article for java.net" page, I thought I'd get the process down in print once and hope that Google finds it.

First, back up: why write an article on java.net? Well, there are a lot of reasons. If you're a project owner, writing an article on how your stuff works or how to use it can attract a lot of users and developers to your work, people who might have missed it otherwise. Significant indpendent java.net projects featured in articles written by project leaders include Trails, ROME, and DWR. On the other hand, if you're a developer with a lot of knowledge about a prominent project's code-base, writing about it is a great way to establish yourself as a topic expert on it... you might even get consulting work as people look for experts (or at least you'll get e-mails asking for free advice). And if you're an author, you can pay a bill or two with feature article writing, or build up your resume if you're planning to propose a book to a technical publisher.

So, do you just send us an article? Um, please don't. You start the process with a proposal, an informal 5-10 line e-mail that establishes the three things I need to see in an article idea:

  1. what you're writing about
  2. why it matters
  3. what specific things you'll cover in a 2,000-word article that deliver on points 1 and 2

If I think your idea will work as an article (and doesn't collide with something already published or in the works), I'll send you a zip or tar.gz file with our "writer's guide": a few documents about our preferred style and an HTML template to start working from (we use a very simple HTML format and do everything else with CSS... Word documents, or Word-converted-to-HTML, are not welcome). On the other hand, if the proposal isn't quite right, I might make some counter-proposals or ask you to think about a different approach. There aren't too many proposals that are complete non-starters, and we'll generally try to make things work. OK, there are some topics that are dead-ends... ancient API's nobody uses anymore, programming techniques for a single field with no applicability outside that field, and "my last work project as a case study of design pattern X" are all going to get a "no thanks".

From there, you work at your own pace, and send in a first draft when it's ready. I'll make edits for style, grammar, and clarity, maybe make some suggestions for a rewrite. We'll go back and forth until the article's ready, and at that point, it'll go through a production process and show up on the site some sunny Tuesday or Thursday morning (US time).

Interested? Proposals go to cadamson [at] oreilly [dot] com, or editor [at] dev [dot] java [dot] net.


In Java Today, java.net blogger and Yahoo! Publishing Tools lead engineer Ethan Nicholas talks about how a dying Windows laptop led him to make The Great Switch: "I don't think I can take that kind of punishment, so I did whatever any true geek would do: I used this situation as an excuse to buy a new computer. I (a long-time Windows user) had been lusting after the new MacBooks for quite a while, and my wife was well aware of this. She was also well aware that Fathers' Day was just around the corner, and, well, to make a long story short I love my wife very much and I'm typing this on my new 13" MacBook."

The Extensibility Manifesto is not the latest Robert Ludlum novel but a movement, spearheaded by respected industry figure Dale Waldt, well-known as a publisher of the <!TAG> newsletter for many years in the 90s: <!TAG> was what the SGML industry did for information before XML.COM came along. The Extensibility Manifesto shares a lot of the mindset of The Agile Manifesto, for example the need to protect against over-engineering and out-of-controlness.

Caching is an essential practice for enterprise applications, as Alex Ruiz writes in the dev2dev article Declarative Caching Services for Spring. But there's a catch: "Although caching can dramatically improve the performance of enterprise applications, it also can introduce considerable complexity to the application life cycle. This article introduces Declarative Caching Services for Spring, a framework that encapsulates such complexity and provides code-free, transparent caching and cache flushing to Spring-powered applications."


Brian Leonard explains Running JBoss' Seam on GlassFish in today's Weblogs. "What does it take to run a JBoss Seam application on GlassFish? Just some minor configuration changes."

In J/XFS -- Java eXtensions for Financial Services, Edgar Silva has "Some words about J/XFS (Java eXtensions for Financial Services)"

Kirill Grouchnikov continues to dig deep into Swing in Spicing up your JTabbedPane - part V: "This is the fifth part of the series that describes the additional capabilities that you can get on your tabbed panes."


In today's Forums,briand suggests techniques to investigate heap usage in Re: disable garbage collection: "You can't disable the garbage collector. The best you can do is to increase the size of the heap (which also means sizing a very large young gen) to prevent the need for a garbage collection. One technique for doing what you want to do is to call System.gc() before your measurement and again after it and see what the difference is. However, that will show how much is live after you've finished the measurement interval. With -verbosegc -XX:+PrintGCDetails data, you'd probably be able to figure out how much was allocated by looking at the before and after sizes. Another technique might be to use the NetBeans profiler."

The discussion of splitting off some GUI subprojects from NetBeans continues in Re: [Incubator Project Proposal] Docking Framework, withwadechandler writing: "I like the idea, but I think what I would personally like to see is the project in Netbeans and not separate. I actually write about this every now and then on the lists that I think more of the NB pieces could be separated and be their own standalone projects and still be on the NB site. The reason I say this is then it not only benefits everyone, but the API can continue to be developed by the NB team, be integral to platform projects, and still be usable outside of NB if one wants to get access to it. So, basically get more NB modules be usable not only as modules, but as separate jars and decoupled, and to have their own project sites on Netbeans."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The process behind the feature articles  
kfarnham

Empty Spaces Blog

Posted by kfarnham Jun 20, 2006

Filling in blanks with mock objects

To talk about mock objects at all implies some kind of testing regimen: if you don't intend to test your code before integrating, then you don't need mocks (of course, this also makes you foolhardy, but I digress). So instead of talking about mock objects as an end unto themselves, it makes sense to only think of them as they contribute to a test-driven process, filling in the blanks of services or other parts of the system not available at test-time to the piece being tested.

This is the mindset of today's Feature Article, in which Ralf Stuckert writes:

Unit tests are no longer hype, but daily business. Developers love writing tests, and even do test-driven development. But testing units of code often is a problem: most parts of a software system do not work in isolation, but collaborate with other parts to get their jobs done. In unit testing, we do not want to test these collaborating objects, but only the unit under test. Mock objects provide a solution to this dilemma: they can be set up to behave as expected, so they are a perfect replacement for collaborators of the unit under test.

In Getting Started with EasyMock2, he takes the new version of the EasyMock library and iterates, step-by-step and test-by-test, through developing a client-side cache for a hypothetical client-server system.


In Java Today, Peter von der Ahe reports on the latest Mustang build in Update on b83: "Unfortunately, something went wrong in a merge and a few fixes were lost (it has been corrected). This means that the change from -target 6 to -target 5 missed b83. However, Joe managed to get an updated version of JSR 269 API added to b83 after our normal dead-line. I'll mention these changes when I blog about b85. Just to be clear: it wasn't Joe that accidentally deleted the -target change. This should demonstrate the value of writing tests for even the most trivial of changes. Did somebody recently mention something about testing...? ;-)"

The latest issue of NetBeans Edge focuses on some of the modules that you can use with NetBeans IDE 5.0. They can all be installed from inside NetBeans IDE itself (as explained below) and offer a range of new features, such as enabling you to plan your work inside the IDE or fix problems in your code more quickly and easily.

Web 2.0, rich Internet applications RIA, and heavy JavaScript have become the latest rage. But Stephen Lum asks "why build a Web application that tries to look and act like a thick client when you can leverage a traditional J2EE/Web application server architecture to easily deploy an actual thick client?" In Build a Java App Server Foundation for Thick-Client Deployment, he shows how to use Spring remoting to set up your server to work with a Java Web Start'ed thick client.


Scott Violet swings in with a Modern Heap View in today's Weblogs. "See a modern heap view, and in the process learn about some of the more obscure parts of 2D. Pictures, demo, source and a NetBeans module are all included!"

Vikram Goyal has Your 30 second guide to AJAX: "Chances are, if you have been building web applications for a little over a year and have used javascript even a little bit, you already know how to build AJAX applications."

In Java developers sure do like making things from scratch, Airlan San Juan argues "you'd think that after 10 years - an entire DECADE mind you - that Java developers would have a treasure trove of pre-built components that they could use to quickly cobble together their otherwise home-brewed apps."


In today's Forums,stvconsultants offers some practical GlassFish deployment advice in Re: can I deploy a folder as ear application? "You can directly modify the deployed jsp file on a live deployed application. The jsp files will be in exploded form in $(glassfish)/domains/domain1/applications/j2ee-apps/webappname You can edit these files directly and the changes will be automatically picked up. NOTE: These changes will be overwritten when you redeploy, so remember to copy your changes back to where your source directory before redeploying."

Paul Fussell suggests some JavaHelp authoring solutions in Re: [JAVAHELP] Forum for JavaHelp writers?? "Jane, this list is used both by JavaHelp authors and JavaHelp programmers, so you can ask your authoring questions here. BTW, I went through a similar process a number of years ago, when producing a JavaHelp project from RoboHelp meant having to go through a 25-point checklist to fix the helpset after RoboHelp generated it."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Filling in blanks with mock objects  
kfarnham

Us and Them Blog

Posted by kfarnham Jun 19, 2006

The new "Java Today" section

You'll notice a small change on the front page today, something that's been in the works for a little while. The "Also in Java Today" and "Projects and Communities" section have merged into single "Java Today" section.

The thinking here is largely pragmatic -- the old P&C's were difficult to write and produce. Aligned side-by-side, the two items needed to be about the same length to avoid ugly layout problems, which limited what could run each day, as some items would naturally need more time to explain while others were short and sweet. It was also difficult to fairly allocate attention to the various communities, as some are naturally larger and more active than others: trying to deny this fact led to lengthy searches to find news from communities that just aren't very active or inclined to broadcast their activities (which, yes, is a problem in itself that needs to be addressed, but let's save reprising that discussion for another day).

The new section is of arbitrary length and composition, so it gives the editor (me) more freedom to let each item run as long or as short as it needs to. It also feels like less of a dodge when I link to off-site material as it relates to an on-site community. For example, much of the activity in the portlets world is happening over in the Apache Pluto project (the reference implementation for JSR-168 and JSR-286), so it was debatable in the old layout whether that should go in "Also in Java Today", the de facto "off site" bucket, even though it's of primary importance to all the Portlet Community members. Another example would be the Mac Java Community, where a lot of what matters to that community is not just the projects here on java.net but also what's happening at Apple: new JDK releases, their tutorials about Mac-specific stuff, news about the ongoing Intel migration and whether that affects JNI, etc.

It's very important for us to get the word out about news in your projects and the java.net communities as a whole, and that's material we definitely want to feature in the "Java Today" section. If you're doing a new release, let your community leader know so he/she/they can put it on the community page, and/or drop me an e-mail at cadamson [at] oreilly [dot] com.


Kicking off the Java Today section with an off-site item about on-site activity, Java Posse podcast episode 62is a group interview with Richard Bair, Romain Guy, and Joshua Marinacci of the Swing Labs team. In this hour-long discussion, they talk about how Aerith works and what's holding up the code, the JavaOne GUI "makeover" session, examples of great-looking Swing applications, competition from SWT, and the future of the Swing Labs project.

Ethan McCallum takes on the small app server in the feature article What Is Jetty. Describing Jetty's big features and small size, he says "...in this article, I'll offer some ideas on why you'd want an embedded servlet container, explain the basics of Jetty's API, and show how to use its XML configuration to trim your Jetty-specific code to a minimum."

The Java Web Services and XML Community rethinks a language discussion by author Elliotte Rusty Harold: "Eliminating final is a nice article by Elliotte Rusty Harold. It is in interesting exercise to take his arguments about arguments to method calls and apply them to the slightly higher level of web interfaces and loosely-coupled applications (including applictions distributed over time). What technology fits in to this level like no other? Schematron."


Artem Ananiev talks about Improved top-level icons support in Mustang in today's Weblogs. "Prior to Mustang developers could specify a single icon image for every Java frame. This image was then displayed in the frame's titlebar, in the system taskbar and other places. However, some situations require images of different sizes, and this made the specified image be scaled so it looked very ugly. Now in Mustang you can set several images to represent frames' and dialogs' icons."

Greg Murray passes along an Ajax announcement in Sun Joins Open AJAX Alliance and Dojo Foundation: "Big news today from Sun. We have joined Open AJAX Alliance and Dojo Foundation. So what does this mean for Java developers?"

The conference report JBoss World 2006 covers Gregg Sporar's experiences at the event. "JBoss World 2006 was a very worthwhile event. Some comments on what I saw and heard, with photos included."


In this week's Spotlight, an opportunity for you to get top-tier advice about Ajax. "The latest Ask the Experts session is on the topic of Ajax support in Java. During the week of June 19 to June 23, you can post your Ajax-related questions to the SDN and have them answered by Greg Murray, Sun AJAX architect and Java Servlet Specification lead, Mark Basler, senior software engineer, Java BluePrints team, and Carla Mott, community lead, Project GlassFish."


In today's Forums,sdo tries to keep readers out of trouble in the discussion Re: detect idle thread: "Perhaps I'm reading into the question, but the phrase 'from another thread' makes me think the question is really: 'How do I know if a thread is idle so that I can call Thread.stop() safely.' The answer to that question is never; it is never safe to call Thread.stop(). Even if you 'know' that the target thread is idle, it could wake up at the same time the stop method is called, acquire some state in the VM, and cause errors when it is stopped."

In [Incubator Project Proposal] Docking Framework,jm7 writes: "I have extracted the Window System API of NetBeans in order to run it without the whole platform and would like to propose it as a new incubator project. I think that there will be a lot of interest for this project since I already have received many emails asking me to release the code and offering their help. The point is that their is actually no Docking Framework as good as this one, both open source and commercial."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The new "Java Today" section  
kfarnham

You May Be Right Blog

Posted by kfarnham Jun 16, 2006

How's the Java EE 5 bandwagon?

The long-awaited, much-scrutinized Java EE 5 went final at JavaOne, so a month later, it's fair to ask how it's going over.

Early word seems to be positive, now that the bits are out there and are being consumed by the enterprise Java audience. One of ourAlso in Java Today news items surveys the response to EE 5 and finds developers enthusiastic about the new release. According to Early Java EE 5 Users Praise Platform's Overhaul:

IS Squared President Steve Knox expects Java EE 5--particularly the Enterprise Java Beans (EJB) 3.0 specification that lies at its heart--to lower the cost of Java projects that his Lynnwood, Wash.-based software development firm works on.

"The code is much simpler," Knox said. "That means we'll have shortened code development times, with faster debugging, better quality and lower costs."

We're interested in whether you've picked up EE 5... especially considering that the reference implementation is hosted here on java.net as the GlassFish project... so today's java.net Poll asks "When will you start using Java EE 5?" Cast your vote on the front page, then check out the results page for results and discussion.


Also in Also in Java Today, the Nutrun blog has compiled a list of real-world Java developer gripes that assert You're not a "real" Java developer until... So, if "you missed Generics with a passion after you had to work with a JDK < 1.5 for a while" or "you feel old when you consider that a native method that gets the free disk space on your hard drive has been requested eight years ago and it’s almost here now…", then congratulations, you're a real Java developer.


In Projects and Communities, NetBeans 5.0 users may now enjoy new features of Matisse GUI Builder. They are available on NetBeans 5.0 Beta Update Center as Matisse Update Pack for NetBeans 5.0. Features include automatic internationalization, preview with look and feel, relative font definition, context sensitive help bar, support for Java SE 6 layout, and more...

The OASIS Web Services for Remote Portlets technical committeereportedly has approved a draft of version 2.0 of the Web Services for Remote Portlets (WSRP) 2.0 for public review. The new version allows for more interactive remote-portlet applications. The review runs through August 13, and more information is available at the TC's site.


In today's Forums,stvconsultants recalls the point of servlets in the thread Re: Running a background thread and shutting down when undeployed: "What I ask is, what is a servlet if not a JavaEE method for listening to a port. Traditionally, we use it to listen to port 80 for HTTP protocol communications, but that is just because most people want to do that. It seems to me that if you are holding a port open, you want to use the JavaEE mechanisms that map well to having ports open and, as originally designed, servlets are therefore what you'd use!"

coxcu asks Would anyone like to recommend a java.util.logging viewer? "I'm looking for a java.util.logging viewer. Would anyone like to recommend one? Is there anything that would allow me to log using the java.util.logging API, yet use Log4J tools? With log4j, I can use Chainsaw, LogFactor5, or Lumbermill."


David Van Couvering announces that Java DB is bundled in Mustang in today's Weblogs. "The JDK now has a database. Java DB is going into the Java SE 6 JDK. As of this evening or tomorrow evening, when you download the Mustang nightly build, Java DB will be there, available for development, testing, and deployment."

Evan Summers continues his discussion of data binding approaches in Bean Curd 1F: Swing Panel Beater: "In this article, we look at viewing and editing an entity using a Swing "form." This is a JPanel with components like JTextField, JComboBox, and JCheckBox. You guessed it, we gonna bind those to a POJO "model bean" using "explicit properties" absorbed into our field components and "implicit binding" using reflection on the fields."

Finally, Changshin Lee has the Truth about "format-pretty-output": "I got so much feedback from my recent blog, and it inspired me to write another. The most noticeable comment on the blog is to use JAXP transformer to serialize Document, and in fact I couldn't agree on the solution more because I also used it."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



How's the Java EE 5 bandwagon?  
kfarnham

The Longest Time Blog

Posted by kfarnham Jun 15, 2006

Was the JAR format meant to last this long?

I remember in a JavaOne 2005 keynote, one of the Sun speakers wondered aloud about how far they could take the JAR format, and if was time to move on to something new. A lot of developers have complained about versioning problems, particularly with inter-library dependencies. A JAR can provide some version information, but what can it do for you in terms of figuring out which version of other JARs it requires?

Still, the basic idea of the JAR -- just a ZIP file, and thus, a heirarchy of files contained inside a single file -- probably still has some legs left to it. After all, it's more or less the same trick that Mac OS X pulls with .app folders: rename a folder to have the ".app" extension and the system treats it as an application, though it's still really a folder, allowing you to easily place your artwork, sounds, localizations, and other resources inside what the user sees as a single file, easily dragged from place to place without breakage.

Surely the JAR, built on effectively the same premise, can provide similar benefits. The only trick is understanding how to get at the contents of the JAR. This is the topic of the latest "(Not So) Stupid Question", which is today's Feature Article. In (Not So) Stupid Questions 10: JAR Files, we consider the question "other than bundling my classes, what good does a JAR do me?" Working through the questions of how to get images into a JAR at build-time and how an application can access them, we'd like you to help show us what else JARs are good for. If you've gone down this particular programming path, please join in the discussion in the comments section.


rundeks has an interesting JDIC feature request in today's Forums. He clarifies his request in Re: Can you get the DOM from the Browser: "I want access to the DOM as the browser parses it. The problem with all the open source parsers out there is that they don't handle bad HTML well, but the browsers do. Thus there is a lot of bad HTML out there. Thus there is a need to access the DOM from a real browser."

In Re: Reusing URLConnection, alanb writes: "The HTTP protocol handler has supported persistent connections for many years (JDK 1.2 or maybe 1.3). At the API level the application opens a new URLConnection for each request but under the covers the protocol handler will re-use the socket connection if there is a connection open. The long standing issue, as you rightly identify, is the case where the application doesn't read the entire response. In that case the connection might not be put into the "keep alive cache" - it all depends on if the protocol handler has read to the end of the response. This loose end has been addressed in mustang and Chris has a blog about it here."


David Herron comes clean with some lessons learned in today's Weblogs. In Open source project maintanence, he writes: "What just came to mind is an open source project I once led .. long before the phrase 'open source' had been invented. And, how I contributed to the death of that project due to mishandling its governance."

Changshin Lee has some news for Serializing XML, not printing XML: "Suppose you have an org.w3c.dom.Document instance to output, for example, to a web browser screen or just simply on a Console, then hmm... unfortunately, we used to have no standard way within DOM API (used to... not now)."

In What I would like to see in a next version of NetBeans, Vincent Brabant writes: "A long time ago, I wrote an article asking to have an EDI based upon Ant. NetBeans Team realized it. Today, I decided to write what I would like to see in the future release of NetBeans. "


In Projects and Communities, the Java Internet Indirection Infrastructure (ji3) project is intended to be a Java port of Internet Indirection Infrastructure using Java EE technologies, including JMS, web services, and Spring. i3 eases the deployment of services like multicast, anycast, and mobility, by decoupling the act of sending from the act of receiving.

The JavaDesktop Community is linking to the article First Release of FMJ - Open-Source JMF, in which Ken Larson announces the first release of FMJ, an open-source implementation of the Java Media Framework (JMF). It supports video capture on Linux, Windows, and Mac, and playback of a variety of popular formats.


In Also in Java Today, Linda DeMichiel is Sun Microsystems' specification lead and chief architect for Enterprise JavaBeans 3.0 and the Java Persistence API (JSR 220). In Refactoring the EJB APIs, the first segment of a two-part interview, she discusses how the EJB 3 APIs simplify development, how to choose between annotations and XML in configuring an EJB environment, and suggests a practical way to learn about EJB 3.

Using a rules engine can lower an application's maintenance and extensibility costs by reducing the complexity of components that implement complex business logic. Ricardo Olivieri's article Implement business logic with the Drools rules engine shows you how to use the Drools rules engine to make a Java application more adaptive to changes. Drools has the added benefit of a syntax that lets you embed Java code directly in a rules file.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Was the JAR format meant to last this long?  
kfarnham

The Angry Young Man Blog

Posted by kfarnham Jun 14, 2006

How to get the young ones writing games in Java

Did your programming career start with writing games on home computers? Did you try to understand how arcade games work and recreate them? It turns out a lot of people did this. Heck, I did, and after getting burned by how slow BASIC was on the TI-99/4A, I found myself stumbling through assembly language. Not that I particuarly wanted to learn about registers, branches, or interrupts; I just had to in order to get smooth scrolling working for a Xevious clone I was determined to write (I got the scrolling working with some nice fast memory moves, but never finished writing the game... I got hung up on some bit shifting with collision detection and then discovered girls and that was pretty much the end of my TI-99 game programming hobby).

The TI-99 was a curious, if not hideous beast to program. The screen memory was accessed by putting the byte or word you wanted to write in one register, the address you wanted to write to in another, and then you'd reset an interrupt mask to the let the system interrupt your program, grab those bytes out of the registers, and return control to you when it was done. Memory reads used a similar system. You had to master this to get anything on-screen. Even when you did, you were limited by technical peculiarities, such as the fact that only four of the system's 32 sprites could be on one horizontal scanline at one time. After four, the higher-numbered sprites would turn invisible. This made it real fun to implement multi-colored characters with multiple sprites.

But I got comfortable with really low-level programming and learned interesting techniques and mindsets along the way. I still map hex to binary in my mind in the form of pixels that would be on or off in a sprite's bitmap, and still think of one digit of hex as a "nybble", a term I have not heard since the early 80's. Still, I learned some interesting and valuable material that I wouldn't have thought to seek out if it weren't about writing games. And I'm clearly not the only one.

Blogger Simon Morris spent the early 80's hacking away on the Commodore 64 and he retorts: 80 Sprites - Beat That!, in which he argues a looming world of Java ME based gaming, on the Blu-Ray-based PlayStation 3 and other devices, offers a unique opportunity to get Java in the hands and minds of young programmers who would be delighted to write some code, burn a disc, and get it on the living room HDTV.

Can you see where this is leading? No? Let me put it this way: if you were a young kid making his first steps into the world of programming, which would you rather be doing - writing desktop apps in Microsoft Visual Doo-dar, or coding games in Java for the Playstation3 and other BD players? (Hmm - slight difference in the glamour/kudos stakes there!).

If Sun can package Java such that it is attractive to home brew coders - in the same way that STOS or Blitz did two decades ago - then it could create an army of pre-pubescent Java programmers, and pump Java's 'kewl' rating up by a few dozen points. Yes, most of them will fall by the wayside - they'll write a few unremarkable demos and then loose interest. But some will get sucked into the heady world of coding, leave school with their thirst intact, and wind up in developer roles at big companies. And the language which nurtured them through their formative programming years will be.... JAVA!


Also in today's Weblogs, Chet Haase says Easier Deployment is No Joke: "There's a new article about the auto-install mechanism for easier JRE deployment and Java Web Start application launching. Check it out on java.sun.com."

Finally, in Reference Implementations and Production Quality Implementations, Eduardo Pelegri-Llopart addresses the popular misconception "that a Reference Implementation always is a 'toy' implementation, unsuited for production use. This is not true."


In Projects and Communities, the 83rd issue of the JavaTools Community Newsletter is packed with tool-related news from around the web, points to a new release from the SomnifugiJMS project, welcomes five new projects to the community, and congratulates two projects on their graduation from the incubator: jvyaml and macroshmacro.

The Global Education and Learning Community is looking for a new name, and you can help. The GELC Name Contest spells out the criteria sought for a new name for the community, and lists the payoffs for the winning suggestion. Suggestions are being accepted on a special forum through midnight (PDT) on June 23.


In Also in Java Today, JBoss SEAM 1.0, just released at JBoss World, "represents a redefinition of web application architecture that extends the POJO + annotation-driven and configuration-by-exception programming model of EJB 3.0 into the entire web application stack, while unifying JSF, EJB, AJAX, and business process management (jBPM) into one tightly-integrated framework.". In JBoss SEAM 1.0: rethinking web application architecture, Floyd Marinescu talks to SEAM and Hibernate creator Gavin King about the new release.

A recent java.net article described using Dojo and JSON for building Ajax applications, but this isn't the only way that a Java developer might use JSON to communicate between client-side script and server-side Java. In the xml.com article Converting Between XML and JSON, Stefan Goessner explains why you might want to use JSON, and then what issues you may face in converting existing XML documents into a JSON representation.


In today's Forums, ljnelson finds what seems like peculiar behavior in the Java Persistence API, which he describes in DAO insertOrUpdate() method: how to implement using JPA?. "I have a SLSB that explicitly saves a data transfer object to disk, if it already exists, or creates a new one on disk if it doesn't. The DTO is now an @Entity, and I'd like to implement this DAO to use the JPA. I am getting quite confused with how to do this. Simply calling: entityManager.merge(dto); ...seems to do the right thing in all cases. Could this really be this simple? When, if ever, would I be required to invoke the persist() method? I'm feeling queasy that I never invoke this in the code anywhere."

Krishna Gadepalli polls the Project Looking Glass community on an important compatibility issue in Survey: Switch to JDK 1.6 (drop support for JDK 1.5 ?): "If we are really serious about AWT toolkit support in Looking Glass, then for practical reasons we might have to drop support for JDK 1.5 since we dont have enough cycles to debug and test it on two different JDK versions. And as Juan pointed out - we can always bundle a suitable JRE with binary releases. So the question I guess is mostly for developers... How much of a burden will it pose if we drop support for JDK 1.5?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



How to get the young ones writing games in Java  

Making web services work for you

The interest in SOA in general and in web services in particular is growing at an impressive rate. Many well-known internet-based companies such as Amazon.com, eBay, Google, Yahoo, and many others now provide web services as part of their internet business offerings, and many other companies are considering web services as a basis for their evolving SOA-based enterprise architecture plans.

...all of which is great, of course, but how do you set up your own web service or call someone else's? Web services is one of those things that I suspect more people talk up than actually code, so it's a little bit of an eye-opener to sit down and say "OK, I have to publish my stuff as a service, via http, via a known, standard protocol. Where do I start?"

Of course, you can let someone else get it right for you. In today's Feature Article, Web Services Made Easy with JAX-WS 2.0, John Ferguson Smart looks at JAX-WS and its implementation in application servers like GlassFish, which allows you to put together web services much more easily, largely by applying a few annotations to your code.


In Projects and Communities, the java-dev mailing list messageAnn: Java SE 6.0 Release 1 Developer Preview 3 Now Availableannounces the latest build of Mustang for Mac OS X, for both Intel and PowerPC systems. This latest developer preview is available from the Apple Developer Connection to all ADC members, including those at the free "online" level.

For those developing plug-ins and rich-client apps, the NetBeansPlatform Tutorials page has added four new tutorials to its collection. The four new tutorials by Tim Boudreau can be found in the "APIs for Making Selections" section, and deal with context-sensitive concepts, such as enabling or disabling actions based on what's selected.


In Also in Java Today, Jeff Hanson admires the ideas behind classloading, but when libraries have their own dependencies that you need to manage, it can get out of control. In Take Control of Class Loading in Java, he says "by building a classloading component container framework that isolates Java class loading to a specified jar file, you can be confident that the runtime will load the component versions you expect."

In a humorous entry on the Joel on Software Discussion Group, Benji Smith explains Why I Hate Frameworks: " I'm evaluating a bunch of J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container frameworks. And after spending dozens of hours reading through feature lists and documentation, I'm ready to gouge out my eyes."


In today's Forums,diverdad seeks Swing help in Discarding duplicate events: "I have a listener. I need to know if there are multiple events queued up for me. I want to discard all but the last one in the queue. It is unclear to me how to find out if there are more than one event queued up for me to process. The exact problem is I have a JTree that takes a long time to update. I may receive multiple update events while I'm in the process of updating, I would like to only process the last one in the ones that are queued up. I can't afford the expense of synchronizing. Am I approaching the problem wrong, or is the an easy way to do this?"

neilweber complains of an Old version of 1.5.0 being installed by Java WebStart A couple of my users had 1.4.2 installed. They clicked on my JNLP which specifies a JRE of 1.5+. For some reason JRE 1.5.0_02 was then installed on their machines instead of the current 1.5.0_07. This wouldn't be a big deal except that there is a problem in 1.5.0_02 that prevents my native code from loading. Has any one else encountered this problem of an old version of 1.5.0 being installed?

Funny how an hour of downtime can throw off your day

One of the java.net webservers went down this morning and while our people responded and started working the issue almost immediately, it took a little while to get the site back up. Not too long, surely less than an hour, but in the meantime, having pushed the front page, I went on to other editing duties like working on tomorrow's feature article.

So, it's 3:30 PM (US EDT) and I've gotten to the point where I feel I have time to clean up the piles of junk on my desk that have accumulated since JavaOne. I even take time to finally fill out the JCP membership application that's been sitting there for six months (since ApacheCon, I think).

And then somehow, something reminds me... I never posted the daily blog!

So here, remarkably late and I apologize for that, is your rundown of today's java.net front page.


Fabiano Cruz has a little JUnit 4 you in today's Weblogs. "I think it's quite impressive how software testing has grown in popularity in the past decade. A lot of tools (open-source and commercial) and practices such as continuous testing and integration, code coverage, static analyzers and so forth. Some of that fancy stuff you've probably heard about, they were originated, disseminated and now getting lift from agile development processes "spaceship" (e.g.: Extreme Programming, Scrum and so on). But, the agile methodologies' boom is a topic for another talk. ;)

In Glassfish - Role Based Access Control (Part 1), Krishnan Viswanath says: "Lately I have been playing with Glassfish and happened to look at the various security related aspects. In this blog entry, I hope to share some of my findings related to role based access control."

Finally, The innermost secrets of -javaagent:toplink-essentials-agent.jar revealed... in which Cay Horstmann writes: "I had been mystified by what exactly the magic incantation -javaagent:toplink-essentials-agent.jar does for JPA clients, and my experiments had been inconclusive. I finally figured it out. Here is the answer in terms that Elvis can understand."


This week's Spotlightis on Project Open ESB: Highlighted in the JavaOne 2006 keynote, Project Open ESB "implements an Enterprise Service Bus (ESB) runtime with sample service engines and binding components. Open ESB allows you to easily integrate enterprise applications and web services as loosely coupled composite applications. This allows you to seamlessly compose and recompose your composite applications, realizing the benefits of a true Service-Oriented Architecture (SOA)."


In Also in Java Today, the latest article in the "Web Tier to Go" series, Web Tier to Go With Java EE 5: A Look at Resource Injection"describes how the platform's web-tier technologies support injection through Java technology annotations to simplify access to resources, environment data, and life-cycle control."

As a part of the larger Eclipse framework, the Rich Client Platform (RCP) is built around the idea of using plugins for much of its functionality. This has many advantages, chief among them extensibility and loose coupling. But what if you want to keep your dependencies so minimal that you don't even want to tie into an implementation until runtime? Using the Inversion of Control pattern, so popular on the server side, your plugin can just state its needs with annotations and have them satisfied later. In Riccardo Govoni's Inversion of Control with Eclipse RCP, you'll see how to achieve this with bytecode manipulation, by way of a sample RCP plugin that serves up "fortune cookie"-type epigrams, with a FortuneService that provides the Eclipse-facing plugin with the data it needs.


In Projects and Communities, the /jsf-metadata-spec-publicproject is "the public face of JSR 276: Design-Time Metadata for JavaServer Faces Components." It attempts to provide a standard, tool-agnostic set of design-time metadata items for JSF components, and a syntax component authors can use to provide design-time metadata.

The JVEX Robotics project "interfaces Java single board computers to the VEX Robotics Robotics Design System Kit. The goal is to free the Java host from low level device management by delegating these tasks to the VEX Controller that comes with the kit. The result is that a Java host can easily manage real-time VEX devices over a simple serial protocol.


In today's Forums,ha_prabu reports a problem with 100% CPU usage on Dual Core PC: "We have this new problem in our application which runs perfectly in single CPU systems. And this situation happens occassionally in the client side(Java Swing). Application Type : Client Server using Java Swing/RMI... Problem Environment: DualCore Intel Pentium D, 2800 MHz... Actual Problem: 100% CPU usage of one Processor (resulting 50%)"

alanb reveals secrets of thread dumping in Re: Mapping java threads to Win32 threads? The ctrl-break key sequence is a long standing way to obtain a thread dump on Windows. The thread dump is printed to standard output so you will need a console (command prompt). If you have Mustang setup when you can use the jstack utility to get the same information. In that case you need the process-id of the application (which you can get using the jps utility). Hope this helps.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Funny how an hour of downtime can throw off your day  
kfarnham

Hearing Aid Blog

Posted by kfarnham Jun 9, 2006

The numbers are in for the JavaOne podcasts

The other day, one of Marla's assistants crunched the download numbers for download.java.net for May, which gave us our first look at the results of our experiment in podcasting the community corner minitalks.

Here are the top ten episodes downloaded during Java one and through the end of May, with links to their announcement pages in the java.net podcasting project:

  1. Pre-J1-2K6: Joshua Marinacci on SwingX, Swing Hacks, and Mac Java
  2. j1-2k6-mtH16: Paulo Silveira and Evandro Machodo on Mouse Gestures Plugin for NetBeans
  3. j1-2k6-mtH08: David Walend on Missing Pieces in Generics
  4. j1-2k6-mtW02: Panel discussion with non-Sun JDK contributors Brian Harry, Jesse Sterr, and Andy Tripp
  5. j1-2k6-mtT13: Garret Rooney and Dan Rall on Subversion
  6. j1-2k6-mtW08: David Herron on JDK Packaging for Linux
  7. J1-2K6: Gregg Wonderly on the Jini Community
  8. Pre-J1-2K6: Marla Parker live from the under-construction Community Corner
  9. j1-2k6-mtW14: Chris Adamson on Lloyd Extends QuickTime for Java
  10. j1-2k6-mtW11: Fernando Lozano on the State of F/OSS Java VM's

One thing we noted internally is that most of these speak to broad topics and not to individual projects, which explains their popularity -- a talk on Generics or Subversion is potentially of interest to all Java developers. There were good talks about individual projects, communities, JUG's, etc., but they'll tend to have a lower hit count because they're so focused. Fortunately, it's not like we're selling ads or particularly care about hit count, and we're glad to give everyone a turn at the mic.

One surprise is the high ranking of the nifty talk on NetBeans gestures. That seems to the only one in the top 10 that didn't get featured on the main page during JavaOne week, and I don't see it in my iTunes feed, which makes me think I may have botched the hand-edited XML when putting it on the feed. And that brings up a question: where, other than the podcast page itself, are people finding this talk? Surely something on netbeans.org is linking in.

Speaking of the feed, if you look at the URL --https://jnpodcasts.dev.java.net/javaone/2006/feed.xml -- you'll notice it's specific to JavaOne 2006. We'll have a different feed for future java.net events, obviously including JavaOne 2007, but perhaps some events we're participating in before then. I'd love to get sound from the Jini Community Meeting; I'm just not sure how to do it without my butt and microphone being in Brussels. Anyways, those will have different URL's, and we'll announce them on the front page so you can find them.

We've also talked about having a general-purpose java.net podcast feed. We'd use this to feature interviews with community leaders, prominent project owners, other java.net people, and other java.net-related audio content in general. Maybe we'll roll out the "best of the minitalks" over the course of a few months. Plans are still evolving in this space -- it might just be some irregular thing we do when people are available in person or on Skype, so you wouldn't get a weekly show, just a new episode every time we get one done. Maybe a new episode will be one of our "feature articles" for the week... we haven't really figured it all out yet. But we know that we're very pleased with our first efforts in the podcasting space, that there's an audience that enjoys it, and that we like doing it. So expect more in the future, and tell us what you'd like to hear from our podcasts.


John Catherino says Take that .NET! in today's Weblogs. "As an outspoken advocate of Java distributed computing, I was recently confronted by a group of .NET enthusiasts. They felt compelled go on about how much more "advanced" .NET remoting is; no need for a registry, syntactic transparency, things they said were "impossible" with Java. They said that to the wrong guy..."

In Google spreadsheets in trouble - and Java DB can help, David Van Couvering writes, "the new Google spreadsheet is not getting the best press in the world. A major concern: privacy and security. Here's where Java DB and Local AJAX can help."

Finally, Kohsuke Kawaguchi announces the JAXB RI 2.0.1 release: "I just posted JAXB RI 2.0.1, a bug fix release to JAXB RI 2.0."


Speaking of weblogs, the new java.net Pollasks "What style of java.net blog do you most enjoy reading?" Cast your vote on the front page, then visit the results page for results and discussion.


In Projects and Communities, the 10th Jini Community Meeting has been announced with a Call for Papers. Session proposals will be accepted through June 28, and speakers can request a 20, 30, or 50 minute talk, or a slot in the five-minute "lightning round". The event will be held in Brussels, Belgium on September 13 and 14. To learn more about Jini Community Meetings, check out the archive of previous meetings.

The Key Indicator Data Systems (KIDS) is "a GIS software framework that provides the ability to implement thematic information systems that collect, reference, visualize, exchange and disseminate statistical, survey and indicator data." The system has been developed by the World Agriculture Information Centre (WAICENT) of the Food and Agriculture Organization of the United Nations.


In Also in Java Today, Tim Bray has updated his classic On the Goodness of Binary Search in response to Josh Bloch's revelatory Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken, which pointed out that the classic implementation was prone to integer overflows for large data sets. A new bit of right shifting in Bray's code, probe = (low + high) >>> 1;, catches this potential problem.

"Java technology programmers often use the javax.swing.JList component to provide list views of similar data, whether it be a phone contact list or a grocery list. Despite the convenience of this user interface (UI) component, a JList doesn't sort its elements. It displays them in the same order provided by its underlying javax.swing.ListModel interface. Neither the ListModel interface nor the javax.swing.DefaultListModel class provides sorted data. Instead, the default model provides its content in the same order as you enter it." John O'Conner's Creating a Sorted JList Component offers a way to provide this missing feature through use of a decorator pattern that employs a second model to track the model items in their sorted order.


In today's Forums,ylzhao seeks to understand more about Java2D/JOGL Interoperability: "Hi,I read the article Java2D/JOGL Interoperability by Chris Campbell [...] I use Mustang b86 on Windows XP. Because Mustang uses DirectX for hardware acceleration on Windows, if use JOGL's GLJPanel on Windows, will the DirectX pipeline conflict with the OpenGL pipeline? Does the efficiency of the OpenGL pipeline become slower?"

In an announcement from SwingLabs, rbair says DataSet gets Promoted, Databinding is set free: "With the advent of JSR 295, it's time to (oh dear, managment buzzword coming) 'realign' (there, it's over now) the databinding project within SwingLabs. First, I'm going to create a new project for the DataSet. I'll remove the DataSet code from DataBinding and move it into DataSet. Patrick and Dave (if he wants it!) will be the project owners for DataSet. Also, I'll be moving the code from the 'binding' branches to the databinding project. I'll then reassign project ownership for databinding to Patrick, Dave (if he wants it!) and Ray (if he wants it!). In the next day or two databinding will be removed as a subproject of SwingLabs and become a normal toplevel project." 

In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The numbers are in for the JavaOne podcasts  
kfarnham

The World's Address Blog

Posted by kfarnham Jun 8, 2006

Layout with Matisse, persist with JPA. There is no step 3.

Joshua Marinacci is back with more client-side peristence today. In the Feature Article, More Persistence for Client-Side Developers, he gets deeper into the features and relationships offered by the EJB3 Java Persistence API, and how they're of use not just to the Java EE developer, but to the desktop developer as well.

Probably the big surprise is how much work (and potentially error-prone work at that) this approach takes off the table. As Josh puts it:

To illustrate all of the techniques in this article, I created a sample application called AddressBook2 that simply creates and stores addresses. It binds the data model created earlier in this article to a Swing GUI. Using the excellent GUI builder Matisse in NetBeans 5, I was able to construct a fully featured application in about four hours. Patterned after the Mac OS X equivalent, this application lets the user create, edit, save, and delete address-book entries.

In a sense, this answers not only the quick-CRUD arguments of the Rails-and-friends crowd, but goes a step further by presenting a rich client applciation rather than a web page, offering a significantly higher level of interactivity and robustness.

Not bad for four hours' work.


In Projects and Communities, the ION project recently released version 1.0 of its media player, which enables subscriptions, download, and playback of media feeds such as videoblogs and podcasts. It incorporates numerous components for media playback, including Windows Media, QuickTime, Flash, and JMF. It has built-in access to Blip.tv, Flickr, Yahoo, and other sources of rich media.

The 82nd issue of the JavaTools Community Newsletter features tool-related news, a tip for using SSH with CVS on java.net, and announcements of two graduations from the community incubator: TASS and dpsadapter. It also talks about the inter-JUG effort Project Vesuvio, which seeks developers around the world to help build an app in a day.


In today's Forums,jfelrod1960 wonders about Many, many threads running concurrently on a single CPU ... "I would like to know if anyone has had experience writing an application that may use as many as 20,000 threads running at once in an environment that utilizes only one CPU whether it is a single or dual core processor? What kind of performance problems have you experienced or is it a problem for JSE to handle?"

A service to compile JDK builds? kellyohairaddresses the idea in Re: Alternative suggestion: JDK compilation servlet. "Well, funny you should suggest the JDK-compilation idea. I won't go into details, but in the past such a thing didn't exist, even for internal JDK developers, but I've been working on the basics of such a system for internal use and have recently got it up and running, providing builds and smoke testing on 4 Solaris platforms, 2 Linux platforms, and 2 Windows platforms. It's hobbling along now. The Hotspot team has had such a system for a long time, but just for internal use. It greatly simplifies the Hotspot developer's job. I'm hoping that this new system will also help out the j2se developer too."


Rama Pulavarthi has an introduction to Maintaining Session With JAX-WS in today's Weblogs. "Web Services are stateless by default because of the underlying HTTP protocol. The server processes each web service request as a new interaction even though it is from the same client. To have a knowledge about previous requests, Server would need to maintain state about the client through some sort. Enabling session support for your web service would require little effort on the server and client."

In Announcing BeanView 1.0, Will Iverson writes: "I've released an open source framework I've been working on for some time now as BeanView 1.0. BeanView allows you to create user interface forms automatically from your POJO + JDK 1.5 Annotations objects. It supports generating forms for both Swing and Echo 2 user interfaces. No code generation is required - the form is generated entirely via reflection."

And in Introducing HTMLMacro, Kohsuke Kawaguchi says "I've always been frustrated by the lack of 'programmability' in HTML, which makes it hard to write good HTMLs. So, I wrote a tool to fix that problem."


In Also in Java Today, Head First guru Kathy Sierra wonders aloud What if managers had to do tech support?: "Years ago, Bert Bates worked at a software company where 95% of the 100+ employees had to spend time doing everything. Tech support. Customer training. Visiting clients and helping with installation and customization. Think about that. [...] It's common in many industries (hospitality especially) to put everyone through cross-training that includes direct customer contact. In software development, it's rare. And according to Bert, the difference it made to that company was profound."

Many Java language methods, such as Thread.sleep()and Object.wait(), throwInterruptedException. You can't ignore it because it's a checked exception, but what should you do with it? In Dealing with InterruptedException, concurrency expert Brian Goetz explains what InterruptedException means, why it is thrown, and what you should do when you catch one


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Layout with Matisse, persist with JPA. There is no step 3.  
kfarnham

Twisting Blog

Posted by kfarnham Jun 7, 2006

Just open source Swing and nobody gets hurt?

Well, I knew this one would start attracting comments after it got out of its xml.com silo and found its way to the wider Java audience.

In the xml.com blog Sun should Open Source Swing: what is bad for Gosling is good for propaganda, Rick Jeliffe advocates open-sourcing Swing by way of an argument that Sun's stewardship of the desktop side of Java has been a failure:

The implementation of HTML in Java hasn't changed in a decade and is now so far from acceptable even Java, whose design rationale above anything else is Write Once Read Anywhere, now just provides a kludge to embed a non-Java browser. Yet Java claims to be a web technology. What a load of bull. Swing's development effort should be realigned around integrating public-contributed enhancements as a priority over new code.

The HTML browser case is a clear example of Java's management and development over the last decade failing people in a major class of applications. I don

kfarnham

They'll Need a Crane Blog

Posted by kfarnham Jun 6, 2006

How to scale your huge application

Sometimes forgotten in discussions of the scalability of applications is what the application developer brings to the table. We hear a lot about whether certain languages or app servers scale up to enterprise class, and frankly, these conversations sound a lot like performance bickering at the smaller scale. And the reason to make that analogy is that time and again, coding practices are massively underestimated as a means of improving performance. Want to run faster? Don't do stupid things like while (...) { myString = myString + anotherString } when there are more performant alternatives (StringBuffer in this pathological example). Similarly, the way you write your program has a lot to do with how it will scale.

Imagine you're performing a series of tasks for each request, and that you process hundreds or even thousands of requests each second. If you have a synchronous path through the steps required to service each request, then you're probably going to tie up one thread for each request, start to finish. Anytime any of these steps requires contending for resources or waiting for something on the network, like db query results, the thread will sit there, not doing anything. If there's a request getting rejected for lack of available threads in the pool, well, too bad for him or her.

Now imagine a more asynchronous approach: when you need to wait for something, use a messaging model and relinquish control. While one task waits for its data, another can get some CPU time. It's not the easiest thing to imagine if you don't already think multithreaded, but in the big picture -- and scalability is all about big pictures -- it increases the overall load your app can handle and improves the handling of requests.

This, roughly, is the "detach" step in Binildas C. A.'s Distribute, Detach, and Parallelize in Tomcat, which is today'sFeature Article. In it, he introduces key strategies and a reference architecture for applications that will scale better. "For scaled-out deployments, we need to be careful to co-ordinate and synchronize shared resource access. Not all applications can be designed in a detached fashion, but wherever possible, this design proves to be a strong alternative to synchronous, real-time processing. Understanding the requirements and planning for a scalable architecture is an indispensable step for the success of scalable deployments."


In Projects and Communities, responding to feedback from many places, thejdk-distros project has announced a new version of the "FAQ for the Operating System Distributor License for Java (DLJ)". Version 1.2 of the DLJ FAQ is an effort to incorporate feedback and clarify the intent of the DLJ, specifically rewriting the preamble to clarify the relationship between the FAQ and the license.

The Mac Java Community notes that Apple has updated 15 QuickTime for Java code samples. The samples have been updated to work with XCode 2 and have a project layout better suited for platform-independent distribution and compilation. The updates fix basic playback samples and more advanced topics such as callbacks and capture.


In today's Forums,cowwoc fires off some frustration in RFE for Dolphin: Fix Generics! "PLEASE simplify Generics! I'd like to humbly suggest that one of Dolphin's major RFEs will be to clean up Generics so that they are easier to use, more readable and more flexible (express more complex restrictions). If I had a choice between 'language support for XML' versus cleaning up Generics I'd vote for the ladder, hands down. Do the rest of you agree? disagree?"

twalljava wonders Why no property change on setCursor? "Anyone know why there isn't a Component property change fired when setCursor is called? Just an oversight? I have one component overlaying another one visually as a decoration, and I'd like its cursor to match. Overriding getCursor to delegate to the underlying component's getCursor works, but it would seem a better approach if I were able to listen for cursor changes as a property (since most cursor handling happens on the peer, there's no guarantee that changes on the underlying component's cursor will be seen by the overlay component)."


Swing topics dominate today's Weblogs. Tim Boudreau starts off by introducing A Single-Mouse-Gesture Color Chooser for Swing: "Ever needed a faster, slicker way to let your users select a color in Swing? I just set up a new java.net project, which produces just such a widget. Press the mouse and a palette pops up; drag over the palette and release when the color is right; use combinations of ctrl/alt/shift to switch palettes."

Ethan Nicholas cuts through control- and command-key madness inMnemonic Magic: "While developing a Swing application, I found Swing's mnemonic system to be too simplistic. Take a look at what I did to improve it, and where we can go from here."

Funny man Chet Haase is back with the Swing humor in Two Items Walk Back into a Toolbar: "What's better than a Swing joke? How about a sequel to a Swing joke?"


In Also in Java Today, Lance Finney's Units and Measures with JScience takes a look at the JScience library. "Developing units systems for scientific, engineering, and mathematical applications is difficult, tedious, and error-prone. Fortunately, JScience provides a comprehensive, well-tested, and standard way for Java developers to support scientific, mathematical, and economic units. The JScience API uses generics to provide type-safety, and the core of JScience is under consideration for future [inclusion] in Java SE. If you are requested to add units-based functionality to your application, and you have considered rolling your own, you owe yourself to investigate JScience."

Harold Carr introduces Sun's Project Tango in an SDN article. "Sun's Java Web Services engineers are working with Microsoft's Windows Communication Foundation (WCF) engineers to ensure interoperability of enterprise features, such as security, reliable messaging, and atomic transactions. At Sun, we call this work 'Project Tango' and like to think of Duke doing the dance. This is accomplished by implementing a number of WS-* specifications and holding plugfests where Sun and Microsoft engineers work face-to-face testing our implementations of those specifications."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



How to scale your huge application  
kfarnham

Lucky Ball and Chain Blog

Posted by kfarnham Jun 5, 2006

Swing to get an application framework?

Maybe the problem with Swing development doesn't begin with squabbles over look-and-feels or lightweight rendering. Maybe it starts with:

public static void main (String[] args)

How are you supposed to get a desktop application out of that? "Oh," say the battle-weary Swing veterans, "there are a hundred ways to do it." Yeah, that's the problem: there are a hundred ways to do it. What's the difference between different approaches; what works better and what works worse? Do you build your GUI on the main thread and not worry about event-dispatch until you're done? How do you handle shutdown? Where do you get resources from? Heck, how is a host operating system supposed to know that this is an application? You're not seriously expecting the end user to open up a terminal window and type java -jar MySwingApp.jar, are you?

To some degree, the problem with "Swing applications" isn't about the "Swing" part, it's all about the "application" part. This hypothesis might explain why there isn't much traction behind SWT applications either, and why we're seeing more interest in "rich client platforms" based on Eclipse, NetBeans, etc. Of course, an important problem with the latter point is that, by and large, most desktop developers are not writing apps as sophisticated as the IDE's from which these platforms originated, so the hammer may be too large for a given developer's nail.

Hans Muller is taking a swing at the problem by introducing a simple framework for Swing applications, to manage resources, application life-cycle, and a few other topics, but without hiding Swing or trying to add another layer of complexity. He introduces it in his blog JSR 296 Bows - Swing Application Framework: "On Tuesday May 15th the JCP Executive Committee approved JSR 296, "Swing Application Framework". I'm the spec lead for JSR 296 and this is the JCP equivalent of a birth announcement. A rather long and meandering birth announcement, with a web started demo at the end."

Also in today's Weblogs, Andrei Dmitriev addresses the question of To Fix or "Will not fix": "A user once reported a defect then has a very limited ability to affect that issue. He couldn't participate in discussion much. This article describes how to influence on defect resolving from the user side."

Barbara Kurshan uses her blog to discuss an Open Source Curriculum for Africa: "I have just returned from two weeks in Rwanda and Ethiopia. I was there to explore wiring Rwanda and to attend the eLearning conference in Addis Ababa. It was a fascinating and certainly eye-opening trip."


In this week's Spotlight, the JGoodies Looksproject, a subproject of the larger JGoodies effort, provides a pair of appealing look-and-feel packages for Swing. The JGoodies Windows L&F "focuses on a precise emulation on Windows 95 / 98 / NT / ME / 2000 / 2003 / XP / Vista" in various widgets, honoring desktop font size and screen resolution as it affects sizes, insets, and widget dimensions. Meanwhile, the Plastic, Plastic3D, and PlasticXP L&F's are "elegant multi-platform Look&Feels that look good on all Windows platforms, including XP."


In Also in Java Today, Robert Cooper kicks off his introduction to the project that was THE talk of JavaOne, in Working with the Google Web Toolkit. "The Google Web Toolkit (GWT) was rolled out for JavaOne 2006 at an innocuously titled session. Due to what I assume was a timing miscommunication, the Google Blog scooped the presentation, but the impact was no less felt." With that understatement, Cooper's introduction shows you how to build an Ajax table with GWT, wire it up to a server-side data source, and handle user interaction on the client side.

The SDN Ajax Developer Resource Center pulls together a wealth of Ajax information in one place: introductory material, tutorials, sample components, tools, news, event announcements, blogs, screencasts, and videos. In particular, it shows how to take advantage of Ajax in Java EE 5, NetBeans, and Java Studio Creator.


In Projects and Communities, Robert Stephenson's Blog Graduation Day, part II points out four more recent graduations from the GELC, saying they " fall under the general rubric of academic research, but are about as diverse an they could be." The graduated projects are netbeanslaboratorysupport,relationalquery,jsteganography, and filewatcher.

Rubik's Cube, in a mere three dimensions, is so 20th Century. The Magic Cube 4D offers a four-dimensional analog of the classic Rubik's Cube puzzle, in Java. Its home page offers an applet version that you can play by clicking on the image of the solved hypercube. A double-clickable jar with more features (including difficulty settings, automatic scrambling, and undo/redo) is also available.


In today's Forums,kellyohair continues to discuss compilation hazards inRe: Getting the JDK to use gcc: "The BIGGEST issue we have had with changing compilers is having to track down buggy compilers or optimizers, or bugs in our own code that start manifesting themselves under new optimizations from those compilers. It usually requires getting specific engineering teams involved that understand the code details, and although these kinds of problems get solved, the logistics of co-ordinating the teams and getting their dedicated time can be overall, very slow. Initial ports can skip optimizations and have an easier start, but ultimately things like the VM do need to get fully optimized."

wetterwald is interested in Joining SwingX project: "As any other Swing applications developer, I am carefully following all great SwingLabs subprojects. If I am writing this message, it is because I would be very interested in joining the SwingX project. Despite having some ideas to play around with, due to my limited experience with participating in large open source projects, I would rather be more interested in knowing if there is any developer which is already working on a component that would like some help and that wouldn't mind guiding me the first days. I learn fast, anyway."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Swing to get an application framework?  
kfarnham

Everybody is a Star Blog

Posted by kfarnham Jun 2, 2006

Shout-outs from the Posse

Philip "Flip" Russell IM'ed me yesterday to say I needed to check out this week's Java Posse. It's already in my podcast subscriptions, so I just had to update.

Wow. I knew people were keeping up with the site, but it blew me away to hear them talking about specific podcasts that we did at JavaOne (like David Herron's mini-talk on the Distro License for Java), and projects on the site. Even a couple I didn't know about, like NET2Java, which takes .NET programs written in Visual Basic or C# and converts them into Java applications.

Note: we usually don't talk up incubated projects, like NET2Java, on the front page because the point of incubation is to give them a chance to get organized before they get too much attention, but the cat's out of the bag on this one. Besides, since NET2Java has already had a few code releases, they're probably ready to graduate, though it's up to the Tools Community leadership to decide that.

Along with noticing my QuickTime-fueled mini-talk rant, they also pointed out that Posse member Joe Nuxoll has a project on the site, JSR-273: Design-Time API for JavaBeans (JBDT) Project. Asking around, all four members of the group said they were java.net members. And then Dick Wall said something about java.net that blew me away:

It's one thing that I wanted to say, that I think it's a really good idea for anyone who's more than passingly interested in Java to go on there and, you know, sign up, because it's free and it's really easy, and go and have a look through the open source projects that are out there. And maybe, you know, join a couple and see what they're doing. There are a ton of them on java.net, and there's probably something for everybody.

Wow, thanks for that. It's very encouraging to know what we're working on every day has value for people.


In Also in Java Today, you may be familiar with UML diagrams that show the relationships between your classes and their members, but it can be much more than that. By using UML to model deployment, you can understand and represent not just your code, but the environment it runs in, and share this with sysadmins and others. In the dev2dev article Modeling Enterprise Java Applications and Deployments, Jeff Davies says "the purpose of this article is to demonstrate several effective ways to model modern software systems to accurately and concisely communicate architectural, design, and deployment details to the responsible parties in your enterprise."


Apropos of the Google Summer of Code and the many Java projects participating in it, the latest java.net Poll asks "Are you going to do more open-source coding this summer?" Cast your vote on the front page, then check out the results on the results page


In Projects and Communities, the Open Source Portlet Repository Project offers a "workspace for open source developers to develop a variety of JSR168 compliant open source portlets. It will include portlets for Enterprise Integrations, Web 2.0 technologies, Collaboration, and much more."

Netbeans.org is hosting a video interview with Patrick Keegan, co-author of the NetBeans IDE Field Guide. In the interview, NetBeans evangelist Roman Strobl chats with Patrick about writing the book, the new version of NetBeans, and the past and future of the NetBeans IDE.


In today's Forums,tmarble updates the status of Linux Java in Re: JSE 5.0 update 7 packages: "We are deliberately delaying the publication of the DLJ bundles for 1.5.0_07 in order to include a revised DLJ FAQ with the LICENSE and update the README to give more explicit permissions on distribution modifications for the JRE and the JDK. It should be only a matter of days now. Thanks for your patience!"

Al Wells seeks optical character recognition in [JAI] OCR: "Does anyone know of an OCR engine that works with Java? I need something something that I can pass images to (rather than passing an image path to a dll or API like Asprise to give me back results). Is there anything now or in the works designed to work with JAI or perhaps with awt?"


Richard Bair talks about The Unknown JavaBean in today's Weblogs. "What is a JavaBean? What is the JavaBean design pattern? If I asked that question in a room of a hundred people, I suspect fewer than 10 would really get it right."

In JavaOne Video: AJAX DONE RIGHT, Ed Burns has a "link to video of TS-1161, along with some descriptive prose about our current situation of having many different AJAX approaches from which to choose."

Finally, in Job Hunting Revisited, Felipe Gaucho writes: "After two months trying job hunting portals I started thinking about innovative ways to demonstrate my abilities to the prospective employers. This blog entry is a laboratory about curriculum vitae formats. It discusses the way people interact in the job hunting universe and also presents a draft solution based on a CV XML Schema."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Shout-outs from the Posse  

The JVM co-opts Visual Basic

A comment from javakiddy on the poll results caught my eye, as it talks up one of the more interesting items from JavaOne that got drowned out in the GWT excitement and the open-source / Linux-licensing rancor... namely, the revealing of Semplice, which brings Visual Basic to the Java platform:

VisualBasic on the JVM I am quite interested in. Not that I want to start writing in VB, but I can see potential for allowing a lot of programmers to escape 'single vendor lock-in' with minimal retraining, while also gaining a performance boost in their applications thanks to JIT/hotspot. Whether or not any of those coders will 'upgrade' to Java itself we will have to wait and see (I suspect not!) but the fact that it opens up the market at little should be welcomed.

This was mistakenly proclaimed as a "second language" for the the JVM, something that Ken Arnold noted was off by about 198 languages. But still, it's a reminder that Java-the-language and Java-the-VM are two different things -- meaningfully coupled, but neither dependent on the other -- and that we continue to see profound interest in bringing other languages and their developers to the JVM, as it represents a popular and important solution to issues of compatibility, security, and more.


There are several helpful responses to be found in today's Forums. In Re: EJB3 @generatedvalue not working, rahulbiswaswrites: "You shouldn't need to use the @TableGenerator annotation. What chris is trying to point out is that in all likely hood you _actually_ have duplicate primary keys. Since you manually inserted the record with primary key 1, the persistence provider has no way of knowing that '1' as a primary key has already been used. One solution is, as chris pointed out, that you find the table being used to store the primary key and manually update the sequence to reflect that the primary keys, that you manually inserted, have been used."

Chris Campbell talks transparency in Re: [JAVA2D] Transparent pixels in PNG/Buffered Image: "First, it's best to avoid getScaledInstance(); there are better/faster ways to do what you want (see the Java 2D FAQ [1]). Second, in order to preserve the transparency from your original image, you'll need to call g2d.setComposite(AlphaComposite.Src) before copying the original into the new image. Allow me to suggest some code that will resolve both of the above issues in fewer steps."


In Also in Java Today, the interview JSF and JSP: What's New in Java EE 5: A Conversation with Ed Burns and Jan Luehe features a talk with Ed Burns (co-specification lead for JSR 252, JavaServer Faces 1.2), and Jan Luehe (spec lead for JSR 245, Java Server Pages 2.1), discussing new JSF and JSP features in Java EE 5. the JSP and JSF common expression language, AJAX, and the role annotations play in dependency injection.

If you're working with AJAX you've reduced bandwidth by sending just needed data as XML rather than requesting a whole new page--but are you making unnecessary requests? Bruce Perry says "Making HTTP requests willy-nilly from AJAX applications is almost never a good idea or design decision. The server side of the equation may not be able to handle the flood of requests. The client side of the AJAX application may have some of its requests time out or abort, which will disrupt the user experience that is meant to be AJAX's strength." In the xml.com article An AJAX Caching Strategy, Bruce shows how to tighten up your code.


David Van Couvering explains The Synchronized Web in today's Weblogs: "James Governor of RedMonk coins a new term for web applications that can run online and offline and keep its data synchronized"

In Tricks and Tips with NIO part I: Why you must handle OP_WRITE, Jean-Francois Arcand writes: "As promised at JavaOne, I will start discussing what I've learned when designing Grizzly, the HTTP front end of GlassFish. I will try to not restrict mu observations to Grizzly, but to NIO based server in general. For the first installment, I will discuss why handling the OP_WRITE operation-set bit."

Brian Leonard has more details about Trying out JBoss' Seam (Continued): "In my previous blog entry I converted a standard JSF / EJB 3.0 application to one that uses JBoss' Seam framework. I covered Seam's primary feature, direct integration of JSF with EJB 3.0, eliminating the Managed Bean. In this entry, I'm going to show off Seam's validation support."


In Projects and Communities, Carla Mott answers questions about GlassFish asked at JavaOne, with GlassFish BoF Summary. Among the topics raised: whether GlassFish is production-quality, will clustering be added to GlassFish, why does the project use TestNG instead of JUnit, and why should users switch to GlassFish?

Robert Stephenson's blog Graduation Day, part I points out four graduations from the GELC incubator. "Two of the projects are in Portuguese and one is in Turkish, reflecting the "G" (for "Global") in GELC and the international nature of Java.net itself. "


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the java.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The JVM co-opts Visual Basic  

Filter Blog

By date: