<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Planet NetBeans</title>
    <link>http://www.planetnetbeans.org/</link>
    <language>en</language>
    <description>Planet NetBeans - http://www.planetnetbeans.org/</description>
    <item>
      <title>NetBeans DZone: WSDL Customization Issues and Workarounds in Java EE 6 Applications in NetBeans</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19213 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/UCgLfFj-gEU/wsdl-customization-issues-and</link>
      <description>I've found a couple issues when using NetBeans to generate a WSDL file for an EE 6 web service, and then customizing that WSDL file. Some other users have reported them as well, so I thought I'd share them with the community.&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/UCgLfFj-gEU" height="1" width="1" /&gt;</description>
      <pubDate>Wed, 10 Mar 2010 05:36:41 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Database Design &amp; Synchronization Software on the NetBeans Platform</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/database_design_synchronization_software_on</guid>
      <link>http://blogs.sun.com/geertjan/entry/database_design_synchronization_software_on</link>
      <description>&lt;a href="http://www.dbwrench.com/"&gt;DbWrench&lt;/a&gt;, which is database design and synchronization software, is clearly an application created on top of the NetBeans Platform: &lt;p&gt;&lt;a href="http://blogs.sun.com/geertjan/resource/dbwrench-nb-1.png"&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/dbwrench-nb-1-small.png" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.sun.com/geertjan/resource/dbwrench-nb-2.png"&gt;&lt;img
      src="http://blogs.sun.com/geertjan/resource/dbwrench-nb-2-small.png" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;And, someone out there is making money on the NetBeans Platform in this case, since &lt;a href="http://www.dbwrench.com/purchase/default.shtml"&gt;purchasing this application&lt;/a&gt; will cost you $145, while a trial version is &lt;a href="http://www.dbwrench.com/download/default.shtml"&gt;also available&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Quite a lot of work seems to have gone into this application,
      primarily in the porting from a previous incarnation (&lt;a href="http://java.dzone.com/announcements/dbwrench-database-design-v150"&gt;shown here&lt;/a&gt;): &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/TableExplorer.png" /&gt; &lt;/p&gt;&lt;p&gt;Must be nice, as a developer of this application, to suddenly have a free docking framework out of the box. :-) &lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; Nowhere on the &lt;a href="http://www.dbwrench.com/"&gt;DbWrench&lt;/a&gt;
      website will you see a reference to the NetBeans Platform. Nothing wrong with that. But it clearly means that it's hard to make an estimate about the actual popularity of the NetBeans Platform. However, &lt;a href="http://platform.netbeans.org/screenshots.html"&gt;from the screenshots&lt;/a&gt; page one &lt;i&gt;can&lt;/i&gt; safely conclude that the NetBeans Platform is broadly adopted across all sectors developing industrial software applications. &lt;/p&gt;&lt;p&gt;Many thanks to Andrea Cisternino
      for identifying this application as &lt;a href="http://platform.netbeans.org/screenshots.html"&gt;yet another NetBeans Platform application&lt;/a&gt;! Others out there? Let me know!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 09 Mar 2010 20:12:37 +0000</pubDate>
    </item>
    <item>
      <title>The Aquarium: Surviving GlassFish Without your IDE</title>
      <guid isPermaLink="false">http://blogs.sun.com/theaquarium/entry/surviving_glassfish_without_your_ide</guid>
      <link>http://blogs.sun.com/theaquarium/entry/surviving_glassfish_without_your_ide</link>
      <description>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="http://en.wikipedia.org/wiki/Survivor_%28TV_series%29" target="_blank" title="Logo for Survivor - Borneo"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/SurvivorBorneoLogo-140_92px.png" align="left" height="92" width="140" vspace="4" alt="ALT DESCR" hspace="4" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt; Yesterday morning the USERS mailing list of GlassFish had a thread asking &lt;a
      href="http://markmail.org/thread/2gibgvl67cjruhrc"&gt;How to start and run GlassFishV3 without Netbeans&lt;/a&gt;... so, Alexis wrote and posted a quick &lt;a href="http://blogs.sun.com/alexismp/entry/glassfish_without_the_ide"&gt;Survival Guide&lt;/a&gt; on using GlassFish without an IDE &lt;a href="http://twitter.com/glassfish/status/10184832278"&gt;&lt;img src="http://blogs.sun.com/theaquarium/resource/Twitter-16_16px.png" /&gt;&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; From question to documentation in a
      few hours: self-publishing, no webmaster to contact, all links to online documentation... and no lawyer to check with :-) &lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description>
      <pubDate>Tue, 09 Mar 2010 13:05:00 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: OpenOffice on the NetBeans Platform on Ubuntu</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19313 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/R_fEiFvkQk0/ooo-nb-platform-ubuntu</link>
      <description>Here's where I am with my OpenOffice integration on the NetBeans Platform: OpenOffice opens in a TopComponent and I've copied a bunch of code into the document. Clearly, that's what one would hope to have as a result of this integration. Problems that remain are that the document isn't editable, the heavyweight/lightweight thing, and when I close the window OpenOffice crashes.&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/R_fEiFvkQk0" height="1" width="1"
      /&gt;</description>
      <pubDate>Mon, 08 Mar 2010 22:36:36 +0000</pubDate>
    </item>
    <item>
      <title>The Aquarium: GlassFish Jobs Spike at Indeed.COM after CiC</title>
      <guid isPermaLink="false">http://blogs.sun.com/theaquarium/entry/glassfish_jobs_spike_at_indeed</guid>
      <link>http://blogs.sun.com/theaquarium/entry/glassfish_jobs_spike_at_indeed</link>
      <description>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="http://blogs.sun.com/theaquarium/resource/IndeedGFTrends-8Mar2010.png" target="_blank" title="GlassFish jobs trends at Indeed.Com - click for larger image"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/IndeedGFTrends-8Mar2010-140_135px.png" align="left" height="135" width="140" vspace="4" alt="ALT DESCR" hspace="4" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt; Indeed.COM shows a spike&lt;a
      href="http://twitter.com/pelegri/status/10160123957"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/Twitter-16_16px.png" /&gt;&lt;/a&gt; in the number of GlassFish-related jobs around end of January (&lt;a href="http://blogs.sun.com/theaquarium/resource/IndeedGFTrends-8Mar2010.png" target="_blank"&gt;snapshot&lt;/a&gt;, &lt;a href="http://www.indeed.com/jobtrends?q=glassfish&amp;amp;l=" target="_blank"&gt;live&lt;/a&gt;); the date roughly coincides with the &lt;a
      href="http://blogs.sun.com/theaquarium/entry/additional_webcasts_from_oracle_on"&gt;reassuring noises&lt;/a&gt; from Oracle on CiC. The absolute job numbers are still small, but I expect them to continue to grow, specially as we release our detailed Roadmap. &lt;/p&gt; &lt;p&gt; In other good adoption indicators: &lt;br /&gt; • Mail traffic at USERS@GlassFish&lt;a href="http://twitter.com/pelegri/status/10160123957"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/Twitter-16_16px.png"
      /&gt;&lt;/a&gt;; see &lt;a href="http://markmail.org/search/?q=list%3Anet.java.dev.glassfish#query:%20list%3Anet.java.dev.glassfish.users+page:1+state:facets"&gt;MarkMail&lt;/a&gt; &lt;br /&gt; • Google Trends (&lt;a href="http://blogs.sun.com/theaquarium/resource/GoogleTrends-8Mar2010.png" target="_blank"&gt;snapshot&lt;/a&gt;, &lt;a href="http://www.google.com/trends?q=glassfish" target="_blank"&gt;live&lt;/a&gt;). &lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; And, before
      you ask; the roadmap is very close... &lt;/p&gt;</description>
      <pubDate>Mon, 08 Mar 2010 19:41:44 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: R.I.P. Felipe Gaúcho: DZone MVB &amp; Tireless Java Advocate</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19295 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/bNhodhNUcqU/rip-felipe-ga%C3%BAcho-dzone-mvb</link>
      <description>R.I.P. Felipe Gaúcho: DZone MVB &amp;amp; Tireless Java Advocate The DZone team was very sad to read the news that Felipe Gaúcho had passed away this weekend. Felipe has been an active member of JavaLobby for many years, as well as being a key JUG leader.&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/bNhodhNUcqU" height="1" width="1" /&gt;</description>
      <pubDate>Mon, 08 Mar 2010 17:13:56 +0000</pubDate>
    </item>
    <item>
      <title>Bistro!: GlassFish without the IDE (quick survival guide)</title>
      <guid isPermaLink="false">http://blogs.sun.com/alexismp/entry/glassfish_without_the_ide</guid>
      <link>http://feedproxy.google.com/~r/Bistro/~3/1s4tVP1Jd8E/glassfish_without_the_ide</link>
      <description>&lt;p&gt; A lot of people experiment GlassFish for the first time via an IDE (most likely &lt;a href="http://www.netbeans.org"&gt;NetBeans&lt;/a&gt;, but maybe also with &lt;a href="http://download.java.net/glassfish/eclipse/"&gt;Eclipse&lt;/a&gt;) and &lt;a href="http://forums.java.net/jive/thread.jspa?messageID=390669"&gt;feel a bit lost&lt;/a&gt; when it comes to use GlassFish without the tool driving it for them. So here are a few (mostly basic) CLI &lt;code&gt;asadmin&lt;/code&gt;
      hints for GlassFish v3 : &lt;/p&gt; &lt;p&gt; &lt;strong&gt;* Start/Stop *&lt;/strong&gt; &lt;br /&gt; Start GlassFish (need this to access the admin console on default port &lt;a href="http://localhost:4848"&gt;http://localhost:4848&lt;/a&gt;) : &lt;br /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% GLASSFISH_HOME/bin/asadmin start-domain&lt;/code&gt;&#160;&#160;&#160;&#160; (assumes there's only one domain) &lt;br /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% asadmin start-domain
      domain1&lt;/code&gt;&#160;&#160;&#160;&#160; (explicitly reference a given domain) &lt;br /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% asadmin start-domain -v domain&lt;/code&gt;&#160;&#160;&#160;&#160; (will cause the log to be dumped to the standard output) &lt;br /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% java -jar modules/glassfish.jar&lt;/code&gt;&#160;&#160;&#160;&#160; (may be useful in certain circumstance (explicit java version for instance) &lt;/p&gt; &lt;p&gt; Stop GlassFish : &lt;br
      /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% asadmin stop-domain {domain1}&lt;/code&gt; &lt;/p&gt; &lt;p&gt; List existing instances (including stopped/started status) &lt;br /&gt;&#160;&#160;&#160;&#160; &lt;code&gt;% asadmin list-domains&lt;/code&gt; &lt;/p&gt; &lt;p&gt; You can also create additional domains with &lt;code&gt;% asadmin create-domain ...&lt;/code&gt; (and I would suggest &lt;a href="http://blogs.sun.com/alexismp/entry/flexible_glassfish_domain_creation_using"&gt;using the
      &lt;code&gt;-portbase&lt;/code&gt;&lt;/a&gt; option). &lt;/p&gt; &lt;p&gt; &lt;strong&gt;* Resources *&lt;/strong&gt; &lt;br /&gt; If the IDE has created connection pools and datasources, you will certainly find the following &lt;code&gt;create-jdbc-connection-pool&lt;/code&gt; and &lt;code&gt;create-jdbc-resource&lt;/code&gt; commands useful. Note also that &lt;code&gt;asadmin&lt;/code&gt; has a "closest match" feature for misspelled commands and extensive online documentation : &lt;code&gt; &lt;br
      /&gt;% ~/glassfishv3/bin/asadmin &lt;strong&gt;create&lt;/strong&gt; &lt;br /&gt;CLI001 Invalid Command: create &lt;br /&gt;Closest matching local and remote command(s): &lt;br /&gt;&#160;&#160;&#160;&#160; create-admin-object &lt;br /&gt;&#160;&#160;&#160;&#160; create-audit-module &lt;br /&gt;&#160;&#160;&#160;&#160; create-auth-realm &lt;br /&gt;&#160;&#160;&#160;&#160; create-connector-connection-pool &lt;br /&gt;&#160;&#160;&#160;&#160; create-connector-resource &lt;br
      /&gt;&#160;&#160;&#160;&#160; create-connector-security-map &lt;br /&gt;&#160;&#160;&#160;&#160; create-connector-work-security-map &lt;br /&gt;&#160;&#160;&#160;&#160; create-custom-resource &lt;br /&gt;&#160;&#160;&#160;&#160; create-domain &lt;br /&gt;&#160;&#160;&#160;&#160; create-file-user &lt;br /&gt;&#160;&#160;&#160;&#160; create-http &lt;br /&gt;&#160;&#160;&#160;&#160; create-http-listener &lt;br /&gt;&#160;&#160;&#160;&#160; create-iiop-listener &lt;br /&gt;&#160;&#160;&#160;&#160;
      create-javamail-resource &lt;br /&gt;&#160;&#160;&#160;&#160; create-jdbc-connection-pool &lt;br /&gt;&#160;&#160;&#160;&#160; create-jdbc-resource &lt;br /&gt;&#160;&#160;&#160;&#160; create-jms-host &lt;br /&gt;&#160;&#160;&#160;&#160; create-jms-resource &lt;br /&gt;&#160;&#160;&#160;&#160; create-jmsdest &lt;br /&gt;&#160;&#160;&#160;&#160; create-jndi-resource &lt;br /&gt;&#160;&#160;&#160;&#160; create-jvm-options &lt;br /&gt;&#160;&#160;&#160;&#160; create-lifecycle-module &lt;br
      /&gt;&#160;&#160;&#160;&#160; create-message-security-provider &lt;br /&gt;&#160;&#160;&#160;&#160; create-network-listener &lt;br /&gt;&#160;&#160;&#160;&#160; create-password-alias &lt;br /&gt;&#160;&#160;&#160;&#160; create-profiler &lt;br /&gt;&#160;&#160;&#160;&#160; create-protocol &lt;br /&gt;&#160;&#160;&#160;&#160; create-resource-adapter-config &lt;br /&gt;&#160;&#160;&#160;&#160; create-resource-ref &lt;br /&gt;&#160;&#160;&#160;&#160; create-service &lt;br /&gt;&#160;&#160;&#160;&#160;
      create-ssl &lt;br /&gt;&#160;&#160;&#160;&#160; create-system-properties &lt;br /&gt;&#160;&#160;&#160;&#160; create-threadpool &lt;br /&gt;&#160;&#160;&#160;&#160; create-transport &lt;br /&gt;&#160;&#160;&#160;&#160; create-virtual-server &lt;/code&gt; &lt;/p&gt; &lt;p&gt; Almost every bits of configuration is located in the &lt;code&gt;glassfish/domains/domain1/config/domain.xml&lt;/code&gt; config file but you really should be using &lt;code&gt;asadmin&lt;/code&gt; or the admin console and not
      edit this by hand. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;* (auto)deployment *&lt;/strong&gt; &lt;br /&gt; The explicit deployment is based on the &lt;code&gt;asadmin deploy app.{ear|war|jar}&lt;/code&gt; command. Listing deployed applications is as easy as &lt;code&gt;asadmin list-application&lt;/code&gt; (notice how GlassFish tells you which containers are at work for a given app), and undeployment simply requires a &lt;code&gt;asadmin undeploy &lt;em&gt;app-name&lt;/em&gt;&lt;/code&gt;. &lt;/p&gt;
      &lt;p&gt; While these commands have lots of options (&lt;code&gt;asadmin deploy --help&lt;/code&gt; for details), you may find it convenient to simply drop your application in the &lt;code&gt;domain1/autodeploy&lt;/code&gt; directory. Deleting the file will trigger the undeployment. &lt;/p&gt; &lt;p&gt; All the details for the &lt;code&gt;asadmin&lt;/code&gt; CLI can be found in the &lt;a href="http://docs.sun.com/app/docs/doc/820-7692/giobi"&gt;official "Using the asadmin Utility"
      documentation.&lt;/a&gt; &lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/Bistro/~4/1s4tVP1Jd8E" height="1" width="1" /&gt;</description>
      <pubDate>Mon, 08 Mar 2010 16:57:57 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans for PHP: New Download/Upload dialog</title>
      <guid isPermaLink="false">http://blogs.sun.com/netbeansphp/entry/new_download_upload_dialog</guid>
      <link>http://blogs.sun.com/netbeansphp/entry/new_download_upload_dialog</link>
      <description>&lt;p&gt;Hi, today it will be again a very short blog post about a feature we just added to the development version of NetBeans. Many of you requested this change so we hope that you will like this change:&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/netbeansphp/resource/article_images/remote-tree.png" alt="New Remote Files Selection" /&gt;&lt;/p&gt; &lt;p&gt;The behavior should be as expected, it means that if one checks a directory, all folders and files underneath the
      directory are checked as well.&lt;/p&gt; &lt;p&gt;However, if anyone of you still prefer the current dialog (a "table"), start NetBeans with&#160;&lt;em&gt;-J-Dnb.php.transfer.ui.table=true&lt;/em&gt; and leave a comment why do you think it's better, an option could be added for it (probably in Tools &gt; Options &gt; PHP).&lt;/p&gt; &lt;p&gt;That's all for today, as always, please&#160;&lt;a href="http://bertram.netbeans.org/hudson/job/PHP-build/lastSuccessfulBuild/" target="_blank"
      title="Development version of NetBeans"&gt;test it&lt;/a&gt;&#160;and&#160;report all the issues or enhancements you find in&#160;&lt;a href="http://netbeans.org/community/issues.html" target="_blank" title="NetBeans IssueZilla"&gt;NetBeans IssueZilla&lt;/a&gt;&#160;(component&#160;&lt;em&gt;php&lt;/em&gt;, subcomponent&#160;&lt;em&gt;FTP Support&lt;/em&gt;).&lt;/p&gt; &lt;p&gt; &lt;/p&gt;</description>
      <pubDate>Mon, 08 Mar 2010 16:13:39 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Hello Again OpenOffice.org API</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/hello_again_openoffice_org_api1</guid>
      <link>http://blogs.sun.com/geertjan/entry/hello_again_openoffice_org_api1</link>
      <description>First step to integrating OpenOffice into the NetBeans Platform (yes, trying that again) is to get it working outside of the NetBeans Platform. &lt;p&gt;I started by downloading NetBeans IDE 6.5, installed the OpenOffice.org API plugin, then moved the OfficeBean sample from the OpenOffice SDK into the OpenOffice Client project type which I then opened in a NetBeans IDE 6.9 development build: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/helloooo.png" /&gt;
      &lt;img src="http://blogs.sun.com/geertjan/resource/helloooo2.png" /&gt; &lt;/p&gt;&lt;p&gt;Running it, I see this: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/helloooo1.png" /&gt; &lt;/p&gt;&lt;p&gt;The next step is to open OpenOffice via the OfficeBean into a NetBeans Platform TopComponent. &lt;a href="http://extremejava.blogspot.com/2008/01/blackmagic-with-netbeans-and-openoffice.html"&gt;This blog entry&lt;/a&gt; will probably be very
      useful.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 08 Mar 2010 10:05:24 +0000</pubDate>
    </item>
    <item>
      <title>Adam Bien: How To Kill An OSGi Project - With 10 Questions</title>
      <guid isPermaLink="false">http://www.adam-bien.com/roller/abien/entry/how_to_kill_an_osgi</guid>
      <link>http://www.adam-bien.com/roller/abien/entry/how_to_kill_an_osgi</link>
      <description>OSGi focusses on modularity and it is right now (&lt;a href="http://www.adam-bien.com/roller/abien/entry/jigsaw_jdk_1_7_will"&gt;future may change it&lt;/a&gt;) the only viable way to split your application into modules with well-defined dependencies. It solves, however, "only" the technical problem - which is actually relatively easy. Before you going to introduce OSGi into your project, answer the following questions: &lt;ol&gt; &lt;li&gt;What is your versioning scheme for
      modules(bundles)? Do you care about minor versions, major versions etc?&lt;/li&gt; &lt;li&gt;Whats your scm strategy - do you plan to open and maintain a branch for every version of a module? How many branches do you plan to maintain? (with svn? :-))&lt;/li&gt; &lt;li&gt;How many versioned modules will be active at the same time in production?&lt;/li&gt; &lt;li&gt;How the system is going to be tested? Each module and all the combination of modules. Every version will increase the complexity
      significantly.&lt;/li&gt; &lt;li&gt;What is your release-management strategy? Do you really plan to provide customer-specific module combinations? What is your bug-fixing / patch strategy (trunk, branch)?&lt;/li&gt; &lt;li&gt;Do you really want to replace modules in running system? If it is a serverside system - what happens with in-flight transactions?&lt;/li&gt; &lt;li&gt;If it is an Eclipse-RCP application - are you even allowed to expose the plugins to the end-user? (in the majority of my
      projects, we had to disable the update manager in production :-))&lt;/li&gt; &lt;li&gt;What is your software distribution system - many companies have already a software-distribution system in place. Often not only the application, but also the JVM are packaged into one binary file and entirely installed. Incremental updates are often impossible.&lt;/li&gt; &lt;li&gt;What is exactly the contract between the modules? Only a Java-Interface? If so - what to do with direct relations between JPA-entities.
      If you disallow direct JPA-relations - you will probably see a huge "domain" package with all domain objects inside it. You will need to provide "friend" relations between modules as well.&lt;/li&gt; &lt;li&gt;Is maven the canonical representation of modules, OSGi, or both? A single representation would be the best. Will maven module versions be reflected in the OSGi bundle versions?&lt;/li&gt; &lt;/ol&gt; The major OSGi-challenge is not the technology, rather than the governance of your modules and
      bundles. The problem is very similar to &lt;a href="http://www.adam-bien.com/roller/abien/entry/how_to_kill_a_soa"&gt;SOA&lt;/a&gt;.&lt;p&gt;&lt;/p&gt; For most enterprise applications you will get only one variant of your business logic, or even UI - so you will end up with modules, which will probably never be replaced. Because of additional complexity - you will probably test and deliver the whole system at once.&lt;p&gt;&lt;/p&gt; If you are building an IDE, platform or a server - governance,
      modularization and versioning are a major part of your problem domain / functional requirements. You will have to solve that anyway. It is far more likely, that someone will have to install a new driver to an application server, or even maintain different versions of the driver at the same time. IDEs without plugins are also extremely rare.&lt;p&gt;&lt;/p&gt; Replacing an algorithm in a business application is far more uncommon - often even not allowed. Its just crazy to introduce a modularization
      solution and then not use it. &lt;p&gt;&lt;span&gt;[See also &lt;/span&gt;&lt;a href="http://press.adam-bien.com" target="_blank"&gt;&lt;span&gt;"Real World Java EE Patterns, Rethinking Best Practices" book&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, Page 253, (Premature Encapsulation Is the Root of All Evil) for more in-depth discussion]&lt;/span&gt; &lt;/p&gt;</description>
      <pubDate>Mon, 08 Mar 2010 09:28:52 +0000</pubDate>
    </item>
    <item>
      <title>The Aquarium: Remembering Felipe Gaúcho</title>
      <guid isPermaLink="false">http://blogs.sun.com/theaquarium/entry/remembering_felipe_ga%C3%BAcho</guid>
      <link>http://blogs.sun.com/theaquarium/entry/remembering_felipe_ga%C3%BAcho</link>
      <description>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="http://www.cejug.org/2010/03/06/noticia-triste-para-o-java-no-brasil-e-o-ceara/" target="_blank" title="Notícia triste para a comunidade Java brasileira e internacional"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/FelipeGaucho-118_140px.png" align="left" height="140" width="118" vspace="4" alt="ALT DESCR" hspace="4" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt; Our friend &lt;a
      href="http://weblogs.java.net/blog/felipegaucho"&gt;Felipe Gaúcho&lt;/a&gt; died of a heart attack this last Friday &lt;a href="http://twitter.com/pelegri/status/10141023128"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/Twitter-16_16px.png" /&gt;&lt;/a&gt;. Felipe was one of the founders of &lt;a href="http://www.ceJug.org"&gt;CEJUG&lt;/a&gt;, the Ceará JUG, and created the &lt;a href="http://www.cejug.org/programas/premio-universitario-java/"&gt;Premio Universitario Java&lt;/a&gt;. You
      probably know Felipe from his active &lt;a href="http://weblogs.java.net/blog/felipegaucho"&gt;blog&lt;/a&gt; where he covered many topics - his last post was &lt;a href="http://www.java.net/blog/felipegaucho/archive/2010/03/04/glassfish-v3-resources-administration-cli-tool-asadmin"&gt;just Thursday&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; I last saw Felipe during JavaOne - full of enthusiasm as always - and we had exchanged email this Tuesday; we will all miss him sorely. Many other people also had the luck
      to work with him - see the notes from &lt;a href="http://www.hildeberto.com/2010/03/felipe-gaucho-you-will-be-missed.html"&gt;Hildeberto&lt;/a&gt;, &lt;a href="http://www.ctroller.com/contentRoller/view/28324/in_memory_of_felipe_gaucho.html"&gt;PeterP&lt;/a&gt;, &lt;a href="http://weblogs.java.net/blog/claudio/archive/2010/03/06/felipe-gaucho-we-will-miss-you"&gt;Claudio&lt;/a&gt; and &lt;a
      href="http://weblogs.java.net/blog/editor/archive/2010/03/07/fond-memory-our-friend-felipe-ga%C3%BAcho"&gt;Kevin&lt;/a&gt;. &lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; My condolences to Felipe's family. If you knew Felipe, please consider leaving a comment in the &lt;a href="http://www.cejug.org/2010/03/06/noticia-triste-para-o-java-no-brasil-e-o-ceara/"&gt;CEJUG Notice&lt;/a&gt;. &lt;/p&gt;</description>
      <pubDate>Mon, 08 Mar 2010 08:00:23 +0000</pubDate>
    </item>
    <item>
      <title>Netbeans for the Coffee Drinker » Netbeans: Netbeans 6.9…. Woodstock is BACK!</title>
      <guid isPermaLink="false">http://netbeansboy.com/?p=217</guid>
      <link>http://netbeansboy.com/2010/03/08/netbeans-6-9-woodstock-is-back/</link>
      <description>&lt;p&gt;Great News,&lt;/p&gt; &lt;p&gt;To my surprise, upon installing Netbeans 6.9, I find the woodstock plugins back inside and working great. This is amazingly good news for us as we are often building complex screens and laying it out in raw, naked jsp is just too much and too time consuming!&lt;/p&gt; &lt;p&gt;Great Job!&lt;/p&gt; &lt;p&gt;Now – perhaps we should get back to supporting it somehow?&lt;/p&gt; &lt;br /&gt; &lt;a
      href="http://feeds.wordpress.com/1.0/gocomments/netbeansboy.wordpress.com/217/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/netbeansboy.wordpress.com/217/" alt="" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/godelicious/netbeansboy.wordpress.com/217/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/delicious/netbeansboy.wordpress.com/217/" alt="" border="0" /&gt;&lt;/a&gt; &lt;a
      href="http://feeds.wordpress.com/1.0/gostumble/netbeansboy.wordpress.com/217/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/stumble/netbeansboy.wordpress.com/217/" alt="" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/godigg/netbeansboy.wordpress.com/217/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/digg/netbeansboy.wordpress.com/217/" alt="" border="0" /&gt;&lt;/a&gt; &lt;a
      href="http://feeds.wordpress.com/1.0/goreddit/netbeansboy.wordpress.com/217/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/reddit/netbeansboy.wordpress.com/217/" alt="" border="0" /&gt;&lt;/a&gt; &lt;img src="http://stats.wordpress.com/b.gif?host=netbeansboy.com&amp;amp;blog=2851804&amp;amp;post=217&amp;amp;subd=netbeansboy&amp;amp;ref=&amp;amp;feed=1" alt="" border="0" /&gt;</description>
      <pubDate>Mon, 08 Mar 2010 07:50:04 +0000</pubDate>
    </item>
    <item>
      <title>Adam Bien: Killing Some Bloat in Gothenburg - With Java EE 6</title>
      <guid isPermaLink="false">http://www.adam-bien.com/roller/abien/entry/killing_some_bloat_in_gothenburg</guid>
      <link>http://www.adam-bien.com/roller/abien/entry/killing_some_bloat_in_gothenburg</link>
      <description>I will spend few hours in &lt;a href="http://www.scandevconf.se/2010/conference/speakers/adam-bien/"&gt;Gothenburg at the SDC 2010 conference&lt;/a&gt; and give a talk with the title "Lightweight Killer Apps with Nothing But Vanilla Java EE 6". I'm really curious whether my first slide will look familiar to you - people outside Sweden are thinking, that it is the Golden Gate Bridge, what is entirely wrong.&lt;p&gt;&lt;/p&gt; I will have some time after the session. So if you have some
      questions, want to discuss, or hack some code - just ping me. I planned to spend more time in Gothenburg - a really nice city. Because of the project (over)load, probably caused by the general Java EE 6 take off :-), - I will only spend few hours.</description>
      <pubDate>Sun, 07 Mar 2010 21:28:55 +0000</pubDate>
    </item>
    <item>
      <title>Adam Bien: What Is www.sun.com/ponytails/ ?</title>
      <guid isPermaLink="false">http://www.adam-bien.com/roller/abien/entry/what_is_www_sun_com</guid>
      <link>http://www.adam-bien.com/roller/abien/entry/what_is_www_sun_com</link>
      <description>An interesting URL: &lt;a href="http://www.sun.com/ponytails" target="_self"&gt;http://www.sun.com/ponytails&lt;/a&gt;. It gets resolved to: &lt;a href="http://www.sun.com/software/opensource/"&gt;http://www.sun.com/software/opensource/&lt;/a&gt;. Now the question - why ponytail? :-)</description>
      <pubDate>Sat, 06 Mar 2010 11:51:31 +0000</pubDate>
    </item>
    <item>
      <title>Allan Lykke Christensen » NetBeans: LDAP Explorer 0.4 released</title>
      <guid isPermaLink="false">http://blogs.i2m.dk/allan/?p=265</guid>
      <link>http://blogs.i2m.dk/allan/2010/03/06/ldap-explorer-0-4-released/</link>
      <description>&lt;p&gt;&lt;a href="http://blogs.i2m.dk/allan/wp-content/filter_uid-0_4.png"&gt;&lt;img src="http://blogs.i2m.dk/allan/wp-content/filter_uid-0_4-300x254.png" title="LDAP Explorer 0.4 - now with basic filtering, server labels, and support for self-signed SSL certificates" height="254" width="300" alt="" class="alignright size-medium wp-image-267" /&gt;&lt;/a&gt;I managed to put the 0.4 release together before the original deadline of 13. March. In version 0.4 you’ll find:&lt;/p&gt;
      &lt;ul&gt; &lt;li&gt;Attributes are now sortable by clicking the column headings&lt;/li&gt; &lt;li&gt;Possible to give each LDAP server connection a label&lt;/li&gt; &lt;li&gt;Fixed NamingException when having more than one server connection / window open&lt;/li&gt; &lt;li&gt;Added connection timeout setting to LDAP server connection&lt;/li&gt; &lt;li&gt;More friendly attribute names&lt;/li&gt; &lt;li&gt;Support for Lotus Notes object classes&lt;/li&gt; &lt;li&gt;Silently accepts self-signed SSL
      certificates&lt;/li&gt; &lt;li&gt;Basic filtering&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;For the next release the UI will be changed slightly to accommodate query building and displaying of search results.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.i2m.dk/allan/wp-content/upgrade-0_4.png"&gt;&lt;img src="http://blogs.i2m.dk/allan/wp-content/upgrade-0_4-300x190.png" title="Upgrading to 0.4" height="190" width="300" alt="" class="alignleft size-medium wp-image-266" /&gt;&lt;/a&gt;&lt;/p&gt;
      &lt;p&gt;&lt;em&gt;Note: From version 0.3 an update center was automatically created upon installation. To upgrade simply go to Tools – Plugins – Updates and click “Reload Catalog” followed by selecting the new version and clicking “Upgrade”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&#160;&lt;/p&gt; &lt;p&gt;&#160;&lt;/p&gt; &lt;p&gt;You can find the project site on Google Code: &lt;a href="http://code.google.com/p/nb-ldap-explorer/"&gt;http://code.google.com/p/nb-ldap-explorer/&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 06 Mar 2010 02:20:03 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Generate a NetBeans Platform Installer with NetBeans IDE 6.9</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/generate_a_netbeans_platform_installer</guid>
      <link>http://blogs.sun.com/geertjan/entry/generate_a_netbeans_platform_installer</link>
      <description>If you've been looking through the last few development builds of the upcoming NetBeans IDE 6.9, this'll not be news to you: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/nb-installer-69-1.png" /&gt; &lt;/p&gt;&lt;p&gt;Yes, you'll be able to use the IDE to generate the installers of your NetBeans Platform applications. &lt;/p&gt;&lt;p&gt;After making a selection in the above dialog, you'll right-click on the application's project node in the Projects window and then choose
      this menu item: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/nb-installer-69-2.png" border="1" /&gt; &lt;/p&gt;&lt;p&gt;And then, after a few moments, you'll have a new installer ready to be distributed to your end users: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/nb-installer-69-3.png" /&gt; &lt;/p&gt;&lt;p&gt;The installer is created on the same infrastructure as the installer used by NetBeans IDE, so you'll not be surprised at the result:
      &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/nb-installer-69-4.png" /&gt; &lt;/p&gt;&lt;p&gt;In the end, your users will have your application installed via this installer generated by NetBeans IDE. &lt;/p&gt;&lt;p&gt;The one remaining question I have is to what extent the installer can be customized—can the icon be changed, can the text be modified, can additional panels be added to the generated installer? Hoping to find out soon.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 05 Mar 2010 16:03:39 +0000</pubDate>
    </item>
    <item>
      <title>Adam Bien: Best of 2009 - Most Popular Posts (Dead DAOs, Bloat Without EJBs, Java EE vs. Spring, VOs vs. DTOs)</title>
      <guid isPermaLink="false">http://www.adam-bien.com/roller/abien/entry/best_of_2009_most_popular</guid>
      <link>http://www.adam-bien.com/roller/abien/entry/best_of_2009_most_popular</link>
      <description>&lt;ol&gt;&lt;li&gt;January:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/in_the_age_of_dryness" target="_blank"&gt;In The Age Of DRYness - Do We Really Need Naming Conventions For Interfaces?&lt;/a&gt;&#160;(11288 Views)&lt;/li&gt; &lt;li&gt;February:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/daos_aren_t_dead_but" target="_blank"&gt;DAOs Aren't Dead - But They Either Collapsed Or Disappeared &lt;/a&gt;(9565 reads)&lt;/li&gt; &lt;li&gt;March:&#160;&lt;a
      href="http://www.adam-bien.com/roller/abien/entry/what_you_can_build_in1" target="_blank"&gt;What You Can Build In 50 Minutes With Java EE 5/6?&lt;/a&gt;&#160;(25942 views)&lt;/li&gt; &lt;li&gt;April:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/lean_service_architectures_with_java" target="_blank"&gt;Lean service architectures with Java EE 6 - And EJB 3 in particular&lt;/a&gt; (4304 views)&lt;/li&gt; &lt;li&gt;May:&#160;&lt;a
      href="http://www.adam-bien.com/roller/abien/entry/netbeans_6_7_beta_maven" target="_blank"&gt;Netbeans 6.7 Beta + Maven = Heaven (more than promising)&lt;/a&gt; (11697 views)&lt;/li&gt; &lt;li&gt;June:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/real_world_java_ee_patterns" target="_blank"&gt;Real World Java EE Patterns - Rethinking Best Practices Book And Project&lt;/a&gt;&#160;(15456 views)&lt;/li&gt; &lt;li&gt;July:&#160;&lt;a
      href="http://www.adam-bien.com/roller/abien/entry/java_ee_6_ejb_3" target="_blank"&gt;Lean Java EE 6 Without Spring And Spring 3.0 In Java EE 6 World: Summary and Conclusion (eJug Session)&lt;/a&gt;&#160;(16203 views)&lt;/li&gt; &lt;li&gt;August:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/value_object_vs_data_transfer" target="_blank"&gt;Value Object vs. Data Transfer Object (VO vs. DTO)&lt;/a&gt;&#160;(15928 views)&lt;/li&gt; &lt;li&gt;September:&#160;&lt;a
      href="http://www.adam-bien.com/roller/abien/entry/why_oracle_should_continue_to" target="_blank"&gt;Why Oracle Should Continue To Push NetBean&lt;/a&gt;s (18974 views)&lt;/li&gt; &lt;li&gt;October:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/jsf_jpa_ejb_bloat" target="_blank"&gt;(JSF + JPA) - EJB = Bloat&lt;/a&gt;&#160;(17436&#160;views)&lt;/li&gt; &lt;li&gt;November:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/two_amazing_netbeans_6_8beta" target="_blank"&gt;Two
      Amazing NetBeans 6.8Beta Features&lt;/a&gt;&#160;(8877&#160;views)&lt;/li&gt; &lt;li&gt;December:&#160;&lt;a href="http://www.adam-bien.com/roller/abien/entry/java_fx_composer_designer_for1" target="_blank"&gt;Java FX Composer / Designer for NetBeans 6.8 - First Smoke Test&lt;/a&gt;&#160;(15276 views)&lt;/li&gt; &lt;/ol&gt;&lt;div&gt;&lt;p&gt;The views above are monthly results - not overall views. The actual number should be much higher. RSS/Atom-Feed results are not&#160;even&#160;included in this
      statistic. The daily average ranged from 4.5k - 8k.&#160;&lt;/p&gt;&lt;p&gt;The stats for the year 2010 are more than promising. February is already the best month ever. Thanks for reading and especially the constructive 2.5k (!) comments.&#160;&lt;/p&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 05 Mar 2010 08:56:49 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: NetBeans IDE Java Editor Reference Guide</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19141 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/BSk-Xcsrb6U/nb-java-editor-ref</link>
      <description>The purpose of any IDE is to maximize productivity and support seamless development from a single tool. This reference document describes useful code assistance features, customization options, and navigation capabilities of the NetBeans IDE's Java Editor, which is free and open source. Most of these features have been available in versions earlier than NetBeans IDE 6.8. However, this guide has...&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/BSk-Xcsrb6U" height="1"
      width="1" /&gt;</description>
      <pubDate>Fri, 05 Mar 2010 07:20:48 +0000</pubDate>
    </item>
    <item>
      <title>The Aquarium: GlassFish in February</title>
      <guid isPermaLink="false">http://blogs.sun.com/theaquarium/entry/glassfish_in_february</guid>
      <link>http://blogs.sun.com/theaquarium/entry/glassfish_in_february</link>
      <description>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="http://en.wikipedia.org/wiki/February" title="February, from the Très riches heures du Duc de Berry"&gt; &lt;img src="http://blogs.sun.com/theaquarium/resource/RichesHeures.png" alt="ALT DESCR" vspace="4" hspace="4" align="left" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt; &lt;p&gt; The breadth and depth of the community is nicely illustrated by the variety of recent GlassFish-related blog posts. First, long time
      GlassFish supporter Masoud has a very detailed (it's actually a chapter of a book) &lt;a href="http://www.java.net/blog/kalali/archive/2010/03/02/open-mq-open-source-message-queuing-beginners-and-professionals-0"&gt;OpenMQ from A to Z&lt;/a&gt; entry. On the operations side, Byron has a set of two posts on &lt;a href="http://blogs.sun.com/foo/entry/how_to_run_glassfish_v3"&gt;How to Run GlassFish V3 as a Service on Linux Ubuntu/Debian&lt;/a&gt; and a follow-up on &lt;a
      href="http://blogs.sun.com/foo/entry/run_glassfish_v3_as_a"&gt;using a non-root Service&lt;/a&gt; (see also this&lt;a href="http://blogs.steeplesoft.com/2010/03/run-glassfish-v3-as-a-non-root-service-on-gentoo-linux/"&gt;Gentoo variation&lt;/a&gt; by Jason), while Felipe's on &lt;a href="http://weblogs.java.net/blog/felipegaucho/archive/2010/03/04/glassfish-v3-resources-administration-cli-tool-asadmin"&gt;provisioning GlassFish v3 resources with asadmin&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; In the "nice
      words" category, Juliano has a nicely written &lt;a href="http://www.java.net/blog/jjviana/archive/2010/02/26/java-enterprise-development-2010-style"&gt;"Java Enterprise Development - 2010 style"&lt;/a&gt; piece and &lt;a href="http://maksim.sorokin.dk/it/2010/02/19/development-with-glassfish-v3/"&gt;Maksim says&lt;/a&gt; &lt;em&gt;"GlassFish is becoming new de facto standard in Java applications. Development with new GlassFish v3 server and Eclipse now is really fast and comfortable. Server starts
      within a second, JEE6 is fully supported and hot code replacement works as it should."&lt;/em&gt;. &lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; On the Java EE 6 and web tier side we have Bobby &lt;a href="http://blogs.sun.com/bobby/entry/a_simple_ui_for_exploring"&gt;sharing a tool for exploring the platform&lt;/a&gt;, Aleksey discussing a &lt;a href="http://blogs.sun.com/oleksiys/entry/grizzly_2_0_simple_authentication"&gt;"Grizzly 2.0: simple authentication
      example"&lt;/a&gt;, while Justin puts &lt;a href="http://www.antwerkz.com/wicket-and-embedded-glassfish/"&gt;GlassFish embedded to work with Wicket&lt;/a&gt;. Rene has a two-part article on running a Java EE 6 Client Application with Netbeans 6.8 and GlassFish V3 - &lt;a href="http://log4ray.blogspot.com/2010/02/create-and-run-jee6-client-application.html"&gt;Part 1: Creating a Basic Application&lt;/a&gt; and &lt;a
      href="http://log4ray.blogspot.com/2010/02/create-and-run-jee6-client-application_17.html"&gt;Part 2: Enhancing and Deploying the Application&lt;/a&gt; while Jacob goes through the &lt;a href="http://semerusummit.de/Blog/Entries/2010/2/18_Running_Glassfish_in_IDEA_9.html"&gt;simple setup to have GlassFish and Intellij 9&lt;/a&gt; work together. &lt;/p&gt; &lt;p&gt; So while we wait for the GlassFish roadmap, we've seen one of the busiest month ever for February &lt;a
      href="http://glassfish.dev.java.net/servlets/SummarizeList?listName=users"&gt;on the user mailing list&lt;/a&gt; and this recent message from the GlassFish Product Management &lt;em&gt;&lt;a href="http://forums.java.net/jive/message.jspa?messageID=389952#389952"&gt;"GlassFish, and by extension, Metro, are strategic Oracle products"&lt;/a&gt;&lt;/em&gt;. Exciting times ahead! &lt;/p&gt;</description>
      <pubDate>Fri, 05 Mar 2010 03:44:10 +0000</pubDate>
    </item>
    <item>
      <title>Toni Epple: NetBeans Platform Training in Belgrade</title>
      <guid isPermaLink="false">http://eppleton.sharedhost.de/blog/?p=1131</guid>
      <link>http://eppleton.sharedhost.de/blog/?p=1131</link>
      <description>&lt;p&gt;If you’re a java developer in Serbia have a look here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.netbeans-serbia.org/in-the-news/netbeanstrainingatfacultyoforganisationalsciencesuniversityofbelgrade"&gt;NetBeans Training at Faculty of Organisational Sciences NetBeans User Group Serbia&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;It’s the first time I’ll be in Belgrade. The NetBeans User Group there looks like a really nice bunch:&lt;/p&gt; &lt;p&gt;&lt;a
      href="http://www.netbeans-serbia.org/"&gt;http://www.netbeans-serbia.org/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The training is on March 13 - 15. So we’ve got plenty of time to do workshops and hands-on trainings… Geertjan and I are looking forward to meet you there.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Mar 2010 13:57:26 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Serbia on the NetBeans Platform?</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/serbia_on_the_netbeans_platform</guid>
      <link>http://blogs.sun.com/geertjan/entry/serbia_on_the_netbeans_platform</link>
      <description>Looking forward to a trip to Belgrade next week, together with Toni, where the local NetBeans group will be porting &lt;a href="http://neuroph.sourceforge.net/"&gt;Neuroph&lt;/a&gt; to the NetBeans Platform. Here's their page: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/netbeans-platform-serbia.png" border="1" /&gt; &lt;/p&gt;&lt;p&gt;URL: &lt;a href="http://www.netbeans-serbia.org/"&gt;http://www.netbeans-serbia.org/&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;
      We'll be &lt;a href="http://edu.netbeans.org/courses/nbplatform-certified-training/"&gt;delivering a NetBeans Platform Certified Training&lt;/a&gt; there, i.e., at the University of Belgrade. Have you had a look at &lt;a href="http://edu.netbeans.org/contrib/slides/netbeans-platform/"&gt;our large library of NetBeans Platform training slides&lt;/a&gt;? You're free to use them yourself to deliver trainings, either for fun or for profit.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 04 Mar 2010 09:45:01 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: What's the Best Way to Mavenize a Large NetBeans Platform Application?</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19119 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/bXUeWxtloNQ/how-to-mavenize-netbeans-platform-apps</link>
      <description>If you've been following my blog on java.net, you'll know that I've completed the Mavenization of the blueMarine Core. It's refreshing to see the thing running again, together with the new software factory, after so much work. In fact, I started the conversion to Maven about nine months ago. Of course, I wasn't working on it fulltime and I had to learn a lot of new things, also related to the...&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/bXUeWxtloNQ" height="1"
      width="1" /&gt;</description>
      <pubDate>Thu, 04 Mar 2010 07:34:03 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: On the NetBeans Platform Build System (Part 4)</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19081 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/9azfUdcxObs/netbeans-platform-build-system-4</link>
      <description>In part 1 and part 2 and part 3 of this series, you were introduced to various topics relating to the NetBeans Platform build system by Hermien Pellissier, from Saab Systems Grintek in Johannesburg (read about their NetBeans Platform work for the South African National Defence Force here).&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/9azfUdcxObs" height="1" width="1" /&gt;</description>
      <pubDate>Wed, 03 Mar 2010 21:08:55 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Visual Thesaurus Software on the NetBeans Platform</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/visual_thesaurus_software_on_the</guid>
      <link>http://blogs.sun.com/geertjan/entry/visual_thesaurus_software_on_the</link>
      <description>&lt;font color="red"&gt;"Semtinel is a thesaurus analysis software that provides various visualisation and analysis techniques to supervise and enhance the quality of your thesaurus. Thus, the main users are thesaurus developers and developers of applications that use a thesaurus internally."&lt;/font&gt; &lt;p&gt;The above is a direct quote from &lt;a href="http://www.semtinel.org/"&gt;http://www.semtinel.org&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;And here's a screenshot of Semtinel Workbench,
      indicating that we're dealing with &lt;a href="http://platform.netbeans.org/screenshots.html"&gt;yet another application on the NetBeans Platform&lt;/a&gt;: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/semtinel-nb.jpg" /&gt; &lt;/p&gt;&lt;p&gt;The application originates from the University of Mannheim, in Germany. In fact, &lt;a href="http://ki.informatik.uni-mannheim.de/theses_jobs/bachelor_theses_studienarbeiten.html"&gt;you can do your thesis there&lt;/a&gt; (with prior
      NetBeans Platform experience being listed as "great") by working on this application. Here's another description of the software, together with an indication as to the reason why the NetBeans Platform was chosen: &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;font color="red"&gt;"With our Semtinel software, we analyse the results of automatic indexing systems that map documents to appropriate thesaurus terms. For demonstration purposes, we need a simple implementation of an automatic indexing
      system integrated in Semtinel. The system should be somewhat modular, so that further improvements like different stemmers can easily be integrated."&lt;/font&gt;&lt;/blockquote&gt; &lt;p&gt;Hurray again for the &lt;a href="http://platform.netbeans.org/"&gt;NetBeans Platform&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 03 Mar 2010 13:48:34 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: How to Create a Tabbed Toolbar on the NetBeans Platform</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/19025 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/JO1oAWyrWl0/how-create-tabbed-toolbar-on-nb</link>
      <description>One of the many enviable features of the Maltego client, the NetBeans Platform app that is part of some very powerful intelligence gathering software, is its really cool tabbed toolbar:&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/JO1oAWyrWl0" height="1" width="1" /&gt;</description>
      <pubDate>Tue, 02 Mar 2010 12:01:57 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Radio Propagation Simulator on the NetBeans Platform</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/radio_propagation_simulator_on_the</guid>
      <link>http://blogs.sun.com/geertjan/entry/radio_propagation_simulator_on_the</link>
      <description>RaPSor is a simulator of radio propagation channels, based on more than 10 years of research. It is used both in research and for educational purpose at the &lt;a href="http://en.wikipedia.org/wiki/University_of_Poitiers"&gt;University of Poitiers&lt;/a&gt; in France. Go to the &lt;a href="http://sourceforge.net/projects/rapsor/files/"&gt;RaPSor site on SourceForge&lt;/a&gt; and you will learn that one of RaPSor's main advantages is "its extensibility, allowing anyone to add new
      geometric primitives, new simulation algorithms, new usage of simulation results, or new kinds of antennas". &lt;p&gt;Here are some screenshots I took after installing this cool application and opening one of the "scene" files (an XML format) included in the download: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/rapsor-nb-1.png" /&gt; &lt;/p&gt;&lt;p&gt;With the mouse, I was able to move around the scene, which is available in 2D, as well as 3D format:
      &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/rapsor-nb-2.png" /&gt; &lt;/p&gt;&lt;p&gt;And why was the NetBeans Platform chosen as the starting point of this application? The PDF available on the SourceForge site is quite explicit: &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;font color="red"&gt;"RaPSor ought to be an extensible, modular, and open-source tool. For portability, we chose the Java programing language, leading to an application running on many
      architectures and systems, like Unix, Linux, Windows or MacOs. In order to concentrate developers efforts on the business work, we first chose a Rich Client Platform (a.k.a. RCP). Due to the educational aspects of this project, we chose to work with NetBeans RCP, since our students have some courses with it. &lt;/font&gt;&lt;p&gt;&lt;font color="red"&gt;Such a platform provides all the redundant programming tools and methods that any developer should write in their application, such as the file and
      window management, connecting actions to menu items, toolbars... NetBeans RCP comes with many functionalities and provides a reliable and flexible application architecture. Its modularity allows to select the functionalities a developer wants to keep and allows even the users to add or remove new or unnecessary tools. Moreover, users can write new tools, or plugins, using either the NetBeans IDE or another IDE, adding the new tools later into RaPSor."&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
      &lt;p&gt;The NetBeans Lookup API, which enables modules to be decoupled from each other, is also referred to repeatedly in the document. You can read the whole PDF by clicking &lt;a href="http://downloads.sourceforge.net/project/rapsor/RaPSor.pdf?use_mirror=switch"&gt;here&lt;/a&gt; (or, if the PDF moves sometime in the future, just go to the &lt;a href="http://sourceforge.net/projects/rapsor/files/"&gt;RaPSor site on SourceForge&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 02 Mar 2010 10:53:52 +0000</pubDate>
    </item>
    <item>
      <title>Geertjan's Blog: Plasmid Microarray Designer on the NetBeans Platform</title>
      <guid isPermaLink="false">http://blogs.sun.com/geertjan/entry/plasmid_microarray_designer_on_the</guid>
      <link>http://blogs.sun.com/geertjan/entry/plasmid_microarray_designer_on_the</link>
      <description>PLASMID is a tool for designing plasmid microarrays by using existing mixed microarray data or using virtual microarray data. PLASMID combines clustering methods, probe ranking methods, and stepwise discriminant analysis to aid in the design of optimized, mixed-plasmid microarrays. These microarrays can be used subsequently for classification and comparative genetics of plasmids. &lt;p&gt;The above information I copied &lt;a
      href="http://www.vetmed.wsu.edu/research_vmp/microArrayLab/PLASMID.aspx"&gt;from the page where you can freely download PLASMID&lt;/a&gt;, which is a Swing application based on the NetBeans Platform. The page claims that the application currently supports Windows only, but it seems to work fine on Ubuntu too, based on these screenshots I took after downloading the application and following the startup scenario: &lt;/p&gt;&lt;p&gt;First, open the sample dataset file: &lt;/p&gt;&lt;p&gt;&lt;img
      src="http://blogs.sun.com/geertjan/resource/plasmid-nb-2.png" /&gt; &lt;/p&gt;&lt;p&gt;Then, process the file via a wizard in the application: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/plasmid-nb-1.png" /&gt; &lt;/p&gt;&lt;p&gt;Finally, view (and save) the result: &lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/plasmid-nb-3.png" /&gt; &lt;/p&gt;&lt;p&gt;More about the application can be read in "&lt;a
      href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2533577/"&gt;A Java-based tool for the design of classification microarrays&lt;/a&gt;". Why was the NetBeans Platform used as the basis of this application, according to this document? Well, here you go: &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;font color="red"&gt;"The NetBeans platform was chosen for development because addition of new functions is easily implemented. Also, many of the tasks common to desktop applications are provided by
      NetBeans. These include user interface management (e.g., menus and toolbars), user settings management, storage management (saving and loading any kind of data), window management, and wizard framework (supporting step-by-step dialogs). Each function is implemented as a NetBeans module and can be installed or removed easily without affecting existing functions. Java is a platform-independent programming language, so although PLASMID has been developed using the Windows operating system, it will be
      relatively easy to adapt it to other operating systems. We intend to extend PLASMID to both the Linux and Mac OS X operating systems. In addition to Java, PLASMID uses code written using the C++ programming language. C++ is needed for computationally intensive tasks that require greater speed and efficiency. The use of two different programming languages is transparent to the user."&lt;/font&gt;&lt;/blockquote&gt; &lt;p&gt;Hurray, yet another &lt;a
      href="http://platform.netbeans.org/screenshots.html"&gt;NetBeans Platform application&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 01 Mar 2010 19:39:27 +0000</pubDate>
    </item>
    <item>
      <title>Bistro!: Just say no to Scarlett Johansson, Brad Pitt and the rest (but say yes to Bean Validation)!</title>
      <guid isPermaLink="false">http://blogs.sun.com/alexismp/entry/just_say_no_to_scarlett</guid>
      <link>http://feedproxy.google.com/~r/Bistro/~3/DPxdWaLrxA4/just_say_no_to_scarlett</link>
      <description>&lt;p&gt; Every single application with user interaction needs some sort of validation. &lt;a href="http://jcp.org/en/jsr/summary?id=316"&gt;Java EE 6&lt;/a&gt; now has its very own standard &lt;a href="http://jcp.org/en/jsr/summary?id=303"&gt;Bean Validation API (JSR 303)&lt;/a&gt; with a number of easy-to-use built-in constraints (&lt;code&gt;@NotNull&lt;/code&gt;, &lt;code&gt;@Size&lt;/code&gt;, ...). &lt;a href="https://glassfish.dev.java.net/downloads/v3-final.html"&gt;GlassFish
      v3&lt;/a&gt; ships with the &lt;a href="http://validator.hibernate.org"&gt;Hibernate Validator&lt;/a&gt; reference implementation which offers some additional annotations such as &lt;code&gt;@Email&lt;/code&gt;. I've decided for the sake of this blog entry that it was not good enough for me as it considers null, empty and &lt;code&gt;foo@barcom&lt;/code&gt; as all valid (and does the check as part of the &lt;code&gt;ConstraintValidator&lt;/code&gt;, not in the definition of the
      &lt;code&gt;@Email&lt;/code&gt; annotation). &lt;/p&gt; &lt;p&gt; So here's my new implementation of a constraint to check for valid email addresses with the additional feature of rejecting dummy data, such as &lt;code&gt;angelina.jolie@foo.bar&lt;/code&gt; (too bad it it was the real one trying to post a comment to your blog or mine!). In my implementation the annotation constraint is called &lt;code&gt;@EmailAddress&lt;/code&gt; and defined as follows : &lt;/p&gt; &lt;p&gt; &lt;code&gt;
      &lt;strong&gt;@Size&lt;/strong&gt;(min=5, message="{foo.bar.min_size}") &lt;br /&gt;&lt;strong&gt;@NotNull&lt;/strong&gt;(message="{foo.bar.cannot_be_null}") &lt;br /&gt;&lt;strong&gt;@Pattern&lt;/strong&gt;(regexp="[a-z0-9!#$%&amp;amp;'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&amp;amp;'*+/=?^_`{|}~-]+)*" + &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "@" + &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; message="{foo.bar.fails_regexp_validation}") &lt;br /&gt;&lt;strong&gt;@Constraint(validatedBy=EmailValidator.class)&lt;/strong&gt; &lt;br /&gt;@Documented &lt;br /&gt;@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) &lt;br
      /&gt;@Retention(RetentionPolicy.RUNTIME) &lt;br /&gt;public @interface &lt;strong&gt;EmailAddress&lt;/strong&gt; { &lt;br /&gt;&#160;&#160;&#160;&#160; String message() default "{foo.bar.invalid_email}"; &lt;br /&gt;&#160;&#160;&#160;&#160; Class[] groups() default {}; &lt;br /&gt;&#160;&#160;&#160;&#160; Class[] payload() default {}; &lt;br /&gt;} &lt;/code&gt; &lt;/p&gt; &lt;p&gt; Things to note: &lt;br /&gt;• A constrained value can fail one or more validation tests in no particular order. Each
      failure will be reported and available upon validation. In particular you cannot assume that the data passed to the constraint validator will not be null (and the use of &lt;code&gt;@NotNull&lt;/code&gt; could arguably be removed since nullability is tested in the validation code below). &lt;br /&gt;• I'm using the &lt;code&gt;@Pattern&lt;/code&gt; annotation here rather than manipulating the regex in the explicit validation code (the regex itself comes from a slightly simplified version of the one
      defined by &lt;a href="http://tools.ietf.org/html/rfc2822"&gt;RFC 2822&lt;/a&gt;). &lt;br /&gt;• error messages use externalized strings located in a resources bundle &lt;code&gt;ValidationMessages.properties&lt;/code&gt; file. &lt;/p&gt; &lt;p&gt; Here's the rather straightforward validation code (see &lt;code&gt;@Constraint&lt;/code&gt; above) : &lt;/p&gt;&lt;p&gt; &lt;code&gt; public class &lt;strong&gt;EmailValidator&lt;/strong&gt; implements &lt;strong&gt;ConstraintValidator&amp;lt;EmailAddress,
      String&gt;&lt;/strong&gt; { &lt;br /&gt;&#160;&#160;&#160;&#160; ArrayList&amp;lt;String&gt; blackListedDomains; &lt;br /&gt;&#160;&#160;&#160;&#160; ArrayList&amp;lt;String&gt; blackListedNames; &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;&#160; public void initialize(&lt;strong&gt;EmailAddress&lt;/strong&gt; constraintAnnotation) { &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // a better implementation would probably retrieve data &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // from a file, a database or a web service. &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedDomains = new ArrayList&amp;lt;String&gt;(); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedDomains.add("guerrillamail.com"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedDomains.add("mailinator.com"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
      blackListedDomains.add("foo.com"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedDomains.add("foo.bar"); &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames = new ArrayList&amp;lt;String&gt;(); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("james.bond"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("jamesbond"); &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("nicole.kidman"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("brad.pitt"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("scarlett.johansson"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("angelina.jolie"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("foo"); &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("bar"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("foo.bar"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("foobar"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("toto"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; blackListedNames.add("titi"); &lt;br /&gt;&#160;&#160;&#160;&#160; } &lt;br /&gt;
      &lt;br /&gt;&#160;&#160;&#160;&#160; public boolean isValid(&lt;strong&gt;String&lt;/strong&gt; value, ConstraintValidatorContext context) { &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; int at = value.indexOf('@'); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (value == null || "".equals(value) || at&amp;lt;0 ) return false; &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String username = value.substring(0, at).toLowerCase(); &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String domainname = value.substring(at+1).toLowerCase(); &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ( blackListedDomains.contains(domainname) ) return false; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ( blackListedNames.contains(username)) return false; &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return true; &lt;br /&gt;&#160;&#160;&#160;&#160; } &lt;br /&gt;}
      &lt;/code&gt; &lt;/p&gt; &lt;p&gt; The main thing to notice in the code above is the use of generics in &lt;code&gt;ConstraintValidator&lt;/code&gt; interface which in turn defines the argument types in the &lt;code&gt;initialize()&lt;/code&gt; and &lt;code&gt;isValid()&lt;/code&gt; methods. &lt;/p&gt; &lt;p&gt; This newly defined &lt;code&gt;@EmailAddress&lt;/code&gt; constraint can now be applied to class attributes or getters. In the case of JPA entities or JSF attributes there is no extra step,
      all the glue is provided to validate data upon calling the JPA life-cycle methods and applying the JSF request life-cycle, with error messages surfaced to the user via those two APIs. In other cases, Bean Validation offers API to explicitly validate the data illustrated in this sample unit test : &lt;/p&gt; &lt;p&gt; &lt;code&gt; public class TestEmailConstraint { &lt;br /&gt;&#160;&#160;&#160; Validator validator; &lt;br /&gt;&#160;&#160;&#160; Customer myCustomer; &lt;br /&gt; &lt;br
      /&gt;&#160;&#160;&#160; @Before &lt;br /&gt;&#160;&#160;&#160; public void setUp() { &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; &lt;strong&gt;ValidatorFactory factory = Validation.buildDefaultValidatorFactory();&lt;/strong&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; &lt;strong&gt;validator = factory.getValidator();&lt;/strong&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; myCustomer = new Customer(); &lt;br /&gt;&#160;&#160;&#160; } &lt;br /&gt; &lt;br /&gt;&#160;&#160;&#160;
      @Test &lt;br /&gt;&#160;&#160;&#160; public void testEmailBV() { &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; myCustomer.setEmail("angelina.jolie@oracle.com"); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; &lt;strong&gt;Set&amp;lt;ConstraintViolation&amp;lt;Customer&gt;&gt; violations = validator.validate(myCustomer);&lt;/strong&gt; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; for (ConstraintViolation&amp;lt;Customer&gt; violation : violations) { &lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.print(&lt;strong&gt;violation.getInvalidValue()&lt;/strong&gt; + " =&gt; "); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(&lt;strong&gt;violation.getMessage()&lt;/strong&gt;); &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; } &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160; assertTrue(violations.size() &gt; 0); &lt;br /&gt;&#160;&#160;&#160; } &lt;br /&gt;} &lt;/code&gt; &lt;/p&gt; &lt;img
      src="http://feeds.feedburner.com/~r/Bistro/~4/DPxdWaLrxA4" height="1" width="1" /&gt;</description>
      <pubDate>Mon, 01 Mar 2010 10:22:15 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: Rewritten NetBeans Platform Paint Application in NetBeans IDE 6.9</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/18959 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/GDxzRiGpn04/rewritten-netbeans-paint-app</link>
      <description>Tim Boudreau has rewritten parts of the NetBeans Platform Paint Application (which is a NetBeans Platform sample distributed with NetBeans IDE). The changed Paint Application (together with updated tutorial) will be part of the release of NetBeans IDE 6.9. Two parts have changed significantly, both relating to the "Save" feature of the Paint application, all of it within the...&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/GDxzRiGpn04" height="1" width="1"
      /&gt;</description>
      <pubDate>Mon, 01 Mar 2010 10:14:38 +0000</pubDate>
    </item>
    <item>
      <title>NetBeans DZone: On the NetBeans Platform Build System (Part 3)</title>
      <guid isPermaLink="false">http://netbeans.dzone.com/18957 at http://netbeans.dzone.com</guid>
      <link>http://feeds.dzone.com/~r/zones/netbeans/~3/brgdkoLBvZg/netbeans-platform-build-system-3</link>
      <description>In part 1 and part 2 of this series, Hermien Pellissier, from Saab Systems Grintek in Johannesburg (read about their work for the South African National Defence Force here), discussed the structure of the NetBeans Platform build system. In this part, she addresses three related areas that you should be aware of when working with the NetBeans Platform build system.&lt;img src="http://feeds.feedburner.com/~r/zones/netbeans/~4/brgdkoLBvZg" height="1" width="1" /&gt;</description>
      <pubDate>Mon, 01 Mar 2010 09:35:33 +0000</pubDate>
    </item>
  </channel>
</rss>
