<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5480826979125953115</id><updated>2012-02-16T15:52:17.618+05:30</updated><category term='August - Second Publish'/><category term='October - First Publish'/><category term='July - Second Publish'/><category term='September - First Publish'/><title type='text'>JASe</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-925812924363572275</id><published>2009-10-01T17:00:00.000+05:30</published><updated>2009-10-01T17:07:37.684+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='October - First Publish'/><title type='text'>PRODUCT AND TECHNOLOGY RELEASES</title><content type='html'>&lt;span style="font-weight:bold;"&gt;What is a Web Services&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;There is no one agreed definition of the term "Web Services," as it is defined somewhat differently by the various software vendors who are providing this technology or using it in some form. The official definition of the term, as specified by the W3C, the World Wide Web Consortium—a global organization that designs, develops, promotes, and encourages standardization of Web-related technologies—is as follows: &lt;br /&gt;"A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols." &lt;br/&gt;This is a fairly technical definition, so let's dissect it a little to understand what it means. To start with, let's look at some of the terminology that is used. (A good resource for all Web-related terminology can be found at Webopedia). &lt;br/&gt;URI (Uniform Resource Identifier) is the generic term for all types of names and addresses that refer to objects on the Web. A URI designates a specific resource on the Internet and also designates a method to access the resource. The familiar URL (Uniform Resource Locator) we use to reference a particular web page is one kind of URI.&lt;br/&gt;XML (extensible markup language) is a specification similar to HTML, but which goes beyond simple document presentation to capturing data in a meaningful and structured format so that it can be exchanged between applications that need that data. XML uses user-defined tags to describe data types, and also includes mechanisms to address and associate sets of data, referred to as resources. The XML specification comes from the same source, W3C, described earlier.&lt;br/&gt;The Internet protocol in the Web Services definition refers primarily to SOAP (which was formerly an acronym for "Simple Object Access Protocol," but is now seen as just a name after growing into something that is no longer simple or object-access specific). SOAP is a lightweight XML-based messaging protocol, independent of any operating system, which encodes XML data as well as request and response messages before sending them over a network. Thus, while XML is used to tag the data to make it semantically meaningful, the actual process of transferring that data across a network is done using SOAP. In essence, SOAP is the glue that binds Web Services together. Other core protocols include WSDL, a specification for describing a Web Service (the service methods, message types, etc.), and UDDI, a mechanism to publish and discover Web Services.&lt;br /&gt;Putting it all together and in less technical terms, Web Services is a technology that integrates different Web-based applications from different sources by allowing them to directly communicate data, semantics, and processes with each other, independent of any specific operating system or programming language, and automatically, without human intervention. The future trend in computing appears to be a move away from traditional desktop and client-server based applications towards applications that are fully developed and deployed over the Internet, that can also communicate with other Web-based applications dynamically in real-time to provide more integrated solutions to specific user tasks. Web Services is a crucial enabling technology for such applications, so we are likely to keep hearing a lot more about it in technology circles. Many of the leading high-tech companies are offering development platforms and environments that support Web Services, including Microsoft with .NET, IBM with Web Sphere, BEA Systems with Web Logic, and Sun Microsystems with the Sun Java Enterprise System. (Note that the IBM, BEA, and Sun products are all based on the Java platform.)&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Web services with Net Beans 5.5&lt;/span&gt;&lt;br/&gt;&lt;embed src="http://blip.tv/play/AaHrYYiACA" type="application/x-shockwave-flash" width="400" height="350" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TIBCO &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;IBCO Software Inc. is a global company that develops integration software for companies including those in the energy, manufacturing, retail, healthcare, and financial services industries. Its headquarters is in Palo Alto, California, with offices in North America, Europe, Asia, the Middle East, Africa and South America. The company's major commercial competitors are IBM Oracle Corporation, and SAP AG.&lt;br /&gt;In addition, TIBCO offers the message-oriented middleware products Rendezvous and Smart Sockets (from Talarian acquisition). In 2009, TIBCO enters the grid computing and cloud computing markets by acquiring Data Synapse. &lt;br /&gt;TIBCO is an indirect successor to Teknekron Software Systems, Inc. Teknekron was formed in 1983 and produced a software product it called The Information Bus (TIB), which included as a substantial application the processing of stock quotes. In 1994, Teknekron was acquired by Reuters, but was spun out as a separate company in 1994, named Tibco, after the TIB product. In January 1997 Tibco Software Inc. was established as a separate entity to create and market software for integration of business applications outside the financial services sector. Reuters retained Tibco Finance to create and market software solutions for the financial services sector. In July 1999, Tibco went public on the Nasdaq Stock Market under the ticker symbol TIBX.&lt;br /&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Greg the Architect&lt;/span&gt;&lt;br/&gt;Starting in 2007, Tibco promoted video and print ads starring an action figure called "Greg the Architect. Since launching, the videos have been mentioned in numerous industry blogs, including the Wall Street Journal.&lt;br /&gt;The campaign won an IAC Award (Internet Advertising Competition) in March 2007. They were then honored with the B to B Best Award for Best Online Campaign from B to B Magazine. "Greg" also won a Stevie Award for Best Corporate Film or Video in the Public Relations category at the 2007 American Business Awards.&lt;br /&gt;Greg the Architect has been used in print as a comic strip in many industry magazines covering SOA and BPM. The campaign was also written about in a book from Harvard Business Press entitled Groundswell concerning marketing using social technology. In a blog written by the authors of Groundswell, Greg parodies himself.&lt;br /&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh&lt;/span&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-925812924363572275?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/925812924363572275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=925812924363572275&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/925812924363572275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/925812924363572275'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/10/product-and-technology-releases.html' title='PRODUCT AND TECHNOLOGY RELEASES'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-4562605521336157373</id><published>2009-10-01T16:38:00.000+05:30</published><updated>2009-10-01T16:39:44.153+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='October - First Publish'/><title type='text'>WHAT'S NEW IN JAVA</title><content type='html'>&lt;span style="font-weight:bold;"&gt;JAVAFX&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;What is JavaFx&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX is a software platform for creating and delivering rich Internet applications that can run across wide variety of connected devices. The current release (JavaFX 1.2, June 2009) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Over View&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX is an expressive client platform for creating and delivering rich Internet experiences across all screens of your life. It combines the best capabilities of the Java platform with comprehensive, immersive media functionality into an intuitive and comprehensive, one-stop development environment.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Features&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;* Provides a unified development and deployment model for building rich client applications&lt;br/&gt;&lt;br /&gt;* Enables you to easily integrate audio and video, graphics, rich text, and Web services&lt;br/&gt;&lt;br /&gt;* Allows creative developers to program in a visual context&lt;br/&gt;&lt;br /&gt;* Provides tools to build and deliver rich Internet applications for desktop, mobile, TV, and other consumer platforms&lt;br/&gt;&lt;br /&gt;* Enables unprecedented collaboration between designers and developers&lt;br/&gt;&lt;br /&gt;* Allows designers and Java developers to easily leverage the best of today's advanced enterprise software and rich Internet applications&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Technology&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX provides a productive development environment for web developers, mashup authors, and Java developers to quickly and easily build the next generation of rich internet applications (RIAs). With JavaFX, designers and developers can collaborate on building high-impact RIAs. Designers gain a broad set of tools to complete the designer/developer workflow, and developers have a simple, declarative scripting language with the right set of tools.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Latest Version&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Java fx1.2 SDK&lt;br/&gt;Current Release&lt;br/&gt;1. The Java FX SDK: Java FX compiler and runtime tools. Graphics, media web services, and rich text libraries&lt;br/&gt;&lt;br /&gt;2. Net Beans IDE for JavaFX: Net Beans with drag-and-drop palette to add objects with transformations, effects and animations plus set of samples and best practices. For Eclipse users there is a community-supported plugin hosted on Project Kenai&lt;br/&gt;&lt;br /&gt;3. Tools and plug-in for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Technical highlights&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Common profile. JavaFX is based on the concept of a Common profile that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications for the needs of specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example JavaFX Desktop profile includes Swing and advanced visual effects.&lt;br/&gt;Drag-to-Install. From the point of view of the end user Drag-to-Install allows them to drag a JavaFX widget or application residing in a website within the browser window and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets automatically created on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun touts Drag-to-Install as opening up of a new distribution model and allowing developers to break away from the browser.&lt;br/&gt;Integrating graphics created with third-party tools. JavaFX includes a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can then easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (a.k.a. Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;JavaFX 1.1&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12 2009.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;JavaFX 1.2&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced [3]:&lt;br/&gt;* Full support for Linux and Solaris,&lt;br /&gt;* Built-in controls and layouts,&lt;br /&gt;* Skinnable CSS controls,&lt;br /&gt;* Built-in chart widgets,&lt;br /&gt;* JavaFX I/O management, masking differences between desktop and mobile devices,&lt;br /&gt;* Speed improvements.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt; &lt;span style="font-style:italic;"&gt;By - Ravi&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-4562605521336157373?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/4562605521336157373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=4562605521336157373&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/4562605521336157373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/4562605521336157373'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/10/whats-new-in-java.html' title='WHAT&apos;S NEW IN JAVA'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-7907408803464241605</id><published>2009-10-01T16:20:00.005+05:30</published><updated>2009-10-01T16:50:15.810+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='October - First Publish'/><title type='text'>TIPS AND TRICKS</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Java's First Garbage Collector&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;Sun released Java SE 6 Update 14, which included a version of the much-anticipated Garbage First (G1) garbage collector. G1 is a low-pause, low-latency, sometimes soft real-time, collector that allows you to set max pause time goals and collection intervals through suggestions on the Java VM command line. Although it cannot guarantee it, G1 will attempt to meet your goals, and hence introduce as little latency as possible into your application. This in turn may also make the VM run more predictably as it attempts to meet the pause time goals you provide.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Garbage-First is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability. It does this while also achieving high throughput, which is an important point when comparing it to other real-time collectors. &lt;br /&gt;The G1 collector divides its work into multiple phases, each described below, which operate on a heap broken down into equally sized regions. In the strictest sense, the heap doesn't contain generational areas, although a subset of the regions can be treated as such. This provides flexibility in how garbage collection is performed, which is adjusted on-the-fly according to the amount of processor time available to the collector. &lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By – Chaitanya&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Open Source Load Testing Tool for Java Applications (JMeter)&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;This is an Ant task for automating running JMeter test plans. The task executes one or more JMeter test plans, and logs the results to a file. &lt;br /&gt;To use the task, you must have JMeter installed. You must also include ant-jmeter-1.0.9.jar in your Ant class path. Adding the jar to $ANT_HOME/lib will make this happen automatically. &lt;br/&gt;&lt;br /&gt;Start by defining the task to make it available to your build script: &lt;br/&gt;&lt;br /&gt;&lt;taskdef&lt;br /&gt;    name="jmeter"&lt;br /&gt;    classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/&gt;&lt;br /&gt;Set the jmeterhome parameter to your JMeter install location, and the resultlog parameter to the name of a file to log the test results to.&lt;br /&gt;You can either specify a single test plan using the testplan parameter, or multiple test plans using the testplans nested element. The testplans element is a standard Ant FileSet element. &lt;br /&gt;&lt;jmeter&lt;br /&gt;    jmeterhome="c:\jakarta-jmeter-1.8.1"&lt;br /&gt;    testplan="${basedir}/loadtests/JMeterLoadTest.jmx"&lt;br /&gt;    resultlog="${basedir}/loadtests/JMeterResults.jtl"/&gt;&lt;br /&gt;&lt;jmeter&lt;br /&gt;    jmeterhome="c:\jakarta-jmeter-1.8.1"&lt;br /&gt;    resultlog="${basedir}/loadtests/JMeterResults.jtl"&gt;&lt;br /&gt; &lt;testplans dir="${basedir}/loadtests" includes="*.jmx"/&gt;&lt;br /&gt;&lt;/jmeter&gt;&lt;br /&gt;Optional JMeter arguments supported include specifying an alternate jmeter properties file (jmeterproperties), running remote servers specified in jmeter properties file (runremote), and running the tests through a proxy or firewall (proxyhost, proxyport, proxyuser, proxypass). &lt;br /&gt;Setting the failureProperty attribute will set the specified property to "true" in the event of a JMeter test failure. This gives you the opportunity to take further action such as send an email or fail the build.&lt;br /&gt;You can override JMeter properties (instead of modifying jmeter.properties) like this:&lt;br/&gt;&lt;jmeter&lt;br /&gt;    jmeterhome="c:\jakarta-jmeter-1.8.1"&lt;br /&gt;    testplan="${basedir}/loadtests/JMeterLoadTest.jmx"&lt;br /&gt;    resultlog="${basedir}/loadtests/JMeterResults.jtl"&gt;&lt;br /&gt; &lt;property name="request.threads" value="1"/&gt;&lt;br /&gt; &lt;property name="request.loop" value="10"/&gt;&lt;br /&gt;&lt;/jmeter&gt;You may also specify additional JVM arguments to the JVM launched to run JMeter. Here is an example of how to specify JVM arguments: &lt;br /&gt;&lt;jmeter&lt;br /&gt;    jmeterhome="c:\jakarta-jmeter-1.8.1"&lt;br /&gt;    testplan="${basedir}/loadtests/JMeterLoadTest.jmx"&lt;br /&gt;    resultlog="${basedir}/loadtests/JMeterResults.jtl"&gt;&lt;br /&gt; &lt;jvmarg value="-Xincgc"/&gt;&lt;br /&gt; &lt;jvmarg value="-Xmx128m"/&gt;&lt;br /&gt; &lt;jvmarg value="-Dproperty=value"/&gt;&lt;br /&gt;&lt;/jmeter&gt;&lt;br /&gt;I've also included an XSLT file, jmeter-results-report.xsl, for generating a summary report from the result log file. The summary report is very similar to the default report created by the junitreport task. You can use the xslt task to create the report: &lt;br/&gt;&lt;xslt&lt;br /&gt;    in="${basedir}/loadtests/JMeterResults.jtl"&lt;br /&gt;    out="${basedir}/loadtests/JMeterResults.html"&lt;br /&gt;    style="${basedir}/loadtests/jmeter-results-report.xsl"/&gt;&lt;br /&gt;&lt;br/&gt;Note: If you are using JMeter 2.1 or later, you must use the new xslt stylesheet(s) included in the JMeter extras directory. The new stylesheets have been modified to support the new JMeter log file format.&lt;br /&gt;If you would like failure detail messages in the report output, you must configure JMeter to output that information to the result log. To do this, set the following property in your jmeter.properties file before running the test plans: &lt;br /&gt;jmeter.save.saveservice.assertion_results=all&lt;br /&gt;Note: As of JMeter 1.9RC2 (?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;By – Bavan&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;How to improve Java's I/O performance&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;The JDK 1.0.2 java.io package has meant problems for I/O performance, but here's a tip for making the situation better -- plus an extra tip on turning off synchronization &lt;br /&gt;Java's I/O performance has been a bottleneck for a lot of Java applications because of a poorly designed and implemented JDK 1.0.2 java.io package. A key problem is buffer -- most classes in java.io are not buffered. In fact, the only classes with buffers are BufferedInputStream and BufferedOutputStream, but they provide very limited methods. For example, in most file-related applications, you need to parse a file line by line. But the only class that provides the readLine method is the DataInputStream, and it has no internal buffer. The readLine method in the DataInputStream class actually reads the input stream character by character until it hits a "\n" or "\r\n". Each character-read operation involves file I/O. This is extremely inefficient when reading a large file. A 5-megabyte file requires at least 5 million character-read file I/O operations when no buffer is provided.&lt;br /&gt;The new JDK 1.1 improves I/O performance with the addition of a collection of Reader and Writer classes. The readLine method in BufferedReader is at least 10 to 20 times faster than the one in DataInputStream when a large file is encountered. Unfortunately, JDK 1.1 does not solve all the performance problems. For example, RandomAccessFile is a very useful class when you want to parse a large file and do not want to read it into memory. Still it is not buffered in JDK 1.1, and no equivalent Reader class has been provided. &lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By – Arun GJ&lt;/span&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-7907408803464241605?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/7907408803464241605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=7907408803464241605&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/7907408803464241605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/7907408803464241605'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/10/tips-and-tricks.html' title='TIPS AND TRICKS'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-3501180696333091986</id><published>2009-09-15T15:52:00.005+05:30</published><updated>2009-10-01T16:18:33.531+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='September - First Publish'/><title type='text'>WHAT'S NEW IN JAVA</title><content type='html'>&lt;span style="font-weight:bold;"&gt;JAVAFX&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;What is JavaFx&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX is a software platform for creating and delivering rich Internet applications that can run across wide variety of connected devices. The current release (JavaFX 1.2, June 2009) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Over View&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX is an expressive client platform for creating and delivering rich Internet experiences across all screens of your life. It combines the best capabilities of the Java platform with comprehensive, immersive media functionality into an intuitive and comprehensive, one-stop development environment.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Features&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;* Provides a unified development and deployment model for building rich client applications&lt;br/&gt;&lt;br /&gt;* Enables you to easily integrate audio and video, graphics, rich text, and Web services&lt;br/&gt;&lt;br /&gt;* Allows creative developers to program in a visual context&lt;br/&gt;&lt;br /&gt;* Provides tools to build and deliver rich Internet applications for desktop, mobile, TV, and other consumer platforms&lt;br/&gt;&lt;br /&gt;* Enables unprecedented collaboration between designers and developers&lt;br/&gt;&lt;br /&gt;* Allows designers and Java developers to easily leverage the best of today's advanced enterprise software and rich Internet applications&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Technology&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX provides a productive development environment for web developers, mashup authors, and Java developers to quickly and easily build the next generation of rich internet applications (RIAs). With JavaFX, designers and developers can collaborate on building high-impact RIAs. Designers gain a broad set of tools to complete the designer/developer workflow, and developers have a simple, declarative scripting language with the right set of tools.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Latest Version&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Java fx1.2 SDK&lt;br/&gt;Current Release&lt;br/&gt;1. The Java FX SDK: Java FX compiler and runtime tools. Graphics, media web services, and rich text libraries&lt;br/&gt;&lt;br /&gt;2. Net Beans IDE for JavaFX: Net Beans with drag-and-drop palette to add objects with transformations, effects and animations plus set of samples and best practices. For Eclipse users there is a community-supported plugin hosted on Project Kenai&lt;br/&gt;&lt;br /&gt;3. Tools and plug-in for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Technical highlights&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Common profile. JavaFX is based on the concept of a Common profile that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications for the needs of specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example JavaFX Desktop profile includes Swing and advanced visual effects.&lt;br/&gt;Drag-to-Install. From the point of view of the end user Drag-to-Install allows them to drag a JavaFX widget or application residing in a website within the browser window and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets automatically created on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun touts Drag-to-Install as opening up of a new distribution model and allowing developers to break away from the browser.&lt;br/&gt;Integrating graphics created with third-party tools. JavaFX includes a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can then easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (a.k.a. Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;JavaFX 1.1&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12 2009.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;JavaFX 1.2&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced [3]:&lt;br/&gt;* Full support for Linux and Solaris,&lt;br /&gt;* Built-in controls and layouts,&lt;br /&gt;* Skinnable CSS controls,&lt;br /&gt;* Built-in chart widgets,&lt;br /&gt;* JavaFX I/O management, masking differences between desktop and mobile devices,&lt;br /&gt;* Speed improvements.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt; &lt;span style="font-style:italic;"&gt;By - Ravi&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-3501180696333091986?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/3501180696333091986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=3501180696333091986&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3501180696333091986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3501180696333091986'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/09/whats-new-in-java.html' title='WHAT&apos;S NEW IN JAVA'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-919767480256383733</id><published>2009-09-15T15:50:00.008+05:30</published><updated>2009-09-15T16:32:04.574+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='September - First Publish'/><title type='text'>PRODUCT AND TECHNOLOGY RELEASES</title><content type='html'>&lt;span style="font-weight:bold;"&gt;IBM Real Time Application Execution Optimizer for Java&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;IBM Real Time Application Execution Optimizer for Java helps to optimize and verify a compiled Java application, preparing the application for deployment in specific environments. It is a command line tool that can operate on any compiled Java application, whether standard edition, micro-edition, or real-time.&lt;br/&gt;The tool provides the following functions:&lt;br/&gt;&lt;br /&gt;•Escape analysis of objects per method invocation &lt;br /&gt;•Control flow analysis that splits an application into archives according to thread accessibility &lt;br /&gt;•Control flow analysis that detects potental occurrences of real-time java runtime errors MemoryAccessError, IllegalAssignmentError, IllegalThreadStateException &lt;br /&gt;•Control flow analysis that determines entry points into an application &lt;br /&gt;•Addition of stackmaps to Java class files &lt;br /&gt;•Verification of Java class files &lt;br /&gt;•Auto-generation of classes that will load and initialize all other classes within the same archive &lt;br /&gt;•Specialized packaging of Java applications into deployable archives by packaging all referenced classes from a dual class path &lt;br /&gt;•Removal of unwanted attributes from Java class files&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Working Principle &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;IBM Real Time Application Execution Optimizer for Java has many features. It loads the classes and resources of an application, analyzes or modifies them, then it writes them to disk along with any requested analysis files.&lt;br/&gt;While loading the application, all classes needed for deployment of the application are identified and loaded. Also identified are all unresolved references. An unresolved reference is a class, method or field that cannot be found. Each class is checked for all possible class loading, resolution, and verification errors. This can be helpful to verify classes that are not produced by standard compilers and to ensure no application components are missing.&lt;br/&gt;The tool separates application classes into the following categories:&lt;br/&gt;&lt;br /&gt;• NoHeapRealtimeThread (NHRT) accessible&lt;br /&gt;• RealtimeThread accessible&lt;br /&gt;• Regular thread accessible&lt;br /&gt;• Inaccessible: classes not accessible to any thread. &lt;br /&gt;&lt;br/&gt;Once separated, the tool will package these class groups into separate archives for specialized deployment when the classes are written to disk. It will package resources into an additional archive.&lt;br/&gt;While analyzing the control flow of the application, the tool identifies all entry points into the application, which are the classes, methods or fields that can be accessed from outside the application. For example, it will detect methods that can be invoked in application classes from external classes because they override external methods.&lt;br/&gt;It verifies the integrity of real-time Java memory usage in the application, by detecting the potential run-time errors MemoryAccessError, IllegalAssignmentError and IllegalThreadStateException which are common errors that are difficult to eliminate when developing real-time Java.&lt;br/&gt;Escape analysis is used by the tool to determine the persistent memory characteristics of allocated objects within the application on a per-invocation basis. For each method, an escape analysis determines whether the objects created by invocations of the method can persist. This helps identify memory requirements for the heap, for scopes, and for other memory areas in use.&lt;br/&gt;While writing classes, to disk, the tool can remove unwanted class file attributes (such as attributes needed only for debugging), and adds stackmaps to classes. This can assist with run-time memory consumption constraints.&lt;br/&gt;The tool can add to each written archive an auto-loader class that will load and initialize all other classes within the same archive, in order to trigger early class initialization for an application.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;By - Sankarasivan&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Java Server Faces&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Java Server Faces technology is a framework for building user interfaces for web applications.&lt;br/&gt;&lt;br/&gt;Java Server Faces technology includes:&lt;br/&gt;&lt;br/&gt;Java APIs to represent UI components, manage state, handle events, and validate input. The API has support for internationalization and accessibility.&lt;br/&gt;&lt;br/&gt;Two JSP custom tag libraries for expressing user interface (UI) components within a JSP page, and for wiring components to server-side objects. Page authors can easily add UI components to their pages.&lt;br/&gt;&lt;br/&gt;Java Server Faces technology is based on the Model View Controller (MVC) architecture for separating logic from presentation, so if you have been practicing this, you'll feel at home with JSF.&lt;br/&gt;A JSF application is just like any other Java technology-based web application; it runs in a Java Servlet container, and contains:&lt;br/&gt;&lt;br/&gt;JavaBeans components (or model objects) containing application-specific functionality and data&lt;br/&gt;&lt;br /&gt;Event listeners -- JSP pages &lt;br /&gt;Server-side helper classes &lt;br /&gt;A custom tag library for rendering UI components &lt;br /&gt;A custom tag library for representing event handlers and validators &lt;br /&gt;UI components represented as stateful objects on the server &lt;br /&gt;Validators, event handlers, and navigation handlers. &lt;br /&gt;Application configuration resource file for configuring application resources &lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;How to Create a Java Server Faces (JSF) Development Environment w Apache Tomcat + Suns JDK&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KmvRUnNRyto&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KmvRUnNRyto&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Feizal&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-919767480256383733?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/919767480256383733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=919767480256383733&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/919767480256383733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/919767480256383733'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/09/product-and-technology-releases.html' title='PRODUCT AND TECHNOLOGY RELEASES'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-3708390600235285353</id><published>2009-09-15T15:49:00.010+05:30</published><updated>2009-09-15T16:53:10.232+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='September - First Publish'/><title type='text'>TIPS AND TRICKS</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Comparing Constant Strings with String Variables&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;To avoid problems, you should never compare a string variable with a string constant, because string variables may have a null value, in which case your code will throw a NullPointerException. Here's an example:&lt;br/&gt;&lt;br /&gt;String strName = null;&lt;br /&gt;strName = getName(); //some call which retrives name from DB&lt;br /&gt;if(strName.equals("Ritesh Patel")) {&lt;br /&gt;    // some processing.&lt;br /&gt;}&lt;br /&gt;The preceding example might raise an exception if the result of the getName() call returns null. Instead, to be safe, always make the comparison the other way around—by comparing the string constant with the string variable:&lt;br /&gt;&lt;br/&gt;String strName = null;&lt;br /&gt;strName = getName();&lt;br /&gt;if("Ritesh Patel".equals(strName)) {&lt;br /&gt;  // some processing.&lt;br /&gt;}&lt;br /&gt;Following this rule will help you avoid unnecessary NullPointerExceptions and abnormal program termination.&lt;br/&gt;&lt;br/&gt; &lt;span style="font-style:italic;"&gt;By - Bavanandan&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;List of J2EE Patterns Catalog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below is the list of available J2EE Patterns and their description&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Business Delegate &lt;/span&gt;&lt;br /&gt;Reduce coupling between Web and Enterprise JavaBeans TM tiers&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Composite Entity &lt;/span&gt;&lt;br /&gt;Model a network of related business entities&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Composite View &lt;/span&gt;&lt;br /&gt;Separately manage layout and content of multiple composed views&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Data Access Object (DAO) &lt;/span&gt;&lt;br /&gt;Abstract and encapsulate data access mechanisms&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fast Lane Reader &lt;/span&gt;&lt;br /&gt;Improve read performance of tabular data&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Front Controller &lt;/span&gt;&lt;br /&gt;Centralize application request processing&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Intercepting Filter &lt;/span&gt;&lt;br /&gt;Pre- and post-process application requests&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Model-View-Controller &lt;/span&gt;&lt;br /&gt;Decouple data representation, application behavior, and presentation&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Service Locator &lt;/span&gt;&lt;br /&gt;Simplify client access to enterprise business services&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Session Facade &lt;/span&gt;&lt;br /&gt;Coordinate operations between multiple business objects in a workflow&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Transfer Object &lt;/span&gt;&lt;br /&gt;Transfer business data between tiers&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Value List Handler &lt;/span&gt;&lt;br /&gt;Efficiently iterate a virtual list&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;View Helper &lt;/span&gt;&lt;br /&gt;Simplify access to model state and data access logic&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Feizal&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Java Design Patterns&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;Abstract: “Pattern” as the name suggests, means series of events occurring in a definite order. The patterns can be found in Java and J2ee technologies also. Many a times, we find that there is a particular way of tackling a problem. This way is easy and has been used many times successfully by a number of people earlier also. This method becomes a pattern.&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Creational Patterns&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;There are five types of Creational Patterns.&lt;br/&gt;&lt;br /&gt;1. Factory Pattern&lt;br /&gt;2. Abstract Factory Pattern&lt;br /&gt;3. Builder Pattern&lt;br /&gt;4. Prototype Pattern&lt;br /&gt;5. Singleton Pattern&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Structural Patterns&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;Structural Patterns describe how objects and classes can be combined to form larger structures. The difference between class patterns and object patterns is that class patterns describe abstraction with the help of inheritance and how it can be used to provide more useful program interface. Object patterns, on other hand, describe how objects can be associated and composed to form larger, more complex structures.&lt;br /&gt;There are seven structural patterns described. They are as follows:&lt;br /&gt;Patterns.&lt;br /&gt;1. Adapter Pattern&lt;br /&gt;2. Bridge Pattern&lt;br /&gt;3. Composite Pattern&lt;br /&gt;4. Decorator Pattern&lt;br /&gt;5. Facade Pattern&lt;br /&gt;6. Flyweight Pattern&lt;br /&gt;7. Proxy Pattern&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Behavioral Patterns&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;Behavioral patterns are those which are concerned with interactions between the objects. The interactions between the objects should be such that they are talking to each other and still are loosely coupled. The loose coupling is the key to n-tier architectures. In this, the implementation and the client should be loosely coupled in order to avoid hard-coding and dependencies.&lt;br /&gt;The behavioral patterns are:&lt;br/&gt;&lt;br /&gt;1. Chain of Resposibility Pattern&lt;br /&gt;2. Command Pattern&lt;br /&gt;3. Interpreter Pattern&lt;br /&gt;4. Iterator Pattern&lt;br /&gt;5. Mediator Pattern&lt;br /&gt;6. Momento Pattern&lt;br /&gt;7. Observer Pattern&lt;br /&gt;8. State Pattern&lt;br /&gt;9. Strategy Pattern&lt;br /&gt;10. Template Pattern&lt;br /&gt;11. Visitor Pattern&lt;br /&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Amaresh&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-3708390600235285353?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/3708390600235285353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=3708390600235285353&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3708390600235285353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3708390600235285353'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/09/tips-and-tricks.html' title='TIPS AND TRICKS'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-8192038770226865203</id><published>2009-08-31T15:44:00.002+05:30</published><updated>2009-09-15T15:43:40.706+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='August - Second Publish'/><title type='text'>WHAT'S NEW IN JAVA</title><content type='html'>&lt;span style="font-weight:bold;"&gt;JDK 7&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Java Development Kit 7 (JDK 7) is the next major release of the Java SE platform. Through the Open JDK project, JDK 7 has been a highly collaborative effort between Sun and volunteers from the Java developer community. Sun extends its gratitude to all who have contributed to this release.&lt;br/&gt;Learn about some of the new and cool features in the next release of the Java Development Kit, JDK 7. &lt;br /&gt;In this Deep Dive, Danny Coward, Chief Architect for Client Software at Sun Microsystems, highlighted some of the significant new features in JDK 7. Some of these features focus on modularizing the JDK, supporting non-Java languages at the VM level, and making developers more productive through various small changes to the Java languages. Danny backed up this discussion with some code examples and demonstrations.&lt;br /&gt;&lt;br/&gt;JDK 7 introduces several key features to improve performance, usability, and security of the Java platform. A detailed list of these features appears on the Open JDK site.&lt;br/&gt;Based on the feedback from the developer community and Sun's customers, the JDK 7 features primarily focus on the following areas.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Features&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;This is the list of features being developed by Sun, and others, for JDK 7.&lt;br/&gt;When the Java SE 7 Platform JSR is submitted then these features will be proposed therein, except for those listed as either VM-level or implementation-specific.&lt;br/&gt;Per the draft of the development process we will shortly publish a Feature Proposal template. That will be the vehicle for proposing additional features for inclusion in the release. Smaller, non-feature changes will go through a lighter-weight process, soon to be defined.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;JDK 7 Development Process&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;In the continuing transition of JDK development activities to a more&lt;br /&gt;open, collaborative model, we're going to completely revise the JDK&lt;br /&gt;development process.  The sketch presented here is based on the past&lt;br /&gt;thirteen years of the Sun JDK team's experience, seasoned by ideas and&lt;br /&gt;lessons learned from other, mainly non-Sun projects.&lt;br/&gt;This is just a first draft.  There's no one obviously "right" way to&lt;br /&gt;design this sort of process; this is a starting point.  Comments are,&lt;br /&gt;as always, most welcome: jdk7-dev at openjdk dot java dot net.&lt;br/&gt;This process is more involved than that of many free-software or&lt;br /&gt;open-source projects.  This is a result of the JDK team's strong&lt;br /&gt;commitment to the highest standards of quality, compatibility, and&lt;br /&gt;performance, and also the fact that we're maintaining and evolving not&lt;br /&gt;just a large body of code but, simultaneously, the specification of one&lt;br /&gt;of the world's most widely-used programming platforms.&lt;br/&gt;Ultimately we will leverage our new Bugzilla instance to automate the&lt;br /&gt;tracking of the various review and approval paths defined here.  That's&lt;br /&gt;an implementation detail, however; for now let's focus on getting the&lt;br /&gt;process into a workable form.&lt;br /&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Modularization&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;A large-scale effort to re factor, or break up, the Java SE platform into smaller, separate, interdependent modules. Individual modules can then be downloaded as required by the Java virtual machine and/or Java applications. This effectively shrinks the size of the runtime on the user's machine.&lt;br/&gt;One benefit of modularization is that the platform is a smaller download, potentially improving start-up performance. Having a smaller memory footprint also enables significant performance improvements, especially for desktop applications. A smaller platform also means it can now fit on devices with less memory.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Multi-Language Support&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Improves compatibility between Java and various dynamic languages, such as Ruby and Python, by providing better-than-native implementations of these languages on top of the Java Runtime Environment (JRE).&lt;br/&gt;Refer to &lt;a href="http://jcp.org/en/jsr/detail?id=292"&gt;JSR 292&lt;/a&gt;, also called "Invoke Dynamic". This JSR defines the elements critical for Ruby, Python, and other dynamic languages to be addressed for JDK 7.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Developer Productivity&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;JDK 7 will also include several features to enhance developer productivity. One of Sun's goals is to make JDK 7, and other versions of the JDK, as developer-friendly as possible.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Performance&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Sun understands the need to improve the performance of the Java SE platform, and several features in JDK 7 address just that.&lt;br /&gt;The new Garbage First (G1) Garbage Collector is a low pause, server-style garbage collector that will eventually replace the Concurrent Mark-Sweep (CMS) garbage collector. G1's primary advantage over CMS is incremental compaction, better predictability, and ease of use. &lt;br/&gt;&lt;a href="http://jazoon.com/download/presentations/2101.pdf"&gt;Click here&lt;/a&gt; for more information.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-8192038770226865203?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/8192038770226865203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=8192038770226865203&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/8192038770226865203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/8192038770226865203'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/08/whats-new-in-java.html' title='WHAT&apos;S NEW IN JAVA'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-3379333665360760446</id><published>2009-08-31T15:42:00.001+05:30</published><updated>2009-09-15T15:41:01.468+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='August - Second Publish'/><title type='text'>PRODUCT AND TECHNOLOGY RELEASES</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Java Server Faces&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Java Server Faces technology is a framework for building user interfaces for web applications.&lt;br/&gt;&lt;br/&gt;Java Server Faces technology includes:&lt;br/&gt;&lt;br/&gt;Java APIs to represent UI components, manage state, handle events, and validate input. The API has support for internationalization and accessibility.&lt;br/&gt;&lt;br/&gt;Two JSP custom tag libraries for expressing user interface (UI) components within a JSP page, and for wiring components to server-side objects. Page authors can easily add UI components to their pages.&lt;br/&gt;&lt;br/&gt;Java Server Faces technology is based on the Model View Controller (MVC) architecture for separating logic from presentation, so if you have been practicing this, you'll feel at home with JSF.&lt;br/&gt;A JSF application is just like any other Java technology-based web application; it runs in a Java Servlet container, and contains:&lt;br/&gt;&lt;br/&gt;JavaBeans components (or model objects) containing application-specific functionality and data&lt;br/&gt;&lt;br /&gt;Event listeners -- JSP pages &lt;br /&gt;Server-side helper classes &lt;br /&gt;A custom tag library for rendering UI components &lt;br /&gt;A custom tag library for representing event handlers and validators &lt;br /&gt;UI components represented as stateful objects on the server &lt;br /&gt;Validators, event handlers, and navigation handlers. &lt;br /&gt;Application configuration resource file for configuring application resources &lt;br /&gt;&lt;br/&gt;One of the advantages of JSF is that it is based on the Model View Controller (MVC) architecture, to offer a clean separation between presentation and logic. This may ring a bell for those who are using existing web frameworks such as Struts. However, note that JSF and Struts are not competing technologies, and in fact, they interoperate together. JSF, however, does have some advantages over Struts. &lt;br/&gt;For example, in Struts there is only one way to render an element, while JSF provides several mechanisms for rendering an individual element. It is up to the page designer to pick the desired representation, and the application developer doesn't need to know which mechanism was used to render a component&lt;br /&gt;The author of Struts, Craig McClanahan, is also the co-specification lead for JSF, as well as an employee of Sun Microsystems.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Advantages&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;The primary benefits of Java Server Faces technology include:&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Ease-of-Use:&lt;/span&gt; Several aspects of the Java Server Faces architecture contribute to its ease-of-use. For one, Java Server Faces technology offers a clean separation between logic and presentation, enabling a wide range of users -- from web-page designers to component developers-- to take advantage of Java Server technology, resulting in a division of labor and a shorter development cycle. Also, a user-interface created with Java Server Faces technology handles all the complexities of user-interface management, including input validation, component-state management, page navigation, and event handling.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Standardization:&lt;/span&gt; Java Server Faces technology is being developed through the Java Community Process. Several prominent, respected tools vendors are contributing members of the expert group and are committed to supporting Java Server Faces technology in their tools.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Device Independence:&lt;/span&gt; Java Server Faces technology is designed to be flexible. By defining only component functionality in extensible UI component classes, the Java Server Faces architecture allows component developers to extend the component classes to generate their own component tag libraries targeted for specific clients.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;How to Create a Java Server Faces (JSF) Development Environment w Apache Tomcat + Suns JDK&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KmvRUnNRyto&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KmvRUnNRyto&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Feizal&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-3379333665360760446?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/3379333665360760446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=3379333665360760446&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3379333665360760446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/3379333665360760446'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/08/product-and-technology-releases.html' title='PRODUCT AND TECHNOLOGY RELEASES'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-5995566903484008025</id><published>2009-08-31T15:40:00.001+05:30</published><updated>2009-09-01T17:24:07.604+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='August - Second Publish'/><title type='text'>TIPS AND TRICKS</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Generate PDF files from Java applications dynamically&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;Many applications demand dynamic generation of PDF documents. Such applications range from banks generating customer statements for e-mail delivery to readers buying specific book chapters and receiving them in PDF format.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Get familiar with iText&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;iText is a freely available Java library from &lt;a href="http://Lowagie.com"&gt;Lowagie.com.&lt;/a&gt; The iText library is powerful and supports the generation of HTML, RTF, and XML documents, in addition to generating PDF's. You can choose from a variety of fonts to be used in the document. Also, the structure of iText allows you to generate any of the above-mentioned types of documents with the same code.&lt;br/&gt;The iText library contains classes to generate PDF text in various fonts, generate tables in PDF document, add watermarks to pages, and so on. There are many more features available with iText. It would not be possible to demonstrate all of them in a single article. We will cover the basics required for PDF generation.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;How to configure with Eclipse:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Downloading and configuring iText in Eclipse&lt;br/&gt;Being a pure Java library, iText comes in the form of a JAR file which you download from Lowagie.com. Once you have downloaded the library (let's say, at path C:\temp), the following steps will configure the iText library in an Eclipse environment:&lt;br/&gt;Create a new Java project in Eclipse named iText.&lt;br/&gt;Right-click on the iText project in Package Explorer view and select Properties&lt;br/&gt;Click Java Build Path. On the Libraries tab, click Add External Jar's.&lt;br/&gt;Browse to the C:\temp directory and select the itext-1.3.jar in this directory.&lt;br/&gt;Click OK.&lt;br/&gt;iText is now configured, and Eclipse is ready to create Java applications to generate dynamic PDF documents.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Selecting the Best Java Collection Class for Your Application &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;• All Vector methods are synchronized as are Stack methods&lt;br/&gt;• Array List fast operations are getting the size of the list, getting the object at a specified position in the list, and setting the object at a specified position in the list.&lt;br/&gt;&lt;br/&gt;• Linked List can quickly insert or remove objects in the middle of the list whereas Array List takes time proportionate to the number of objects in the list after the position to which objects being added or removed. Use Array List unless you are inserting or deleting a lot from the middle of a list.&lt;br/&gt;&lt;br/&gt;• If you rarely iterate an Array List object while it is being modified, then using a lock is a good solution. However, if iterating over a Array List while modifying it is common, then locking may make waiting time unacceptably high.&lt;br/&gt;&lt;br/&gt;• With CopyOnWrite ArrayList all operations that change the contents of a CopyOnWriteArrayList collection cause the underlying array to be replaced with a copy of itself before the contents of the array are changed. Any active iterators will continue to see the unmodified array, so there is no need for locks.&lt;br/&gt;&lt;br/&gt;• HashSet is faster than TreeSet, so only use the TreeSet preferentially when you need elements to remain in sorted order.&lt;br/&gt;• HashSet is faster than LinkedHashSet so only use the LinkedHashSet preferentially when you need elements to remain in insertion order.&lt;br/&gt;&lt;br/&gt;• ConcurrentSkipListSet keeps it's elements in sorted order and is thread-safe and usually preferable to a synchronized wrapped set.&lt;br/&gt;&lt;br/&gt;• With CopyOnWriteArraySet all operations that change the contents of a CopyOnWriteArraySet collection cause the underlying array to be replaced with a copy of itself before the contents of the array are changed. Any active iterators will continue to see the unmodified array, so there is no need for locks.&lt;br/&gt;&lt;br/&gt;• PriorityQueue add and remove methods take time that is proportionate to the number of objects in the queue. Queues based on the PriorityQueue class do not block. PriorityBlockingQueue is similar in performance but does block.&lt;br/&gt;&lt;br/&gt;• DelayQueue is a specialized blocking queue that consults the objects it contains as to when they can be removed from the queue.&lt;br/&gt;&lt;br/&gt;• A SynchronousQueue object is always empty; the put method blocks unless another thread is waiting for the object's take method to return.&lt;br/&gt;&lt;br/&gt;• If you are not interested in how objects will be organized in a collection, then the only other consideration is performance. In that case, use the ArrayList class. It is fast and makes efficient use of memory.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Amaresh&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Please find more topics under JASe Archive!!!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-5995566903484008025?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/5995566903484008025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=5995566903484008025&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/5995566903484008025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/5995566903484008025'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/08/tips-tricks.html' title='TIPS AND TRICKS'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-4879869617279610978</id><published>2009-07-17T14:05:00.000+05:30</published><updated>2009-09-15T15:48:55.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='July - Second Publish'/><title type='text'>WHAT'S NEW IN JAVA</title><content type='html'>&lt;span style="font-weight:bold;"&gt;DOJO&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Dojo Toolkit is an open source modular JavaScript library (or more specifically JavaScript toolkit) designed to ease the rapid development of cross platform for JavaScript/Ajax based applications and web sites.&lt;br /&gt;Dojo is an Open Source DHTML toolkit written in JavaScript, it will support Cross-platforms present stable Dojo release is 1.3.2.&lt;br/&gt;Dojo Base includes Ajax, events, packaging, CSS-based querying, animations, JSON, language utilities and that's just the beginning. Dojo aims to solve some long-standing historical problems with DHTML which prevented mass adoption of dynamic web application development.&lt;br/&gt;&lt;br/&gt;Dojo allows you to easily build dynamic capabilities into web pages and any other environment that supports JavaScript sanely. You can use the components that Dojo provides to make your web sites more usable, responsive, and functional. With Dojo you can build degradable user interfaces more easily, prototype interactive widgets quickly, and animate transitions. You can use the lower-level APIs and compatibility layers from Dojo to write portable JavaScript and simplify complex scripts. Dojo's event system, I/O APIs, and generic language enhancement form the basis of a powerful programming environment. You can use the Dojo build tools to write command-line unit-tests for your JavaScript code. The Dojo build process helps you optimize your JavaScript for deployment by grouping sets of files together and reuse those groups through "profiles".&lt;br/&gt;&lt;br/&gt;Dojo does all of these things by layering capabilities onto a very small core which provides the package system and little else. When you write scripts with Dojo, you can include as little or as much of the available APIs as you need to suit your needs. Dojo provides multiple points of entry, interpreter independence, forward looking APIs, and focuses on reducing barriers to adoption.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Dojo Features&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Asynchronous communication,&lt;br /&gt;Packaging system,&lt;br /&gt;Client-side data storage,&lt;br /&gt;Server-side data storage,&lt;br /&gt;Support for Adobe Integrated Runtime (AIR).&lt;br/&gt;For More information &lt;a href="http://dojotoolkit.org"&gt;please click&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;Announcements&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;James Gosling: on the Java Road&lt;br/&gt;&lt;br/&gt;This is update regarding on 2009 JVM Language Summit to be held at Sun's Santa Clara campus on September 16-18, 2009. More information is available at &lt;a href="http://jvmlangsummit.com"&gt;http://jvmlangsummit.com.&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The JVM Language Summit is an open technical collaboration among language designers, compiler writers, tool builders, runtime engineers, and VM architects. We will share our experiences as creators of programming languages for the JVM and of the JVM itself.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-4879869617279610978?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/4879869617279610978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=4879869617279610978&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/4879869617279610978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/4879869617279610978'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/07/whats-new-in-java_21.html' title='WHAT&apos;S NEW IN JAVA'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-6793993491277642524</id><published>2009-07-17T14:03:00.000+05:30</published><updated>2009-09-15T15:48:55.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='July - Second Publish'/><title type='text'>PRODUCT AND TECHNOLOGY RELEASES</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Oracle Database 11g&lt;br/&gt;&lt;br/&gt;New for Java, JDBC, .NET, PHP, and OCI&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;For JDBC developers, new features include: JDBC 4.0, Advanced security in JDBC-Thin (Kerberos, Radius), Database Change Notification, better RAC support; performance, diagnosability and manageability.&lt;br/&gt;&lt;br/&gt;For Java in the Database a new JIT compiler automatically compiles Java code, new ease-of-use features including a JDK-Like interface, database resident jars, output redirect, property management interface, and utilities.&lt;br/&gt;&lt;br/&gt;For .NET developers: new data access features with Oracle Database 11g, including abstract/user-defined data types, ASP.NET providers, and client-side HA features for Oracle grids; new enhancements to the Visual Studio tools: full integration into Visual Studio 2005, source control, and database script management.&lt;br/&gt;&lt;br/&gt;For PHP, a new database resident connection pool allows multiple Oracle clients to share a server-side pool of connections, providing application scalability.&lt;br/&gt;&lt;br/&gt;OCI improves database scalability and application performance with client query result cache.&lt;br/&gt;&lt;br/&gt;Development - Connectivity (e.g. JDBC, ODBC, Wireless) ,Performance Tuning, Security, Design, Programming (e.g. Java/J2EE, JSP, Beans, XML, .NET, BPEL, ADF, AJAX, SQL, PL/SQL, OC4J), 11g Upcoming Features.&lt;br/&gt;&lt;br/&gt;Exposure to JDBC, Oracle JDBC, Java in the Oracle database, .NET of the Oracle Database, PHP, and OCI.&lt;br/&gt;&lt;br/&gt;Support for new Java/JDBC standards, security and performance enhancements.&lt;br/&gt;&lt;br/&gt;New .NET data access features: UDT, ASP.NET providers, client-side HA for Oracle Grids, .NET tools.&lt;br/&gt;&lt;br/&gt;Database resident connection pool for PHP and OCI, query result set cache across sessions/threads.&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh  &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-6793993491277642524?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/6793993491277642524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=6793993491277642524&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/6793993491277642524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/6793993491277642524'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/07/product-and-technology-releases_21.html' title='PRODUCT AND TECHNOLOGY RELEASES'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-5695328995145153320</id><published>2009-07-17T14:02:00.000+05:30</published><updated>2009-09-15T15:48:55.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='July - Second Publish'/><title type='text'>TIPS AND TRICKS</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Using Enhanced For-Loops with Your Classes&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;The enhanced for-loop is a popular feature introduced with the Java SE platform in version 5.0. Its simple structure allows one to simplify code by presenting for-loops that visit each element of an array/collection without explicitly expressing how one goes from element to element.&lt;br/&gt;Because the old style of coding didn't become invalid with the new for-loop syntax, you don't have to use an enhanced for-loop when visiting each element of an array/collection. However, with the new style, one's code would typically change from something like the following:&lt;br/&gt;&lt;br /&gt;for (int i=0; i&lt;=array.length; i++) {&lt;br /&gt;    System.out.println("Element: " + array[i]);&lt;br /&gt;}&lt;br/&gt;To the newer form:&lt;br/&gt;&lt;br /&gt;for (String element : array) {&lt;br /&gt;    System.out.println("Element: " + element);&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;Assuming "array" is defined to be an array of String objects, each element is assigned to the element variable as it loops through the array.&lt;br/&gt;&lt;br /&gt;These basics of the enhanced for-loop were covered in an earlier Tech Tip: The Enhanced &lt;a href="http://java.sun.com/developer/JDCTechTips/2005/tt0505.html#2"&gt;For Loop&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Ramesh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-5695328995145153320?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/5695328995145153320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=5695328995145153320&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/5695328995145153320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/5695328995145153320'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/07/trips-and-tricks_21.html' title='TIPS AND TRICKS'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480826979125953115.post-2649636892972305422</id><published>2009-07-17T14:00:00.000+05:30</published><updated>2009-09-15T15:48:55.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='July - Second Publish'/><title type='text'>CASE STUDIES</title><content type='html'>&lt;span style="font-weight:bold;"&gt;ABOUT STRING POOL&lt;br/&gt;&lt;br /&gt;Creating a String&lt;/span&gt;&lt;br/&gt;There are two ways to create a String object in Java:&lt;br/&gt;&lt;br /&gt;Using the new operator. For example, &lt;br /&gt;String str = new String("Hello");.&lt;br /&gt;Using a string literal or constant expression). For example,&lt;br /&gt;String str="Hello"; (string literal) or&lt;br /&gt;String str="Hel" + "lo"; (string constant expression). – In lining the statement at compile time.&lt;br /&gt;What is difference between these String's creations? In Java, the equals method can be considered to perform a deep comparison of the value of an object, whereas the == operator performs a shallow comparison. The equals method compares the content of two objects rather than two objects' references. The == operator with reference types (i.e., Objects) evaluates as true if the references are identical - point to the same object. With value types (i.e., primitives) it evaluates as true if the value is identical. &lt;br /&gt;The equals method is to return true if two objects have identical content - however, the equals method in the java.lang.Object class - the default equals method if a class does not override it - returns true only if both references point to the same object.&lt;br/&gt;Let's use the following example to see what difference between these creations of string:&lt;br/&gt;public class StringCreationExample {&lt;br /&gt;&lt;br /&gt;  public static void main (String args[]) {&lt;br /&gt;    String str1 = "Hello";  &lt;br /&gt;    String str2 = "Hello"; &lt;br /&gt;    System.out.println("str1 and str2 are created by using string literal.");    &lt;br /&gt;    System.out.println("    str1 == str2 is " + (str1 == str2));  &lt;br /&gt;    System.out.println("    str1.equals(str2) is " + str1.equals(str2));  &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    String str3 = new String("Hello");  &lt;br /&gt;    String str4 = new String("Hello"); &lt;br /&gt;    System.out.println("str3 and str4 are created by using new operator.");    &lt;br /&gt;    System.out.println("    str3 == str4 is " + (str3 == str4));  &lt;br /&gt;    System.out.println("    str3.equals(str4) is " + str3.equals(str4));  &lt;br /&gt;    &lt;br /&gt;    String str5 = "Hel"+ "lo";  &lt;br /&gt;    String str6 = "He" + "llo"; &lt;br /&gt;    System.out.println("str5 and str6 are created by using string &lt;br /&gt;     constant expression.");    &lt;br /&gt;    System.out.println("    str5 == str6 is " + (str5 == str6));  &lt;br /&gt;    System.out.println("    str5.equals(str6) is " + str5.equals(str6));&lt;br /&gt;&lt;br /&gt;    String s = "lo";&lt;br /&gt;    String str7 = "Hel"+ s;  &lt;br /&gt;    String str8 = "He" + "llo"; &lt;br /&gt;    System.out.println("str7 is computed at runtime.");  &lt;br /&gt;    System.out.println("str8 is created by using string constant &lt;br /&gt;     expression.");    &lt;br /&gt;    System.out.println("    str7 == str8 is " + (str7 == str8));  &lt;br /&gt;    System.out.println("    str7.equals(str8) is " + str7.equals(str8));&lt;br /&gt;    &lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;The output result is:&lt;br/&gt;str1 and str2 are created by using string literal.&lt;br /&gt;    str1 == str2 is true&lt;br /&gt;    str1.equals(str2) is true&lt;br /&gt;str3 and str4 are created by using new operator.&lt;br /&gt;    str3 == str4 is false&lt;br /&gt;    str3.equals(str4) is true&lt;br /&gt;str5 and str6 are created by using string constant expression.&lt;br /&gt;    str5 == str6 is true&lt;br /&gt;    str5.equals(str6) is true&lt;br /&gt;str7 is computed at runtime.&lt;br /&gt;str8 is created by using string constant expression.&lt;br /&gt;    str7 == str8 is false&lt;br /&gt;    str7.equals(str8) is true&lt;br /&gt;&lt;br/&gt;The creation of two strings with the same sequence of letters without the use of the new keyword will create pointers to the same String in the Java String literal pool. The String literal pool is a way Java conserves resources.&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;String Literal Pool&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;String allocation, like all object allocation, proves costly in both time and memory. The JVM performs some trickery while instantiating &lt;span style="font-weight:bold;"&gt;string literals&lt;/span&gt; to increase performance and decrease memory overhead. To cut down the number of String objects created in the JVM, the String class keeps a pool of strings. Each time your code creates a string literal, the JVM checks the string literal pool first. If the string already exists in the pool, a reference to the pooled instance returns, it uses Flyweight design pattern. If the string does not exist in the pool, a new String object instantiates then is placed in the pool. Java can make this optimization since strings are &lt;span style="font-weight:bold;"&gt;immutable&lt;/span&gt; and can be shared without fear of data corruption.&lt;br/&gt;For example:&lt;br/&gt;&lt;br /&gt;public class Program&lt;br /&gt;{&lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;       String str1 = "Hello";  &lt;br /&gt;       String str2 = "Hello"; &lt;br /&gt;       System.out.printlntr1 == str2);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;The result is:&lt;br/&gt;true&lt;br/&gt;Unfortunately, when you use&lt;br/&gt;String a=new String("Hello");&lt;br/&gt;a String object is created out of the String literal pool, even if an equal string already exists in the pool. Considering all that, avoid new String unless you specifically know that you need it!&lt;br/&gt;For example:&lt;br/&gt;public class Program&lt;br /&gt;{&lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;       String str1 = "Hello";  &lt;br /&gt;       String str2 = new String("Hello");&lt;br /&gt;       System.out.print(str1 == str2 + " ");&lt;br /&gt;       System.out.print(str1.equals(str2));&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;The result is:&lt;br/&gt;false true&lt;br/&gt;A JVM has a string pool where it keeps at most one object of any String. String literals always refer to an object in the string pool. String objects created with the new operator do not refer to objects in the string pool but can be made to using String's intern() method. The java.lang.String.intern() returns an interned String, that is, one that has an entry in the global String pool. If the String is not already in the global String pool, then it will be added.&lt;br/&gt;For example:&lt;br/&gt;&lt;br /&gt;public class Program&lt;br /&gt;{&lt;br /&gt;    public static void main(String[] args)&lt;br /&gt;    {&lt;br /&gt;        // Create three strings in three different ways.&lt;br /&gt;        String s1 = "Hello";&lt;br /&gt;        String s2 = new StringBuffer("He").append("llo").toString();&lt;br /&gt;        String s3 = s2.intern();&lt;br /&gt;&lt;br /&gt;        // Determine which strings are equivalent using the ==&lt;br /&gt;        // operator&lt;br /&gt;        System.out.println("s1 == s2? " + (s1 == s2));&lt;br /&gt;        System.out.println("s1 == s3? " + (s1 == s3));&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;The output is:&lt;br/&gt;s1 == s2? false&lt;br/&gt;s1 == s3? True&lt;br/&gt;There is a table always maintaining a single reference to each unique String object in the global string literal pool ever created by an instance of the runtime in order to optimize space. That means that they always have a reference to String objects in string literal pool, therefore, the string objects in the string literal pool not eligible for garbage collection.&lt;br/&gt;&lt;span style="font-weight:bold;"&gt;String Literals in the Java Language Specification Third Edition&lt;/span&gt;&lt;br/&gt; Each string literal is a reference to an instance of class String. String objects have a constant value. It is not editable.&lt;br/&gt;Thus, the test program consisting of the compilation unit:&lt;br/&gt;package testPackage;&lt;br /&gt;class StringTest {&lt;br /&gt;        public static void main(String[] args) {&lt;br /&gt;                String hello = "Hello", lo = "lo";&lt;br /&gt;                System.out.print((hello == "Hello") + " ");&lt;br /&gt;                System.out.print((Other.hello == hello) + " ");&lt;br /&gt;                System.out.print((other.Other.hello == hello) + " ");&lt;br /&gt;                System.out.print((hello == ("Hel"+"lo")) + " ");&lt;br /&gt;                System.out.print((hello == ("Hel"+lo)) + " ");&lt;br /&gt;                System.out.println(hello == ("Hel"+lo).intern());&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;class Other { static String hello = "Hello"; }&lt;br /&gt;and the compilation unit:&lt;br /&gt;package other;&lt;br /&gt;public class Other { static String hello = "Hello"; }&lt;br /&gt;&lt;br/&gt;Produces the output:&lt;br/&gt;true true true true false true&lt;br/&gt;This example illustrates six points:&lt;br/&gt;Literal strings within the same class in the same package represent references to the same String object.&lt;br /&gt;Literal strings within different classes in the same package represent references to the same String object.&lt;br /&gt;Literal strings within different classes in different packages likewise represent references to the same String object.&lt;br /&gt;Strings computed by constant expressions are computed at compile time and then treated as if they were literals.&lt;br /&gt;Strings computed by concatenation at run time are newly created and therefore distinct.&lt;br /&gt;The result of explicitly interning a computed string is the same string as any pre-existing literal string with the same contents.&lt;br /&gt;&lt;br/&gt;&lt;span style="font-style:italic;"&gt;By - Senthil&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480826979125953115-2649636892972305422?l=java-jase.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-jase.blogspot.com/feeds/2649636892972305422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480826979125953115&amp;postID=2649636892972305422&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/2649636892972305422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480826979125953115/posts/default/2649636892972305422'/><link rel='alternate' type='text/html' href='http://java-jase.blogspot.com/2009/08/case-studies.html' title='CASE STUDIES'/><author><name>Java Solution Experts</name><uri>http://www.blogger.com/profile/01726084821535881388</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
