<?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://www.pellissier.co.za/hermien/?p=425" />
        <rdf:li rdf:resource="http://wiki.apidesign.org/wiki/BackwardCompatibility#Strictness" />
        <rdf:li rdf:resource="http://praxisintermedia.wordpress.com/?p=231" />
        <rdf:li rdf:resource="http://alexismp.wordpress.com/?p=5836" />
        <rdf:li rdf:resource="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_91418a9cbf12b50081eff5d3ffdbccb8" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/on_vacation" />
        <rdf:li rdf:resource="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_cad98aba2a04bd0899e2b9a60c0e55df" />
        <rdf:li rdf:resource="http://praxisintermedia.wordpress.com/?p=188" />
        <rdf:li rdf:resource="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_5b6e0c78dc11e297347d582927f4b236" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/plug_a_custom_basictabbedpaneui_into1" />
        <rdf:li rdf:resource="http://www.pellissier.co.za/hermien/?p=424" />
        <rdf:li rdf:resource="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_40da3088b128ad236a87ca1902b8230e" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/simplified_usage_of_the_netbeans" />
        <rdf:li rdf:resource="http://www.pellissier.co.za/hermien/?p=412" />
        <rdf:li rdf:resource="https://blogs.oracle.com/netbeansphp/entry/netbeans_72_final_is_out" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/top_10_new_features_in" />
        <rdf:li rdf:resource="http://wiki.apidesign.org/wiki/JigsawServices" />
        <rdf:li rdf:resource="http://www.pellissier.co.za/hermien/?p=404" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/backupgoo_for_when_clouds_start" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/org_netbeans_spi_project_ui" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/wrapper_project_for_netbeans_projects" />
        <rdf:li rdf:resource="http://praxisintermedia.wordpress.com/?p=181" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/new_tutorial_integrating_javafx_charts1" />
        <rdf:li rdf:resource="http://alexismp.wordpress.com/?p=5829" />
        <rdf:li rdf:resource="http://alexismp.wordpress.com/?p=5788" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/netbeans_support_for_gradle_multi" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/extending_the_lookup_of_a" />
        <rdf:li rdf:resource="http://alexismp.wordpress.com/?p=5625" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/gradle_classpath_support_in_netbeans" />
        <rdf:li rdf:resource="https://blogs.oracle.com/geertjan/entry/more_serious_attempt_at_a" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://www.pellissier.co.za/hermien/?p=425">
    <title>NetBeans Ruminations » NetBeans: Quick Tip: Changing the Order of JavaHelp Topics</title>
    <link>http://www.pellissier.co.za/hermien/?p=425</link>
    <content:encoded>&lt;p&gt;Adding JavaHelp topics to a NetBeans Platform application is made really easy by the NetBeans IDE. Run the New File wizard, and choose the Module Development category, and under File Types pick JavaHelp Help Set. The wizard will generate all the necessary files for you.&lt;/p&gt; &lt;p&gt;The one thing in the process that was not obvious to me when I did this recently, is how you change the order in which help topics appear in the final product. It is in fact also very easy
    once you know how. &lt;img src="http://www.pellissier.co.za/hermien/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /&gt; &lt;/p&gt; &lt;p&gt;Open the generated package-info.java file, and have a look at the @HelpSetRegistration annotation. You will notice that it has a position attribute. And changing the position of the set in the final product is as simple as changing that value!&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-31T19:27:16+00:00</dc:date>
  </item>
  <item rdf:about="http://wiki.apidesign.org/wiki/BackwardCompatibility#Strictness">
    <title>APIDesign - Blogs: How Strict a Backward Compatibility Should Be?</title>
    <link>http://wiki.apidesign.org/wiki/BackwardCompatibility#Strictness</link>
    <content:encoded>&lt;p&gt;Here are &lt;a href="http://wiki.apidesign.org/wiki/BackwardCompatibility#Strictness" title="BackwardCompatibility"&gt;some thoughts&lt;/a&gt; on the difference between 100% &lt;a href="http://wiki.apidesign.org/wiki/BackwardCompatibility" title="BackwardCompatibility"&gt;BackwardCompatibility&lt;/a&gt; and their slightly more practical variants. &lt;/p&gt;&lt;p&gt;--&lt;a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach"
    title="User:JaroslavTulach"&gt;JaroslavTulach&lt;/a&gt; 12:13, 31 July 2012 (UTC) &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-31T12:13:00+00:00</dc:date>
  </item>
  <item rdf:about="http://praxisintermedia.wordpress.com/?p=231">
    <title>praxis » NetBeans: Video Rough Cuts #1</title>
    <link>http://praxisintermedia.wordpress.com/2012/07/30/video-rough-cuts-1/</link>
    <content:encoded>I’ve just started doing a series of videos of Praxis LIVE in action. These rough cuts are unedited except for addition of titles, and are straight screencasts without voiceover. At some point in the near future I’ll look at doing … &lt;a href="http://praxisintermedia.wordpress.com/2012/07/30/video-rough-cuts-1/"&gt;Continue reading &lt;span class="meta-nav"&gt;→&lt;/span&gt;&lt;/a&gt;&lt;img
    src="http://stats.wordpress.com/b.gif?host=praxisintermedia.wordpress.com&amp;amp;blog=25668074&amp;amp;post=231&amp;amp;subd=praxisintermedia&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-30T22:05:07+00:00</dc:date>
  </item>
  <item rdf:about="http://alexismp.wordpress.com/?p=5836">
    <title>Bistro! 2.0: Google Developer Live – Tous les contenus, tous les jours</title>
    <link>http://feedproxy.google.com/~r/Bistro/~3/DWmQ_1SGsAk/</link>
    <content:encoded>&lt;p&gt;&lt;a href="https://developers.google.com/live/"&gt;Google Developer Live (GDL)&lt;/a&gt; a été lancé peu de temps avant Google I/O 2012 et propose du contenu technique sous forme de vidéos: courtes démonstrations, webinars, présentations complètes ou &lt;em&gt;office hours&lt;/em&gt;, qui sont elles interactives par nature avec l’utilisation de hangout on Air (discussion dans un Google + Hangout, (re)diffusion et avec YouTube).&lt;/p&gt; &lt;p&gt;&lt;img
    src="http://alexismp.files.wordpress.com/2012/07/gdlwelcome.png?w=480" /&gt;&lt;/p&gt; &lt;p&gt;Les sujets traités vont de Android à Chrome en passant par Google+, AppEngine, YouTube, Maps et autres APIs Google. &lt;/p&gt; &lt;p&gt;Coté Cloud, il y a par exemple &lt;a href="http://www.youtube.com/watch?v=jiAZAYmL5Ew"&gt;cette courte présentation&lt;/a&gt; des différentes solutions de stockage (Cloud Storage, Datastore et Cloud SQL) et de requêtage (REST, SQL, BigQuery). Il y a aussi des formats plus
    longs comme ce tutorial sur l’&lt;a href="http://www.youtube.com/watch?v=cE6gb5pqr1k"&gt;API Search d’AppEngine&lt;/a&gt;, un &lt;a href="http://www.youtube.com/watch?v=ZE8ODPL2VPI"&gt;tutorial interactif sur l’API Google MAPS&lt;/a&gt;, cette &lt;a href="https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjt1NoCDA/"&gt;session sur le language Dart&lt;/a&gt; couplée à une série de questions sur Google Moderator ou encore ces &lt;a
    href="https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjSuq8DDA/"&gt;réflexions de Robert Scoble&lt;/a&gt; sur le monde des startups.&lt;/p&gt; &lt;p&gt;Coté Android, il y a les Office Hours (&lt;a href="http://www.youtube.com/watch?v=EkPChPuQXN8"&gt;horaire Européen&lt;/a&gt;) pour poser ses questions et les Friday App Review (&lt;a href="http://www.youtube.com/watch?v=jK_dM4fHGTM"&gt;ici avec Reto Meier&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;&lt;a
    href="https://developers.google.com/live/"&gt;&lt;img src="http://alexismp.files.wordpress.com/2012/07/gdl.png?w=480" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Vous trouverez un agenda complet sur le &lt;a href="https://developers.google.com/live/"&gt;site Google Developer Live&lt;/a&gt; ainsi que tous le contenu &lt;a href="http://feeds.feedburner.com/www.youtube.com/googledevelopers"&gt;archivé sur YouTube&lt;/a&gt;. Il se passe quelque chose tous les jours!&lt;/p&gt; &lt;p&gt;“Bon, et le contenu
    en français c’est pour quand?” &lt;a href="https://plus.google.com/102541963324580939229/posts"&gt;Stay tuned&lt;/a&gt;!&lt;/p&gt; &lt;br /&gt;Filed under: &lt;a href="http://alexismp.wordpress.com/category/uncategorized/"&gt;Uncategorized&lt;/a&gt; Tagged: &lt;a href="http://alexismp.wordpress.com/tag/gdl/"&gt;gdl&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/google/"&gt;google&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/live/"&gt;live&lt;/a&gt;, &lt;a
    href="http://alexismp.wordpress.com/tag/youtube/"&gt;youtube&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/gocomments/alexismp.wordpress.com/5836/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/alexismp.wordpress.com/5836/" alt="" border="0" /&gt;&lt;/a&gt; &lt;img src="http://stats.wordpress.com/b.gif?host=alexismp.wordpress.com&amp;amp;blog=11716945&amp;amp;post=5836&amp;amp;subd=alexismp&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;&lt;img
    src="http://feeds.feedburner.com/~r/Bistro/~4/DWmQ_1SGsAk" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-27T13:59:37+00:00</dc:date>
  </item>
  <item rdf:about="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_91418a9cbf12b50081eff5d3ffdbccb8">
    <title>NetBeans RSS Feed Filter: JAX-RS Tip of the Day: Basic Client Authentication</title>
    <link>http://feedproxy.google.com/~r/JavaEvangelistJohnYearysBlog/~3/pcFeVLqgsUA/jax-rs-tip-of-day-basic-client_27.html</link>
    <content:encoded>This is the second part of the &lt;a href="http://javaevangelist.blogspot.com/2012/07/jax-rs-tip-of-day-basic-authentication.html" target="_blank" rel="nofollow"&gt;JAX-RS Tip of the Day: Basic Authentication with JDBC&lt;/a&gt;. If you have not already done the pre-requisites, please examine the other article first.&lt;br /&gt; &lt;h2&gt; Abstract&lt;/h2&gt; Unless you are developing a public service where authentication is not required like weather, or time services. This means that
    you will require authentication, and authorization. This application demonstrates how to perform basic authentication. This may be all that is required for your application, as long as, it is operating in a secure environment, or using secure transport (HTTPS). &lt;br /&gt; &lt;h2&gt; Technical Details&lt;/h2&gt; If you have already completed creating a secure service, then you will really like how easy it is to create a basic authentication client for that service. &lt;br /&gt; &lt;h3&gt;
    Requirements&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans 7.2 IDE&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://commondatastorage.googleapis.com/bluelotussoftware/code/jersey-client-basic-auth.zip" target="_blank" rel="nofollow"&gt;jersey-client-basic-auth.zip&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; As you can see from the code below. The most important item is to add a &lt;code&gt;HTTPBasicAuthFilter&lt;/code&gt; to allow you to
    authenticate. Its that simple... really. &lt;br /&gt; &lt;h2&gt; ExampleResourceClient.java&lt;/h2&gt; &lt;hr /&gt; &lt;pre class="brush: java"&gt;package com.bluelotussoftware.jersey; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.filter.LoggingFilter; /** * REST Basic Authentication Client Application * * @author John Yeary * @version 1.0 */ public class BasicAuthenticationClient { public static void main(String[] args) { ExampleResourceClient erc = new
    ExampleResourceClient(); erc.setUsernamePassword("jyeary", "test"); System.out.println(erc.getMessage()); erc.close(); } static class ExampleResourceClient { private com.sun.jersey.api.client.WebResource webResource; private com.sun.jersey.api.client.Client client; private static final String BASE_URI = "http://localhost:8080/secure-jdbc-rest-service/resources"; public ExampleResourceClient() { com.sun.jersey.api.client.config.ClientConfig config = new
    com.sun.jersey.api.client.config.DefaultClientConfig(); client = com.sun.jersey.api.client.Client.create(config); client.addFilter(new LoggingFilter()); webResource = client.resource(BASE_URI).path("example"); } public String getMessage() throws com.sun.jersey.api.client.UniformInterfaceException { WebResource resource = webResource; return resource.accept(javax.ws.rs.core.MediaType.TEXT_PLAIN).get(String.class); } public void putMessage(Object requestEntity) throws
    com.sun.jersey.api.client.UniformInterfaceException { webResource.type(javax.ws.rs.core.MediaType.TEXT_PLAIN).put(requestEntity); } public void close() { client.destroy(); } public void setUsernamePassword(String username, String password) { client.addFilter(new com.sun.jersey.api.client.filter.HTTPBasicAuthFilter(username, password)); } } } &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img
    src="https://blogger.googleusercontent.com/tracker/36773632-8013887453557202789?l=javaevangelist.blogspot.com" alt="" height="1" width="1" /&gt;&lt;/div&gt; &lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nsqsZzlXe9nGemYnf0ldBwrq3Ig/0/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nsqsZzlXe9nGemYnf0ldBwrq3Ig/0/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href="http://feedads.g.doubleclick.net/~a/nsqsZzlXe9nGemYnf0ldBwrq3Ig/1/da"
    target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nsqsZzlXe9nGemYnf0ldBwrq3Ig/1/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEvangelistJohnYearysBlog/~4/pcFeVLqgsUA" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-27T12:42:47+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/on_vacation">
    <title>Geertjan's Blog: On Vacation</title>
    <link>https://blogs.oracle.com/geertjan/entry/on_vacation</link>
    <content:encoded>&lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/on-vacation.jpg%20" /&gt;&lt;/p&gt; &lt;p&gt;...and I will not be bringing my laptop. Back on Monday, August 13th!&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-27T07:00:02+00:00</dc:date>
  </item>
  <item rdf:about="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_cad98aba2a04bd0899e2b9a60c0e55df">
    <title>NetBeans RSS Feed Filter: JSF Tip of the Day: Schema Declaration Issue</title>
    <link>http://feedproxy.google.com/~r/JavaEvangelistJohnYearysBlog/~3/e9YGotMK30U/jsf-tip-of-day-schema-declaration-issue.html</link>
    <content:encoded>This is not so much as a tip as a warning. If you are trying to use the published schema at &lt;a href="http://java.sun.com/xml/ns/javaee/" target="_blank" rel="nofollow"&gt;Java EE : XML Schemas for Java EE Deployment Descriptors&lt;/a&gt; and specifically the &lt;a href="http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" target="_blank" rel="nofollow"&gt;facelet-taglib schema&lt;/a&gt; from the definition, it has a typo in the declaration. &lt;br /&gt; &lt;h2&gt;
    INCORRECT&lt;/h2&gt; &lt;br /&gt; &lt;h2&gt; CORRECT&lt;/h2&gt; Do you see the error?&lt;br /&gt; &lt;br /&gt; It is in the schemaLocation. They misspelled &lt;i&gt;&lt;b&gt;library&lt;/b&gt;&lt;/i&gt; as &lt;i&gt;&lt;b&gt;libary&lt;/b&gt;&lt;/i&gt; in &lt;b&gt;web-facelettaglibrary_2_0.xsd&lt;/b&gt;.&lt;br /&gt; &lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="background-color: white;"&gt;I try to confirm the schema from the source rather than copying
    it from some other non-authoritative source. This time I found a problem with the cannon source.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="https://blogger.googleusercontent.com/tracker/36773632-1355737371478741715?l=javaevangelist.blogspot.com" alt="" height="1" width="1" /&gt;&lt;/div&gt; &lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hFFEwj3u1OIOKLRSs2B5QBsfax8/0/da" target="_blank" rel="nofollow"&gt;&lt;img
    src="http://feedads.g.doubleclick.net/~a/hFFEwj3u1OIOKLRSs2B5QBsfax8/0/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href="http://feedads.g.doubleclick.net/~a/hFFEwj3u1OIOKLRSs2B5QBsfax8/1/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hFFEwj3u1OIOKLRSs2B5QBsfax8/1/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEvangelistJohnYearysBlog/~4/e9YGotMK30U" height="1" width="1"
    /&gt;</content:encoded>
    <dc:date>2012-07-26T20:42:29+00:00</dc:date>
  </item>
  <item rdf:about="http://praxisintermedia.wordpress.com/?p=188">
    <title>praxis » NetBeans: The Influence of the Actor Model (Praxis architecture 101)</title>
    <link>http://praxisintermedia.wordpress.com/2012/07/26/the-influence-of-the-actor-model/</link>
    <content:encoded>No, not a post about my salacious exploits with a C-list Hollywood celebrity (that’s for a different blog ), but a technical overview of a key aspect of the Praxis architecture. Absolutely essential to Praxis’ media neutral architecture, as well … &lt;a href="http://praxisintermedia.wordpress.com/2012/07/26/the-influence-of-the-actor-model/"&gt;Continue reading &lt;span class="meta-nav"&gt;→&lt;/span&gt;&lt;/a&gt;&lt;img
    src="http://stats.wordpress.com/b.gif?host=praxisintermedia.wordpress.com&amp;amp;blog=25668074&amp;amp;post=188&amp;amp;subd=praxisintermedia&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-26T18:59:44+00:00</dc:date>
  </item>
  <item rdf:about="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_5b6e0c78dc11e297347d582927f4b236">
    <title>NetBeans RSS Feed Filter: JAX-RS JUG Demo CDI and @Singleton Usage</title>
    <link>http://feedproxy.google.com/~r/JavaEvangelistJohnYearysBlog/~3/ND5l4hUeu3k/jax-rs-jug-demo-cdi-and-singleton-usage.html</link>
    <content:encoded>This is the last demonstration I gave at the &lt;a href="http://greenjug.java.net/" target="_blank" rel="nofollow"&gt;Greenville Java Users Group (GreenJUG)&lt;/a&gt; on CDI and JAX-RS. I cleaned up the code, but not as much as you would think. I managed to code this in about 15 minutes during the meeting live while everyone watched. It was a fun experience, but the best part is that it worked during a live un-rehearsed demo. &lt;br /&gt; &lt;br /&gt; It goes to show you that CDI and
    JAX-RS are simple enough in combination to use in a live high stress demo environment. Imagine what it could do for you in your code. This code was written using &lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans 7&lt;/a&gt; IDE which may be responsible for the simplicity as much as the other technologies. &lt;br /&gt; &lt;br /&gt; Here is the source code:&#160;&lt;a href="http://commondatastorage.googleapis.com/bluelotussoftware/code/cdi-example.zip" target="_blank"
    rel="nofollow"&gt;cdi-example.zip&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; The code below demonstrates some interesting bits. The source code above contains the less interesting POJOs. &lt;br /&gt; &lt;h2&gt; PersonResource.java&lt;/h2&gt; &lt;hr /&gt; &lt;br /&gt; &lt;h2&gt; PersonDB.java&lt;/h2&gt; &lt;hr /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img src="https://blogger.googleusercontent.com/tracker/36773632-6667991299928918665?l=javaevangelist.blogspot.com" alt="" height="1" width="1"
    /&gt;&lt;/div&gt; &lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IyH4gto7Ar4Ho0sH0p_n4RX4XAA/0/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IyH4gto7Ar4Ho0sH0p_n4RX4XAA/0/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href="http://feedads.g.doubleclick.net/~a/IyH4gto7Ar4Ho0sH0p_n4RX4XAA/1/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IyH4gto7Ar4Ho0sH0p_n4RX4XAA/1/di" border="0" ismap="ismap"
    /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEvangelistJohnYearysBlog/~4/ND5l4hUeu3k" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-26T12:44:17+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/plug_a_custom_basictabbedpaneui_into1">
    <title>Geertjan's Blog: Plug A Custom BasicTabbedPaneUI into the Mavenized NetBeans Platform</title>
    <link>https://blogs.oracle.com/geertjan/entry/plug_a_custom_basictabbedpaneui_into1</link>
    <content:encoded>&lt;p&gt;Two NetBeans Platform developers, Bo Conroy and Adriana, mentioned &lt;a href="https://blogs.oracle.com/geertjan/entry/plug_a_custom_basictabbedpaneui_into"&gt;at the end of my blog entry here&lt;/a&gt; that plugging in a new tabbed component factory doesn't work for them in their Maven-based NetBeans Platform application. The reason for that is that, in my example code, I used JTabbedPaneAdapter, which is an implementation class in "org.netbeans.core.windows".&lt;/p&gt;
    &lt;p&gt;So, you could do different things. (1) Create an issue to make that class public (that's something I'll be doing soon), though there may be reasons why this isn't done already. (2) Create your own implementation of "org.netbeans.swing.tabcontrol.customtabs.Tabbed", which could be a bit of work and currently isn't documented. That's something I'll be working on soon. (3) Set the "org.netbeans.core.windows" module as a friend module of your own module, which means that you're conscious that
    you're using an internal NetBeans Platform class and that if it changes unexpectedly you can't complain because you knew up front that you're not going to be using a public API.&lt;/p&gt; &lt;p&gt;This is how you do that:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Find the Module Descriptor (module.xml) file in the module where you want to use an internal class:&#160;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/tabbedpane-in-maven-2.png" /&gt; &lt;/li&gt; &lt;li&gt;In that
    file, paste this content: &lt;pre&gt;&lt;font size="1"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt; &amp;lt;nbm&gt; &amp;lt;dependencies&gt; &amp;lt;dependency&gt; &amp;lt;id&gt;org.netbeans.modules:org-netbeans-core-windows&amp;lt;/id&gt; &amp;lt;type&gt;impl&amp;lt;/type&gt; &amp;lt;explicitValue&gt;org.netbeans.core.windows/2 = 201207171143&amp;lt;/explicitValue&gt; &amp;lt;/dependency&gt; &amp;lt;/dependencies&gt; &amp;lt;/nbm&gt;&lt;/font&gt;&lt;/pre&gt; &lt;p&gt;The pattern for impl
    dependencies is XXX = IMPL_VERSION where XXX is the codenamebase and IMPL_VERSION is the implementation version from the module's manifest. (&lt;a href="http://forums.netbeans.org/ptopic26450.html"&gt;Read here.&lt;/a&gt;) &lt;/p&gt; &lt;p&gt;The explicitValue element can be constructed by looking in the manifest of the JAR that you want to make your friend: &lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/tabbedpane-in-maven-3.png" /&gt; &lt;/p&gt; &lt;/li&gt;
    &lt;/ol&gt; &lt;p&gt;Then build the application and everything will work as expected:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/tabbedpane-in-maven.png" /&gt;&lt;/p&gt; &lt;p&gt;Sources of this sample are here:&lt;/p&gt; &lt;p&gt; &lt;a href="http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/MVNTabPaneDemo"&gt;http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/MVNTabPaneDemo&lt;/a&gt;&lt;br
    /&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-26T10:54:30+00:00</dc:date>
  </item>
  <item rdf:about="http://www.pellissier.co.za/hermien/?p=424">
    <title>NetBeans Ruminations » NetBeans: Building Multiple Selected Maven-Based Modules</title>
    <link>http://www.pellissier.co.za/hermien/?p=424</link>
    <content:encoded>&lt;p&gt;Sometimes a small change in an application can make a pretty big difference in user experience. A colleague of mine installed the NetBeans IDE 7.2 yesterday. And after a while he commented that you can now select multiple Maven-based module projects and choose the build action from the context menu! It might seem like an insignificant change, but with our 3-tier application a change can often stretch over multiple modules. So for us this is definitely useful! &lt;/p&gt;
    &lt;p&gt;Do keep in mind though that the multiple builds are started in parellel. So if there are dependencies between the modules you would still have to choose the build order yourself. &lt;img src="http://www.pellissier.co.za/hermien/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-26T05:42:01+00:00</dc:date>
  </item>
  <item rdf:about="http://pipes.yahoo.com/pipes/05c8976f752a076398231a6293ce68e8_40da3088b128ad236a87ca1902b8230e">
    <title>NetBeans RSS Feed Filter: JAX-RS Tip of the Day: Basic Authentication with JDBC</title>
    <link>http://feedproxy.google.com/~r/JavaEvangelistJohnYearysBlog/~3/3WQ5U3eYmuc/jax-rs-tip-of-day-basic-authentication.html</link>
    <content:encoded>&lt;h2&gt; Abstract&lt;/h2&gt; Unless you have a public API like a weather service, or perhaps barometric pressure measurements. You will likely need some form of authentication, and authorization for your service. A tried and tested mechanism is to use JDBC Realm based authentication. In this example I will create &#160;a set of database tables on Apache Derby, set up the security realm on &lt;a href="http://glassfish.java.net/" target="_blank" rel="nofollow"&gt;GlassFish
    3.1.2.2&lt;/a&gt;, and configure basic authentication on a RESTful web service. The majority of the work will be done using the NetBeans IDE 7.2. &lt;br /&gt; &lt;h2&gt; Requirements&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans 7.2&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://commondatastorage.googleapis.com/bluelotussoftware/code/secure-jdbc-rest-service.zip" target="_blank" rel="nofollow"&gt;secure-jdbc-rest-project&lt;/a&gt; Maven
    project&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt; Database&lt;/h2&gt; The first thing we need to do is to set up our database tables which we will use for authentication. These tables can contain more information, but in my example I will keep them simple. &lt;br /&gt; &lt;h3&gt; Creating Tables&lt;/h3&gt; First we will need to create a Users table which will contain our username and password. Using the sample database in &lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans&lt;/a&gt; do
    the following: &lt;br /&gt; &lt;ol&gt; &lt;li&gt;Select the Services Window, and open the Databases selection&lt;/li&gt; &lt;li&gt;Right click on the Java DB icon, and start the server if it is not already started&lt;/li&gt; &lt;li&gt;Right click on the sample database connection: &lt;b&gt;jdbc:derby://localhost:1527/sample [app on APP]&lt;/b&gt; and connect.&lt;/li&gt; &lt;li&gt;Right click on the sample connection and select &lt;b&gt;&lt;i&gt;Execute Command&lt;/i&gt;&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Execute the create table commands and create index commands below.&lt;/li&gt; &lt;/ol&gt; &lt;blockquote&gt; CREATE TABLE users ( username varchar(255) NOT NULL, password varchar(255) DEFAULT NULL, PRIMARY KEY (username) ); &lt;/blockquote&gt; &lt;blockquote&gt; CREATE TABLE groups ( username varchar(255) DEFAULT NULL, groupname varchar(255) DEFAULT NULL); &lt;/blockquote&gt; &lt;blockquote&gt; CREATE INDEX groups_users_idx ON groups(username ASC); &lt;/blockquote&gt; &lt;table
    cellpadding="0" align="center" style="margin-left: auto; margin-right: auto; text-align: center;" cellspacing="0" class="tr-caption-container"&gt;&lt;tbody&gt; &lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a style="margin-left: auto; margin-right: auto;" href="http://4.bp.blogspot.com/-Kf2IbbJbRxk/UA_lOV2TKPI/AAAAAAAABok/DPzfn5RS-5U/s1600/CreateUserGroupsTables.png" target="_blank" rel="nofollow"&gt;&lt;img
    src="http://4.bp.blogspot.com/-Kf2IbbJbRxk/UA_lOV2TKPI/AAAAAAAABok/DPzfn5RS-5U/s320/CreateUserGroupsTables.png" height="202" border="0" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;Create Tables&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;h3&gt; Add Users and Groups&lt;/h3&gt; We need to add at least one user and group to our table. Since I am using &lt;a href="http://glassfish.java.net/" target="_blank"
    rel="nofollow"&gt;GlassFish&lt;/a&gt; as the container, I will use SHA-256 to hash my password. That way it is not visible in plain text. &lt;br /&gt; &lt;ol&gt; &lt;li&gt;Right click on our new USERS table, and select &lt;b&gt;&lt;i&gt;View Data&lt;/i&gt;&lt;/b&gt;&lt;/li&gt; &lt;li&gt;Click on the Insert Records Icon&lt;br /&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt; &lt;a style="margin-left: 1em; margin-right: 1em;"
    href="http://4.bp.blogspot.com/-58DerbKZcFw/UA_m-AUo_xI/AAAAAAAABos/dQ_DJ3XEnjg/s1600/InsertRecordsIcon.png" target="_blank" rel="nofollow"&gt;&lt;img src="http://4.bp.blogspot.com/-58DerbKZcFw/UA_m-AUo_xI/AAAAAAAABos/dQ_DJ3XEnjg/s320/InsertRecordsIcon.png" height="77" border="0" width="320" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/li&gt; &lt;li&gt;Add a user, and add a SHA-256 hash of the password.&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt;An online generator can be found at &lt;a
    href="http://www.xorbin.com/tools/sha256-hash-calculator" target="_blank" rel="nofollow"&gt;SHA-256 hash calculator&lt;/a&gt;&lt;br /&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt; &lt;a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-MDH3Dkwh-zU/UA_ohvur4rI/AAAAAAAABo4/stCFAWriXDU/s1600/AddUser.png" target="_blank" rel="nofollow"&gt;&lt;img src="http://3.bp.blogspot.com/-MDH3Dkwh-zU/UA_ohvur4rI/AAAAAAAABo4/stCFAWriXDU/s320/AddUser.png"
    height="306" border="0" width="320" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/li&gt; &lt;li&gt;Repeat the same process as above to open the GROUPS table&lt;/li&gt; &lt;li&gt;Add the username and a group called &lt;b&gt;users&lt;/b&gt;&lt;br /&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt; &lt;a style="margin-left: 1em; margin-right: 1em;" href="http://1.bp.blogspot.com/-90wx1VNnwPs/UA_pWRDmEgI/AAAAAAAABpE/A23tBm3KQic/s1600/AddGroups.png" target="_blank" rel="nofollow"&gt;&lt;img
    src="http://1.bp.blogspot.com/-90wx1VNnwPs/UA_pWRDmEgI/AAAAAAAABpE/A23tBm3KQic/s320/AddGroups.png" height="306" border="0" width="320" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/li&gt; &lt;/ol&gt; That completes all we need for our JDBC authentication. &lt;br /&gt; &lt;h2&gt; GlassFish JDBC Realm&lt;/h2&gt; Using the NetBeans IDE perform the following: &lt;br /&gt; &lt;ol&gt; &lt;li&gt;Go to the Services window and expand the Servers selection.&lt;/li&gt; &lt;li&gt;Right click on GlassFish 3.1.2 server and
    select &lt;b&gt;&lt;i&gt;Start&lt;/i&gt;&lt;/b&gt;.&lt;/li&gt; &lt;li&gt;Right click and select &lt;b&gt;&lt;i&gt;View Domain Admin Console&lt;/i&gt;&lt;/b&gt;.&lt;/li&gt; &lt;li&gt;On the Admin console web page on the tree on the left select &lt;b&gt;Configurations » server-config » Security » Realms&lt;/b&gt;.&lt;/li&gt; &lt;li&gt;Add a new realm called &lt;b&gt;jdbc&lt;/b&gt; with the following properties:&lt;br /&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; jdbc&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Class Name:&lt;/b&gt; com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm&lt;/li&gt; &lt;li&gt;&lt;b&gt;JAASContext:&lt;/b&gt; jdbcRealm&lt;/li&gt; &lt;li&gt;&lt;b&gt;JNDI:&lt;/b&gt; jdbc/sample&lt;/li&gt; &lt;li&gt;&lt;b&gt;User Table:&lt;/b&gt; users&lt;/li&gt; &lt;li&gt;&lt;b&gt;User Name Column:&lt;/b&gt; username&lt;/li&gt; &lt;li&gt;&lt;b&gt;Password Column:&lt;/b&gt; password&lt;/li&gt; &lt;li&gt;&lt;b&gt;Group Table:&lt;/b&gt; groups&lt;/li&gt; &lt;li&gt;&lt;b&gt;Group
    Table User Name Column:&lt;/b&gt; username&lt;/li&gt; &lt;li&gt;&lt;b&gt;Group Name Column:&lt;/b&gt; groupname&lt;/li&gt; &lt;li&gt;&lt;b&gt;Database User:&lt;/b&gt; app&lt;/li&gt; &lt;li&gt;&lt;b&gt;Database Password:&lt;/b&gt; app&lt;/li&gt; &lt;li&gt;&lt;b&gt;Digest Algorithm:&lt;/b&gt; SHA-256&lt;/li&gt; &lt;li&gt;&lt;b&gt;Encoding:&lt;/b&gt; Hex&lt;/li&gt; &lt;li&gt;&lt;b&gt;Charset:&lt;/b&gt; UTF-8&lt;/li&gt; &lt;/ul&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt;
    &lt;a style="margin-left: 1em; margin-right: 1em;" href="http://4.bp.blogspot.com/-92-2buAVX1s/UBB6Zt2jEfI/AAAAAAAABp0/2-sqX7fvX7M/s1600/JDBCConfiguration.png" target="_blank" rel="nofollow"&gt;&lt;img src="http://4.bp.blogspot.com/-92-2buAVX1s/UBB6Zt2jEfI/AAAAAAAABp0/2-sqX7fvX7M/s320/JDBCConfiguration.png" height="320" border="0" width="314" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Note:&lt;/b&gt; the parameters are case sensitive. &lt;/li&gt; &lt;li&gt;Navigate to &lt;b&gt;Configurations »
    server-config » Security&lt;/b&gt;&lt;/li&gt; &lt;li&gt;Change the &lt;b&gt;Default Realm&lt;/b&gt; to jdbc&lt;/li&gt; &lt;li&gt;Check the &lt;b&gt;Default Principal To Role Mapping&lt;/b&gt; checkbox to &lt;b&gt;enabled&lt;/b&gt;&lt;/li&gt; &lt;li&gt;Click &lt;b&gt;Save&lt;/b&gt; and Restart server.&lt;br /&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt; &lt;a style="margin-left: 1em; margin-right: 1em;"
    href="http://1.bp.blogspot.com/-SEXDrxbnZb0/UBBy_ZRZvvI/AAAAAAAABpU/z0DCWRXPMs8/s1600/SecurityPanel.png" target="_blank" rel="nofollow"&gt;&lt;img src="http://1.bp.blogspot.com/-SEXDrxbnZb0/UBBy_ZRZvvI/AAAAAAAABpU/z0DCWRXPMs8/s320/SecurityPanel.png" height="144" border="0" width="320" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/li&gt; &lt;/ol&gt; The security mapping configuration for automatic mapping makes it so that our application will not require a &lt;b&gt;glassfish-web.xml&lt;/b&gt; file as part of our
    deployment. &lt;br /&gt; &lt;h2&gt; JAX-RS Application&lt;/h2&gt; Finally we have completed all of the requirements on the server side for securing our applications. This security mechanism can be used by more than the application we will are preparing to deploy. We need to set up the security constraints in our web.xml file as shown below. If you have downloaded the &lt;a href="http://commondatastorage.googleapis.com/bluelotussoftware/code/secure-jdbc-rest-service.zip" target="_blank"
    rel="nofollow"&gt;code&lt;/a&gt; you can simply open it in &lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans&lt;/a&gt; and examine it. &lt;br /&gt; &lt;h3&gt; web.xml&lt;/h3&gt; &lt;hr /&gt; Using&#160;&lt;a href="http://netbeans.org/" target="_blank" rel="nofollow"&gt;NetBeans&lt;/a&gt;, you can simply run the application and it will prompt you for an application server. Select the current &lt;a href="http://glassfish.java.net/" target="_blank"
    rel="nofollow"&gt;GlassFish&lt;/a&gt; server we have set-up, and it will deploy in a few seconds. You will come to a index.jsp page. &lt;br /&gt; &lt;div style="clear: both; text-align: center;" class="separator"&gt; &lt;a style="margin-left: 1em; margin-right: 1em;" href="http://4.bp.blogspot.com/-4aK9aVGyAqw/UBB3pmvXqEI/AAAAAAAABpk/WTS1sE-wS5Q/s1600/IndexJSPSecuredJDBC.png" target="_blank" rel="nofollow"&gt;&lt;img
    src="http://4.bp.blogspot.com/-4aK9aVGyAqw/UBB3pmvXqEI/AAAAAAAABpk/WTS1sE-wS5Q/s320/IndexJSPSecuredJDBC.png" height="161" border="0" width="320" /&gt;&lt;/a&gt;&lt;/div&gt; Click on the link for the &lt;b&gt;application.wadl&lt;/b&gt;, or navigate to &lt;b&gt;&lt;i&gt;http://localhost:8080/secure-jdbc-rest-service/resources/example&lt;/i&gt;&lt;/b&gt; and you will be prompted to login. Once you login, you should get this message from the REST service. &lt;br /&gt; &lt;blockquote&gt; This is an example
    message &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="https://blogger.googleusercontent.com/tracker/36773632-7365106624048022349?l=javaevangelist.blogspot.com" alt="" height="1" width="1" /&gt;&lt;/div&gt; &lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tXVXvE2YIvrBdp-8XEPYpdO9Gu0/0/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tXVXvE2YIvrBdp-8XEPYpdO9Gu0/0/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a
    href="http://feedads.g.doubleclick.net/~a/tXVXvE2YIvrBdp-8XEPYpdO9Gu0/1/da" target="_blank" rel="nofollow"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tXVXvE2YIvrBdp-8XEPYpdO9Gu0/1/di" border="0" ismap="ismap" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/JavaEvangelistJohnYearysBlog/~4/3WQ5U3eYmuc" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-26T04:42:36+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/simplified_usage_of_the_netbeans">
    <title>Geertjan's Blog: Simplified Usage of the NetBeans Platform</title>
    <link>https://blogs.oracle.com/geertjan/entry/simplified_usage_of_the_netbeans</link>
    <content:encoded>&lt;p&gt;The latest NetBeans Platform application showcased at NetBeans Zone, &lt;a href="http://netbeans.dzone.com/nb-zirius-erp"&gt;Zirius, the Norwegian ERP System&lt;/a&gt;, is illustrative of how the bare minimum of the NetBeans Platform can be used, to the point where the NetBeans Platform doesn't show through at all:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/simple-nb-app-2.png" /&gt; &lt;/p&gt; &lt;p&gt;On the one hand, this means that
    you're not leveraging the width and breadth of all that the NetBeans Platform provides. On the other hand, it takes time to migrate an application to the NetBeans Platform and the above is a logical first stage. Though you have modularity, an update mechanism, and a loosely coupled mechanism for communication across modules via the Lookup API, you keep everything else exactly as it was before: same UI, including same toolbar and menu bar.&lt;/p&gt; &lt;p&gt;That's possible because you can remove
    everything from the NetBeans Platform and start with a clean slate, in so far as the user interface is concerned:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/simple-nb-app-3.png%20" /&gt; &lt;/p&gt; &lt;p&gt;Above, there's a single NetBeans TopComponent, with its tabs removed. The toolbar is removed and the menu bar is removed, with some dummy menu items added via a custom menu bar. Now you can treat the TopComponent like a JPanel and simply add all your UI
    components within it.&lt;/p&gt; &lt;p&gt;The application above looks like this:&#160;&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/simple-nb-app-1.png" /&gt; &lt;/p&gt; &lt;p&gt;And the sources can be downloaded here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/NBContainer"&gt;http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/NBContainer&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;The code in the repo above was written following the instructions described in the Zirius article.&#160;Using those sources, you can very easily create strictly defined user interfaces, i.e., without the flexible NetBeans window system, with a tree view on the left and a GUI pane on the right, like this, for example, i.e., an image viewer:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/simple-nb-app-6.png" /&gt;&lt;/p&gt; &lt;p&gt;Similar applications on the
    NetBeans Platform, i.e., leveraging low level infrastructure, while all the rest are custom UI components within a single TopComponent, can be read about in these two articles:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://netbeans.dzone.com/news/collision-repair-shops"&gt;Collision Repair Shops on the NetBeans Platform&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://netbeans.dzone.com/articles/public-transport-netbeans"&gt;Public Transportation on the NetBeans Platform&lt;/a&gt; &lt;/li&gt;
    &lt;/ul&gt; &lt;p&gt;What's also cool about the Zirius story is that &lt;a href="https://blogs.oracle.com/geertjan/entry/are_you_in_norway"&gt;Toni and I visited that company two years ago&lt;/a&gt; and, clearly, the NetBeans Platform message did not fall on deaf ears!&lt;br /&gt;&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-25T18:11:35+00:00</dc:date>
  </item>
  <item rdf:about="http://www.pellissier.co.za/hermien/?p=412">
    <title>NetBeans Ruminations » NetBeans: Tutorials Revamped for NetBeans Platform 7.2</title>
    <link>http://www.pellissier.co.za/hermien/?p=412</link>
    <content:encoded>&lt;p&gt;Besides implementing and testing the IDE itself, there are various other tasks involved in a new release of the NetBeans IDE. One important aspect is ensuring that the tutorials on the NetBeans website are up to date. And this release is no exception: there are a number of interesting &lt;a href="http://netbeans.org/kb/trails/platform.html"&gt;NetBeans Platform Learning Trail&lt;/a&gt; tutorials that have been updated by &lt;a
    href="https://blogs.oracle.com/geertjan/"&gt;Geertjan&lt;/a&gt;, and I would like to highlight some of them that I think are particularly useful. &lt;img src="http://www.pellissier.co.za/hermien/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /&gt; &lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://platform.netbeans.org/tutorials/nbm-google.html"&gt;NetBeans IDE 7.2 Plugin Quick Start&lt;/a&gt; – a tutorial that illustrates some of the basic concepts around module development on
    the NetBeans platform, by guiding the reader to implement a Google search bar in the IDE.&lt;/li&gt; &lt;li&gt;&lt;a href="http://platform.netbeans.org/tutorials/nbm-projecttype.html"&gt;NetBeans Project Type Module Tutorial&lt;/a&gt; – a tutorial describing all the aspects of integrating your own kind of project into the IDE. This is an aspect of the platform that has IMO improved drastically over the last few years. This tutorial is most definetely worth a read!&lt;/li&gt; &lt;li&gt;&lt;a
    href="http://platform.netbeans.org/tutorials/nbm-runtime-container.html"&gt;NetBeans Platform Runtime Container Tutorial&lt;/a&gt; – a tutorial describing the minimum set of modules that makes up a NetBeans Platform application.&lt;/li&gt; &lt;/ol&gt;</content:encoded>
    <dc:date>2012-07-25T07:01:07+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/netbeansphp/entry/netbeans_72_final_is_out">
    <title>NetBeans for PHP: NetBeans 7.2 is out!</title>
    <link>https://blogs.oracle.com/netbeansphp/entry/netbeans_72_final_is_out</link>
    <content:encoded>&lt;p&gt;&lt;img src="https://blogs.oracle.com/netbeansphp/resource/article_images/nb-72.jpg" align="left" hspace="25" /&gt; &lt;/p&gt; &lt;p&gt;NetBeans 7.2 was today published. You can download it &lt;a href="http://netbeans.org/downloads/index.html"&gt;here&lt;/a&gt;. You could read about the PHP features added to the NetBeans 7.2 release here on the blog, but the main features added or improved are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Support for PHP 5.4&lt;/li&gt; &lt;li&gt;PHP
    editing: Fix Uses action, annotations support, editing of Neon and Apache Config files and more&lt;/li&gt; &lt;li&gt;Support for Symfony2, Doctrine2 and ApiGen frameworks&lt;/li&gt; &lt;li&gt;FTP remote synchronization&lt;/li&gt; &lt;li&gt;Support for running PHP projects on Hudson&lt;/li&gt; &lt;/ul&gt; &lt;div&gt;For more information, just look at &lt;a href="http://wiki.netbeans.org/NewAndNoteworthyNB72#PHP"&gt;New and Noteworthy&lt;/a&gt; page for &lt;strong&gt;NetBeans
    7.2&lt;/strong&gt;.&lt;/div&gt; &lt;div&gt;And as obvious you can help us to test the build. Just try it and if you find an issue / error, &lt;a href="http://netbeans.org/community/issues.html"&gt;please report it&lt;/a&gt;. Thanks for your help.&lt;/div&gt; &lt;p&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-24T14:57:21+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/top_10_new_features_in">
    <title>Geertjan's Blog: Top 10 New Features in NetBeans IDE 7.2</title>
    <link>https://blogs.oracle.com/geertjan/entry/top_10_new_features_in</link>
    <content:encoded>&lt;p&gt;Start spreading the news! &lt;a href="http://netbeans.org/downloads/index.html"&gt;NetBeans IDE 7.2 is out&lt;/a&gt; with, as always, its clean and neat user interface: &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://netbeans.dzone.com//sites/all/files/nb72-findbugs-small.png" /&gt; &lt;/p&gt; &lt;p&gt;Here's the top 10 features you'll find in this release:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Static code analysis support, in particular, FindBugs integration.&lt;/li&gt;
    &lt;li&gt;Smoother startup and faster project scanning.&lt;/li&gt; &lt;li&gt;New, better, and faster tools throughout the Java Editor.&lt;/li&gt; &lt;li&gt;Enhancements for Java EE developers, such as JPA code completion and PrimeFaces 3.2.&lt;/li&gt; &lt;li&gt;Better JavaFX tools, in particular, JavaFX Scene Builder integration.&lt;/li&gt; &lt;li&gt;Even more NetBeans love for Maven.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Tools and templates for TestNG.&lt;/li&gt; &lt;li&gt;New PHP frameworks integrated,
    together with more editor tools.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Groovy &amp;amp; Grails faster and more tools.&lt;/li&gt; &lt;li&gt;NetBeans C++ powered up and yet more support than before.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;a href="http://netbeans.org/downloads/index.html"&gt;Go get it while the buzz is buzzing!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-24T14:40:01+00:00</dc:date>
  </item>
  <item rdf:about="http://wiki.apidesign.org/wiki/JigsawServices">
    <title>APIDesign - Blogs: Dependencies Between Jigsaw Modules Made Easy!</title>
    <link>http://wiki.apidesign.org/wiki/JigsawServices</link>
    <content:encoded>&lt;p&gt;Those who observe my blog may remember that I have an obsession. I am trying to understand module versioning and dependencies between modules. Recently I was playing with &lt;a href="http://wiki.apidesign.org/wiki/JigsawServices" title="JigsawServices"&gt;JigsawServices&lt;/a&gt;: &lt;/p&gt; &lt;div style="text-align: left;" dir="ltr"&gt;&lt;pre class="source-java"&gt;module M1 &lt;span class="br0"&gt;{&lt;/span&gt; requires service S&lt;span class="sy0"&gt;;&lt;/span&gt;
    &lt;span class="br0"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;The above concept is essentially &lt;a href="http://wiki.apidesign.org/wiki/NP-Complete" class="mw-redirect" title="NP-Complete"&gt;NP-Complete&lt;/a&gt; as one may have choices from multiple modules providing implementation of the service and selecting the right one is NP-hard as explained in &lt;a href="http://wiki.apidesign.org/wiki/JigsawServices#NP-Complete_Services" title="JigsawServices"&gt;this example&lt;/a&gt;.
    &lt;/p&gt;&lt;p&gt;But I think I have found an &lt;a href="http://wiki.apidesign.org/wiki/JigsawServices#Providing_a_Hint" title="JigsawServices"&gt;acceptable solution&lt;/a&gt;. Today I will have a presentation about it (here are the &lt;a href="http://wiki.apidesign.org/images/8/8c/PolynomialDependencies.pdf" class="internal" title="PolynomialDependencies.pdf"&gt;slides&lt;/a&gt;). Wish me luck! &lt;/p&gt;&lt;p&gt;--&lt;a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach"
    title="User:JaroslavTulach"&gt;JaroslavTulach&lt;/a&gt; 13:56, 24 July 2012 (UTC) &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-24T13:56:00+00:00</dc:date>
  </item>
  <item rdf:about="http://www.pellissier.co.za/hermien/?p=404">
    <title>NetBeans Ruminations » NetBeans: NetBeans 7.2: Hot Off The Press!</title>
    <link>http://www.pellissier.co.za/hermien/?p=404</link>
    <content:encoded>&lt;p&gt;NetBeans 7.2 has just been released and can now be downloaded from the &lt;a href="http://netbeans.org/downloads/index.html"&gt;official download page&lt;/a&gt;! &lt;img src="http://www.pellissier.co.za/hermien/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /&gt; For more information about the new and noteworthy features in this release, have a look at &lt;a href="http://wiki.netbeans.org/NetBeans_72_NewAndNoteworthy"&gt;this wiki
    page&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Also read Geertjan’s blog post about the &lt;a href="https://blogs.oracle.com/geertjan/entry/top_10_new_features_in"&gt;Top 10 New Features in NetBeans IDE 7.2&lt;/a&gt;.&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-24T12:18:54+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/backupgoo_for_when_clouds_start">
    <title>Geertjan's Blog: BackupGoo: For When Clouds Start Leaking</title>
    <link>https://blogs.oracle.com/geertjan/entry/backupgoo_for_when_clouds_start</link>
    <content:encoded>&lt;p&gt;Here's a great little backup tool, named &lt;a href="http://www.backupgoo.com/en/index.html"&gt;BackupGoo&lt;/a&gt;, for your Google-related artifacts, i.e., mail, docs, contacts, and calendar:&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.oracle.com/geertjan_images/resource/backupgoo.gif"&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/backupgoo-small.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I had everything set up in seconds, on my Ubuntu machine, as well as
    on my Windows machine. Great application. Gets you ready for those days when the clouds are leaky:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/backupgoo-result1.png" /&gt; &lt;/p&gt; &lt;p&gt;And here's the structure of the application, familiar to anyone using or creating applications on the NetBeans Platform:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/backupgoo-app.png" /&gt;&lt;/p&gt; &lt;p&gt;Would be cool if the NetBeans
    Platform's Favorites window would be included in BackupGoo, which would let you browse into the folder of backed up files and then you'd be able to read those files within BackupGoo using the NetBeans Platform's text editor.&#160;&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-23T20:13:34+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/org_netbeans_spi_project_ui">
    <title>Geertjan's Blog: org.netbeans.spi.project.ui.ProjectOpenedHook</title>
    <link>https://blogs.oracle.com/geertjan/entry/org_netbeans_spi_project_ui</link>
    <content:encoded>&lt;p&gt;If you want something to happen when a project conforming to your project type opens or closes, put an instance of &lt;tt&gt;&lt;a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectuiapi/org/netbeans/spi/project/ui/ProjectOpenedHook.html"&gt;org.netbeans.spi.project.ui.ProjectOpenedHook&lt;/a&gt;&lt;/tt&gt; into your project type's lookup. The methods "projectOpened" and "projectClosed" are called when a project of your type opens or closes in your
    application's GUI.&lt;/p&gt; &lt;p&gt;However, let's make it more interesting! Let's say you want to integrate a tool into NetBeans IDE, for example, that will process ANY project as soon as it is opened. For that purpose, you're able to add objects into the lookup of project types over which you have no control.&lt;/p&gt; &lt;p&gt;Here's an example. Whenever any NetBeans&#160;project opens, a balloon message is created, i.e., shown in the bottom right of the IDE,&#160;with the possibility to search
    Google for information relating to the project.&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/balloon-projectopenedhook.png" /&gt;&lt;/p&gt; &lt;p&gt;The code, but note that below the ProjectOpenedHook is added to the lookup of four NetBeans projects, though it could be added to many others too, for each the annotation needs to include the related project ID:&lt;/p&gt; &lt;pre&gt;&lt;font size="1"&gt;import java.awt.event.ActionEvent; import
    java.awt.event.ActionListener; import java.net.URL; import java.net.URLEncoder; import org.netbeans.api.project.Project; import org.netbeans.spi.project.LookupProvider; import org.netbeans.spi.project.ui.ProjectOpenedHook; import org.openide.awt.HtmlBrowser.URLDisplayer; import org.openide.awt.NotificationDisplayer; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.lookup.Lookups; @LookupProvider.Registration(projectType = {
    "org-netbeans-modules-web-project", "org-netbeans-modules-java-j2seproject", "org-netbeans-modules-apisupport-project", "org-netbeans-modules-apisupport-project-suite" }) public class DefaultProjectOpenedHook implements LookupProvider { @Override public Lookup createAdditionalLookup(final Lookup lookup) { Project p = lookup.lookup(Project.class); final String name = p.getProjectDirectory().getName(); return Lookups.fixed(new ProjectOpenedHook() { @Override protected void projectOpened() {
    NotificationDisplayer.getDefault().notify( //display name: "Opened " + name, //icon: ImageUtilities.loadImageIcon("org/netbeans.png", false), //description: "Search Google for " + name + "!", //action listener: new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { String searchText = URLEncoder.encode(name, "UTF-8"); URLDisplayer.getDefault().showURL( new URL("http://www.google.com/search?hl=en&amp;amp;q=" + searchText + "&amp;amp;btnG=Google+Search")); } catch (Exception
    eee) { return;//nothing much to do } } }); } @Override protected void projectClosed() { } }); } }&lt;/font&gt;&lt;/pre&gt;</content:encoded>
    <dc:date>2012-07-22T10:20:31+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/wrapper_project_for_netbeans_projects">
    <title>Geertjan's Blog: Wrapper Project for NetBeans Projects</title>
    <link>https://blogs.oracle.com/geertjan/entry/wrapper_project_for_netbeans_projects</link>
    <content:encoded>&lt;p&gt;A great question in this blog by swpalmer recently:&lt;/p&gt; &lt;blockquote&gt;I have a need for a custom project type that is mostly just a parent for existing NB project types for Java(Ant or Maven, soon Gradle) and C++. Think of it like a one project for a Java library that uses JNI and the project for the native library that implements the native methods that go with it. Add a little bit of metadata and some custom packaging steps (currently written with Gradle) and that
    would be my new project type. &lt;p&gt;Would making a new parent project type that has subprojects of existing NB project types be an easy thing to implement? &lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Well, here's a simple example. Imagine you have folders for your customers, each containing multiple NetBeans projects. Would be cool to be able to open all those projects together, as part of a new project defined by some recognized structure in the customer folder:&lt;/p&gt; &lt;p&gt;&lt;img
    src="https://blogs.oracle.com/geertjan_images/resource/multi-nbproject-project-1.png%20" /&gt; &lt;/p&gt; &lt;p&gt;Then, once open, you can do typical things you'd like to be able to do to multiple projects belonging to a shared container of some kind, such as open the individual projects for separate editing:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/multi-nbproject-project-2.png%20" /&gt; &lt;/p&gt; &lt;p&gt;Notice that, though the icon is retained from the
    original NetBeans project, the logical view isn't. I don't think there's a way around that.&lt;/p&gt; &lt;p&gt;The way this works is that the "createLogicalView" override of the Project implementation returns a Node that defines its children as FilterNode.Children, with the icons overridden. That defines the logical view. The ability to open the NetBeans project together with the main project is done via a SubprojectProvider in the Lookup of the main project, which recognizes subfolders containing an
    "nbproject" folder as a subproject of the main project.&lt;/p&gt; &lt;p&gt;Best of all, I can now create Actions which lookup all the subprojects and then do something with the group of subprojects. Maybe, for example, all the subprojects can be built together or run together or something like that. A higher level container like this can open up a lot of possibilities and isn't hard to create, if you combine the instructions in the above paragraph with the instructions in this tutorial:&lt;/p&gt;
    &lt;p&gt;&lt;a href="http://platform.netbeans.org/tutorials/nbm-projecttype.html"&gt;http://platform.netbeans.org/tutorials/nbm-projecttype.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Finally, if the customer project in the screenshots above were to be a Gradle project, then I think the question with which this blog entry started would be resolved.&#160;&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-21T21:29:58+00:00</dc:date>
  </item>
  <item rdf:about="http://praxisintermedia.wordpress.com/?p=181">
    <title>praxis » NetBeans: NPE Hunting (Win7, Java7, custom LAF)</title>
    <link>http://praxisintermedia.wordpress.com/2012/07/21/npe-hunting/</link>
    <content:encoded>I recently had to track down the cause of a NullPointerException when opening a JFileChooser dialog in Praxis on Windows with Java 7.&#160; Turns out there’s a nasty little bug that affects NetBeans platform apps and the NetBeans IDE when … &lt;a href="http://praxisintermedia.wordpress.com/2012/07/21/npe-hunting/"&gt;Continue reading &lt;span class="meta-nav"&gt;→&lt;/span&gt;&lt;/a&gt;&lt;img
    src="http://stats.wordpress.com/b.gif?host=praxisintermedia.wordpress.com&amp;amp;blog=25668074&amp;amp;post=181&amp;amp;subd=praxisintermedia&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-21T17:05:30+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/new_tutorial_integrating_javafx_charts1">
    <title>Geertjan's Blog: New Tutorial: Integrating JavaFX Charts into the NetBeans RCP (Part 2)</title>
    <link>https://blogs.oracle.com/geertjan/entry/new_tutorial_integrating_javafx_charts1</link>
    <content:encoded>&lt;p&gt;Recently the &lt;a href="http://platform.netbeans.org/tutorials/nbm-javafx.html"&gt;NetBeans Platform JavaFX Integration Tutorial&lt;/a&gt; was released. There were still some open issues, though, &lt;a href="https://blogs.oracle.com/geertjan/entry/new_tutorial_integrating_javafx_charts"&gt;as described here in Part 1 of this series&lt;/a&gt;. Gail and Paul Anderson, from &lt;a href="http://www.asgteach.com/"&gt;Anderson Software Group&lt;/a&gt;, picked up the gauntlet and
    fixed these problems, as well as introducing additional JavaFX charts to the application:&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.oracle.com/geertjan_images/resource/javafx-more-charts-1.jpg"&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/javafx-more-charts-2.png" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I'll be updating the tutorial soon with the new code and fixes provided by Gail and Paul! All the code is already available here:&lt;/p&gt; &lt;p&gt;&lt;a
    href="http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/StockTraderClient"&gt;http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/StockTraderClient&lt;/a&gt; &lt;/p&gt; &lt;p&gt;They'll also be delivering a tutorial on JavaFX and the NetBeans Platform at JavaOne 2012&#160;in October this year:&lt;/p&gt; &lt;blockquote style="border-width: 2px; border-style: solid; border-color: #666666; padding: 8px; background-color:
    #cccccc;"&gt;&lt;b&gt;"TUT4801 - Make Your Clients Richer: JavaFX and the NetBeans Platform"&lt;br /&gt;&lt;/b&gt;The NetBeans platform is known for its comprehensive window framework and loosely coupled architecture. JavaFX offers a rich set of visually appealing GUI components. This tutorial shows you how to use both to enhance the user experience in desktop client applications. In the tutorial, you will learn how to integrate JavaFX into a NetBeans application. You will start with a basic
    application that generates data. You will then create a NetBeans module that includes a dynamic JavaFX chart component. This chart component leverages JavaFX bindings to visually animate data as the values change. The result includes an application with a sophisticated out-of-the-box GUI coupled with flashy, JavaFX-powered animations.&lt;/blockquote&gt; &lt;p&gt;That's a two hour topic, i.e., a tutorial, they will do on this subject. Looking forward to it!&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-20T16:58:18+00:00</dc:date>
  </item>
  <item rdf:about="http://alexismp.wordpress.com/?p=5829">
    <title>Bistro! 2.0: API Google Maps: gratuit ou pas?</title>
    <link>http://feedproxy.google.com/~r/Bistro/~3/1y0utlb-HVY/</link>
    <content:encoded>&lt;p&gt;Pour certains ce sera un rappel ou une clarification, pour d’autres peut-être une information nouvelle.&lt;/p&gt; &lt;p&gt;L’&lt;a href="https://developers.google.com/maps/"&gt;API Google Maps&lt;/a&gt; est une des toutes premières API proposée par Google et probablement aussi une des plus populaire auprès des développeurs.&lt;/p&gt; &lt;p&gt;&lt;img src="http://alexismp.files.wordpress.com/2012/07/licensing.png?w=480" align="right" border="0" hspace="5" /&gt;&lt;br /&gt;
    Cartes &lt;a href="https://developers.google.com/maps/documentation/javascript/styling"&gt;stylisées&lt;/a&gt; ou pas, l’usage gratuit de l’API est limité à 25 000 chargements de cartes par jour. Au delà il en coutera $0.50 pour 1000 chargements supplémentaires (après avoir initiallement été de $4). Les détails sont disponibles sur &lt;a href="https://developers.google.com/maps/faq#usage_pricing"&gt;cette page&lt;/a&gt;. Il est important de comprendre qu’un chargement de carte (map load) est en réalité
    une instanciation de l’API Maps et non pas l’affichage de chaque tuile (tile). De telles limites existent également pour le geocoding, l’API Image Street View, etc.&lt;/p&gt; &lt;p&gt;Google estime à moins de 0,5% le nombre de sites concernés par cette règle des 25 000 chargements quotidiens. Dans les faits, les sites qui dépasseront cette limite tous les jours pendant plus de 90 jours consécutifs seront contactés par Google. Pas d’arrêt de service à prévoir en cas de popularité soudaine d’un site ou
    d’un service. Le meilleur moyen de mesurer sa consommation est de se connecter sur la &lt;a href="https://developers.google.com/console/"&gt;Console Google API&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Tout ceci est applicable lorsque le site ou service qui utilise l’API Google Maps est librement accessible à tous. Les détails sont disponibles &lt;a href="https://developers.google.com/maps/terms#section_9_1"&gt;ici&lt;/a&gt;. Dans le cas contraire (éditeur de logiciel embarquant l’API par exemple), Google propose
    &lt;a href="http://www.google.com/enterprise/earthmaps/maps.html"&gt;Maps API for Business&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Si vous avez besoin d’un “rafraichissement” sur l’API Google Maps, je vous invite à regarder &lt;a href="http://www.youtube.com/watch?v=nnNv-6SWyOk"&gt;cette présentation récente en français&lt;/a&gt;. Au rang des anecdotes, vous y apprendrez par exemple que Google Maps utilise une variante de la projection Mercator ou que ses tuiles sont des images 256×256 pixels. Si vous ne l’avez
    pas encore fait, la &lt;a href="http://googlegeodevelopers.blogspot.fr/2012/06/gov3-its-time-to-upgrade.html"&gt;migration vers l’API v3&lt;/a&gt; est fortement encouragée.&lt;/p&gt; &lt;p&gt;Comme pour &lt;a href="http://alexismp.wordpress.com/2012/05/31/community-support-for-google-technologies-is-on-stackoverflow/"&gt;toutes ses technologies&lt;/a&gt;, Google vous invite à poser vos question techniques &lt;a href="http://stackoverflow.com/questions/ask?tags=google-maps-api-3,google-maps"&gt;sur
    StackOverflow&lt;/a&gt; et à suivre sa &lt;a href="https://plus.google.com/104063627743574070634/posts"&gt;page Google+&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Enfin coté actualité produit, il y a désormais la possibilité de télécharger des cartes entières pour une utilisation hors-ligne, l’arrivée dans certaines villes du projet helicopter (vues à 45 degrés) et de nouvelles offres SaaS pour l’entreprise : &lt;a href="http://www.google.com/enterprise/mapsearth/products/mapsengine.html"&gt;Google Maps
    Engine&lt;/a&gt;, ou &lt;a href="http://www.google.com/enterprise/mapsearth/products/coordinate.html"&gt;Google Maps Coordinate&lt;/a&gt;.&lt;/p&gt; &lt;br /&gt;Filed under: &lt;a href="http://alexismp.wordpress.com/category/uncategorized/"&gt;Uncategorized&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/gocomments/alexismp.wordpress.com/5829/" rel="nofollow"&gt;&lt;img src="http://feeds.wordpress.com/1.0/comments/alexismp.wordpress.com/5829/" alt="" border="0" /&gt;&lt;/a&gt; &lt;img
    src="http://stats.wordpress.com/b.gif?host=alexismp.wordpress.com&amp;amp;blog=11716945&amp;amp;post=5829&amp;amp;subd=alexismp&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/Bistro/~4/1y0utlb-HVY" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-20T14:59:38+00:00</dc:date>
  </item>
  <item rdf:about="http://alexismp.wordpress.com/?p=5788">
    <title>Bistro! 2.0: Thoughts on the Jigsaw debacle</title>
    <link>http://feedproxy.google.com/~r/Bistro/~3/899zn452kRE/</link>
    <content:encoded>&lt;p&gt;Disclaimer: this is a personal piece of opinion and in absolutely no way does it necessarily reflect the views of my current employer. I have spent 13 years at Sun/Oracle (5 of which in the GlassFish team which had a modularity experience of its own) and I still care very much about the future of Java. I now work at Google.&lt;/p&gt; &lt;p&gt;Runtime modularity in Java has been promised since JSR 277 was filed in 2005 and I &lt;a
    href="http://alexismp.wordpress.com/2005/09/07/the-most-important-feature-for-java-7/"&gt;wrote&lt;/a&gt; how excited I was about its potential back then. Seven (7!) years, a fair amount of OSGi lobbying and politics, Sun’s acquisition, and a &lt;a href="http://mreinhold.org/blog/plan-b"&gt;plan B promise&lt;/a&gt; later, we’ve come to this day to learn that it’ll be &lt;a href="http://mreinhold.org/blog/late-for-the-train"&gt;pushed further out&lt;/a&gt; to 2015 which really means 2016 for a stable
    release and probably 2020 for a wide adoption. After being promised Java 8 with Jigsaw in late 2012 by Oracle, we’re now taking another 3-year hit because the project missed “the train”.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;About resources and goals&lt;/strong&gt;&lt;br /&gt; Jigsaw has been Mark Reinhold’s baby project for all this time (Mark is the Chief Architect of Java) and I’m now hearing excuses about staffing issues. “Oracle failed to staff Java modularity effort for years”. Hey, now that’s a much
    better headline! The reality I believe is that Oracle still doesn’t know why it’s doing Jigsaw and thus giving it the proper priority is hard. Modularize the JRE itself to help with JavaME and JavaFX adoption? Offer a modules system for Java’s longer-term viability? A business case can certainly be put together to shrink down the JRE to get Oracle upper management on board. On the other hand, bringing the JVM, the compiler, and the language together around a modules system seems, sadly, to be falling
    off of Oracle’s radar.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;About that train&lt;/strong&gt;&lt;br /&gt; The common wisdom is that the Eclipse way of shipping software is the best way to get a community of developers building on a platform. You’ve probably also heard of “release early release often”. Eclipse is a very special project which is really about providing a baseline for the Foundation members to build upon and I’d argue that Eclipse IDE users on the other side are not benefiting much from this
    release model. When it comes to Java, we’re talking about something that also has a diverse audience and I think developers remain far more important than vendors and that a cadenced release model is actually harmful. It’s easy to agree on shipping software when it’s fully baked but the two-year cycle is really the key issue here. Oracle should be able to declare Jigsaw a strategic goal and deliver it with an extra 6 to 12 months (which, by the way, would still mean 2+ years from now!).&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;About the community&lt;/strong&gt;&lt;br /&gt; Jigsaw has been presented for many many years by Sun and later Oracle as a key feature in numerous keynotes and conferences and promised in Java 7, Java 8 (in fact I’ve done my share of such promotion while at Oracle) and now Java 9. That has created a lot of expectations in the community. In fact, it’s not only about Java SE as a large portion of the Java ecosystem is also waiting for a standard modularity solution: JavaME, Java EE
    (see this sample &lt;a href="http://webspherecommunity.blogspot.fr/2011/10/modularity-next-generation-of.html"&gt;IBM reaction&lt;/a&gt; when modularity had to be removed from EE 7), Groovy and other JVM languages and probably by many developers building non-trivial applications with Java. Surely there’s got to be a better way to convey bad news to the community than “sorry, we’ve missed the train!”. In retrospect, the plan A/plan B approach was a brilliant communication plan with Plan A really not
    being an option and the community rallying behind Plan B. It’s often about how things are conveyed, not only about what they convey.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;About open source&lt;/strong&gt;&lt;br /&gt; I hear some say that this would not have happened if Java was truly open source with a community, not a company, overlooking its destiny. First, my &lt;a href="http://opensource.org/docs/osd"&gt;definition of Open Source&lt;/a&gt; remains. IP and governance are (ideally) orthogonal to the
    license and no simple solution exists for all software projects. But more importantly, this is a sad case of a project’s failed risk mitigation (sadly a very common failure in our industry). To consider that a different governance model would have changed anything is wishful thinking. Innovative carefully crafted designs always come from a very small number of talented engineers and in fact, this may even be a case where going open source and transparent was not a good idea but rather a fatal
    distraction.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;About what’s next&lt;/strong&gt;&lt;br /&gt; As I wrote above, Oracle has the resources to declare Jigsaw a strategic goal. I can agree that it may be hard to deliver by late 2013 but waiting for 2016 is effectively killing Jigsaw and encouraging everyone to look at alternatives which will jeopardize yet even more Jigsaw’s chances of ever seeing the light of day. In fact, even Oracle is considering profiles in Java 8, an ugly band-aid if you ask me. One
    you’ll need to painfully tear off to get proper modularity in the platform. Jigsaw really shouldn’t be seen as “a new feature”, to me it’s really the Java reboot some people have been calling for a long time. Only a compatible one.&lt;/p&gt; &lt;p&gt;Now of course this is all my personal take and I don’t pretend to know what’s good for Java nor represent the community at large. So getting some hard data about what the community expects from Jigsaw would be a good start before making any decision. I
    believe this has not been done so far. The closest I’ve seen is the recent &lt;a href="http://jaxenter.com/project-jigsaw-delayed-until-java-9-the-reaction-43719.html"&gt;JAXenter poll&lt;/a&gt; which isn’t very scientific (self-selected, somewhat biased questions).&lt;/p&gt; &lt;p&gt;So in the end, if the community wants Java 8 with its updated and stripped-down content (Lambda, maybe JSR 310, what else?) in 2013, Oracle and the JCP should deliver just that. Again, it’s about meeting expectations. But
    shipping a Java 8.5 with Jigsaw sooner than later should also be considered. And if there really needs to be a train release model, it has to be a yearly one and not every release needs to be a major one.&lt;/p&gt; &lt;p&gt;In a world where standing still is perceived as fossilization, bringing proper modularity to Java is what moving Java forward ™ is really about.&lt;/p&gt; &lt;br /&gt;Filed under: &lt;a href="http://alexismp.wordpress.com/category/uncategorized/"&gt;Uncategorized&lt;/a&gt; Tagged:
    &lt;a href="http://alexismp.wordpress.com/tag/java-2/"&gt;java&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/jcp/"&gt;jcp&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/jigsaw/"&gt;jigsaw&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/oracle/"&gt;oracle&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/osgi/"&gt;osgi&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/gocomments/alexismp.wordpress.com/5788/" rel="nofollow"&gt;&lt;img
    src="http://feeds.wordpress.com/1.0/comments/alexismp.wordpress.com/5788/" alt="" border="0" /&gt;&lt;/a&gt; &lt;img src="http://stats.wordpress.com/b.gif?host=alexismp.wordpress.com&amp;amp;blog=11716945&amp;amp;post=5788&amp;amp;subd=alexismp&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/Bistro/~4/899zn452kRE" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-20T09:36:57+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/netbeans_support_for_gradle_multi">
    <title>Geertjan's Blog: NetBeans Support for Gradle Multi-project Builds</title>
    <link>https://blogs.oracle.com/geertjan/entry/netbeans_support_for_gradle_multi</link>
    <content:encoded>&lt;p&gt;The start of multi-project build support&#160;(&lt;a href="http://gradle.org/docs/current/userguide/multi_project_builds.html"&gt;described here&lt;/a&gt;)&#160;for the NetBeans Gradle plugin. For the projects that are part of the multi-project build, a separate project type is defined, which is registered in the lookup of the main Gradle project. Now each of the projects can be opened and worked on independently of the main project, in the same way as with suites/modules in
    NetBeans Platform development or the EJB modules in a NetBeans Java EE application project, for example.&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/gradle-subtypes.png%20" /&gt; &lt;/p&gt; &lt;p&gt;Above, you see the &lt;a href="https://github.com/Netflix/curator/wiki/"&gt;Netflix Curator on GitHub&lt;/a&gt;, which Tim Boudreau suggested might be a good largish real world application for trying out the NetBeans plugin for Gradle.&lt;/p&gt; &lt;p&gt;As a
    consequence, I learned a lot about sub project type support in the NetBeans Platform. (Well, actually this is part of the APIs exposed by NetBeans IDE and &lt;i&gt;not&lt;/i&gt;&#160;the NetBeans Platform.) Read about it here, which is where I documented it in the NetBeans Platform 7.2 Project Type tutorial:&lt;/p&gt; &lt;p&gt;&lt;a href="http://platform.netbeans.org/tutorials/nbm-projecttype.html"&gt;http://platform.netbeans.org/tutorials/nbm-projecttype.html&lt;/a&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-19T15:53:41+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/extending_the_lookup_of_a">
    <title>Geertjan's Blog: Extending the Lookup of a Java SE Project</title>
    <link>https://blogs.oracle.com/geertjan/entry/extending_the_lookup_of_a</link>
    <content:encoded>&lt;p&gt;Here I have the start of some kind of visualizer for Java SE projects in NetBeans IDE. A project is passed in and then the visualizer does something with it:&lt;/p&gt; &lt;pre&gt;&lt;font size="1"&gt;public class MyJavaSEVisualizer { public MyJavaSEVisualizer(Project p) { // do something with the project to visualize it } }&lt;/font&gt;&lt;/pre&gt; &lt;p&gt;Next, I have some action. In this case, the action is invoked from the File menu. The action is only enabled if a project
    is in the lookup. The action then retrieves the visualizer from the lookup of the project:&lt;font size="1"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;pre&gt;&lt;span&gt;@&lt;/span&gt;&lt;font size="1"&gt;ActionID(category = "File", id = "org.jse.lookup.SomeAction") @ActionRegistration(displayName = "#CTL_SomeAction") @ActionReference(path = "Menu/File", position = 0) @Messages("CTL_SomeAction=Some") public final class SomeAction implements ActionListener { private final Project context; public
    SomeAction(Project p) { this.context = p; } @Override public void actionPerformed(ActionEvent e) { MyJavaSEVisualizer mjsev = context.getLookup().lookup(MyJavaSEVisualizer.class); if(mjsev != null){ JOptionPane.showMessageDialog(null, "this is a Java SE project"); // now call a method on mjsev... } else { JOptionPane.showMessageDialog(null, "this is NOT a Java SE project"); // now don't call a method on mjsev... } } }&lt;/font&gt;&lt;/pre&gt; &lt;p&gt;But how does the visualizer end up in the lookup of
    the project? Like this, i.e., without changing the source of Java SE projects, but by extending the lookup of Java SE projects, i.e., the lookup of projects can be defined to be pluggable and, in the case of NetBeans IDE projects, projects have been defined in that way:&lt;/p&gt; &lt;pre&gt;&lt;font size="1"&gt;@LookupProvider.Registration(projectType = "org-netbeans-modules-java-j2seproject") public class MyJavaSEVisualizerLookupProvider implements LookupProvider { @Override public Lookup
    createAdditionalLookup(Lookup lookup) { return Lookups.fixed(new MyJavaSEVisualizer(lookup.lookup(Project.class))); } }&lt;/font&gt;&lt;/pre&gt;</content:encoded>
    <dc:date>2012-07-18T19:45:01+00:00</dc:date>
  </item>
  <item rdf:about="http://alexismp.wordpress.com/?p=5625">
    <title>Bistro! 2.0: Google Developer Expert (GDE) en France</title>
    <link>http://feedproxy.google.com/~r/Bistro/~3/1dcWQadG0KU/</link>
    <content:encoded>&lt;p&gt;Parmi les annonces que vous n’avez peut-être pas vu passer lors de Google I/O 2012, il y a le programme &lt;a href="https://developers.google.com/experts/"&gt;Google Developer Experts&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;img src="http://alexismp.files.wordpress.com/2012/07/gde_logo.jpg?w=440&amp;amp;h=70" vspace="5" height="70" border="0" width="440" /&gt;&lt;/p&gt; &lt;p&gt;Avec ce nouveau programme, Google propose à des individus d’obtenir un titre d’expert à l’année pour l’un
    des domaines de prédilection de Google (Android, Cloud, HTML5, Chrome, Social, Geo, etc…).&lt;/p&gt; &lt;p&gt;Il ne s’agit bien entendu pas d’un rôle de porte-parole mais plus d’une reconnaissance apportée à une personne à la fois &lt;strong&gt;technique, experte et visible&lt;/strong&gt; (présentations publiques, blog, commits, etc…). Ce titre lui permettra d’entretenir une relation avec Google (contact avec les developer advocates, access aux previews et plus encore) et de présenter lors de
    conférences développeurs.&lt;/p&gt; &lt;p&gt;Initiallement piloté en Israel et au Japon, le programme est désormais publique et actif en France comme l’indique la &lt;a href="https://developers.google.com/experts/members/"&gt;page des Experts actifs&lt;/a&gt;. Sa gestion est effectuée localement par Google France.&lt;/p&gt; &lt;p&gt;Maj: voici &lt;a href="http://googledevelopers.blogspot.fr/2012/07/google-developers-expert-recognizing.html"&gt;un billet&lt;/a&gt; sur GDE rédigé par le responsable du
    program au niveau mondial.&lt;/p&gt; &lt;br /&gt;Filed under: &lt;a href="http://alexismp.wordpress.com/category/uncategorized/"&gt;Uncategorized&lt;/a&gt; Tagged: &lt;a href="http://alexismp.wordpress.com/tag/expert/"&gt;expert&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/gde/"&gt;gde&lt;/a&gt;, &lt;a href="http://alexismp.wordpress.com/tag/google/"&gt;google&lt;/a&gt; &lt;a href="http://feeds.wordpress.com/1.0/gocomments/alexismp.wordpress.com/5625/" rel="nofollow"&gt;&lt;img
    src="http://feeds.wordpress.com/1.0/comments/alexismp.wordpress.com/5625/" alt="" border="0" /&gt;&lt;/a&gt; &lt;img src="http://stats.wordpress.com/b.gif?host=alexismp.wordpress.com&amp;amp;blog=11716945&amp;amp;post=5625&amp;amp;subd=alexismp&amp;amp;ref=&amp;amp;feed=1" alt="" height="1" border="0" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/Bistro/~4/1dcWQadG0KU" height="1" width="1" /&gt;</content:encoded>
    <dc:date>2012-07-17T15:10:47+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/gradle_classpath_support_in_netbeans">
    <title>Geertjan's Blog: Gradle Classpath Support in NetBeans</title>
    <link>https://blogs.oracle.com/geertjan/entry/gradle_classpath_support_in_netbeans</link>
    <content:encoded>&lt;p&gt;This may be my greatest achievement as a NetBeans Platform programmer, ever. Since &lt;a href="http://www.youtube.com/watch?v=k1zP37KpPTk"&gt;my girlfriend is not a programmer&lt;/a&gt;, she's not going to be able to join with me in celebrating this happy news. (Well, she can celebrate, but without full appreciation.) &lt;/p&gt; &lt;p&gt;So I turn to the on-line community of developers everywhere: I've created a Gradle project type for NetBeans IDE, with classpath support.
    That means that not only the JDK, but also the dependencies declared in the Gradle build file are on the classpath of the project:&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.oracle.com/geertjan_images/resource/gradle-classpath-1.gif%20"&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/gradle-classpath-2.png%20" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The JARs in the Libraries node above are defined in the Gradle build file, refer to the screenshot in yesterday's blog entry for details.
    Those JARs are put on the classpath, thanks to the NetBeans plugin, and can then be coded against, as you can see above.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Still a lot needs to be done before this is usable. Changes in the Gradle build file need to be reflected in the hierarchies in the explorer view; the user should be able to map Gradle tasks to project commands; the user should be able to change the JDK; and many other similar project-level features need to be implemented, while it would also be cool to
    have the Package View support integrated into this project type.&lt;/p&gt; &lt;p&gt;But, for now, this is a great step forward. It would be great to have a few people out there who'd like to try out this early (and also later) version of the plugin, but bear in mind that only very few features work. Well, you can run all your tasks and the classpath works, so that's all the basic stuff ready to be used by anyone using Gradle. &lt;/p&gt; &lt;p&gt;A small cool thing I like is the fact that the project
    node hierarchy is pluggable. So, you could create an external module and provide a new node in the project view above, but more about that another time.&#160;&lt;/p&gt; &lt;p&gt;Many thanks to the Grails project (which owes some gratitude to the Ruby project, among others), which is where almost all of the Gradle classpath code comes from.&#160;&lt;/p&gt;</content:encoded>
    <dc:date>2012-07-17T09:40:22+00:00</dc:date>
  </item>
  <item rdf:about="https://blogs.oracle.com/geertjan/entry/more_serious_attempt_at_a">
    <title>Geertjan's Blog: More Serious Attempt at a NetBeans Gradle Plugin</title>
    <link>https://blogs.oracle.com/geertjan/entry/more_serious_attempt_at_a</link>
    <content:encoded>&lt;p&gt;After a few small skirmishes in this area, here's a more serious attack:&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.oracle.com/geertjan_images/resource/more-serious-gradle-plugin.gif%20"&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/more-serious-gradle-plugin-small.gif%20" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;What you see above is that a Gradle build file can be expanded, exposing its tasks, which can be double-clicked to be invoked. Also, the JAR
    dependencies of the project are visualized and can be browsed just like any other JAR file in NetBeans. When a change is made in the file, the task hierarchy and the dependency hierarchy are automatically rebuilt.&lt;/p&gt; &lt;p&gt;Any folder that has a file named 'build.gradle', on the highest level within the folder, is recognized as a Gradle project and can be opened:&lt;/p&gt; &lt;p&gt;&lt;img src="https://blogs.oracle.com/geertjan_images/resource/gradle-72-rc1-3.png" /&gt; &lt;/p&gt; &lt;p&gt;
    All of the features above are then automatically available. There's also a file template for creating a new Gradle build file from scratch, for an existing project that doesn't yet have Gradle support.&#160;&lt;/p&gt; &lt;p&gt;The final step, at least for this version of the plugin that provides basic Gradle support, is to work with the class path. I'll need to look at how this is done for the Grails project type, as well as, maybe the Maven project type. Not only the Java classes in 'src' should be on
    the classpath, but also the Java classes in the JARs retrieved via the declared dependencies.&lt;/p&gt; &lt;p&gt;The sources are here, anyone is free to do whatever they want with them:&lt;/p&gt; &lt;p&gt;&lt;a href="http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/GradleProjectType"&gt;http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/misc/GradleProjectType&lt;/a&gt; &lt;/p&gt;</content:encoded>
    <dc:date>2012-07-16T19:01:38+00:00</dc:date>
  </item>
</rdf:RDF>
