Tech all over the world
Tuesday, March 28, 2006
  Enterprise Java Technologies Tech Tips, March 27, 2006 (Web Services Using EJB 3.0, Extending the GlassFish Admin System)
You are receiving this e-mail because you elected to receive e-mail from Sun Microsystems, Inc. To update your communications preferences, please see the link at the bottom of this message. We respect your privacy and post our privacy policy prominently on our Web site http://sun.com/privacy/

Please do not reply to the mailed version of the newsletter, this alias is not monitored. Feedback options are listed in the footer for both content and delivery issues.
  Welcome to the Enterprise Java Technologies Tech Tips.
Enterprise Java Technologies
TECHNICAL TIPS
March 27, 2006
View this issue as simple text
In this Issue
 
Welcome to the Enterprise Java Technologies Tech Tips for March 27, 2006. Here you'll get tips on using enterprise Java technologies and APIs, such as those in Java 2 Platform, Enterprise Edition (J2EE) and Java Platform, Enterprise Edition 5 (Java EE 5).

This issue covers:

» Developing Web Services Using EJB 3.0
» Using Custom MBeans to Extend the GlassFish Administration System

These tips were developed using an open source reference implementation of Java EE 5 called GlassFish. You can download GlassFish from the GlassFish Community Downloads page.

You can download the sample archive for the Developing Web Services with EJB tip. You can download the sample archive for the Using Custom MBeans tip.

Any use of this code and/or information below is subject to the license terms.

See the Subscribe/Unsubscribe note at the end of this newsletter to subscribe to Tech Tips that focus on technologies and products in other Java platforms.

DEVELOPING WEB SERVICES USING EJB 3.0
 
by Manisha Umbarje

The specification Web Services for Java EE, JSR 109 defines two ways of implementing a web service. One way is based on the Java class programming model -- the web service is implemented by a Java class that runs in a web container. The other way is based on the Enterprise JavaBeans (EJB) programming model -- the web service is implemented as a stateless session bean that runs in an EJB container. A previous Tech Tip, Developing Web Services Using JAX-WS, described how to develop a web service using the Java class programming model and Java API for XML Web Services (JAX-WS) 2.0, JSR 224. In the following tip, you'll learn how to develop a web service using JAX-WS and the EJB programming model. In particular, you'll learn how to use an EJB 3.0 stateless session bean to implement a Calculator service -- the same Calculator service that was covered in the previous Tech Tip.

A sample package accompanies this tip. It demonstrates a standalone Java client accessing the EJB 3.0-based Calculator service. The example uses an open source reference implementation of Java EE 5 called GlassFish. You can download GlassFish from the GlassFish Community Downloads page.

Writing the EJB 3.0 Stateless Session Bean Class

Let's start by creating the stateless session bean for the service. One of the significant improvements in the Java EE 5 platform is a much simpler EJB programming model as defined in the Enterprise JavaBeans 3.0 Specification, JSR-220. One of the simplifications is that a bean implementation class is no longer required to implement the javax.ejb.SessionBean or javax.ejb.EntityBean interface. You can declare a class a session bean or entity bean simply by annotating it. For example, you can declare a class a stateless session bean by annotating it with the @Stateless annotation.

EJB 3.0 does specify additional rules for the bean implementation class:

  • It must be declared public and must have a default constructor that doesn't take any arguments.

  • It must not be final or abstract and must be a top-level class.

  • It must not define a finalize() method.

Another simplification in EJB 3.0 is that a component interface or home interface is no longer required for a session bean. The one interface a session bean needs is a business interface that defines the business methods for the bean. Unlike business methods in a component interface, the business methods in a business interface are not required to throw java.remote.RemoteException. However the business methods can define throws clauses for arbitrary application exceptions. The EJB 3.0 business methods should not be static and final.

Given these simplifications and rules, here is a stateless session bean for the Calculator class that conforms to the EJB 3.0 programming model (you can find the source code for the Calculator class in the endpoint directory of the installed sample package):

    package endpoint;       import javax.ejb.Stateless;       @Stateless      public class Calculator {        public Calculator() {}       public int add(int i, int j) {          int k = i +j ;          System.out.println(i + "+" + j +" = " + k);          return k;       }    } 

Because the EJB 3.0 bean doesn't need to implement the javax.ejb.SessionBean interface, it no longer needs to include unimplemented lifecycle methods such as ejbActivate and ejbPassivate. This results in a much simpler and cleaner class. Various annotations defined in EJB 3.0 reduce the burden on developers and deployers by reducing or eliminating the need to write a deployment descriptor for the component.

Marking the EJB 3.0 Bean as a Web Service

To mark a bean as a web service simply annotate the class with the @WebService annotation. This is an annotation type defined in the javax.jws.WebService package, and is specified in Web Services Metadata for the Java Platform, JSR 181. Here is the code for Calculator class marked as a web service:

    package endpoint;       import javax.ejb.Stateless;    import javax.jws.WebService;     @Stateless    @WebService    public class Calculator {        public Calculator() {}       public int add(int i, int j) {          int k = i +j ;          System.out.println(i + "+" + j +" = " + k);          return k;       }    } 

Marking a Java class with a @WebService annotation makes it a service implementation class. Note that you don't have to implement a service endpoint interface. According to the JSR 109, you only need to provide a javax.jws.WebService-annotated service implementation bean. Deployment tools can then be used to generate a service endpoint interface, as well as a WSDL document, using JAX-WS rules for Java WSDL mapping.

Packaging the Web Service

A web service based on the EJB programming model needs to be packaged as a JAR file. Using the @WebService annotation, you only need to package the service implementation bean class (with its dependent classes, if any) and the service endpoint interface class (if explicitly provided). Additionally, the @Stateless annotation frees you from packaging ejb-jar.xml. By comparison, in the JAX-RPC style of packaging web services based on EJB 2.0 or earlier, you were responsible for providing the service endpoint interface class, the service implementation bean class (and dependent classes), generated portable artifacts, the JAX-RPC mapping file, and a web services deployment descriptor (webservices.xml and ejb-jar.xml).

With JSR 224, JSR 109, JSR 181 and JSR 220, an application server deployment tool can generate all the necessary artifacts such as a deployment descriptor (if not explicitly provided by the user) for deploying the web service. These artifacts, bundled in the EJB JAR file, are deployed in an EJB container. A deployer can choose to overwrite values specified by the @WebService and @Stateless annotations by explicitly providing any of the previously-mentioned artifacts and packaging them in the EJB module at the time of deployment. For this tip, the following files are packaged in the EJB module to be deployed:

   endpoint/Calculator.class   endpoint/jaxws/Add.class   endpoint/jaxws/AddResponse.class 

The rest of the deployment artifacts are generated by the application server (in this case, GlassFish).

Writing the Client

After you deploy the web service, you can access it from a client program. A client uses a @WebServiceRef annotation to declare a reference to an EJB 3.0-based web service. The @WebServiceRef annotation is in the javax.xml.ws package, and is specified in JAX-WS 2.0 Web Services Metadata for the Java Platform, JSR 181. If you examine the source code JAXWSClient, the client program used in this tip (you can find the source code for JAXWSClient in the client directory of the installed sample package), you'll notice the following:

    @WebServiceRef(wsdlLocation=     "http://localhost:8080/CalculatorService/Calculator?WSDL")    static endpoint.CalculatorService service; 

The value of the wsdlLocation parameter in @WebServiceRef is a URL that points to the location of the WSDL file for the referenced service. (The @WebServiceRef annotation supports additional properties that are optional. These optional properties are specified in section 7.9 of the JAX-WS 2.0 specification.) The static variable named service will be injected by the application client container.

Looking further at the source code for JAXWSClient, you'll notice the following line:

    endpoint.Calculator port = service.getCalculatorPort(); 

The service object provides the method, getCalculatorPort, to access the Calculator port of the web service. Note that both endpoint.CalculatorService and endpoint.Calculator are portable artifacts that are generated by using the wsimport utility. The wsimport utility is used to generate JAX-WS artifacts (it is invoked as part of the build-client step when you run the example program.)

After you get the port, you can invoke a business method on it just as though you invoke a Java method on an object. For example, the following line in JAXWSClient invokes the add method in Calculator:

   int ret = port.add(i, 10); 

Running the Sample Code

A sample package accompanies this tip. It demonstrates the techniques covered in the tip. To install and run the sample:

  1. If you haven't already done so, download GlassFish from the GlassFish Community Downloads page.

  2. Set the following environment variables:

    GLASSFISH_HOME: This should point to where you installed GlassFish (for example C:\Sun\AppServer)

    ANT_HOME: This should point to where ant is installed. Ant is included in the GlassFish bundle that you downloaded. (In Windows, it's in the lib\ant subdirectory.)

    JAVA_HOME: This should point to the location of JDK 5.0 on your system.

    Also, add the ant location to your PATH environment variable.

  3. Download the sample package for the tip and extract its contents. You should now see the newly extracted directory as <sample_install_dir>/ttmar2006ejb-ws, where <sample_install_dir> is the directory in which you installed the sample package. For example, if you extracted the contents to C:\ on a Windows machine, then your newly created directory should be at C:\ttmar2006ejb-ws. The ejb-techtip directory below ttmar2006ejb-ws contains the source files and other support file for the sample.

  4. Change to the ejb-techtip directory and edit the build.properties files as appropriate. For example, if the admin host is remote, change the value of admin.host from the default (localhost) to the appropriate remote host.

  5. Start GlassFish by entering the following command:

    <GF_install_dir>/bin/asadmin start-domain domain1

    where <GF_install_dir> is the directory in which you installed GlassFish.

  6. In the ejb-techtip directory, execute the following commands:

    ant build

    This creates a build directory, compiles the classes, and puts the compiled classes in the build directory. It also creates an archive directory, creates a JAR file, and puts the JAR file in the archive directory.

    ant deploy

    This deploys the JAR file on GlassFish.

    ant build-client

    This generates portable artifacts and compiles the client source code.

    ant run

    This runs the application client and invokes the add operation in the Calculator service 10 times, adding 10 to the numbers 0-to-9. You should see the following in response:

    run:

         [echo] Executing appclient with client class as      client.JAXWSClient     [exec] Retrieving port from the service      endpoint.CalculatorService@159780d     [exec] Invoking add operation on the calculator port     [exec] Adding : 0 + 10 = 10     [exec] Adding : 1 + 10 = 11     [exec] Adding : 2 + 10 = 12     [exec] Adding : 3 + 10 = 13     [exec] Adding : 4 + 10 = 14     [exec] Adding : 5 + 10 = 15     [exec] Adding : 6 + 10 = 16     [exec] Adding : 7 + 10 = 17     [exec] Adding : 8 + 10 = 18     [exec] Adding : 9 + 10 = 19 
  7. To undeploy the EJB Module from GlassFish, execute the following command:

    ant undeploy

About the Author

Manisha Umbarje is a member of the product engineering group for the Sun Java System Application Server.

Back to Top

USING CUSTOM MBEANS TO EXTEND THE GLASSFISH ADMINISTRATION SYSTEM
 
by Nandini Ektare and Kedar Mhaswade

One of the areas significantly enhanced in Java 2 Platform, Standard Edition (J2SE) 5.0 is monitoring and management. Among the key features J2SE 5.0 introduced is an instrumented Java virtual machine (JVM) and a java.lang.management API for monitoring and managing the JVM. The API enables local and remote access to a variety of JVM-related information such as memory usage, thread state, class loading activity, and garbage collection statistics. This enhanced and integrated support for management and monitoring can be used by any J2SE 5.0-based administration application.

GlassFish and MBeans

One tool that takes advantage of these capabilities is GlassFish, an open source application server implementation of Java EE 5. The GlassFish application server leverages all of the J2SE 5.0-based monitoring and management enhancements in its administration infrastructure. This includes the use of the platform MBean server to register application server MBeans. Management Beans (or "MBeans") are Java objects that follow design patterns conforming to the Java Management Extensions (JMX) specification -- they are used for instrumenting resources. This tip assumes that you're familiar with the basics of JMX. For an introduction to JMX, see the Tech Tip Understanding JMX Technology.

The platform MBean server, also introduced in J2SE 5.0, is a JMX-based agent built into the JVM, that gives management applications access to MBeans. The agent can be shared by all managed components running in the JVM. Through the platform MBean server, GlassFish can provide a comprehensive and consolidated monitoring and management view of the system and application-specific MBeans. GlassFish uses this built-in agent instead of creating an instance of its own agent (as was required previous to J2SE 5.0). Because application server MBeans are registered in the platform MBean server repository, tools such as the Java Monitoring and Management Console (JConsole) can display information about all resources instrumented by the application server MBeans.

GlassFish and Custom MBeans

Significantly, you can extend GlassFish's administration features by creating and registering your own custom MBeans. Custom MBeans allow dynamic injection of monitoring and management features. In addition, instrumented custom MBean attributes can be persisted so that they survive even if the application server needs to be restarted. One place where custom MBeans demonstrate their utility is in GlassFish's Self Management Framework. This is a rule-based event management system, where users can add custom actions, implemented as custom MBeans, to the rules that govern the system.

Example: Extending Monitoring and Management Capabilities

This tip presents an example that uses custom MBeans to extend GlassFish's monitoring and management features. The example extends a Java EE application that processes data that it gets periodically from a web service. The administrative extension is to add an event to be monitored and an action for the application to take in response to that event.

The event is an update to a list of email addresses. The action is to send emails to the updated list of email addresses. In this scenario, a custom MBean, which is also a client of the web service, would update the list of email addresses after polling the web service. However, to simplify things in this example, the string of email addresses is an attribute of the custom MBean. A user directly modifies the list using JConsole. When the attribute is modified, a listening custom MBean is notified. The listening custom MBean then processes the event by sending emails to the updated list of email addresses (that is, the updated value of the attribute).

A sample archive accompanies this tip. It contains the source code and compiled classes for the example. It also includes javadoc for the classes used in the example.

Step 1: Setup

Let's start by doing some initial setup. If you haven't already done so, download GlassFish from the GlassFish Downloads page. Then set the following environment variables:

  • GLASSFISH_HOME. This should point to where you installed GlassFish (for example C:\Sun\AppServer)

  • JAVA_HOME. This should point to the location of JDK 5.0 on your system.

Step 2: Start GlassFish

Start GlassFish by entering the following command:

       <GF_install_dir>/bin/asadmin start-domain domain1 

where <GF_install_dir> is the directory in which you installed GlassFish.

Step 3: Download the sample archive:

Download the sample archive for the tip and extract its contents:

    jar xvf ttmar2006custmbean.jar 
After you extract the contents, you should see a META-INF directory, a techtip directory, and a javadoc directory. The techtip directory contains the source files and compiled classes for the example.

Step 4: Create the custom MBeans

This example uses two custom MBeans, one for the event source, and one to listen for the event (the event "sink"). You can find the source code for the two custom MBeans in the techtip/src directory.

A custom MBean requires an MBean interface and an MBean implementation class. The custom MBean interface for the event source is EventSourceCustomMBean, and its implementation class is EventSourceCustom. The custom MBean interface for the event sink is EventSinkCustomMBean and its implementation class is EventSinkCustom.

After you create the source files for the custom MBeans, you can compile the files into the com.example.mbeans package structure (this is optional -- the compiled classes are in the sample archive). To compile the files, enter the following:

    javac -d . EventSourceCustom.java EventSourceCustomMBean.java     javac -d . EventSinkCustom.java EventSinkCustomMBean.java  

When you compile the EventSinkCustom class, you need to make sure that the files mail.jar and activation.jar are in your classpath.

Step 5: Copy the Custom MBean classes

Copy the com/example/mbeans directory and it contents to the MBean classloader directory. The MBean classloader directory is <domain>/applications/mbeans, where <domain> is the domain where the application is deployed. For this example, assume that the application is deployed in the default GlassFish domain, domain1. So copy the com/example/mbeans directory and its contents to <GF_install_dir>/glassfish/domains/domain1/applications/mbeans. This will create the /com/example/mbeans directory and copy the custom MBean class and interface to <GF_install_dir>/glassfish/domains/domain1/applications/mbeans.

Step 6: Deploy the Event Source Custom MBean

Deploy the event source custom MBean, EventSourceCustom, as follows (the command should be entered on one line):

    <GF_install_dir>/bin/asadmin create-mbean --user admin     --passwordfile password.txt --port 4848     com.example.mbeans.EventSourceCustom   

This registers EventSourceCustom in the platform MBean server.

You can verify that the custom MBean has been deployed by issuing the following command (the command should be entered on one line):

    <GF_install_dir>/bin/asadmin list-mbeans --user admin     --passwordfile password.txt   

In response, you should see the following:

    com.example.mbeans.EventSourceCustom     user:impl-class-name=com.example.mbeans.EventSourceCustom,    name=com.example.mbeans.EventSourceCustom Enabled    Command list-mbeans executed successfully. 

Step 7: Deploy the Event Sink Custom MBean

Deploy the event sink custom MBean, EventSinkCustom, as follows (the command should be entered on one line):

    <GF_install_dir>/bin/asadmin create-mbean --user admin     --passwordfile password.txt --port 4848 --objectname     "user:impl-class-name=com.example.mbeans.EventSinkCustom,     name=custom-event-sink"     --attributes HostName=<yourmailserver>:Id=<yourId>:    Password=<yourpw> com.example.mbeans.EventSinkCustom 

Notice the HostName, Id, and Password parameters in the command. These parameters need to be specified for connection to a mail server. The parameters are attributes of the custom MBean. Replace <yourmailserver> with the name of your mail server, <yourId> with your user identification, and <yourpw> with your password.

As mentioned earlier, instrumented custom MBean attributes can be persisted so that they survive even if the application server needs to be restarted. So in specifying the parameters in the command, it configures the runtime parameters of the custom MBean. However after the MBean is created, the parameters persist across server restarts.

Again, you can verify that the custom MBean has been deployed by issuing the following command (the command should be entered on one line):

    <GF_install_dir>/bin/asadmin list-mbeans --user admin     --passwordfile password.txt   

In response, you should see the following:

    com.example.mbeans.EventSourceCustom     user:impl-class-name=com.example.mbeans.EventSourceCustom,    name=com.example.mbeans.EventSourceCustom Enabled    com.example.mbeans.EventSinkCustom     user:impl-class-name=com.example.mbeans.Event    SinkCustom, name=custom-event-sink Enabled    Command list-mbeans executed successfully.       

Step 8: Update the email list

In this example, you use JConsole to update an attribute of the custom MBean that contains a string of email addresses.

Start JConsole by issuing the following command:

    <JAVA_HOME>/bin/jconsole 

When you start JConsole, you should see a connection dialog box with tabs for local, remote, and advanced JMX connections. Click the Remote tab, and enter the appropriate host (localhost), port (GlassFish's JMX connection server listens at port 8686), user name (admin), and password (adminadmin) values.

Click the Connect button in the display for the remote tab. This connects to the platform MBean server using an RMI connector. In the subsequent Connection window, click on the MBeans tab. Expand the user branch in the MBean tree in the left pane of the window. Continue expanding the branches below the user branch until you see the server entry below com.example.mbeans.EventSourceCustom. Then click on the server entry. You should see information about the MBean in the Info tab in the right pane of the window.

Click the Attributes tab in the right pane of the window. Then enter your email address in the value field for the attribute EmailRecipientsString.

The event source custom MBean sends a notification when you change the EmailRecipientsString attribute. It listens for the notification as defined by the AttributeChangeNotification class, and fetches the new value of this attribute. Here's the code in EventSinkCustom that takes these actions:

    AttributeChangeNotification attrnotif =         (AttributeChangeNotification) notif;     String newEmailIdStr = (String)attrnotif.getNewValue(); 

The event sink custom MBean then sends email to the updated addresses.

Step 9: Check for the email

Check your email to verify that the listening custom MBean sent an email to your address. Your should receive the following message:

This message has been generated and sent as part of the Glassfish Techtip sample example execution

For further information, see the following:

About the Author

Nandini Ektare is a member of Sun Java System Application Server Development group at Sun Microsystems Inc. Her areas of interest include JMX and Java EE.

Kedar Mhaswade is a staff engineer at Sun Microsystems Inc. He is a member of the Expert Group for JSR 003: Java Management Extensions. His areas of interest include open source software, JMX, and Java EE.

Back to Top

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.
Comments? Send your feedback on the Tech Tips: http://developers.sun.com/contact/feedback.jsp?category=newslet

Subscribe to the following newsletters for the latest information about technologies and products in other Java platforms:
  • Core Java Technologies Tech Tips. Get tips on using core Java technologies and APIs, such as those in the Java 2 Platform, Standard Edition (J2SE).
  • Wireless Developer Tech Tips. Get tips on using wireless Java technologies and APIs, such as those in the Java 2 Platform, Micro Edition (J2ME).
You can subscribe to these and other Java technology developer newsletters or manage your current newsletter subscriptions on the Sun Developer Network Subscriptions page

IMPORTANT: Please read our Terms of Use, Privacy, and Licensing policies:
http://www.sun.com/share/text/termsofuse.html
http://www.sun.com/privacy/
http://developer.java.sun.com/berkeley_license.html

ARCHIVES: You'll find the Enterprise Java Technologies Tech Tips archives at:
http://java.sun.com/developer/EJTechTips/index.html

© 2006 Sun Microsystems, Inc. All Rights Reserved. For information on Sun's trademarks see: http://sun.com/suntrademarks
Java, J2EE, J2SE, J2ME, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.



Please unsubscribe me from this newsletter.


 
Saturday, March 25, 2006
  Sun Java Studio Enterprise Developer Newsletter
You are receiving this e-mail {e-mail address} because you elected to receive e-mail from Sun Microsystems, Inc. To update your communications preferences, please see the link at the bottom of this message. We respect your privacy and post our privacy policy prominently on our Web site http://sun.com/privacy/

Please do not reply to the mailed version of the newsletter, this alias is not monitored. Feedback options are listed in the footer for both content and delivery issues.

Sun Java Studio Enterprise Developer
NEWSLETTER
March 2006, Vol. 5 No. 03

Welcome to the Sun Java Studio, Enterprise Developer Newsletter!

The Sun Java Studio Enterprise Developer Newsletter is published monthly to bring you the latest information about the Sun Java Studio Enterprise integrated development environment (IDE), including tools, events, early access programs, free downloads, product releases - all conveniently delivered to your inbox.

EVENTS: Upcoming Events for the Enterprise Developer
 
Register Today for Sun Tech Days
Advance your skills in Java technology with expert-led, cutting-edge technical education. Register today for San Paulo (April 11-12), Moscow, Russia (April 20-21), and Johannesburg, South Africa (May 3-4).
 
 
2006 JavaOne Conference: Last Chance for Early Bird Savings
Early Bird Savings for the JavaOne conference, May 16-19 at Moscone Center in San Francisco, expires April 14. Be sure to check out all the content now available.

 

EDITORIAL

 

Many more new Java Studio Enterprise HEROES hit the fray this month, continuing to show the expanding collection of "real-world" customer endorsements and references coming directly from our loyal and rapidly expanding developer audience. In fact, we just recently published new content on our HEROES web pages including a new really interesting success study on how the Java Studio Enterprise is "helping" in the war against terrorism in the intelligence domain.

It gives us great satisfaction and encouragement when a developer contacts us and tells us the real benefits he or she has personally gained from using our tools and technology. Want to be a Java Studio Enterprise HERO? Tell us what you're doing!

 

FEATURES

»

Creating the Order-Tracking Web Service for Adventure Builder
With a few simple steps in Sun Java Studio Enterprise 8, you can build the Web service that's mentioned in a recent article on developing Adventure Builder in Sun Java Studio Creator 2. The procedure also applies to any Web service created in WSDL.

 

»

Business Process Execution Language, Part 1: An Introduction
With BPEL, you can orchestrate multiple Web services. Read about the basics here: processes, constructs, sample process.

 

»

Business Process Execution Language, Part 2: partnerLinkType and partnerLink
The partnerLinkType and partnerLink elements specify the relationships between a BPEL process and its partners. Part 2 of this series illustrates with code examples how to work with those elements and how to apply them in a process.

 

»

New Migration Guides
These new guides help You migrate users of Eclipse, JBuilder, and WebSphere.

 

 
 
Thanks for tuning in to the Sun Java Studio Enterprise Developer Newsletter!

Best regards,
Sun Microsystems, Inc.

 

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.
Comments and Contact Information: There are three ways to send your feedback about the Sun Java Studio, Enterprise Developer Newsletter:

Fill out the web form at http://developers.sun.com/contact/feedback.jsp?category=newslet

Mail your feedback to the following address: Sun Java Studio Editorial Team, MS: 4150 Network Circle, Santa Clara, CA 95054, USA

Subscribe/Unsubscribe: Subscribe to other Java technology newsletters:

You can subscribe to these and other Sun Developer Network publications on the SDN Newsletters and Publications page.
- To subscribe, visit https://softwarereg.sun.com/registration/developer/en_US/subscriptions, select the newsletters you want to subscribe to, and click "Update."
- To unsubscribe, go to https://softwarereg.sun.com/registration/developer/en_US/subscriptions, uncheck the appropriate checkbox, and click "Update."

IMPORTANT: Please read our Licensing and Terms of Use policies:
http://developers.sun.com/berkeley_license.html
http://www.sun.com/share/text/termsofuse.html

Privacy Statement: Sun respects your online time and privacy (http://sun.com/privacy). You have received this based on your email preferences. If you would prefer not to receive this information, please follow the steps at the bottom of this message to unsubscribe.

© 2006 Sun Microsystems, Inc. All Rights Reserved. For information on Sun's trademarks see: http://sun.com/suntrademarks
Java, J2EE, J2SE, J2ME, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

This document is protected by copyright. For more information, see: http://java.sun.com/developer/copyright.html

This service may provide, or third parties may provide, links to other Internet sites or resources. Because Sun has no control over such sites and resources, you acknowledge and agree that Sun is not responsible for the availability of such external sites or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such site or resource.



Please unsubscribe me from this newsletter.


 
  March 2006 Core Java Technologies Newsletter

Core Java Technologies Newsletter

You are receiving this email because you elected to receive email from Sun Microsystems, Inc. To update your communications preferences, please see the link at the bottom of this message. We respect your privacy and post our privacy policy prominently on our Web site http://sun.com/privacy/

Please do not reply to the mailed version of the newsletter, this alias is not monitored. Feedback options are listed in the footer for both content and delivery issues.

March 24, 2006
Welcome to the Core Java Technologies Newsletter.
Core Java Technologies
NEWSLETTER
Here you'll find links to the latest products, tools, resources, and events relating to development with the Java Platform, Standard Edition (Java SE, formerly referred to as J2SE).
PRODUCT AND TECHNOLOGY RELEASES

 

The following Java SE products and technologies were recently released.

 
 » JSR 144 Maintenance Release 3 (February 21, 2006)
This JSR specifies the set of APIs that are common across the OSS through Java JSRs, thus reducing duplication of common interfaces and classes among these JSRs.
 

 »

J2SE and NetBeans IDE Cobundle: J2SE 1.4.2_11/ NB 5.0 Final Release (February 28, 2006)
Download the cobundle of J2SE 1.4.2 and NetBeans IDE 5.0.
 

 »

JSR 186 Presence -- Final Release (March 14, 2006)
Presence is a protocol-agnostic API that provides a standard portable and secure interface to control presence information between presence clients -- mobile devices, PCs, or telephones -- and servers.
 

 »

JSR 187 Instant Messaging Final Release (March 17, 2006)
This protocol-agnostic API for instant messaging provides a standard portable and secure interface to control, manage, and manipulate instant messages between clients through the use of presence servers.
 

 »

JSR 231 Java Bindings for OpenGL 1.0 Proposed Final Draft (March 17, 2006)
This specification will describe the Java bindings to the native 3D graphics library, OpenGL. This will include all core GL calls as well as the GLU library.
 

 »

Plug-in Power
Find out how the new NetBeans IDE 5.0 radically simplifies plug-in development with out-of-the-box tools that make customizing your IDE easier than ever.

 

RESOURCES

 

Learn more about and get "hands-on" training for Java SE technologies through the following resources.
 
 
TECHNICAL ARTICLES
 

 »

Web Tier to Go With Java EE 5: Summary of New Features in JavaServer Faces 1.2 Technology
Part 3 in this series discusses new ease-of-use features in JavaServer Faces 1.2 technology, including alignment with JavaServer Pages (JSP) software, improved state-saving behavior, and more.

 
 » Web Tier to Go With Java EE 5: Summary of New Features in Java Standard Tag Library (JSTL) 1.2
Part 2 in the series provides an overview of how JSTL 1.2 contributes to the alignment of the JSP and JavaServer Faces technologies in the web tier.

 
 » How to Write a Helpful Bug Report
Learn how to file a bug report that will help Sun engineers focus their investigation and fix bugs more quickly.

 
 » Understanding JDIC File-Type Associations
Although the Java platform has long avoided OS-specific tasks, JDIC's AssociationService, Association, and Action classes can now let you add or remove file-type associations in your Java technology applications.

 
 » Australian Time Zone Changes Affect Java Applications
Learn how to fix the problem caused by recent time zone changes in Australia, which affect applications running on older Java Runtime Environments (JREs).
 
 
VIEWPOINTS
 

 »

Meet Kelly O'Hair, Senior Staff Engineer at Sun Microsystems
Sun senior staff engineer Kelly O'Hair discusses his work improving the JDK builds, his process as a developer, and the challenges of writing software.
 

 »

Seeing Shouldn't Be Believing: Solving Java Puzzlers With Google's Joshua Bloch
Joshua Bloch, chief Java architect at Google, explores the mysteries of Java puzzlers and optical illusions.
 

 »

Meet Arun Gupta, Staff Engineer on Sun's Web Technologies and Standards Team
Arun Gupta discusses programming in India and the United States, the challenges of software development, Java APIs for XML Web Services Addressing (JAX-WSA), and efforts to get Sun Microsystems and Microsoft on the same page.
 
 
TECH TIPS
 

 »

Working With Applet Context Streams
 

 »

The Singleton Pattern Revisited
 
 
BOOKS
 

 »

Java Tutorial Update: J2SE 5.0
This practical guide for programmers contains hundreds of complete working examples and has recently been updated to include J2SE 5.0.

 
 » Sun Microsystems Press -- The Java Series
The Java Series provides information for users of Java technology at all levels of expertise.
 
 
NEWSLETTERS
 

 »

Enterprise Java Technologies Newsletter
Highlights the latest enterprise Java technology releases, products, tools, resources, events, and news.

 
 » Mobility Developer Newsletter
Highlights the latest releases of wireless and Java Card technologies.

 
 » Sun Student Connection Newsletter
Brings you the latest news on open-source developer tools, technology resources, and Java technology-based Internet gaming.

 
 » Sun Developer Network Program News
Provides news and information of value to SDN users -- including product announcements, user group meetings, early access programs, and more.
 
 
COMMUNITY
 

 »

Sun Community Champions Program
Share and learn from your community peers about strategies and best practices, and get an occasional sneak peek into the future.
 
 
TRAINING
 

 »

Certification
Validate your skills as an IT professional. Getting Sun-certified is a great way to invest in your professional development.
 

 »

Tutorials and Online Training
Learn the various Java technologies -- from the fundamentals of the Java programming language to web services and the Java EE platform -- through a variety of online tutorials and classes.
 

 »

Java SE Learning Path Course Catalog
This path provides essential training necessary for you to become proficient in the basics of Java technology programming using Java SE.

 

EVENTS 

»

Register Today for Sun Tech Days
Advance your skills in Java technology with expert-led, cutting-edge technical education in São Paulo, Brazil (April 11-12), Moscow, Russia (April 20-21), or Johannesburg, South Africa (May 3-4).
 

»

2006 JavaOne Conference: Last Chance for Early Bird Savings
Until April 14, get early bird savings for the JavaOne conference, May 16-19, at San Francisco's Moscone Center. Check out the great Java SE platform sessions.
 

»

LinuxWorld 2006
(April 3-6, Boston, Massachusetts)

This year's event covers a much broader spectrum of Linux and open-source issues. Join us at the launch of a brand new conference within LinuxWorld: OpenSolutions World.
 

»

Greater Carolina Software Symposium (April 7-9, Charlotte, NC)
Over 40 technical sessions cover core Java, client-side Java, server-side Java, architecture, and agility, with zero marketecture or fluff, unparalleled speaker access, and a great learning environment.
 

»

More Events
 

ANNOUNCEMENTS 

»

Tommy Featured on PBS
Watch Tommy -- a Java technology-powered, autonomous, dune buggy on PBS on March 28 or on the web.
 

»

Sun Developer Expert Assistance and Developer Service Plans
Sun Developer Expert Assistance and Developer Service Plans are key components of Sun's Developer Services Portfolio, to help developers boost productivity, speed time to market, and improve ROI.
 

»

Get on the Sun Grid Utility -- at Just $1 CPU/hr
The $1 CPU/hr Sun Grid Utility is open. Take a test drive, create an account, start running jobs, and get your results. Check it out.
 

»

CoolThreads Prize for Innovation Contest
Win $50,000 and a free Sun Fire T2000 server. Enter the CoolThreads Prize for Innovation Contest -- develop applications to run the Internet of the future.
 

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.
Comments and Contact Information: There are three ways to send your feedback about the Core Java Technologies Newsletter:

For comment about the content of this newsletter, fill out the Rate and Review form, above.
For technical assistance about Newsletter delivery, broken links, or subscribe/unsubscribe help, fill out the web form.
Write to us at: SDN Editorial Team, MS: UMPK18-113, 18 Network Circle, Menlo Park, CA 94025, USA

Subscribe/Unsubscribe: Subscribe to other Java technology newsletters:
  • Java Technology Fundamentals Newsletter. Learn the basics of the Java programming language and keep up-to-date on additions to the New-to-Java Programming Center.
  • Enterprise Java Technologies Newsletter. Learn about new products, tools, resources, and events of interest to developers working with enterprise Java technology.
  • Mobility Developer Newsletter. Learn about the latest releases, tools, and resources for developers working on wireless and Java Card technologies and applications.
You can subscribe to these and other Sun Developer Network publications on the SDN Newsletters and Publications page
- To subscribe, visit the SDN Newsletters and Publications page, select the newsletters you want to subscribe to and click "Update."
- To unsubscribe, go to the subscriptions page, uncheck the appropriate checkbox, and click "Update."

IMPORTANT: Please read our Licensing, Terms of Use, and Privacy policies:
http://developer.java.sun.com/berkeley_license.html
http://www.sun.com/share/text/termsofuse.html

Privacy Statement: Sun respects your online time and privacy (http://sun.com/privacy). You have received this based on your email preferences. If you would prefer not to receive this information, please follow the steps at the bottom of this message to unsubscribe.

Archives: You'll find the Core Java Newsletter archives at:
http://java.sun.com/developer/techDocs/Newsletters/jdc_newsletters.html

© 2006 Sun Microsystems, Inc. All Rights Reserved. For information on Sun's trademarks see: http://sun.com/suntrademarks
Java, J2EE, J2SE, J2ME, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

Sun Microsystems, Inc. 10 Network Circle, MPK10-209 Menlo Park, CA 94025 US



Please unsubscribe me from this newsletter.


 
News, Articles, events from all over the world

My Photo
Name:
Location: India

Born on shraavana shudha chauthi of dundubhi naama samvaswara, Im kiran alias kini alias kiri bought up by loving parents. Being from agricultural family I have learnt plowing, carting but never learnt climbing trees. Now away from home I have lost touch with the agricultural skills.

ARCHIVES
January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / April 2007 / May 2007 / June 2007 / July 2007 / August 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 / September 2008 / October 2008 / November 2008 / December 2008 / January 2009 / February 2009 / March 2009 / April 2009 /


Powered by Blogger