Blogs
April 28, 2010
16:34
JavaOne 2010 is just around the corner! Well, sort of. While JavaOne 2010 doesn't actually happen until almost five months from now (September 19-23), the call for papers has already closed. That means, for people like Sharat Chander, the JavaOne Content Selection Chairperson, JavaOne 2010 really is just around the corner.
Tori Wieldt recently interviewed Sharat, and has published JavaOne 2010: Interview with the Sharat Chander, Content Selection Chairperson:
There's lots of buzz about the content for JavaOne 2010. I took a moment to talk with Sharat Chander, Principal Product Director in Oracle's Application Grid Product Marketing Team, about the content selection process for JavaOne.
Tori asked Sharat "what's your role in relation to JavaOne?"
Sharat: For the past four years, I've served as the one of Track Leads assigned to review and grade abstracts received during the Call for Papers(CFP). This year, I'm serving as the overall Chairperson for content selection for JavaOne 2010. Individuals can learn more about this year's Conference at: http://www.oracle.com/us/javaonedevelop/062264.html.
With regard to the number of submissions received, Sharat says "the community has definitely given us a challenging job in determining what submissions to approve for the event (a nice problem to have!)" The paper/session selection process is similar to what has existed in recent years. Starting in mid-May, emails will be sent out to people whose submissions have been accepted. Some time in June, the final sessions list will be posted to the JavaOne site.
Sharat cites three ways you can keep abreast of JavaOne 2010 news:
- Visit the JavaOne web page often
- Subscribe to the @JavaOneConf Twitter feed
- Join the JaveOne Group on Facebook
ksemeks is getting a MidiUnavailableException: Audio Device Unavailable: Hi, so here's the deal. When I try to make a new Sequencer object, java throws this exception: javax.sound.midi.MidiUnavailableException: Audio Device Unavailable Here's the whole error...
In the JXTA forum, ariel_ro asks Can someone explain this WARNING: Queue full, dropped one or more elements?: I run a multicast client that sends messages across LAN using JxtaMulticastSocket and Datagrams. When I let the system run for a longer time I get this: Apr 27, 2010 5:13:32 PM net.jxta.impl.util.UnbiasedQueue push3 WARNING:...
plato__ posted Java TV - JavaTVapi - javax.tv.service missing: I have installed NetBeans 6.8 and jdk1.6.0_20 and the Java TV api from javatv-developers.dev.java.net. I followed all the instructions and I successfully intergrated the api and the emulator to NetBeans IDE. Althought, when creating a new project, I am...
Our Spotlight this week is the NetBeans IDE 6.9 Beta Release:
NetBeans 6.9 Beta introduces the JavaFX Composer, a visual layout
tool for visually building JavaFX GUI applications, similar to the Swing
GUI builder for Java SE applications. Additional highlights include OSGi
interoperability for NetBeans Platform applications; support for JavaFX
SDK 1.3, PHP Zend framework, and Ruby on Rails 3.0; as well as
improvements to the Java Editor, Java Debugger, and issue tracking, and
more. NetBeans 6.9 Beta is available in English, Brazilian Portuguese,
Japanese and Simplified Chinese, as well as in several
community-translated languages. Learn more: http://netbeans.org
This week's java.net Poll asks What is the most important enhancement in JavaFX 1.3? The poll will be open through Friday.
Our latest Feature Article is The Match Maker Design Pattern - a New Place for the Actions, by Michael Bar-Sinai, which describes how to add actions to a system without modifying business objects, add objects without changing actions, and still keep things reusable. We also just published HTML5 Server-Push Technologies, Part 2 by Gregor Roth; this two-part series explains the new Server-Sent Events and WebSockets API in HTML5. And we're also still featuring Biswajit Sarkar's Using Styles, Themes, and Painters with LWUIT, in which you discover how to use some of the new and enhanced features in LWUIT version 1.3.
Current and upcoming Java Events:
- April 26-30, Pasig City, Philippines: JavaEE Training Philippines
- April 29, Istanbul, Turkey: Istanbul JUG April Event
- April 30 - May 2, Reston, VA, US: 2010 Northern Virginia Software Symposium: Spring Edition
- May 3-8: JAX 2010
- May 10-14, Redwood City, CA, US: Android Training
- May 15-17, Redwood City, CA, US: Android Application Development
- May 17-21, Cambridge, MA, US: Boston "Web Services and SOA Programming" 5-day Instructor-led ("face to face") Codecamp By Sang Shin
- May 21-23, St. Louis, MO, US: 2010 Gateway Software Symposium
- June 4-5, Dallas, TX, US: 2010 Lone Star Software Symposium: Dallas Edition
- June 7-11, Redwood City, CA: Java Training
- June 14-17, Denver, CO, US: UberConf 2010
- June 22-25, Pasig City, Philippines: Spring Training Philippines
- July 7-9, Pasig City, Philippines: Struts Training Philippines
Source: Blog java.net
Categories: Blogs
09:19
Do you remember the email you got to tell you that your jre had a vulnerability? No? What about the fact that Java 5 is in an end of life phase. Given the time it has taken for Java 7 to appear its has somewhat slowed the normal EOL pace of the Java platforms. You may not know that Java 1.4.2 for business will be supported commercially until April 2018, which is kind of mind-boggling. Thats like offering support for Windows 95 even now. At some point you should move and I would recommend most developers to be at least on Java 6 as its going to be around for a while.
Normally when your team releases your own applications as long as things are working the only reason to change exist underlying or dependent software is either to take advantage of new features or due to forced obsolesence by the provider of that software. Its difficult for an engineer or project lead to provide evidence as to why you need to update an application or what are the steps required to even upgrade if you wanted to. How quickly does your AMI , VMware or Azure image get out of date, who is even checking it?
If I look at the Java platform itself and really many of the main platforms, PHP, Ruby, .NET , perl, python etc, the pace of innovation has slowed. There obviously is still growth but its still chasing smaller footprints with apis in quick fixup mode after the first set of developers have released products.
My team has created a free service based on some technology we released over 5 years ago to check your Java platform and application and provide recommendations on what would need fixing and what you need to do next. It basically is a 5 minute scan and the reports are available to print out to show your boss. if you are interested head on over to http://quality.spikesource.com .
Source: Blog java.net
Categories: Blogs
April 27, 2010
23:24
FESI Research Program Overview
FESI is the Free and open source software Enterprise Solutions Institute. We are a research program designed to study tomorrow's internet technologies as a means to teach folks in the local workforce how to use technologies our customers will likely want to implement. We also perform this research to prepare local engineers with the knowledge and skills to help introduce newer technologies into existing enterprises. Finally, the integration code we create will be uploaded to java.net and available to everyone under the GPL.
To achieve these goals, we will roll out our initial research in three phases: phase one we will complete setting up the research program and introduce members to some of the core technologies we work with, phase two we will construct a web-application using well established technologies, and phase three we will begin replacing the well-established technologies with cutting edge (but proven) technologies.
To get involved please email me or send an e-mail to fossesi.md@gmail.com
Phase one
Phase one is currently under way. This blog will be where we tell the world how things are going. Java.net will be where we host our project and source all of our completed code. Twitter, LinkedIn and Facebook will be used to further help promote our efforts. We will also use this time to recruit more researchers to FESI. We will invite new members into our program to use the Camel tutorial introducing them to many of the technologies we will be using. Once we have established all of the administrivia, phase one will be complete.
Phase two
Phase two is a planning and rapid implementation process. We will create a sample application using a well-proven existing technologies. To do this we will:
- implement a schema, triggers, stored procedures and views on a relational database (either MySQL or Oracle),
- employ a middleware product to serve numerous java servlets, and old-school struts applications,
- use hibernate to act as a bridge between the database and the middleware tier, and
- use the web as our presentation layer.
- replace the struts router with Camel routing and mediation,
- convert all of the EJB's into endpoint applications,
- replace backend RMI with JMS,
- replace the middleware product with Apache Felix,
- replace the relational database with Cassandra, and
- move all stored procedures, triggers and views into Java Pojos.
Source: Blog java.net
Categories: Blogs
22:55
My masters colleague, Guilherme Hobold, and his friend, Elinton Machado, have created a very interesting project for helping Java ME applications with dependency injection. Actually, it is not only for Java ME (CLDC), but because of there is no reflection, they have done some magic to make it work in a nice way.
The project is called DIME, which means Dependency Injection for Java ME. Basically it has a XML to configure the beans (it depends on kXML lib for parsing), a container to get the beans and the classes have to implemented a Bean interface that provides access to the hash table that is used to set the correct values. The XML file uses the same notation as Spring.
Here is some sample code that I got from the project page.
XML file (also supports map and other types).
element1
element2
movies2.txt
Make a bean:
import java.util.Hashtable;
import org.dime.Bean;
import test.collection.FooList;
public class Foo extends FooAbstract implements Bean {
private String filename;
private FooList fooSet;
public String getFilename() {
return filename;
}
public void setProperties(Hashtable properties) {
filename = (String)properties.get("filename");
fooSet = (FooList)properties.get("fooSet");
}
}
Load the XML file and get the bean:
BeanContainer container = new ClassPathXmlBeanContainer("file.xml");
Foo foo = (Foo)container.getBean("Foo");
System.out.println(foo.getFilename());
Very nice job! Take a look in the project page for more information. Take a try!
http://dime.dev.java.net
Cheers,
Bruno Ghisi
Source: Blog java.net
Categories: Blogs
22:00
On April 28th, 2010, we will be kicking off the first phase of FESI's research. This where we set up the project, and start to get our hands dirty. Attached is the flyer we will use to promote FESI and what we're trying to accomplish. Hopefully it will help us get the word out to the local community.
Also as the kickoff, we'll be participating with a networking group that meets monthly. I honestly dont' think a ton of folks will sign up for FESI tomorrow night, and that's really not the point. The kickoff is the start date of FESI. We can look back on this date in years to come as the birth, the place where it all began, and a date to celebrate our accomplishments in the future.
Good luck, and we're looking forward to seeing you there!
Source: Blog java.net
Categories: Blogs
15:18
This week is my last at Oracle, next week I'll be starting a new job with Mitre.
I started looking around for a "Plan B" prior to the Sun acquisition closing in February, mainly due to uncertainty about whether I'd be offerred a position with Oracle. A friend introduced me to an excellent opportunity at Mitre and, after a couple of rounds of interviews and a lot of thought, Plan B morphed into Plan A.
I've enjoyed my short stint with Oracle, it was great to be able to work on Jersey again after 18 months or so doing other things and hopefully the declarative hyperlinking extensions and WADL generation improvements I've been working on will have legs after I leave. I don't know yet whether my new role will afford the opportunity to contribute further to Jersey and/or JAX-RS but I'll be working on the application of open services technologies to national problems so its possible.
I plan to continue blogging here when I can, so stay tuned for the next chapter.
Source: Blog java.net
Categories: Blogs
13:16
Content available at: http://blogs.sun.com/arungupta/entry/totd_130_invoking_a_osgi
Source: Blog java.net
Categories: Blogs
12:41
We've just published Michael Bar-Sinai's new article, The Match Maker Design Pattern - a New Place for the Actions. In this article, Michael tackles some of the problems associated with object-oriented design within the context of the changing requirements that the real-life business world imposes on software applications over time. To see what I mean, here's Michael's opening paragraph:
Software systems often deal with similar concepts, whose behavior differs only slightly. Classic Object-Oriented design deals with such cases using inheritance; overriding the
calculateSalary() method in different Employee subclasses allows the rest of the application to remain oblivious to the subtle differences between the salary algorithms of Manager, Engineer, and AnnoyingCeoNephew.
In the article, Michael presents a solution that, while not a "silver bullet", provides benefits that work in a majority of real-life cases where you're updating software applications to address changed business requirements. His section "Dealing With New Classes On The Fly" opens with:
A MatchMaker instance does hold a Map mapping classes to handlers, but with a twist. When it is given an instance of a class for which a handler was not explicitly specified, it embarks on a breadth-first search (BFS) up the class hierarchy, starting from that object's class, looking for a class for which a handler was explicitly specified. A property of BFS is that it ensures that the class found is the closest one to the original object's class. Note that there might be a few classes with the same distance.
Figure 1. Class hierarchy and handlers example.
The article contains plenty of code snippets that illustrate the match maker technique. Michael concludes the article with this summary:
We have seen the Match Maker pattern, which allows programmers to:
- add actions on objects without modifying the objects those actions operate on;
- add objects and have appropriate actions automatically operate on them; and
- work on a subclass while holding only a superclass reference to it, without downcasting.
Pelegri presents Fundamo, OSGi, iPad.. and More GlassFish News - April 24rd, 2010:
Financial services on the go - GlassFish for Fundamo and profit: Alexis recently published a new Adoption Story on how Fundamo uses GlassFish v2 and OpenMQ for its Enterprise Platform. Overview at stories entry, details in questionnaire, and an overview in this earlier short video interview. We are always interested in more GlassFish adoption stories, both from (non-paying) users and from (paying) customers. Stories come from all industries and around the world, the last few entries are PSA Peugeot Citroën (France/Auto), iVox (Belgium/Print), NHIH (US/Gov-Health Care) and Suncorp (Australia/Finantial)...
James Sugrue continues his design pattern series with Design Patterns Uncovered: The Mediator Pattern:
Today's pattern is the Mediator pattern, used to handle complex communications between related objects, helping with decoupling of those objects. Mediator in the Real World: An airport control tower is an excellent example of the mediator pattern. The tower looks after who can take off and land - all communications are done from the airplane to control tower, rather than having plane-to-plane communication. This idea of a central controller is one of the key aspects to the mediator pattern...
Geerjan Wielenga continues his Small MultiView Editor Experiment (Part 2):
The sample for developers creating multiview editors on the NetBeans Platform (described yesterday in this blog) is now slightly more extensive, since you can add new nodes in the visual view, which will then automatically be added to the source editor (as well as the visual editor, of course)...
In the Weblogs, Kohsuke Kawaguchi is Introducing InfraDNA, the Hudson company:
As I wrote in my farewell note, I was working on starting a new company around Hudson. It took longer than I initially anticipated, but it's finally open for business! The company will provide two things; one is support, so that I can answer your questions and problem reports in a timely fashion, and the other is consulting, so that I can help you develop custom plugins, or provide on-site support to work on some tricky problems. The name of the company is InfraDNA because I think of Hudson more as an infrastructure on which all kinds of server-side automation/tools can be built/deployed, and because I think this stuff is built into me (as in DNA)...
John Ferguson Smart describes Grouping tests using JUnit categories:
In a well-organized build process, you want lightning-fast unit tests to run first, and provide whatever feedback they can very quickly. A nice way to do this is to be able to class your tests into different categories. For example, this can make it easier to distinguish between faster running unit tests, and slower tests such as integration, performance, load or acceptance tests. This feature exists in TestNG, but, until recently, not in JUnit. Indeed, this has been missing from the JUnit world for a long time...
In the Forums, kschaefe expresses his view in the SwingLabs forum on JXEditorPane honoring display properties: I believe that we should change the default construction of JXEditorPane to honor display properties. This means that when the font or colors are set the rendered documents will honor them. Core added this client property in 1.5, but left the old style...
In the Metro and JAXB forum, John Hite asks Where is databinding done?: I'm trying to figure out where metro converts SOAP messages to java objects. Is this done in a Tube? Can anyone point me in the right direction? Thanks, John
In the LWUIT forum, rgucci finds that Calling BlackBerry browser to play video blocks the whole device: Developing on the BlackBerry port, OSv5.0, Bold 9700 simulator. I am calling the native BlackBerry Browser to launch the BlackBerry media player to play an mp4 file stored in the SDCard. Everything works and plays, the video and sounds are...
Our Spotlight this week is the NetBeans IDE 6.9 Beta Release:
NetBeans 6.9 Beta introduces the JavaFX Composer, a visual layout
tool for visually building JavaFX GUI applications, similar to the Swing
GUI builder for Java SE applications. Additional highlights include OSGi
interoperability for NetBeans Platform applications; support for JavaFX
SDK 1.3, PHP Zend framework, and Ruby on Rails 3.0; as well as
improvements to the Java Editor, Java Debugger, and issue tracking, and
more. NetBeans 6.9 Beta is available in English, Brazilian Portuguese,
Japanese and Simplified Chinese, as well as in several
community-translated languages. Learn more: http://netbeans.org
This week's java.net Poll asks What is the most important enhancement in JavaFX 1.3? The poll will be open through Friday.
Our latest Feature Article is The Match Maker Design Pattern - a New Place for the Actions, by Michael Bar-Sinai, which describes how to add actions to a system without modifying business objects, add objects without changing actions, and still keep things reusable. We also just published HTML5 Server-Push Technologies, Part 2 by Gregor Roth; this two-part series explains the new Server-Sent Events and WebSockets API in HTML5. And we're also still featuring Biswajit Sarkar's Using Styles, Themes, and Painters with LWUIT, in which you discover how to use some of the new and enhanced features in LWUIT version 1.3.
Current and upcoming Java Events:
- April 26-30, Pasig City, Philippines: JavaEE Training Philippines
- April 29, Istanbul, Turkey: Istanbul JUG April Event
- April 30 - May 2, Reston, VA, US: 2010 Northern Virginia Software Symposium: Spring Edition
- May 3-8: JAX 2010
- May 10-14, Redwood City, CA, US: Android Training
- May 15-17, Redwood City, CA, US: Android Application Development
- May 17-21, Cambridge, MA, US: Boston "Web Services and SOA Programming" 5-day Instructor-led ("face to face") Codecamp By Sang Shin
- May 21-23, St. Louis, MO, US: 2010 Gateway Software Symposium
- June 4-5, Dallas, TX, US: 2010 Lone Star Software Symposium: Dallas Edition
- June 7-11, Redwood City, CA: Java Training
- June 14-17, Denver, CO, US: UberConf 2010
- June 22-25, Pasig City, Philippines: Spring Training Philippines
- July 7-9, Pasig City, Philippines: Struts Training Philippines
Source: Blog java.net
Categories: Blogs
09:17
Learning GlassFish v3 Command Line Administration Interface (CLI)
Terminals and consoles was one of the earliest types of communication interfaces between a system administrator and the system administration layer. Due to this long time presence, command line administration consoles become one the most utilized administration channel for configuring different software ranging from database engines to router’s embedded operating systems.
GlassFish provides several administration channels; one of them is the command line administration interface or CLI from now on. The CLI has many unique features which make it very convenient for command line advocates and new administrators which like to get familiar with CLI and use it in the daily basis. The CLI allows us to manage, administrate, and monitor any resources which application server exposes to the administrators. So we can perform all of our administration tasks just by firing up a terminal, navigating to glassfish bin directory and executing the asadmin script which is either a shell script in UNIX based operating systems or a batch file in Windows operating system.
The CLI has some degree of embedded intelligence which helps us to simply find the correct spelling and similar commands to the command or phrase that we try. Therefore with basic knowledge of GlassFish application server administration we can find out the command that we need and proceed with the task list which we have in front.
1 The CLI environment
CLI is an administration interface which let administrators and developers to change configurations like changing a listener port; performing life cycle related tasks like deploying a Web application, or creating a new domain; monitoring different aspects of the application server; and finally performing maintenance duties like creating backup from the domain configuration, preparing maintenance reports and so on.
Door to the CLI interface is a script which is place in glassfish_home/bin directory. For Linux and UNIX platforms it is a shell script named asadmin and for the Windows platform it is a batch file named asadmin.bat. So, before we start doing anything with the CLI interface we need to either have glassfish_home/bin in the system path or we should be in the same directory which the script resides.
Add glassfish_home/bin to operating system path
We can add glassfish_home/bin to windows operating system path by using the following procedure. You should have the glassfish_home variable already defined, if not you can replace %glassfish_home% with the full path to glassfish installation directory.
- Right click on My Computer icon and select properties item
- Select advanced tab in the from the tab set
- Click on environment variables button, you will see two set of variables one for user and one for the system. I suggest you choose the user space to add your variable or update the currently defined variable.
- If you can not find path in the list of variables, create a new variable named path and sets its value to %glassfish_home%/bin. If the variable is present then add ;glassfish_home/bin to the end of the variable’s value.
- The --savemasterpassword parameter: Setting this option to true asks the domain creating process to save the master password into a file and facilitate the unattended (headless) domain startup. We will discuss this password in more details in section 4 of this article. For now just remember that default value for master password is changeit. I am sure that value of the password is talking for the importance of changing it.
- The --passwordfile parameter: The asadmin utility policy encourages the administrators not to enter the password in the console and instead use a file which includes the required password. During the domain Creating two passwords are required which are domain administration password and master password. To avoid typing the passwords we can store them in a plain text file similar to the following snippet and pass it to any command that we execute instead of typing the passwords in an interactive way.
- The --savelogin parameter: We will discuss automatic login with more details in section 4 of this article, but to be brief, this parameter make it possible to execute our commands on different domains without providing username and password on every command execution.
- OFF: No monitoring information is gathered
- LOW: Only object’s attributes changes are monitored
- HIGH: In addition to attributes methods execution is counted
- The monitor command: We can use this command to view common statistical information about different application server services, we can filter the statistics for only on monitor-able object in the service or we can view cumulative statistical information about all objects in that particular service. For example all JDBC connection pools or just one single JDBC connection pool statistics can be viewed using the monitor command.
- The list command: We can use this command to get the hierarchic of all monitor-able and configuration objects or specific type of objects like JDBC connection pools. The list command has an important boolean parameter named monitor which determine whether we want to see monitor-able objects or configuration objects.
- The set command: We can use this command to change the monitoring level of a monitor-able object. And in broader view, We can use it to change application server configuration by changing the attributes of configuration objects.
- The get command: We can get customized monitoring information about different attributes of different monitor-able objects. In broader view, we can use this command to view value of any configuration object’s attributes.
- The delete-password-alias command: We can delete an alias when we are sure we are no longer using it.
- The list-password-aliases command: We can get a list of all aliases that we have in our domain-password file.
- The update-password-alias command: We can update an alias by changing the password that it holds.
Source: Blog java.net
Categories: Blogs
April 26, 2010
23:09
(I started cross-posting blogs to my own website.)
As I wrote in my farewell note, I was working on starting a new company around Hudson. It took longer than I initially anticipated, but it's finally open for business!
The company will provide two things; one is support, so that I can answer your questions and problem reports in a timely fashion, and the other is consulting, so that I can help you develop custom plugins, or provide on-site support to work on some tricky problems.
The name of the company is InfraDNA because I think of Hudson more as an infrastructure on which all kinds of server-side automation/tools can be built/deployed, and because I think this stuff is built into me (as in DNA) — when I look back my career as a software engineer, I always somehow seem to come back to tooling. (Plus, the domain name was available!)
Looking forward to hearing from you.
Source: Blog java.net
Categories: Blogs

