<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns="http://purl.org/rss/1.0/">
  <channel rdf:about="http://www.planetnetbeans.org/">
    <title>Planet NetBeans</title>
    <link>http://www.planetnetbeans.org/</link>
    <description>Planet NetBeans - http://www.planetnetbeans.org/</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://blogs.sun.com/geertjan/entry/groovy_makes_web_services_embarrassingly" />
        <rdf:li rdf:resource="http://blogs.sun.com/coreqa/entry/why_is_build_action_grey" />
        <rdf:li rdf:resource="http://www.jroller.com/hmichel/entry/netbeans_6_5_database_support" />
        <rdf:li rdf:resource="http://blogs.sun.com/alexismp/entry/a_visit_to_jug_ukraine" />
        <rdf:li rdf:resource="http://www.adam-bien.com/roller/abien/entry/no_xml_dependency_injection_jpa" />
        <rdf:li rdf:resource="http://blogs.sun.com/jqian/entry/automate_xam_model_generation" />
        <rdf:li rdf:resource="http://blogs.sun.com/geertjan/entry/hello_grails_plugin" />
        <rdf:li rdf:resource="http://blog.jdevelop.eu/?p=155" />
        <rdf:li rdf:resource="http://blogs.sun.com/tm/entry/hudson_a_a_tool_for" />
        <rdf:li rdf:resource="http://blogs.sun.com/netbeansphp/entry/feature_freeze_was_reached" />
        <rdf:li rdf:resource="http://cld.blog-city.com/staroffice_9_beta_available.htm" />
        <rdf:li rdf:resource="http://blogs.sun.com/alexismp/entry/gartner_sur_l_open_source" />
        <rdf:li rdf:resource="tag:blogger.com,1999:blog-3579988500929589093.post-4563946139160596251" />
        <rdf:li rdf:resource="http://blogs.sun.com/divas/entry/martin_talks_about_rake_runner" />
        <rdf:li rdf:resource="tag:blogger.com,1999:blog-4439135070202734584.post-7326075240376784533" />
        <rdf:li rdf:resource="tag:blogger.com,1999:blog-4439135070202734584.post-6810333323767059108" />
        <rdf:li rdf:resource="http://blogs.sun.com/geertjan/entry/integrating_meera_with_grails_and" />
        <rdf:li rdf:resource="http://blogs.sun.com/netbeansphp/entry/generate_constructor_getters_and_setters" />
        <rdf:li rdf:resource="http://blogs.sun.com/branajam/entry/ajax_and_jsp" />
        <rdf:li rdf:resource="http://blogs.sun.com/alexismp/entry/java_ee_6_le_point" />
        <rdf:li rdf:resource="http://cld.blog-city.com/sprints_samsung_instinct_java_contest_is_live__webcast_and.htm" />
        <rdf:li rdf:resource="http://martin.adamek.sk/?p=27" />
        <rdf:li rdf:resource="http://blogs.sun.com/geertjan/entry/grails_this_time_with_tools" />
        <rdf:li rdf:resource="http://cld.blog-city.com/grails__three_new_articles_legacy_dbs_mobile_web_google_.htm" />
        <rdf:li rdf:resource="http://blogs.sun.com/geertjan/entry/search_the_guardian_from_a" />
        <rdf:li rdf:resource="http://blogs.sun.com/amitsaha/entry/using_native_python_cpython_with" />
        <rdf:li rdf:resource="http://blogs.sun.com/wind/entry/netbeans%E6%8F%92%E4%BB%B6blackberry" />
        <rdf:li rdf:resource="http://blogs.sun.com/wind/entry/rim_blackberry_plugin_for_netbeans" />
        <rdf:li rdf:resource="http://blogs.sun.com/amitsaha/entry/building_a_nbpython_standalone" />
        <rdf:li rdf:resource="http://cld.blog-city.com/got_blackberry__get_java_and_netbeans.htm" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://blogs.sun.com/geertjan/entry/groovy_makes_web_services_embarrassingly">
    <title>Geertjan's Blog: Groovy Makes Web Services Embarrassingly Easy</title>
    <link>http://blogs.sun.com/geertjan/entry/groovy_makes_web_services_embarrassingly</link>
    <content:encoded>Meera pointed me to another very cool article she's written, &lt;a href="http://www.testearly.com/2008/07/23/restful-web-services-in-60-seconds/"&gt;RESTful Web Services in 60 Seconds&lt;/a&gt;, and (because I've been in an intensely groovy frame of mind for a few days now), I immediately associated it with my earlier experiments with Groovy and web services, in a blog entry entitled &lt;a href="http://blogs.sun.com/geertjan/entry/groovy_web_service"&gt;Groovy Web Service&lt;/a&gt;
    from the end of last year, based on some key learnings from &lt;a href="http://groovy.codehaus.org/GroovyWS"&gt;the official Groovy web service site&lt;/a&gt;, (which has expanded a lot since then, I noticed today). At the time, I needed to hack things quite a bit to get web services to work with Groovy in NetBeans IDE (as honestly recorded in that blog entry). &lt;p&gt;So, I thought, how do things stand today in terms of Groovy and web services in NetBeans IDE? To be perfectly honest, the improvement
    couldn't have been much better, aside from the currently incomplete code completion (which is a work in progress still). In fact, I was able to mix and match Matisse with a Groovy web service, although you can't tell from the result: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/groovy-makes-ws-easy.png" border="1" /&gt; &lt;p&gt;This is the &lt;tt&gt;actionPerformed&lt;/tt&gt; in the JButton in the Matisse form that you see above: &lt;pre&gt;ShakesWSClient shakes = new ShakesWSClient();
    private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) { String searchString = shakes.setSearchString(searchTextArea.getText()); resultTextArea.setText(searchString); }&lt;/pre&gt; &lt;p&gt;And this is the ENTIRE web service client: &lt;pre&gt;package org.me.hello import groovyx.net.ws.WSClient class ShakesWSClient { def proxy = new WSClient("http://www.xmlme.com/WSShakespeare.asmx?WSDL", ShakesWSClient.class.classLoader) String setSearchString(searchString) { def newQuote =
    proxy.GetSpeech(searchString) return newQuote } }&lt;/pre&gt; &lt;p&gt;Really, that's just a bit ridiculous. And I'm sure that the Groovy experts could cut the above code down a few lines and characters further. And I didn't need to hack anything in NetBeans. The Groovy class behaved seamlessly with the Java class.&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-23T16:33:20+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/coreqa/entry/why_is_build_action_grey">
    <title>NetBeans Core QA: Why is 'Build' action grey on new project?</title>
    <link>http://blogs.sun.com/coreqa/entry/why_is_build_action_grey</link>
    <content:encoded>Create new project in NetBeans IDE. Right click the project. The &lt;b&gt;Build&lt;/b&gt; and &lt;b&gt;Clean&lt;/b&gt; action is always grey out. &lt;center&gt; &lt;img src="http://blogs.sun.com/coreqa/resource/nb65/compile-on-save.jpg" /&gt; &lt;/center&gt; When you open an old project then it is there. So what is the magic here? Go to project properties, in category &lt;i&gt;Compiling&lt;/i&gt; you'll find &lt;b&gt;Compile On Save&lt;/b&gt; check box. When checked then the saved file
    is always compiled when you save it. &lt;br /&gt;&lt;center&gt; &lt;img src="http://blogs.sun.com/coreqa/resource/nb65/pp-compile-on-save.jpg" /&gt; &lt;/center&gt; &lt;br /&gt;&lt;br /&gt; Are you interested in more details? Try it in &lt;a href="http://deadlock.netbeans.org/hudson/job/trunk/"&gt;latest builds&lt;/a&gt; or &lt;a href="http://wiki.netbeans.org/CompileOnSave"&gt;read the specification&lt;/a&gt;.</content:encoded>
    <dc:date>2008-07-23T14:04:23+00:00</dc:date>
  </item>
  <item rdf:about="http://www.jroller.com/hmichel/entry/netbeans_6_5_database_support">
    <title>Michel Graciano's Weblog: NetBeans 6.5 - Database support refreshed...</title>
    <link>http://www.jroller.com/hmichel/entry/netbeans_6_5_database_support</link>
    <content:encoded>&lt;p&gt;The main NetBeans 6.5 feature I have been looking forward to is the new database support. For details about what is coming, &lt;a href="http://wiki.netbeans.org/DatabaseFeaturesForNB65"&gt;look here for details&lt;/a&gt;.&lt;br /&gt; For now, we already can use code completion, some features as editable queries result, quick column info on result table and another really cool features. You can see below an image about what is coming...&lt;br /&gt; &lt;p align="center"&gt;&lt;a
    target="_blank" href="http://www.jroller.com/hmichel/resource/sql_editor_metal.png"&gt;&lt;img src="http://www.jroller.com/hmichel/resource/sql_editor_cc_metal.png" /&gt;&lt;br /&gt; [Click to enlarge]&lt;br /&gt; &lt;/a&gt;&lt;br /&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;BTW, the execution plan will be implemented just for feature versions. If it is important to you, &lt;a href="http://www.netbeans.org/issues/show_bug.cgi?id=141352"&gt;vote for it now here&lt;/a&gt;! &lt;img
    src="http://www.jroller.com/images/smileys/smile.gif" class="smiley" alt=":)" title=":)" /&gt;&lt;/p&gt; &lt;p&gt;Happy coding!&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-23T13:59:38+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/alexismp/entry/a_visit_to_jug_ukraine">
    <title>Bistro!: A visit to JUG Ukraine</title>
    <link>http://blogs.sun.com/alexismp/entry/a_visit_to_jug_ukraine</link>
    <content:encoded>&lt;img src="http://blogs.sun.com/alexismp/feed/entries/rss" border="0" vspace="4" hspace="4" align="left" /&gt; &lt;p&gt; Call me crazy or workaholic but I took a few hours out of my vacation in &lt;a href="http://en.wikipedia.org/wiki/Kiev"&gt;Kiev, Ukraine&lt;/a&gt; to visit the &lt;a href="http://jug.com.ua/"&gt;local JUG&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; The meeting was hosted at &lt;a href="http://www.globallogic.com/"&gt;GlobalLogic&lt;/a&gt; (somewhat of a &lt;a
    href="http://picasaweb.google.com/jug.ukraine/200807"&gt;geek's paradise&lt;/a&gt;) and was pretty well attended given the last-minute organization. The presentation slides (in English) are &lt;a href="http://blogs.sun.com/alexismp/resource/GlassFish-UkraineJUG-July2008_long.pdf"&gt;here&lt;/a&gt; and the full photo album &lt;a href="http://picasaweb.google.com/jug.ukraine/200807"&gt;there&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; &lt;img src="http://blogs.sun.com/alexismp/resource/jugua-01-small.png" /&gt;
    &lt;img src="http://blogs.sun.com/alexismp/resource/jugua-02-small.png" /&gt; &lt;/p&gt; &lt;p&gt; The presentation started with a bit of a challenge as no one was using GlassFish (mainly WebLogic, WebpShere, Tomcat and some JBoss). Given the presentation + Q&amp;amp;A session lasted almost 2 hours, I think it's fair to say that the interest was great. There were many questions during and after the presentation. Here's the refined Q&amp;amp;A: &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;OpenESB looks
    interesting (documentation, NetBeans graphical tooling, ...), but can I use &lt;a href="http://en.wikipedia.org/wiki/BPEL4People"&gt;BPEL4People&lt;/a&gt; with it?&lt;/b&gt; &lt;br /&gt;Unfortunately IBM does not support JBI and to the best of my knowledge, there is no BPEL4People service engine. OpenESB and JavaCAPS do come with a &lt;a href="http://www.oasis-open.org/committees/wsbpel/"&gt;WS-BPEL&lt;/a&gt; implementation though. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;What is the Hibernate/TopLink
    split? (me asking)&lt;/b&gt; &lt;br /&gt;- Hibernate: 60% &lt;br /&gt;- TopLink: 40% &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Is the 404 error in the admin console during your demo a bug or a feature ? ;)&lt;/b&gt; &lt;br /&gt;It's certainly a &lt;a href="https://glassfish.dev.java.net/issues/show_bug.cgi?id=5194"&gt;bug&lt;/a&gt;. Fixed in GlassFish 2.1. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Can I deploy OSGi bundles on GlassFish v3?&lt;/b&gt; &lt;br /&gt;Well, GlassFish v3 is running on top of
    Felix by default so it can host any OSGi bundle. The question is rather how it can extend the features of GFv3. This is a &lt;a href="http://blogs.sun.com/alexismp/resource/GFv3OSGiRuntime.png"&gt;nice picture&lt;/a&gt; to explain the additional metadata required. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Can GlassFish run on the JRE (not the JDK)? This makes a difference for me in terms of re-distribution.&lt;/b&gt; &lt;br /&gt;Provided you don't need to compile JSP's, GlassFish should run fine on top
    of the JRE, but this has not been extensively tested. Note that creating domains also requires the JDK (although that's not really runtime per say). I'll probably blog more on this, including the legal side to this (yes, you can redistribute the JDK). &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;How does GlassFish manage the ClassPath when using JSR 199 (Java Compiler API) to compile JSP's?&lt;/b&gt; &lt;br /&gt;The default &lt;a
    href="http://java.sun.com/javase/6/docs/api/java/lang/Compiler.html"&gt;JavaDoc for this API&lt;/a&gt; isn't really helpful. In general, &lt;a href="http://java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html"&gt;&lt;code&gt;JavaCompiler.getTask(...)&lt;/code&gt;&lt;/a&gt; gives you the ability to pass a set of options, including a classpath. You may also find this &lt;a href="https://hickory.dev.java.net/nonav/apidocs/index.html?net/java/dev/hickory/testing/Compilation.html"&gt;testing
    API&lt;/a&gt; to he helpful in debugging compile issues. Finally, this &lt;a href="http://blogs.sun.com/kchung/entry/speed_up_jsp_compilations_with"&gt;link&lt;/a&gt; explains the performance benefits of using JDK 6's javac API in GlassFish. All is done dynamically now, all you need to do is use Java 6 to run GlassFish. &lt;/p&gt; &lt;p&gt; &lt;img src="http://blogs.sun.com/alexismp/resource/jugua-05-small.png" /&gt; &lt;img src="http://blogs.sun.com/alexismp/resource/jugua-07-small.png" /&gt;
    &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Does GlassFish support distributed transactions between multiple JVMs?&lt;/b&gt; &lt;br /&gt;Well, if you're talking about WS-Coordination and WS-AtomicTransaction, these are both implemented as part of the &lt;a href="http://metro.dev.java.net"&gt;Metro&lt;/a&gt; Web Services tack which itself is part of GlassFish v2 and above. This enables distributed transactions even with .Net services. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;You claim that Grizzly has very
    good performance for serving both static and dynamic data. Do you have any benchmark results?&lt;/b&gt; &lt;br /&gt;Yes. You probably want to start looking at this &lt;a href="http://weblogs.java.net/blog/jfarcand/archive/2006/03/can_a_grizzly_r.html"&gt;original post&lt;/a&gt; by Jean-François Arcand. It's a bit old but Grizzly and GlassFish only got better with time! &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;How do you move from one version of GlassFish to another? Other products make this pretty
    painful.&lt;/b&gt; &lt;br /&gt;We take compatibility very seriously. It's a company thing (think Java 1.0). With every copy of GlassFish we provide &lt;code&gt;bin/asupgrade&lt;/code&gt; which allows you to point to a source GlassFish domain, say GlassFish v1, and a target, say GlassFish v2. The tool will proceed to read the applications, resources, and configuration and recreate them in the target application server. You can achieve similar results with &lt;code&gt;bin/asadmin
    backup-domain&lt;/code&gt; and &lt;code&gt;bin/asadmin restore-domain&lt;/code&gt; within a single version of GlassFish. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Have people started using GlassFish in production? Any more you could share?&lt;/b&gt; &lt;br /&gt;Some people (like &lt;a href="http://blogs.sun.com/stories/entry/wotif"&gt;Wotif.com&lt;/a&gt;) have started using GlassFish v1 in production. With the release of GlassFish v2 less than a year ago, we've seen a great level of deployments some (a
    fraction) is discussed by the users themselves on this blog: &lt;a href="http://blogs.sun.com/stories"&gt;http://blogs.sun.com/stories&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; &amp;bull; &lt;b&gt;Does GlassFish suffer from the same memory leaks as Tomcat on redeploys?&lt;/b&gt; &lt;br /&gt;We've fixed a couple of bug in GlassFish v2 which should make the redeployment of artifacts painless, including on Windows which had a tendency to lock deployed files. &lt;/p&gt; &lt;p&gt; So there you are, this is all the
    questions I could remember. If you have more, please comment here, I'll add them to the entry. &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-23T12:46:52+00:00</dc:date>
  </item>
  <item rdf:about="http://www.adam-bien.com/roller/abien/entry/no_xml_dependency_injection_jpa">
    <title>Adam Bien: "No XML" - Dependency Injection (EJB 3) For Absolute Beginners, or Is Possible To Inject With Less Code / XML?</title>
    <link>http://www.adam-bien.com/roller/abien/entry/no_xml_dependency_injection_jpa</link>
    <content:encoded>If you already invested the three minutes working through the &lt;a href="http://www.adam-bien.com/roller/abien/abien/entry/ejb_3_session_for_absolute" target="_self"&gt;post &amp;quot;EJB 3 (@Session) For Absolute Beginners - 3 Minutes Bootstrap, 5 Steps&amp;quot;&lt;/a&gt;, you can skip the requirements section.&lt;br /&gt;&lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Requirements: &lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Installled JDK 1.5 (better
    1.6)&amp;nbsp;&lt;/li&gt;&lt;li&gt;An IDE of your choice e.g. vi, emacs, netbeans 6.1 (SE or EE), Eclipse Genymede (SE or EE)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;@Stateless, @Local, @Entity, @Id Annotations in classpath &lt;br /&gt;&lt;/li&gt;&lt;li&gt;An Java EE 5 capable application server of your choice. It will work with Glassfish v1+ (better v2), JBoss 4.2+, WLS 10+ and probably Geronimo (not tried yed)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;What is Dependency Injection
    (DI)?&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;DI is a fancy term for a simple thing: someone (in this case something -&gt; the EJB 3 container) cares about managing the dependencies for you. You just have to declare the need for it.&lt;br /&gt;EJB 3 is using annotations for this purpose, absolutely &lt;b&gt;NO XML&lt;/b&gt; is needed. &lt;/p&gt;&lt;p&gt;Basically: everything which is stored in JNDI can be injected, instead of &amp;quot;looked up&amp;quot;.&lt;br
    /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;What is to do:&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt; To inject one Session Bean to another use the @EJB annotation:&lt;br /&gt;&lt;font&gt;@Stateless&lt;br /&gt;public class BookServiceBean implements BookService {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; @EJB&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private SearchService search;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Common error: you cannot inject classes in EJB
    3.0, but only interfaces. This will change in EJB 3.1...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To inject a DataSource, Queue, ConnectionFactory, Mail, SessionContext etc. you will need the @Resource annotation:&lt;br /&gt;&lt;font&gt;@Stateless&lt;br /&gt;public class BookServiceBean implements BookService {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;@Resource(mappedName=&amp;quot;jndi/sample&amp;quot;)&lt;/b&gt;&lt;br
    /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private DataSource ds;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To use the persistence, just use the &lt;font&gt;@PersistenceContext&lt;/font&gt; annotation:&lt;/li&gt;&lt;/ol&gt;&lt;font&gt;@Stateless&lt;br /&gt;public class BookServiceBean implements BookService {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; @PersistenceContext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private EntityManager em;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br
    /&gt;&lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;How it works:&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt; EJB 3 DI operates in &amp;quot;Convention over Configuration&amp;quot; mode. So in general: in case there is only one possibility - it will be injected.&lt;br /&gt;If there are more than one, you will have to configure manifesting your choice...&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;u&gt;The easiest possible start:&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;...is with &lt;a target="_blank"
    href="http://download.netbeans.org/netbeans/6.1/final/"&gt;Netbeans 6.1 (EE)&lt;/a&gt; -&amp;nbsp; download the first choice (139 MB - all included). It will not only install the IDE, but the application server (Reference Implementation: Glassfish RI), sample database etc. &lt;a href="http://www.eclipse.org/ganymede/" target="_self"&gt;Eclipse's Ganymede&lt;/a&gt; is good as well, however you will need more projects (one for EJB 3, one for JPA), setup the application server etc. so it takes slightly
    more time if you are an absolute beginner :-).&lt;u&gt; &lt;/u&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Why is it good:&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;No overhead - the code is as lean as it can be (any suggestions to make it simpler? :-)). The jar contains nothing else, but the interfaces and classes.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It's simple - and sufficient for most use cases.&lt;/li&gt;&lt;li&gt;Is easy to test: the reference can be set in JUnit directly (I will
    cover this in one of the next posts)&lt;/li&gt;&lt;li&gt;Is configurable - all annotations can be overruled by XML. Even legacy POJOs can be integrated that way. See an extrem example - the deployment of a &lt;a target="_blank" href="http://www.adam-bien.com/roller/abien/entry/ejb_3_0_and_legacy"&gt;Swing Table Model as EJB 3&lt;/a&gt; :-).&lt;/li&gt;&lt;li&gt;No vendor lock in: EJB 3 is one and only component model I now, which is vendor neutral, with several available implementations (JBoss,
    Glassfish, Weblogic, Websphere, openEJB, SAP, Spring Pitchfork, Geronimo + forgotten ones). &lt;a target="_blank" href="http://code.google.com/p/google-guice/"&gt;Google Guice&lt;/a&gt; is, however, promising as well. The dependency to EJB 3 spec itself is low - if it &lt;a target="_blank" href="http://www.adam-bien.com/roller/abien/entry/what_happens_if_you_start"&gt;does not work for you&lt;/a&gt;, you can deploy this &amp;quot;pojos&amp;quot; to something else...&lt;/li&gt;&lt;li&gt;The EJB 3
    container is able to monitor (see e.g. Glassfish &lt;a target="_blank" href="https://glassfish.dev.java.net/javaee5/monitoring/callflow/callflow.html"&gt;CallFlow&lt;/a&gt;) the whole invocation chain of EJBs. If you are developer: you probably don't care, but your operations :-)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;</content:encoded>
    <dc:date>2008-07-23T11:18:03+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/jqian/entry/automate_xam_model_generation">
    <title>Jun Qian (钱骏) 's Weblog: XAM AutoGen: a tool to automate XAM model generation</title>
    <link>http://blogs.sun.com/jqian/entry/automate_xam_model_generation</link>
    <content:encoded>&lt;p&gt;&lt;a href="http://xml.netbeans.org/xam-usage.html"&gt;XAM&lt;/a&gt;&lt;a href="http://xml.netbeans.org/xam-usage.html"&gt; (Extensible Abstract Model)&lt;/a&gt; is an extensible framework for building domain-specific object model on top of any base models. Many NetBeans modules (such as WSDL Model, Schema Model, XSLT Model, BPEL Model) are built on top of XAM. A XAM-based model is best suited for an IDE like NetBeans because of its IDE-friendly features (unlimited undo/redo,
    automatic synchronization, document fidelity, etc.), but you are not tied to NetBeans by using XAM.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;To create a XAM-based model, one typically starts from the schema describing the domain. It's a very tedious process to generate all the Java interfaces and implementation classes, along with the all plumbing classes (factories, visitors, etc.).&amp;nbsp; &lt;/p&gt; &lt;p&gt;To ease the pain of manual class creation, a tool is needed to auto generate a XAM-based
    model from a XML schema. This blog entry describes a tool that takes a domain schema as input, and uses &lt;a href="http://velocity.apache.org/"&gt;Velocity &lt;/a&gt;templates to generate a XAM-based model.&lt;/p&gt; &lt;p&gt;This tool doesn't use any popular schema language (such as &lt;a href="http://en.wikipedia.org/wiki/XML_Schema_%28W3C%29"&gt;XML Schema (W3C)&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/RELAX_NG"&gt;Relax NG&lt;/a&gt;.)&amp;nbsp; There are a couple of reasons:
    &lt;/p&gt; &lt;ol&gt; &lt;li&gt;A formal XML schema language is a little bit too heavy. I want to clearly define what is supported and what is not. &lt;br /&gt;&lt;/li&gt; &lt;li&gt;In addition to domain typing, I also want to add extra semantics. For example, I want to express an element FOO has an attribute BAR of type URI or QName which refers to another element BAZ in this or even a foreign domain.&lt;/li&gt; &lt;/ol&gt;The following is the meta schema (the schema for your domain schema) used by
    this tool:&lt;br /&gt; &lt;blockquote&gt; &lt;pre&gt;&amp;lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetNamespace="http://xml.netbeans.org/schema/xamgen" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:tns="http://xml.netbeans.org/schema/xamgen"
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elementFormDefault="qualified"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Content"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:sequence&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Element"&amp;nbsp; minOccurs="0" maxOccurs="unbounded"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="EnumType" minOccurs="0" maxOccurs="unbounded"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:sequence&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;
    &amp;lt;/xsd:element&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Element"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:sequence&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Attribute" minOccurs="0" maxOccurs="unbounded"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="ChildElement" minOccurs="0" maxOccurs="unbounded"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:sequence&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="name" type="xsd:string" use="required"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="className" type="xsd:string"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="root" type="xsd:boolean" default="false"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="virtual" type="xsd:boolean" default="false"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute
    name="base" type="xsd:string"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="anyAttribute" type="xsd:boolean" default="false"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="anyElement" type="xsd:boolean" default="false"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:element&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Attribute"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="name" type="xsd:string" use="required"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="type" type="xsd:string" use="required"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="reference" type="xsd:string"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;
    &amp;lt;/xsd:element&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="ChildElement"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="name" type="xsd:string" use="required"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &amp;lt;xsd:attribute name="multiplicity" type="xsd:string" default="n"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="ordered" type="xsd:boolean" default="false"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:element&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element
    name="EnumType"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:sequence&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Enumeration" minOccurs="0" maxOccurs="unbounded"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:sequence&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:element&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element name="Enumeration"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:attribute name="value" type="xsd:string" use="required"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:element&gt; &amp;lt;/xsd:schema&gt;&lt;/pre&gt; &lt;/blockquote&gt; &lt;p&gt; Most of it should be pretty straightforward. Here are a few notes:&lt;/p&gt; &lt;ul&gt;
    &lt;li&gt;Element.root: whether this element is a root element in an instance document in your domain. Multiple root elements in a domain are allowed.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Element.className: you can use this attribute to overwrite the default component class name derived from the element name.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Element.abstract: whether the corresponding component class is abstract.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Element.base: the name of the element whose corresponding
    domain component class serves as a base class.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Attribute.type: Java type, for example, &amp;quot;String&amp;quot;, &amp;quot;boolean&amp;quot;, &lt;a&gt;&lt;/a&gt;&amp;quot;java.util.List&amp;lt;javax.xml.namespace.QName&gt;&amp;quot;.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Attribute.reference: use this if the attribute value references another component in the model. &lt;br /&gt;&lt;/li&gt; &lt;ul&gt; &lt;li&gt;If you want to reference a component that can be globally
    identified by QName, use &amp;quot;QName&amp;quot; for the corresponding Attribute.type;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;For local reference, you can use &amp;quot;String&amp;quot; or &amp;quot;URI&amp;quot; as Attribute.type. Note that you can define the reference to be something like &amp;quot;elementA/elementB&amp;quot; for a multi-level reference.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Here is a schema instance describing an example
    domain:&lt;/p&gt; &lt;blockquote&gt; &lt;pre&gt;&amp;lt;Content xmlns="http://xml.netbeans.org/schema/xamgen" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsi:schemaLocation="http://xml.netbeans.org/schema/xamgen xamgen.xsd"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="composite"
    root="true"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="name" type="String"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="targetNamespace" type="java.net.URI"/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="component"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="connection"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="component"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="name" type="String"/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="provides"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="consumes"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="property"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="endpoint" virtual="true"&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="name" type="String"/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ChildElement name="interface" multiplicity="1"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="provides" base="endpoint"/&gt;
    &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="consumes" base="endpoint"/&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="property"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="name" type="String"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="value" type="String"/&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="override" type="OverrideOptions"/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="connection"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="source" type="javax.xml.namespace.QName"
    reference="consumes"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="target" type="javax.xml.namespace.QName" reference="provides"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="interface" virtual="true"/&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;
    &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Element name="interface.wsdl" className="InterfaceWSDL" base="interface"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Attribute name="interface" type="java.net.URI"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Element&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EnumType name="OverrideOptions"&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Enumeration value="no"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Enumeration value="may"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Enumeration value="must"/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/EnumType&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/Content&gt; &lt;/pre&gt; &lt;/blockquote&gt;
    &lt;p&gt;Here is a little configuration file:&lt;br /&gt;&lt;/p&gt; &lt;blockquote&gt;# XML file describing the domain data model. &lt;br /&gt;domainDataModelFile=DemoDataModel.xml&lt;br /&gt;&lt;br /&gt;# Namespace URI for the domain model&lt;br /&gt;namespaceURI=http://www.yourorg.org/xmlns/foo/1.0&lt;br /&gt;&lt;br /&gt;# Name of the domain model, such as &amp;quot;WSDL&amp;quot;, &amp;quot;Schema&amp;quot;, etc.&lt;br /&gt;domainModelName=Foo&lt;br /&gt;&lt;br /&gt;# Package name for the base model
    classes. &lt;br /&gt;modelPackage=org.yourorg.foo.model&lt;br /&gt;&lt;br /&gt;# Header file to be included in all the generated Java files.&lt;br /&gt;headerFile=Header.txt&lt;br /&gt;&lt;br /&gt;# Your name&lt;br /&gt;author=jqian &lt;br /&gt;&lt;/blockquote&gt; &lt;p&gt;The following shows the list of classes this XAM AutoGen Tool spits out when fed with the above domain schema and configuration file:&lt;br /&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;img
    src="http://blogs.sun.com/jqian/resource/xam_autogen_sample_output.png" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;b&gt;Usage:&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Here is the steps you need to take to use this tool: &lt;br /&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Unzip &lt;a href="http://blogs.sun.com/jqian/resource/XAMAutoGen.zip"&gt;this zip file&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Define your domain data model under the &lt;i&gt;config&lt;/i&gt; directory. &lt;br /&gt;&lt;/li&gt;
    &lt;li&gt;Configure a few properties in &lt;i&gt;config/config.properties&lt;/i&gt;&lt;/li&gt; &lt;li&gt;Run &amp;quot;&lt;i&gt;java&amp;nbsp; -jar&amp;nbsp; XAMGenerator.jar&amp;nbsp; &amp;lt;output_dir&gt;&lt;/i&gt;&amp;quot;. (The output_dir could be your Java project or NetBeans module project's source directory.)&lt;br /&gt;&lt;/li&gt; &lt;li&gt;In your project, add dependency to &lt;i&gt;platform8/lib/org-openide-util.jar&lt;/i&gt; and
    &lt;i&gt;ide9/modules/org-netbeans-modules-xml-xam.jar&lt;/i&gt; under your NetBeans directory.&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;That's it.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;I am currently using this tool to auto generate the data model for &lt;a href="http://en.wikipedia.org/wiki/Service_component_architecture"&gt;SCA (Service Component Architecture)&lt;/a&gt;. &lt;a href="http://blogs.sun.com/jqian/resource/SCADataModel.xml"&gt;Here &lt;/a&gt;is the domain schema for the SCA Assembly Model.
    You can compare it with the &lt;a href="http://www.osoa.org/xmlns/sca/1.0/"&gt;original XSD Schemas&lt;/a&gt;. Based on my usage, I am going to keep improving this XAM AutoGen Tool . If you have any comments or suggestions, I am all ears.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;P.S. I found this&lt;span id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt; &lt;/span&gt;&lt;a
    href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=9155"&gt;NetBeans Velocity plugin&lt;/a&gt;&lt;span id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt; along the way. Very nice as a Velocity template viewer, but once you start editing the templates, it's getting a little crazy sometimes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-23T00:05:52+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/geertjan/entry/hello_grails_plugin">
    <title>Geertjan's Blog: Creating a Grails Plugin in NetBeans IDE</title>
    <link>http://blogs.sun.com/geertjan/entry/hello_grails_plugin</link>
    <content:encoded>Let's create a plugin for Grails. Grails is, after all, modular and pluggable. Here's the ultimate simple Grails plugin, just to give an idea what is involved, from start to finish. The most useful references I have found so far are these: &lt;ul&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://www.grails.org/The+Plug-in+Developers+Guide"&gt;The Plug-in Developers Guide&lt;/a&gt; &lt;li&gt;&lt;p&gt;&lt;a
    href="http://jshingler.blogspot.com/2008/07/phone-number-custom-constraint-for.html"&gt;Phone Number Custom Constraint for Grails&lt;/a&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://dahernan.net/2008/02/my-first-grails-plugin.html"&gt;My first Grails plugin&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Between those three, you should have enough to figure things out. I still found it hard, despite those instructions and so to avoid having to figure things out
    again some time in the future, I'll write absolutely everything here. &lt;p&gt;&lt;u&gt;Creating the Plugin&lt;/u&gt; &lt;ol&gt; &lt;p&gt;&lt;li&gt;On the command line, run this: &lt;pre&gt;grails create-plugin SamplePlugin&lt;/pre&gt; &lt;p&gt;Now you have a Grails plugin. However, at the same time it is just another Grails application, which means you can simply open it in NetBeans IDE. (I.e., there is no import process and no NetBeans artifacts are added to the plugin in order to be able to open it
    in the IDE.) &lt;p&gt;&lt;li&gt;So open the plugin in the IDE. The Projects window isn't very interesting, it just shows you the same as you would normally see for Grails applications: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-1.png" /&gt; &lt;p&gt;The Files window (Ctrl-2) however, shows a lot more: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-2.png" /&gt; &lt;p&gt;Open the "SamplePluginGrailsPlugin.groovy" file and there you see the
    following: &lt;pre&gt;class SamplePluginGrailsPlugin { def version = 0.1 def dependsOn = [:] def doWithSpring = { // TODO Implement runtime spring config (optional) } def doWithApplicationContext = { applicationContext -&gt; // TODO Implement post initialization spring config (optional) } def doWithWebDescriptor = { xml -&gt; // TODO Implement additions to web.xml (optional) } def doWithDynamicMethods = { ctx -&gt; // TODO Implement registering dynamic methods to classes (optional) } def onChange = {
    event -&gt; // TODO Implement code that is executed when this class plugin class is changed // the event contains: event.application and event.applicationContext objects } def onApplicationChange = { event -&gt; // TODO Implement code that is executed when any class in a GrailsApplication changes // the event contain: event.source, event.application and event.applicationContext objects } }&lt;/pre&gt; &lt;p&gt;I.e., you have hooks for integrating your code into meaningful places in the plugin.
    &lt;p&gt;&lt;li&gt;Now we'll create code that will let our plugin provide a new "constraint". (If you don't know what that is, you will know by the time you finish reading all this.) To do so, we will need to extend &lt;a href="http://grails.org/doc/1.0.x/api/org/codehaus/groovy/grails/validation/AbstractConstraint.html"&gt;org.codehaus.groovy.grails.validation.AbstractConstraint&lt;/a&gt;, in a package within &lt;tt&gt;src/groovy&lt;/tt&gt;: &lt;pre&gt;import
    org.codehaus.groovy.grails.validation.AbstractConstraint import org.springframework.validation.Errors class BestFrameworkConstraint extends AbstractConstraint { private static final String DEFAULT_MESSAGE_CODE = "default.answer.invalid.message"; public static final String NAME = "oneCorrectResponse"; private boolean validateConstraint &lt;b&gt;//The parameter which the constraint is validated against:&lt;/b&gt; @Override public void setParameter(Object constraintParameter) { if (!(constraintParameter
    instanceof Boolean)) throw new IllegalArgumentException("Parameter for constraint [" + NAME + "] of property [" + constraintPropertyName + "] of class [" + constraintOwningClass + "] must be a boolean value"); this.validateConstraint = ((Boolean) constraintParameter).booleanValue() super.setParameter(constraintParameter); } &lt;b&gt;//Returns the default message for the given message code in the current locale:&lt;/b&gt; @Override protected void processValidate(Object target, Object propertyValue,
    Errors errors) { if (validateConstraint &amp;amp;&amp;amp; !validate(target, propertyValue)) { def args = (Object[]) [constraintPropertyName, constraintOwningClass, propertyValue] super.rejectValue(target, errors, DEFAULT_MESSAGE_CODE, "not." + NAME, args); } } &lt;b&gt;//Returns whether the constraint supports being applied against the specified type:&lt;/b&gt; @Override boolean supports(Class type) { return type != null &amp;amp;&amp;amp; String.class.isAssignableFrom(type); } &lt;b&gt;//The name of
    the constraint, which the user of the plugin will use //when working with your plugin.&lt;/b&gt; @Override String getName() { return NAME; } &lt;b&gt;//Validate this constraint against a property value, //In this case, ONLY "Grails" is valid, everything else will cause an error:&lt;/b&gt; @Override boolean validate(target, propertyValue) { propertyValue ==~ /^Grails$/ } }&lt;/pre&gt; &lt;p&gt;&lt;li&gt;Next, back in the Groovy plugin class that we looked at earlier, hook the above class into the
    plugin, using the "doWithSpring" closure to do so: &lt;pre&gt;def doWithSpring = { &lt;b&gt;ConstrainedProperty.registerNewConstraint( BestFrameworkConstraint.NAME, BestFrameworkConstraint.class);&lt;/b&gt; }&lt;/pre&gt; &lt;p&gt;&lt;li&gt;Now, back on the command line, navigate to within the "SamplePlugin" folder. There, run the following: &lt;pre&gt;grails package-plugin&lt;/pre&gt; &lt;p&gt;Back in the IDE, examine the ZIP file that the above command created: &lt;p&gt;&lt;img
    src="http://blogs.sun.com/geertjan/resource/grails-plugin-3.png" /&gt; &lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/ol&gt; &lt;p&gt;That ZIP file &lt;b&gt;is&lt;/b&gt; your Grails plugin. &lt;p&gt;&lt;u&gt;Installing the Plugin&lt;/u&gt; &lt;p&gt;Now we will install our plugin in a new application. &lt;ol&gt; &lt;p&gt;&lt;li&gt;First, create a new Grails
    application by going to the New Project wizard (Ctrl-Shift-N) and choosing Groovy | Grails Application. Click Next and type "SampleApplication" and then click Finish. &lt;p&gt;&lt;li&gt;After the IDE has finished running the "grails create-app" command for you, you will see the new application open in the IDE. Right-click it and choose "Plugins", as shown here: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-4.png" /&gt; &lt;p&gt;&lt;li&gt;In the Grails Plugins dialog, notice
    that the list gets filled with many potential plugins that you might want to install, from the Grails plugins repository. Instead, we'll install our own. Click Browse and browse to the ZIP file that we created three steps ago and notice that it appears in the text field at the bottom of the dialog: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-5.png" /&gt; &lt;p&gt;&lt;li&gt;Click "Install" and then a progress bar appears, ending with the plugin being installed. Notice that
    you can also uninstall it: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-6.png" /&gt; &lt;p&gt;&lt;li&gt;Take a look at your application and notice (in the Files window) what's happened to the plugin. It's been unzipped, plus the ZIP file is still there. And all that's been done in the "plugins" folder. &lt;i&gt;Nothing&lt;/i&gt; else has changed, which means that uninstallation is as simple as removing the folder from the "plugins" folder: &lt;p&gt;&lt;img
    src="http://blogs.sun.com/geertjan/resource/grails-plugin-15.png" /&gt; &lt;p&gt;Thanks to "convention over configuration", Grails knows exactly where everything is&amp;#8212;so that, for example, the "plugin.xml" file that you see above, if found within the folder structure you see above, is the indicator to Grails that a plugin is available for use.
    &lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/ol&gt; &lt;p&gt;&lt;u&gt;Using the Functionality Provided By the Plugin&lt;/u&gt; &lt;ol&gt; &lt;p&gt;&lt;li&gt;Let's now use our plugin. Create a domain class called "Quiz", after right-clicking the "Domain Classes" node and choosing "Create new Domain Class": &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-7.png"
    /&gt; &lt;p&gt;&lt;li&gt;Right-click the "Controllers" node and choose "Create new controller". Type "Quiz" and then click Finish. Use the Groovy editor to add one line for adding the scaffolding (and uncomment the other line): &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-8.png" /&gt; &lt;p&gt;&lt;li&gt;Back in the "Quiz" domain class, add your property and use the "oneCorrectResponse" constraint defined in your plugin, as shown here: &lt;p&gt;&lt;img
    src="http://blogs.sun.com/geertjan/resource/grails-plugin-9.png" /&gt; &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; The "oneCorrectResponse" constraint that you see above is the name of the constraint defined in the plugin. &lt;p&gt;&lt;li&gt;And then add the message to the &lt;tt&gt;messages.properties&lt;/tt&gt; file, which is within the "Messages Bundles" node: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-10.png" /&gt; &lt;p&gt;&lt;li&gt;Run the application and you will see that
    your constraint will prevent anything other than "Grails" from being considered acceptable, when "Create" is clicked below: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-plugin-13.png" /&gt; &lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/ol&gt; &lt;p&gt;Congratulations, you've created, installed, and used your first Grails
    plugin!&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-22T23:55:12+00:00</dc:date>
  </item>
  <item rdf:about="http://blog.jdevelop.eu/?p=155">
    <title>Another Random Developer Blog » NetBeans: Using Spring and Facelets together with NetBeans 6.1</title>
    <link>http://blog.jdevelop.eu/?p=155</link>
    <content:encoded>&lt;p&gt;&lt;img src="http://blog.jdevelop.eu/uploads/spring.gif" /&gt;&lt;img src="http://blog.jdevelop.eu/uploads/glassfishlogo.jpg" /&gt;&lt;img src="http://blog.jdevelop.eu/uploads/facelets.jpg" /&gt;&lt;img src="http://blog.jdevelop.eu/uploads/netbeanslogo.gif" /&gt;&lt;br /&gt; &lt;strong&gt;&lt;span&gt;&lt;a href="http://blog.jdevelop.eu/?p=155" rel="nofollow"&gt;[Read more]&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; Technorati Tags:: Facelets, GlassFish, Java, MyFaces,
    NetBeans, Spring</content:encoded>
    <dc:date>2008-07-22T20:45:40+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/tm/entry/hudson_a_a_tool_for">
    <title>tm's weblog: Hudson as a tool for testing? Yes!</title>
    <link>http://blogs.sun.com/tm/entry/hudson_a_a_tool_for</link>
    <content:encoded>Lots of folks in NetBeans started to use &lt;a href="https://hudson.dev.java.net/"&gt;&lt;b&gt;Hudson&lt;/b&gt;&lt;/a&gt; as a tool for continuous integration, or just for building NetBeans from various clones, or to build test, whatever you can imagine. Just take a look at &lt;a href="http://deadlock.netbeans.org/hudson/"&gt;Deadlock machine&lt;/a&gt; and you will see a plenty of NetBeans related jobs. We (NetBeans QE) recently got an idea to utilize Hudson as our testing
    infrastructure. Yes, NetBeans have a lot of automated tests that are being ran daily and test results are evaluated for potential problems. So you have tests, you have machines, but you still need an infrastructure to connect this together. We chose Hudson, because it's a great tool, and what's really cool - is &lt;b&gt;&lt;a href="http://hudson.gotdns.com/wiki/display/HUDSON/Extend+Hudson"&gt;extensible&lt;/a&gt;&lt;/b&gt; by various plugins (available on Hudson's web, or you can write your own if you
    wish). The basic idea was to use Hudson as "master-slave" architecture, where you simply set up on master what do you want to run, and master distributes the work to the slaves, that execute the jobs. More detailed approach to this - configure on master which tests do you want to run on which platforms, and they will get executed on appropriate slaves. And getting one level lower - to achieve this, you have to have something we called &lt;i&gt;generic Ant script&lt;/i&gt;, which will provide all the
    stuff needed to execute test: &lt;ol&gt; &lt;li&gt;Download IDE - the IDE build which will be tested &lt;li&gt;Download NetBeans &lt;a href="http://blogs.sun.com/xzajo/entry/binary_test_distribution_for_netbeans"&gt;Test Distribution&lt;/a&gt; - Test Distribution contains binaries of all tests from NetBeans repo. &lt;li&gt;Run selected tests - Specify which tests from Test Distribution will run in tested IDE &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt; So i wrote and Ant script with plenty of useful
    targets to provide this functionality (Yeah, by this I learned a lot how to write Ant scrips:-) ). This Ant script is generic, and all the stuff like where to take IDE build, where to take Test Distribution, which tests run, what to do with results etc. are controlled by passing corresponding properties. Once we have this working, the only thing we have to do, is to distribute the Ant script to machine we want to run tests on, and provide some better UI than command line for the main properties, which
    control the test execution. Therefore me and Max Sauer extended Hudson by &lt;i&gt;Test Run Plugin&lt;/i&gt; (sources are not public right now), that enables Hudson to copy our generic Ant script on target slave machines and extends job configuration with our panel for setting properties for testrun. With all this stuff working, people can simply log in on master, select one or more slave machines on which will tests run, configure which build will be tested by which test (through nice GUI :-) ), run
    the job and take a nap while watching the progress of tests execution on target machines. When test run is finished, you get a nice overview of test results (yes, built-in feature of Hudson).&lt;br /&gt; The main benefits we take from Hudson (aka features we really like): &lt;ul&gt; &lt;li&gt;Master-slave architecture - you can have various machine with various architectures/OS added into testing farm. &lt;li&gt;JUnit results processing - nice HTML, results trends, charts,... &lt;li&gt;Scheduler -
    triggering of testrun by another job (which can listen e.g. if new production build is available), or "cron-like" settings. &lt;li&gt;Email notification - send email if tests do not pass. &lt;li&gt;SCP plugin - we can send test results to remote machine that can parse them and store into DB. &lt;li&gt;Authentication - simply configure and point Hudson to your LDAP server, really out of box functionality. &lt;li&gt;Multiple JDK installations - specify location where are JDKs located and voila - you can
    run whole matrix of tests - one axis is JDKs, second is platform. &lt;li&gt;...many many others:-) &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; And conclusion? Hudson is not only contentious integration tool, it can be almost whatever you like.</content:encoded>
    <dc:date>2008-07-22T14:55:17+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/netbeansphp/entry/feature_freeze_was_reached">
    <title>NetBeans for PHP: Feature freeze was reached</title>
    <link>http://blogs.sun.com/netbeansphp/entry/feature_freeze_was_reached</link>
    <content:encoded>&lt;p&gt; Our team has reached the feature freeze for NetBeans 6.5. It means we will concentrate mainly on stabilization, bug fixing and improving performance. And this is where you can really help us. How? Try a &lt;a href="http://bits.netbeans.org/download/trunk/nightly/latest/"&gt;development build&lt;/a&gt; or &lt;a href="http://bits.netbeans.org/download/6.5/m1/"&gt;NetBeans 6.5 M1&lt;/a&gt;. NetBeans 6.5 M2 is planned to be published on Aug 11th, so it will be a good idea to
    switch to it then. &lt;/p&gt; &lt;p&gt;If you find any bug or you have feature and enhancement requests, enter them in &lt;a href="http://www.netbeans.org/issues/enter_bug.cgi"&gt;Issuezilla&lt;/a&gt; (you have to be log in). We always appreciate it.&amp;nbsp; And don't forget to include additional information such as the build number, OS etc. This information can be easily copied from the About dialog.&lt;/p&gt; &lt;p&gt; &lt;img
    src="http://blogs.sun.com/netbeansphp/resource/article_images/AboutBox65.png" /&gt; &lt;/p&gt; &lt;p&gt;Although we are in the stabilization phase, minor improvements are still possible. We are trying to create superb PHP IDE and you can help us enormously. Just let us know what you think. Also feel free to write your opinions, suggestions&amp;nbsp; here or discuss it on &lt;a href="mailto:users@php.netbeans.org"&gt;users@php.netbeans.org&lt;/a&gt;&amp;nbsp; mainling list. Subscribing is easy, just
    send an empty email to &lt;a href="mailto:users-subscribe@php.netbeans.org"&gt;users-subscribe@php.netbeans.org&lt;/a&gt;. &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-22T13:25:06+00:00</dc:date>
  </item>
  <item rdf:about="http://cld.blog-city.com/staroffice_9_beta_available.htm">
    <title>cld: StarOffice 9 Beta Available</title>
    <link>http://cld.blog-city.com/staroffice_9_beta_available.htm</link>
    <content:encoded>StarOffice 9 Beta is available. More....</content:encoded>
    <dc:date>2008-07-22T07:56:00+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/alexismp/entry/gartner_sur_l_open_source">
    <title>Bistro!: Gartner sur l'open source Sun : "Strong Positive"</title>
    <link>http://blogs.sun.com/alexismp/entry/gartner_sur_l_open_source</link>
    <content:encoded>&lt;p&gt; Si vous m'avez entendu présenter sur GlassFish, j'ai probablement mentionné les commentaires de Gartner en expliquant que vous (développeur, architecte) n'accordiez peut-être pas beaucoup d'intérêt à ce genre de commentaire, mais qu'il suffisait probablement de monter de un ou de deux crans dans la hiérarchie pour que ca devienne absolument capital. &lt;/p&gt; &lt;p&gt; Dans la série donc "J'ai besoin que mon patron me lâche la grappe", le dernier &lt;a
    href="http://mediaproducts.gartner.com/reprints/sunmicrosystems/article4/article4.html"&gt;rapport du Gartner&lt;/a&gt; (en date de Juillet 2008) est particulièrement positif dans les catégories OpenSource (GlassFish, MySQL, ...), Java et SOA (OpenESB). En voici un extrait: &lt;/p&gt; &lt;p&gt; &lt;i&gt; "Sun is a premier contributor of key technologies to the open-source movement. From OpenSolaris, to middleware (GlassFish), DBMS (MySQL) and Java, Sun has delivered innovative code into various
    communities." &lt;/i&gt; &lt;/p&gt; &lt;p&gt; Pour le reste, voici le lien pour le patron de votre patron: &lt;br /&gt;&lt;a href="http://mediaproducts.gartner.com/reprints/sunmicrosystems/article4/article4.html"&gt;http://mediaproducts.gartner.com/reprints/sunmicrosystems/article4/article4.html&lt;/a&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-22T05:20:00+00:00</dc:date>
  </item>
  <item rdf:about="tag:blogger.com,1999:blog-3579988500929589093.post-4563946139160596251">
    <title>An Open Source Fascicule: How to commit suicide in an Interview!!!</title>
    <link>http://novicenetbeans.blogspot.com/2008/07/how-to-commit-sucide-in-interview.html</link>
    <content:encoded>Campus recruitment and Interviews!!!! Most important time of a student life! Here I will tell you how you can screw it up!&lt;br /&gt;&lt;br /&gt;Well... The US based &lt;a href="http://www.informatica.com/Pages/index.aspx"&gt;Informatica - The Data Integration Company&lt;/a&gt;, came to our campus yesterday! About 100 students were eligible to appear according to their eligibility criteria.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Stage 1:&lt;/span&gt; &lt;span&gt;Technical Aptitude Test +
    Theory Paper!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Duration: 45 + 30 min.&lt;br /&gt;&lt;br /&gt;Topics: Database (Major), Operating Systems, Unix, C language, General Aptitude.&lt;br /&gt;&lt;br /&gt;Students Shortlisted: 13. (I was among them)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Stage 2: Technical Interview:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The interview lasted for almost an hour. Database questions were fired like anything. (I have only basic understanding of databases and queries). I could not
    answer the higher concepts.&lt;br /&gt;Unix commands and architecture was asked - It was ok! I told them I won prizes in Sun MS blogging contests. He was very impressed!&lt;br /&gt;&lt;br /&gt;Students Short listed -4. (I was again one of them).&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Stage 3: Technical Interview + HR:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Now comes the most interesting part.... (The interview was conducted by John Sir)&lt;br /&gt;In the beginning I was asked about the database I
    had designed long back (For storing student -teacher academic data). He was very impressed again.&lt;br /&gt;&lt;br /&gt;Then he came to my field!!!! Programming....&lt;br /&gt;&lt;br /&gt;I answered almost everything... We discussed some of the projects I had undertaken before (I keep on doing small projects and exploring new technologies.) He also asked base Software Engineering concepts and OS! Everything going so smoothly!!!&lt;br /&gt;&lt;br /&gt;Next....&lt;br /&gt;&lt;br /&gt;John Sir: So, you
    are good at programming.. not at database...&lt;br /&gt;&lt;br /&gt;Me: Sir I know the basics. I am not an expert in it...&lt;br /&gt;&lt;br /&gt;John Sir: See... We do not expected you to be an expert. If you are capable of learning new things we can train you as we like. Its every companies responsibility.. right?&lt;br /&gt;&lt;br /&gt;Me: Right Sir!&lt;br /&gt;&lt;br /&gt;John Sir: So what are you basically most interested in?&lt;br /&gt;&lt;br /&gt;Me: (Without thinking anything)
    Programming!!!!!!!!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.......... Now !! Here I am... In front of the HR from the Most reputed Data Integration and Solutions Company... I have cleared all the hurdles. He asks me what I am interested in...&lt;br /&gt;&lt;br /&gt;I say - I am not interested in what the company is doing! I like programming!!!&lt;br /&gt;&lt;br /&gt;Thats the end....&lt;br /&gt;&lt;br /&gt;He explains me that it is very difficult to get anything related to code in their job! The core
    team is far away....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;The Concluding remarks...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;One guy - really good at databases finally got selected. I was handed a T- Shirt and a pen!!&lt;br /&gt;Not just that - There was this concluding remark:&lt;br /&gt;&lt;br /&gt;"You are very good at what you do and you will get selected in other companies. Its just that your interest and our interest don't match!!!!"&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Question
    is - Was it a mistake or a boon in disguise?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I don't know the answer as of today. One thing is for sure.... I cant sit for years typing in same old mugged up SQL Queries - So I think I did the right thing!!!&lt;br /&gt;&lt;br /&gt;Everybody around me thinks - I am wrong!! 5.6 Lakh per annum (Indian Rupees) is not a small amount right?&lt;br /&gt;&lt;br /&gt;But what about &lt;span&gt;job satisfaction&lt;/span&gt;? I would love to get less than that for doing what I
    love to do - To PROGRAM! To think about things - To try and innovate!&lt;br /&gt;&lt;br /&gt;I hope I am not proved wrong in the long run..... But am I too inexperienced to keep preferences at this stage of my carrier?</content:encoded>
    <dc:date>2008-07-22T04:38:11+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/divas/entry/martin_talks_about_rake_runner">
    <title>Insider Scoop From the Tutorial Divas: Martin talks about Rake Runner, Ruby Debugging, and Other 6.5 Enhancements</title>
    <link>http://blogs.sun.com/divas/entry/martin_talks_about_rake_runner</link>
    <content:encoded>&lt;img src="http://blogs.sun.com/divas/resource/martin.jpg" border="1" align="left" vspace="10" hspace="15" /&gt; &lt;p&gt;As I mentioned a couple of weeks ago, I am researching the new Ruby and Rails features in the upcoming NetBeans IDE 6.5. Last week, Martin Krauskopf and I talked about the work that he is doing. Some of you might know Martin from his earlier work with &lt;a href="http://blogs.sun.com/jglick/"&gt;Jesse Glick&lt;/a&gt; on NetBeans Module Development (also known as
    APISupport) which was great experience for him. Before he joined Sun, Martin says that he "enjoyed a short experience working on the Vim plugin for Eclipse ;)".&lt;/p&gt; &lt;p&gt;One of his most noticeable pieces of work for 6.5 is the new &lt;a href="http://blogs.sun.com/martink/entry/rake_task_runner"&gt;Rake Runner dialog box&lt;/a&gt;, which I am finding to be a nice improvement. In addition, Martin has also done an overhaul on the Rake infrastructure, and he worked on providing a pre-generated
    Rakefile for new projects, which includes tasks such as clean, gem, packages, rdoc, spec, and test (Martin: thanks Dudley Flanders for tips).&lt;/p&gt; &lt;p&gt;On the debugging side, he has released new versions of the fast &lt;a href="http://blogs.sun.com/martink/entry/jruby_fast_debugger_0_10"&gt;JRuby debugger&lt;/a&gt; and &lt;code&gt;ruby-debug-ide&lt;/code&gt; gems, which the 6.5 IDE utilizes to bring support for conditional breakpoints and &lt;i&gt;catchpoints&lt;/i&gt; (breakpoint on
    exception).&lt;p&gt; &lt;p&gt;You will also see improvements in the &lt;a href="http://wiki.netbeans.org/RubyGems"&gt;Ruby Gems Manager&lt;/a&gt;. When you open up the manager, you can now easily switch the platform, without having to wait for the manager to finish fetching the data for the currently selected repository. Martin also added the -a (fetch all versions) and -d (fetch detailed gem description) options for tweaking gems fetching so that it goes a bit faster. If the manager finds that it
    doesn't have permissions on the repository directory for updating and installing gems, it will now invoke the underlying &lt;code&gt;gem&lt;/code&gt; commands using &lt;code&gt;gksu&lt;/code&gt; or &lt;code&gt;kdesu&lt;/code&gt;, as appropriate (if it finds it).&lt;/p&gt; &lt;p&gt;Two other changes that Martin made were to (1) provide support for Rubinius, an addition to MRI Ruby and JRuby, and (2) Enable you to use the project's Properties dialog box to pass JVM options to JRuby, such as
    -Djruby.objectspace.enabled=true&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;. Martin is also looking for user situations where something might go wrong and is trying to either make sure that the user gets good messages to help resolve the problem, or have the IDE handle the situation better. His goal is to provide good problem detection capabilities and to provide users with more useful help and clues in such situations. He is focusing on the areas where there are multiple interpreters and multiple Gem Home and Gem
    Path settings, some with root-writable repositories, as well different VMs with different fast debugging support. He has made several enhancements in this area for 6.5 and will continue working on this for 6.5 and in the next release. &lt;p&gt;For 6.5, if time permits, he would also like to add support for the Rubinius fast debugger that is being developed by &lt;a href="http://betterruby.wordpress.com/"&gt;Adam Gardiner&lt;/a&gt;, and polish some problems and behaviors of all debuggers generally,
    since there are still a few remaining issues after the &lt;code&gt;ruby-debug-ide&lt;/code&gt; overhaul.&lt;/p&gt; &lt;p&gt;I asked Martin what he does when he isn't working so hard. He likes to spend his free time doing sports such as skiing and biking. He usually spends his vacations with his girlfriend and their friends traveling in his own country (Czech Republic), or around the world, often in the mountains with backpacks. His best vacation was the trip to Himachal Pradesh in the north-west of
    India.&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-22T00:55:44+00:00</dc:date>
  </item>
  <item rdf:about="tag:blogger.com,1999:blog-4439135070202734584.post-7326075240376784533">
    <title>NetBeans Community Docs Blog: Another Milestone | 175 Docs- Accomplished!</title>
    <link>http://nb-community-docs.blogspot.com/2008/07/another-milestone-175-docs-accomplished.html</link>
    <content:encoded>&lt;span&gt;Hey,&lt;br /&gt;&lt;br /&gt;Yesterday night, we got 2 contributions (Spanish) by &lt;a href="http://nb-community-docs.blogspot.com/2008/07/docs-la-liga.html"&gt;Diego E. Siva L.&lt;/a&gt;, cool :D Still, &lt;/span&gt;&lt;b&gt;10 days&lt;/b&gt;&lt;span&gt; to go (end of July), I am sure we are headed for another milestone, as we cross another- yes, we wrote &lt;/span&gt;&lt;span&gt;175 docs&lt;/span&gt;&lt;b&gt;. &lt;/b&gt;&lt;span&gt;Awesome guys within few months we have
    come a long way. Its your community after all, come, innovate and take us to &lt;span&gt;200 and beyond&lt;/span&gt; within next few weeks ;)&lt;br /&gt;&lt;br /&gt;Feel free to take part in these projects-&lt;/span&gt;&lt;br /&gt;&lt;a href="http://nb-community-docs.blogspot.com/2008/07/eclipsetonetbeans.html" target="_blank"&gt;http://nb-community-docs.blogspot.com/2008/07/eclipsetonetbeans.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nb-community-docs.blogspot.com/2008/07/migrating-docs.html"
    target="_blank"&gt;http://nb-community-docs.blogspot.com/2008/07/migrating-docs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;By the way, &lt;/span&gt;&lt;a href="http://feeds.feedburner.com/commdocs-spotlights"&gt;&lt;span&gt;NetBeans Spotlight&lt;/span&gt;&lt;/a&gt;&lt;span&gt; coming soon...&lt;/span&gt;&lt;span&gt;Happy NetBeaning :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;NetBeans Community Docs&lt;/div&gt;</content:encoded>
    <dc:date>2008-07-21T23:35:48+00:00</dc:date>
  </item>
  <item rdf:about="tag:blogger.com,1999:blog-4439135070202734584.post-6810333323767059108">
    <title>NetBeans Community Docs Blog: Docs La Liga</title>
    <link>http://nb-community-docs.blogspot.com/2008/07/docs-la-liga.html</link>
    <content:encoded>&lt;span&gt;Hey,&lt;br /&gt;&lt;br /&gt;Spain is here again- &lt;span&gt;&lt;a href="http://diesil-java.blogspot.com/"&gt;Diego E. Silva L.&lt;/a&gt;&lt;/span&gt; has contributed &lt;span&gt;2 tutorials&lt;/span&gt; in Spanish for us. Have a look-&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://wiki.netbeans.org/FragmentosConVisualJSF"&gt;Fragmentos con Visual JSF&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.netbeans.org/AOPSpringNB61Parte1"&gt;Programación
    Orientada a Aspectos (AOP) con Spring 2.5 y NetBeans 6.1 (Parte 1) &lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;Thanks, Diego and others for contributing in &lt;span&gt;Spanish&lt;/span&gt;!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Also, have a look at these contributions-&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://www.mrhaki.com/"&gt;Hubert A Klein Ikkink&lt;/a&gt;&lt;/span&gt;&lt;span&gt; is back with another quick tip- &lt;/span&gt;&lt;a
    href="http://wiki.netbeans.org/QuickSearchInTreeviews"&gt;Quicksearch in Treeviews in NetBeans&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Lets welcome &lt;/span&gt;&lt;span&gt;Slim Oeurtani&lt;/span&gt;&lt;span&gt;, as he contributed for the first time over Community Docs-&lt;/span&gt;&lt;br /&gt;&lt;a href="http://wiki.netbeans.org/DebuggingSpringOSGi"&gt;Debugging Spring OSGi with NetBeans IDE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Stay Tuned for more...&lt;/span&gt;&lt;div
    class="blogger-post-footer"&gt;NetBeans Community Docs&lt;/div&gt;</content:encoded>
    <dc:date>2008-07-21T23:29:27+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/geertjan/entry/integrating_meera_with_grails_and">
    <title>Geertjan's Blog: Integrating Meera with Grails and NetBeans</title>
    <link>http://blogs.sun.com/geertjan/entry/integrating_meera_with_grails_and</link>
    <content:encoded>My DZone colleague &lt;a href="http://meera-subbarao.blogspot.com/"&gt;Meera Subbarao&lt;/a&gt; took the new Grails/Groovy support in NetBeans IDE for a spin, with great results. Part of her concluding remarks are: "If you are a Groovy or a Grails fan, download the latest version of NetBeans and give it a try. You can develop, test and run your Grails application without ever opening a command window." Click the pic below to read the whole story: &lt;p&gt;&lt;a
    href="http://www.testearly.com/2008/07/21/grails-development-made-even-simpler-using-netbeans-ide-65/"&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/meera-grails.png" /&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-21T21:09:47+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/netbeansphp/entry/generate_constructor_getters_and_setters">
    <title>NetBeans for PHP: Generate Constructor, Getters and Setters</title>
    <link>http://blogs.sun.com/netbeansphp/entry/generate_constructor_getters_and_setters</link>
    <content:encoded>&lt;p&gt; This morning I have committed a feature, which offers generating of constructor, getters and setters in a PHP class. To invoke the functionality, the caret position has to be inside a PHP class and you have to press shortcut &lt;i&gt;ALT+Insert&lt;/i&gt; (&lt;i&gt;CTLRL+I&lt;/i&gt; on Mac). After invoking the shortcut, all possible generators are offered. &lt;/p&gt; &lt;p&gt;Let's explain on a simple example. I have very simple PHP class, where I have only two properties -
    &lt;i&gt;$name&lt;/i&gt; and &lt;i&gt;$age&lt;/i&gt;. At first I want to add constructor. After pressing &lt;i&gt;ALT+Insert &lt;/i&gt;(&lt;i&gt;CTLRL+I&lt;/i&gt; on Mac), the constructor generator is offered - &lt;i&gt;Constructor...&lt;/i&gt; item in the Generate menu. After invoking this item, the Generate Constructor dialog is displayed. There I can choose parameters of the constructor. It is possible to chose any property, then the constructor is generated without any parameter and empty. If I
    check / uncheck the User class, then all properties are selected / unselected. For my demonstration I have chose &lt;i&gt;$name&lt;/i&gt; property.&amp;nbsp; After pressing &lt;i&gt;OK&lt;/i&gt; button, the constructor with one parameter is generated. &lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/netbeansphp/resource/article_images/CGSGenerate01.png" /&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Now I want to generate getter for the &lt;i&gt;$name&lt;/i&gt;. After invoking Generate menu, you
    can notice that the &lt;i&gt;Constructor...&lt;/i&gt; item is not offer anymore, because the class already has a constructor. I choose &lt;i&gt;Getter...&lt;/i&gt; item and Generate Getters dialog is displayed. In the dialog you can choose, for which properties you want to generate getters. Again you can check / uncheck the class node, which selects / unselects all properties. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/netbeansphp/resource/article_images/CGSGenerate02.png"
    /&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;As the next step I want to generate getter and setter for $age property. After choosing &lt;i&gt;Getter and Setter...&lt;/i&gt; item in Generate menu, the dialog offers only $age property, because only this property has neither getter nor setter. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/netbeansphp/resource/article_images/CGSGenerate03.png" /&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;When I invoke Generate menu after creating
    getter and setter for &lt;i&gt;$age&lt;/i&gt; property, only setter generator is offered, because there is not defined only setter for $name property.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/netbeansphp/resource/article_images/CGSGenerate04.png" /&gt;&lt;/p&gt; &lt;p&gt;The generate functionality is designed that you can work just with the keyboard and you don't have to use mouse. &lt;br /&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-21T13:36:32+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/branajam/entry/ajax_and_jsp">
    <title>James' Blog: Ajax and JSP</title>
    <link>http://blogs.sun.com/branajam/entry/ajax_and_jsp</link>
    <content:encoded>&lt;p&gt;&lt;img src="http://blogs.sun.com/branajam/resource/jsp-ajax.png" /&gt; &lt;p&gt; Hi all, &lt;p&gt; In my last blog entry, I wrote about adding and configuring Ajax transactions in Visual Web JSF projects. Now I'll show you what it all looks like from behind the scenes. &lt;p&gt; The image above show the JSP tab of the Visual Designer. It gives you a good idea of what is added when you add the Dynamic Faces component library and add and configure Ajax transactions. &lt;p&gt;
    Soon, I'll get into using Ajax with JavaServer Faces (not Visual Web JSF). &lt;p&gt; Cheers! &lt;p&gt; --James &lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-21T10:04:57+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/alexismp/entry/java_ee_6_le_point">
    <title>Bistro!: Java EE 6 - le point à mi-parcours.</title>
    <link>http://blogs.sun.com/alexismp/entry/java_ee_6_le_point</link>
    <content:encoded>&lt;img src="http://blogs.sun.com/alexismp/resource/JavaEE6.png" border="0" vspace="4" hspace="4" align="left" /&gt; &lt;p&gt; Il y a à peine plus d'un an, je &lt;a href="http://blogs.sun.com/alexismp/entry/il_est_temps_de_parler"&gt;mentionnais pour la première fois Java EE 6&lt;/a&gt; (&lt;a href="http://jcp.org/en/jsr/detail?id=316"&gt;JSR 316&lt;/a&gt;). Il semble y avoir un large consensus sur les différents JSR. Il y a également un consensus sur les trois thèmes proposés:
    extensibilité, profils et pruning. Clairement les profils a pas mal fait parlé d'eux: faut-il un web profile de type "tomcat" ou bien quelque chose de plus riche (voir le &lt;a href="http://weblogs.java.net/blog/robc/archive/2008/02/profiles_in_the_1.html"&gt;billet de Roberto sur ce sujet&lt;/a&gt;). Ce qui est clair c'est qu'il n'y aura qu'un seul profil "web" (pas question de maintenir les profils A et B). Après la présentation de Rod Johnson à Jazoon en Juin dernier, il semble que SpringSource ne
    s'oppose plus au profil B qui contient EJB 3.1 Lite (session+interface locales), WebBeans 1.0, et JSF 2.0. &lt;/p&gt; &lt;p&gt; Clairement Servlet 3.0 me parait comme une avancé significative. C'est elle qui va permettre en grande partie l'extensibilité (déposer les JAR de son framework dans un répertoire précis suffira, plus d'édition de &lt;code&gt;web.xml&lt;/code&gt;), de standardiser les mécanismes de suspend/resume utilisés par &lt;a
    href="http://en.wikipedia.org/wiki/Comet_(programming)"&gt;Comet&lt;/a&gt;, et d'avoir (enfin) une approche POJO (annotation &lt;code&gt;@Servlet&lt;/code&gt;). JPA 2.0 (specification séparée des EJB) et EJB 3.1 sont des incréments importants et nécessaires après des versions 1.0 déjà bien réussies. &lt;/p&gt; &lt;p&gt; Le succès de WebBeans me parait être une inconnue même si l'unification du modèle de composant est selon moi un "no-brainer". JAX-RS aura certainement beaucoup de succès mais je vois
    déjà les discussions &lt;i&gt;"JAX-WS ou JAX-RS?"&lt;/i&gt; occuper les architectes dans les entreprises et les SSII y passer du temps (à leur grand plaisir! ;-). &lt;/p&gt; &lt;p&gt; Le calendrier initial était effectivement un peu agressif (sachant également que d'autres ne sont pas encore arrivés encore à Java EE 5). Rendez-vous donc pour la beta Java EE 6 l'année prochaine. GlassFish v3 sera aligné avec cette version de la spécification et la version &lt;a
    href="https://glassfish.dev.java.net/downloads/v3-techPreview-2.html"&gt;TechPreview 2&lt;/a&gt; propose déjà quelques implémentations en avance de phase au travers de son update center (EJB 3.1, JAX-RS 1.0, ...). &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-21T05:04:00+00:00</dc:date>
  </item>
  <item rdf:about="http://cld.blog-city.com/sprints_samsung_instinct_java_contest_is_live__webcast_and.htm">
    <title>cld: Sprint's Samsung Instinct Java Contest is Live : Webcast and Details</title>
    <link>http://cld.blog-city.com/sprints_samsung_instinct_java_contest_is_live__webcast_and.htm</link>
    <content:encoded>Sprint's Samsung Instinct Java Contest is now live. There is a great and informative webcast which gives you alot of the programmatic details of the phone. More....</content:encoded>
    <dc:date>2008-07-20T23:50:00+00:00</dc:date>
  </item>
  <item rdf:about="http://martin.adamek.sk/?p=27">
    <title>Martin Adamek's Blog: Groovy in NetBeans - Inplace Rename</title>
    <link>http://martin.adamek.sk/?p=27</link>
    <content:encoded>&lt;p&gt;So we are feature-frozen with NetBeans 6.5. That means no additional functionality can be added until final bits are released. We&amp;#8217;ve just started fixing phase, so maybe it&amp;#8217;s time to walk through few interesting features (with screenshots, of course :-) in few more regular blog entries. For today I want to show you editor action known by several names, sometimes under Inplace Rename. On my Mac it is invoked by Ctrl+R shortcut. It tries to locate usages of
    local variable in edited file, highlights them and while you are editing name of the variable in one place, all other occurrences of the same variable are renamed at the same time as you type. To demonstrate this on some real example, I used &lt;a href="http://www.tonylandis.com/code-projects/groovy-http-post-get-class.html"&gt;HTTP POST/GET helper Groovy class&lt;/a&gt; from &lt;a href="http://groovy.codehaus.org/Cookbook+Examples"&gt;Groovy Cookbook Examples&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; &lt;a
    href="http://martin.adamek.sk/wp-content/uploads/inplace-rename.png" title="inplace-rename.png"&gt;&lt;img src="http://martin.adamek.sk/wp-content/uploads/inplace-rename.png" alt="inplace-rename.png" /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-20T19:59:26+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/geertjan/entry/grails_this_time_with_tools">
    <title>Geertjan's Blog: Grails: This Time With Tools</title>
    <link>http://blogs.sun.com/geertjan/entry/grails_this_time_with_tools</link>
    <content:encoded>Here's how to get started with Grails in NetBeans IDE 6.5. &lt;ol&gt; &lt;p&gt;&lt;li&gt;&lt;b&gt;Prepare the Environment&lt;/b&gt; &lt;ul&gt; &lt;p&gt;&lt;li&gt;Read the &lt;a href="http://grails.org/Quick+Start"&gt;Grails Quick Start&lt;/a&gt;, which presents the scenario that we will reproduce in the sections that follow. &lt;p&gt;&lt;li&gt;Download and install the "Web &amp;amp; Java EE" distribution of NetBeans IDE 6.5 Milestone 1 or later. (Everything done below is done with the
    latest development build, which is probably the best thing to get for getting to know the IDE's Grails support, if you're okay with unexpected errors now and then.) &lt;p&gt;&lt;li&gt;Download and unzip Grails. &lt;p&gt;&lt;li&gt;In the IDE, go to the Options window and set the location of Grails in the "Groovy" panel. If you want to use Groovy, also set the location of Groovy there. &lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;
    &lt;p&gt;&lt;li&gt;&lt;b&gt;Create the Application&lt;/b&gt; &lt;p&gt;Choose the Grails Application project in the New Project wizard (Ctrl-Shift-N): &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-1.png" border="1" /&gt; &lt;p&gt;Click Next and type the name of the project: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-2.png" border="1" /&gt; &lt;p&gt;Click Finish and you should see this: &lt;p&gt;&lt;img
    src="http://blogs.sun.com/geertjan/resource/grails-65-4.png" border="1" /&gt; &lt;p&gt;Expand the folders and have a look around: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-5.png" border="1" /&gt; &lt;p&gt;Also look at the generated files and notice that many of them have default values filled in: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-6.png" border="1" /&gt; &lt;p&gt;&lt;li&gt;&lt;b&gt;Create the Domain Class&lt;/b&gt; &lt;p&gt;Right-click on
    the Domains classes node: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-7.png" border="1" /&gt; &lt;p&gt;Name the domain class "Book" and then fill in the following two lines within the generated class: &lt;pre&gt;String title String author&lt;/pre&gt; &lt;p&gt;You should now see this: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-8.png" border="1" /&gt; &lt;p&gt;Create some initial values in the &lt;tt&gt;Bootstrap.groovy&lt;/tt&gt; class:
    &lt;pre&gt;new Book(author:"Stephen King",title:"The Shining").save() new Book(author:"James Patterson",title:"Along Came a Spider").save()&lt;/pre&gt; &lt;p&gt;Use Ctrl-Space to call up code completion and then have a look at the other ways of completing the statements above: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-20.png" border="1" /&gt; &lt;p&gt;You should now see this: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-9.png" border="1" /&gt;
    &lt;p&gt;&lt;li&gt;&lt;b&gt;Create the Controller&lt;/b&gt; &lt;p&gt;Right-click the Controllers node: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-10.png" border="1" /&gt; &lt;p&gt;Type "Book" and notice that you are shown that the generated class will be called "BookController": &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-11.png" border="1" /&gt; &lt;p&gt;Then comment out the one line generated within the braces and add this one: &lt;pre&gt;def
    scaffold = Book&lt;/pre&gt; &lt;p&gt;You should now see this: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-13.png" border="1" /&gt; &lt;li&gt;&lt;b&gt;Run the Application&lt;/b&gt; &lt;p&gt;Right-click the application and choose "Run". The application is deployed to Jetty, as you can see in the Services window: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-19.png" border="1" /&gt; &lt;p&gt;The URL is printed to the Output window. Paste it into a
    browser and then you'll see your application. Click the "BookController" link and you'll see this: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-14.png" border="1" /&gt; &lt;p&gt;Click New Book and then create a new entry: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-16.png" border="1" /&gt; &lt;p&gt;When you click Create, note that you can edit or delete the entry: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-17.png"
    border="1" /&gt; &lt;p&gt;...and that the entry is reflected in the list of entries: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/grails-65-18.png" border="1" /&gt;
    &lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/ol&gt; &lt;p&gt;There are several
    other Grails-specific features, such as a Grails shell, support for installing Grails plugins, and menu items for things like Grails stats, upgrade, and WAR-file creation. I will blog about these soon.&lt;p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-20T15:19:32+00:00</dc:date>
  </item>
  <item rdf:about="http://cld.blog-city.com/grails__three_new_articles_legacy_dbs_mobile_web_google_.htm">
    <title>cld: Grails : Three New Articles (Legacy DBs, Mobile Web, Google Maps) &amp; LinkedIn Using Grails</title>
    <link>http://cld.blog-city.com/grails__three_new_articles_legacy_dbs_mobile_web_google_.htm</link>
    <content:encoded>The Mastering Grails site has some great articles including three new articles. The latest one is on using Grails and Legacy Databases and Grails and the Mobile Web. Also check out what LinkedIn is doing with Grails. More...</content:encoded>
    <dc:date>2008-07-20T00:50:00+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/geertjan/entry/search_the_guardian_from_a">
    <title>Geertjan's Blog: Search the Guardian from a NetBeans Platform Application without Coding At All</title>
    <link>http://blogs.sun.com/geertjan/entry/search_the_guardian_from_a</link>
    <content:encoded>By default, the Quick Search feature is hidden in NetBeans Platform applications. Below, I show how to enable it in the &lt;tt&gt;layer.xml&lt;/tt&gt; file and also how to enable the web search provider (this provider searches Google and returns pages that match your search string), which is defined in the NetBeans sources but not declared by default in the NetBeans Platform: &lt;pre&gt;&amp;lt;folder name="QuickSearch"&gt; &amp;lt;!-- Optionally, we've hidden the existing quick search
    providers: --&gt; &amp;lt;file name="Actions_hidden"/&gt; &amp;lt;file name="GoToOption_hidden"/&gt; &amp;lt;file name="Help_hidden"/&gt; &amp;lt;!-- Enabling the WebQuickSearchProviderImpl: --&gt; &amp;lt;folder name="Guardian"&gt; &amp;lt;file name="org-netbeans-modules-quicksearch-web-WebQuickSearchProviderImpl.instance"/&gt; &amp;lt;/folder&gt; &amp;lt;/folder&gt; &amp;lt;!-- Showing the Quick Search feature: --&gt; &amp;lt;folder name="Toolbars"&gt; &amp;lt;folder name="QuickSearch"&gt;
    &amp;lt;attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.guardiansearch.Bundle"/&gt; &amp;lt;file name="org-netbeans-modules-quicksearch-QuickSearchAction.shadow"&gt; &amp;lt;attr name="originalFile" stringvalue="Actions/Edit/org-netbeans-modules-quicksearch-QuickSearchAction.instance"/&gt; &amp;lt;/file&gt; &amp;lt;/folder&gt; &amp;lt;/folder&gt;&lt;/pre&gt; &lt;p&gt;Finally, in our &lt;tt&gt;branding&lt;/tt&gt; folder, we create the folder hierarchy below and set the
    two properties that you see there (read about these properties &lt;a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-spi-quicksearch/overview-summary.html"&gt;at the bottom of this page&lt;/a&gt;): &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/clare-wigfall-2.png" border="1" /&gt; &lt;p&gt;In the IDE, the above properties are hardcoded to the following, but for the NetBeans Platform they are undefined and hence need to be branded as the above:
    &lt;pre&gt;quicksearch.web.site=netbeans.org quicksearch.web.url_patterns=.*netbeans\.org/kb.*,.*wiki\.netbeans\.org/.*faq.*,.*wiki\.netbeans\.org/.*howto.*,.*platform\.netbeans\.org/tutorials.*&lt;/pre&gt; &lt;p&gt;You've done no coding at all, right? So now run the application and you'll be able to search the Guardian (or whatever you set in the branded Bundle file that you see above): &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/clare-wigfall-3.png" border="1" /&gt; &lt;p&gt;When you
    click an item above, the related article opens in your browser. &lt;p&gt;So here's all I did to be able to search Jon Stewart's show: &lt;pre&gt;quicksearch.web.site=thedailyshow.com quicksearch.web.url_patterns=.*&lt;/pre&gt; &lt;p&gt;And here's the result: &lt;p&gt;&lt;img src="http://blogs.sun.com/geertjan/resource/clare-wigfall-4.png" border="1" /&gt; &lt;p&gt;All of the above is possible from 6.5 Milestone 1
    onwards.&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-19T21:04:36+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/amitsaha/entry/using_native_python_cpython_with">
    <title>Amit Kumar Saha's Blog: Using native Python (cPython) with nbPython</title>
    <link>http://blogs.sun.com/amitsaha/entry/using_native_python_cpython_with</link>
    <content:encoded>&lt;p&gt;You can configure nbPython to use your native Python (cPython) interpreter, instead of the default Jython. &lt;/p&gt; &lt;p&gt;Go to Tools-&gt;Options-&gt;Python and change the releavant settings:&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.sun.com/amitsaha/resource/nb-python/py-options.png" /&gt;&lt;/p&gt; &lt;p&gt;Now, click on Window-&gt;PythonConsole to bring up the Python console:&lt;/p&gt; &lt;p&gt;&lt;img
    src="http://blogs.sun.com/amitsaha/resource/nb-python/pynb-pyconsole.png" /&gt;&lt;br /&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-19T13:40:50+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/wind/entry/netbeans%E6%8F%92%E4%BB%B6blackberry">
    <title>Whisht Wind: NetBeans插件BlackBerry</title>
    <link>http://blogs.sun.com/wind/entry/netbeans%E6%8F%92%E4%BB%B6blackberry</link>
    <content:encoded>&lt;p&gt;一个用来开发黑莓程序的NetBeans插件&lt;span&gt;.&lt;/span&gt; &lt;span&gt;下载地址&lt;/span&gt;&lt;span id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt; &lt;a href="http://www.teesoft.info/content/view/36/36/#BlackBerryPlugin" target="_blank"&gt;http://www.teesoft.info/content/view/36/36/#BlackBerryPlugin&lt;/a&gt;.&lt;br /&gt;&lt;span&gt; This is built from &lt;a
    href="http://hg.netbeans.org/main/contrib/file/tip/mobility.plugins.blackberry/"&gt;http://hg.netbeans.org/main/contrib/file/tip/mobility.plugins.blackberry/&lt;/a&gt; with following features added:&lt;/span&gt;&lt;br /&gt;1. BlackBerry JDE Component Package support. You can register BlackBerry JDE or BlackBerry JDE Component Package as the platform. You will get full features if you register BlackBerry JDE as platform. But since there are no simulator built in ,so you can just build your application
    with BlackBerry JDE Component Package, no run and build support for BlackBerry JDE Component Package. &lt;br /&gt;2. non-windows os support. This includes linux, solaris and any os with wine installed. You need Wine to make this work. You can install the JDE or BlackBerry JDE Component Package using wine or install them in a windows pc and copy to your non-windows os. The BlackBerry JDE simulator is not so stable while running in wine, but at least you can build your applications.&lt;br /&gt;3. auto
    get JDE versions.&lt;br /&gt;4. auto build alx file in your dist folder.&lt;br /&gt;&lt;br /&gt;The patch can be find at:&lt;br /&gt;&lt;span&gt; &lt;a href="http://www.netbeans.org/issues/show_bug.cgi?id=140871"&gt;http://www.netbeans.org/issues/show_bug.cgi?id=140871&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;有什么问题可以发到:&lt;a href="http://www.teesoft.info/phpbb/viewforum.php?f=7" target="_blank"&gt;http://www.teesoft.info/phpbb/viewforum.php?f=7&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/NetBeans" class="performancingtags"&gt;NetBeans&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/BlackBerry" class="performancingtags"&gt;BlackBerry&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/BlackBerry%20JDE" class="performancingtags"&gt;BlackBerry JDE&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/8800" class="performancingtags"&gt;8800&lt;/a&gt;, &lt;a rel="tag"
    href="http://technorati.com/tag/8700" class="performancingtags"&gt;8700&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/8100" class="performancingtags"&gt;8100&lt;/a&gt; [&lt;a href="http://blogs.sun.com/wind/entry/rim_blackberry_plugin_for_netbeans" class="readmore"&gt;Read More&lt;/a&gt;] &lt;/p&gt;</content:encoded>
    <dc:date>2008-07-19T11:21:44+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/wind/entry/rim_blackberry_plugin_for_netbeans">
    <title>Whisht Wind: RIM BlackBerry Plugin for NetBeans</title>
    <link>http://blogs.sun.com/wind/entry/rim_blackberry_plugin_for_netbeans</link>
    <content:encoded>&lt;p&gt; &lt;span id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt;RIM BlackBerry Plugin Module, support build &lt;/span&gt;&lt;span id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt;BlackBerry&lt;/span&gt;&lt;span
    id="form1:center_container:page_border:fixed_contentarea:fixed_contextbox:bottomPanel:categoryDetailPanel:descPanel:txtDescription"&gt; applications with NetBeans JDE.&lt;br /&gt;You can download it here: &lt;a href="http://www.teesoft.info/content/view/36/36/#BlackBerryPlugin" target="_blank"&gt;http://www.teesoft.info/content/view/36/36/#BlackBerryPlugin&lt;/a&gt;.&lt;br /&gt;&lt;span&gt; This is built from &lt;a
    href="http://hg.netbeans.org/main/contrib/file/tip/mobility.plugins.blackberry/"&gt;http://hg.netbeans.org/main/contrib/file/tip/mobility.plugins.blackberry/&lt;/a&gt; with following features added:&lt;/span&gt;&lt;br /&gt;1. BlackBerry JDE Component Package support. You can register BlackBerry JDE or BlackBerry JDE Component Package as the platform. You will get full features if you register BlackBerry JDE as platform. But since there are no simulator built in ,so you can just build your application
    with BlackBerry JDE Component Package, no run and build support for BlackBerry JDE Component Package. &lt;br /&gt;2. non-windows os support. This includes linux, solaris and any os with wine installed. You need Wine to make this work. You can install the JDE or BlackBerry JDE Component Package using wine or install them in a windows pc and copy to your non-windows os. The BlackBerry JDE simulator is not so stable while running in wine, but at least you can build your applications.&lt;br /&gt;3. auto
    get JDE versions.&lt;br /&gt;4. auto build alx file in your dist folder.&lt;br /&gt;&lt;br /&gt;The patch can be find at:&lt;br /&gt;&lt;span&gt; &lt;a href="http://www.netbeans.org/issues/show_bug.cgi?id=140871"&gt;http://www.netbeans.org/issues/show_bug.cgi?id=140871&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;You are welcome to post feedback to &lt;a href="http://www.teesoft.info/phpbb/viewforum.php?f=7" target="_blank"&gt;http://www.teesoft.info/phpbb/viewforum.php?f=7&lt;/a&gt;.&lt;br
    /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/NetBeans" class="performancingtags"&gt;NetBeans&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/BlackBerry" class="performancingtags"&gt;BlackBerry&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/BlackBerry%20JDE" class="performancingtags"&gt;BlackBerry JDE&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/8800" class="performancingtags"&gt;8800&lt;/a&gt;, &lt;a rel="tag"
    href="http://technorati.com/tag/8700" class="performancingtags"&gt;8700&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/8100" class="performancingtags"&gt;8100&lt;/a&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-19T11:21:18+00:00</dc:date>
  </item>
  <item rdf:about="http://blogs.sun.com/amitsaha/entry/building_a_nbpython_standalone">
    <title>Amit Kumar Saha's Blog: Building a nbPython standalone</title>
    <link>http://blogs.sun.com/amitsaha/entry/building_a_nbpython_standalone</link>
    <content:encoded>&lt;p&gt;Its as easy as 1,2,3 to build a nbPython standalone with the latest sources from the repository, especially if you are looking to play with the latest checked-in features.&lt;/p&gt; &lt;p&gt;You will need a very recent (later that 18th July) build of NetBeans &lt;a
    href="http://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/artifact/nbbuild/dist/zip/)"&gt;(http://deadlock.netbeans.org/hudson/job/trunk/lastSuccessfulBuild/artifact/nbbuild/dist/zip/)&lt;/a&gt;&amp;nbsp; or from &lt;a href="http://bits.netbeans.org/download/trunk/nightly/latest/" target="_blank"&gt;http://bits.netbeans.org/download/trunk/nightly/latest/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Check out the nbPython sources from the SVN repository (&lt;a
    href="https://nbpython.dev.java.net/servlets/ProjectProcess?tab=1" target="_blank"&gt;instructions&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;Open the 'nbPython' module suite project in the IDE&lt;/p&gt; &lt;p&gt;In the project explorer, 'Right-Click' on the project name and select 'Build ZIP distribution'&lt;br /&gt;&lt;/p&gt; &lt;p&gt; &lt;img src="http://blogs.sun.com/amitsaha/resource/nb-python/build-zip.png" /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;You will now have a ZIP standalone of 'nbPython'-nbpython.zip in the
    'dist' sub-directory of your project directory. &lt;/p&gt; &lt;p&gt;Unzip it and you will have your own Python IDE on the NetBeans platform. Enjoy!&lt;br /&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2008-07-19T10:26:28+00:00</dc:date>
  </item>
  <item rdf:about="http://cld.blog-city.com/got_blackberry__get_java_and_netbeans.htm">
    <title>cld: Got Blackberry ? Get Java and NetBeans.</title>
    <link>http://cld.blog-city.com/got_blackberry__get_java_and_netbeans.htm</link>
    <content:encoded>NetBeans has gained more support for building Blackberry apps. More....</content:encoded>
    <dc:date>2008-07-19T08:02:00+00:00</dc:date>
  </item>
</rdf:RDF>
