<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Planet NetBeans</title>
    <link>http://www.planetnetbeans.org/de/</link>
    <language>de</language>
    <description>Planet NetBeans - http://www.planetnetbeans.org/de/</description>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: Maven NetBeans Platform und dessen Sourcecode</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_netbeans_platform_und_dessen_sourcecode/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_netbeans_platform_und_dessen_sourcecode/index.html</link>
      <description>&lt;p class="bodytext"&gt;Wenn man schon eine OpenSource Platform verwendet, will man den Quelltext auch gerne zum Debuggen verwenden. In Maven gestützten Projekten gibt es den Kontextmenü Befehl "Download Sources" im Libraries Ordner des Maven-Projektes. &lt;/p&gt; &lt;p class="bodytext"&gt;Allerdings funktioniert es bei mir nicht 100%. Aus irgend einem Grund bricht der Download dabei ständig ab. Außerdem ist der Kontextmenü Befehl nur lokal für das Projekt, in dem die Libraries
      sichtbar sind. &lt;/p&gt; &lt;p class="bodytext"&gt;Es gibt aber eine andere - m.E. elegantere - Lösung die Quelltexte komplett für ein Projekt zu laden. &lt;/p&gt; &lt;p class="bodytext"&gt;Dafür geht man im Platform Projekt in die Project Properties -&gt; Actions -&gt; Add Custom und benennt die neue Action z.B. Download sources. Im Feld "Execute Goals" trägt man dann dependency:sources ein. &lt;/p&gt; &lt;p class="bodytext"&gt;Nach dem man die Projekteigenschaften geschlossen hat, ist nun im
      Kontextmenü unter dem Eintrag "Custom" die neue Action aufgetaucht: "Download sources". Führt man diese aus, werden alle abhängigen (und existierenden) Source-Code JARs in das lokale Repository geladen. Ggf. muss man noch ein "Reload project" durchführen und sieht dann unter Libraries alle Bibliotheken mit Quelltext anhand ihres neuen Icons (mit einem kleinen Paket). &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/sources/sources.png" alt="" height="146"
      width="332" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Die Quelltexte im lokalen Maven Repository sind auch automatisch im Debugger-Source Fenster aktiviert und können somit sofort verwendet werden. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Fri, 27 Aug 2010 11:39:00 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: NetBeans Translator</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=344</guid>
      <link>http://blog.nigjo.de/netbeans/2010/08/netbeans-translator/</link>
      <description>Statt etwas von meinem Wissen preis zu geben stelle ich hier einfach mal eine Frage an alle: Wie übersetzt ihr eure NetBeans Plattform Anwendungen? Mir ist klar, wie ResourceBundles funktionieren. Mir ist klar, dass man Module erzeugen kann, die nur die übersetzten Texte enthalten und per Updatecenter verteilt werden. Mich interessiert: Welche Tools verwendet ihr. [...]</description>
      <pubDate>Mon, 09 Aug 2010 07:13:07 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Lookups - InstanceContent Inhalt löschen</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_lookups_instancecontent_inhalt_loeschen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_lookups_instancecontent_inhalt_loeschen/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Um den Inhalt eines &lt;a title="API InstanceContent" href="http://bits.netbeans.org/dev/javadoc/org-openide-util-lookup/org/openide/util/lookup/InstanceContent.html" target="_blank" class="external-link-new-window"&gt;InstanceContent&lt;/a&gt; komplett zu löschen, ohne die beinhalteten Objekte zu kennen, gibt es folgenden Befehl: &lt;/p&gt; &lt;pre&gt;content.set (Arrays.asList (Object.class),
      null);&lt;/pre&gt; &lt;p class="bodytext"&gt;Das erspart in einigen Szenarien unnötige Klimmzüge. Mit dem Befehl werden alle Dictonary-Objekte vom Typ Object.class mit dem Wert null besetzt. Da alle Java-Objekte immer vom Typ &lt;a title="Java API: Object" href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html" target="_blank" class="external-link-new-window"&gt;Object&lt;/a&gt; sind, ist die Registry in dem InstanceContent zurückgesetzt. Im Ergebnis gibt das &lt;a title="API: Lookup"
      href="http://bits.netbeans.org/dev/javadoc/org-openide-util-lookup/org/openide/util/Lookup.html" target="_blank" class="external-link-new-window"&gt;Lookup&lt;/a&gt; (das den Content besitzt) nichts mehr zurück, ist also leer. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 26 Jul 2010 15:01:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Plugin Manager konfigurieren</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_plugin_manager_konfigurieren/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_plugin_manager_konfigurieren/index.html</link>
      <description>&lt;p class="bodytext"&gt;Es gibt eine sehr gute FAQ die zu meinem alten Blog Eintrag zum &lt;a href="http://www.sepix.de/blogs/blogrittner/blog/archive/2010/july/08/beandev_autoupdatecenter_tweaks/index.html" class="external-link-new-window" title="AutoUpdate Center Tweaks"&gt;AutoUpdate Center&lt;/a&gt; passt: &lt;a title="FaqPluginManagerCustomization" href="http://wiki.netbeans.org/FaqPluginManagerCustomization" target="_blank"
      class="external-link-new-window"&gt;FaqPluginManagerCustomization.&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;In der FAQ wird beschrieben, wie man die Darstellung und das Verhalten des Plugin Managers modifizieren kann. Hier mal ein paar Auszüge: &lt;/p&gt; &lt;h3&gt;Alle Module anzeigen&lt;/h3&gt; &lt;p class="bodytext"&gt;Setzt man das System property plugin.manager.modules.only auf true (z.B. in der etc-Datei per -J-Dplugin.manager.modules.only=true), werden alle Module angezeigt. Egal, ob
      diese als unsichtbar gekennzeichnet wurden. Das ist zum Testen in der Entwicklung sehr hilfreich, weil man ja doch ab und zu ein paar Abhängigkeiten vergisst. &lt;/p&gt; &lt;h3&gt;Code Name Base der Module anzeigen&lt;/h3&gt; &lt;p class="bodytext"&gt;Auch das ist für die RCP Entwicklung sehr praktisch: &lt;/p&gt; &lt;pre&gt;-J-Dplugin.manager.extended.description=true&lt;/pre&gt; &lt;h3&gt;Plugin Manager geschwätziger machen&lt;/h3&gt; &lt;p class="bodytext"&gt;Wenn man mehr Infos braucht, was der
      Plugin Manager gerade so tut, helfen einem diese Optionen weiter: &lt;/p&gt; &lt;pre&gt;-J-Dorg.netbeans.modules.autoupdate.ui.actions.AutoupdateSettings.level=FINE&lt;br /&gt;-J-Dnetbeans.logger.console=true&lt;/pre&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Es lohnt sich die FAQ mal anzuschauen, da dort noch weitere Einstellungen zum Installations- und Updateverhalten beschrieben werden. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160;
      Josch.&lt;/p&gt;</description>
      <pubDate>Thu, 22 Jul 2010 07:55:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Hintergrundarbeiten - Der RequestProcessor</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_hintergrundarbeiten_der_requestprocessor/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_hintergrundarbeiten_der_requestprocessor/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Eine sehr schöne kleine Zusammenfassung, wie man (auch vorzeitig zu beendende) Hintergrundprozesse in der NetBeans Plattform programmiert findet man &lt;a title="Cancellable tasks and progress" href="http://rubenlaguna.com/wp/2010/01/18/cancellable-tasks-and-progress-indicators-netbeans-platform/" target="_blank" class="external-link-new-window"&gt;hier&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;In dem Blog wird
      beschrieben, wie man sauber Hintergrundtasks implementiert, wie sie im Fortschritt in der Statuszeile angezeigt und abgebrochen werden können. &lt;/p&gt; &lt;p class="bodytext"&gt;Meines Erachtens ist die Verwendung des &lt;a title="RequestProcessor API" href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/RequestProcessor.html" target="_blank" class="external-link-new-window"&gt;RequestProcessor&lt;/a&gt; immer dem &lt;a title="SwingWorker API"
      href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/javax/swing/SwingWorker.html" target="_blank" class="external-link-new-window"&gt;SwingWorker&lt;/a&gt; vorzuziehen. SwingWorker ist zwar einfacher zu verwenden, RequestProcessor ist aber erheblich mächtiger. Die done-Methode des &lt;a title="SwingWorker API" href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/javax/swing/SwingWorker.html" target="_blank" class="external-link-new-window"&gt;SwingWorker&lt;/a&gt;
      realisiert man über einen &lt;a title="TaskListener API" href="http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/TaskListener.html" target="_blank" class="external-link-new-window"&gt;TaskListener&lt;/a&gt;. In der taskFinished kann man dann per SwingUtilities.invoke* GUI Updates durchführen. Bei häufiger Verwendung macht es bestimmt Sinn eine Hilfsklasse namens NbSwingWorker auf Basis des RequestProcessor zu implementieren ;-) &lt;/p&gt; &lt;p class="bodytext"&gt;Beste
      Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Tue, 20 Jul 2010 07:41:00 +0000</pubDate>
    </item>
    <item>
      <title>Seapegasus Blog: Weihnachtsgeschenk fuer NetBeans-Fan gesucht?</title>
      <guid isPermaLink="false">http://blogs.sun.com/seapegasus/entry/weihnachtsgeschenk_fuer_netbeans_fan_gesucht</guid>
      <link>http://blogs.sun.com/seapegasus/entry/weihnachtsgeschenk_fuer_netbeans_fan_gesucht</link>
      <description>&lt;p&gt; Wie Ihr wisst, gibt es ja schon schon ziemlich viele &lt;a href="http://www.netbeans.org/kb/articles/books.html"&gt;NetBeans-Bücher auf Englisch&lt;/a&gt; und anderen Sprachen. Und wie steht es mit deutschsprachiger Literatur? Hier ein kleiner Überblick: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.de/NetBeans-6-Rich-Client-Entwicklung-mit-Java/dp/3836210665/"&gt;NetBeans 6 - Rich-Client-Entwicklung mit Java&lt;/a&gt; (Download: &lt;a
      href="http://www.netbeans.org/files/documents/4/1619/galileocomputing_netbeans_platform_6.pdf"&gt;Beispielkapitel&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.de/Java-Architekturen-Patterns-Idiome-Entwickler-Press/dp/3939084247/"&gt;Java EE 5 Architekturen. Java Patterns und Idiome&lt;/a&gt; (Download: &lt;a href="https://p4j5.dev.java.net/"&gt;Beispielkapitel&lt;/a&gt; kommen noch)&lt;/p&gt;&lt;/li&gt; &lt;li&gt;&lt;p&gt;&lt;a
      href="http://www.amazon.de/Datenbankentwicklung-db4o-Einf%C3%BChrung-objektorientierte-Datenbank/dp/3837001717/"&gt;Datenbankentwicklung mit db4o&lt;/a&gt; (Download: &lt;a href="http://www.inabrenner.de/seiten/db4o.html"&gt;PDF und Beispielprogramme&lt;/a&gt;) &lt;/p&gt;&lt;/li&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.de/Das-gro%C3%9Fe-SCJP-Trainingsbuch-Ina-Brenner/dp/3772370292"&gt;Prüfungsvorbereitung für den Sun Certified Java Programmer (SCJP)&lt;/a&gt; &lt;a
      href="http://www.inabrenner.de/seiten/java.html"&gt;(Download)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt; &lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.de/NetBeans-RCP-J%C3%BCrgen-Petri/dp/3897217244/"&gt;NetBeans RCP - Das Entwicklerheft&lt;/a&gt; - dieses ist allerdings noch nicht veröffentlicht.&lt;/p&gt;&lt;/li&gt; &lt;/ul&gt; Wow, nette Sammlung! Hoffe ich habe keines vergessen. Also, falls Ihr Euch noch was zu Weihnachten wünschen wollt... :-) &lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 18 Jul 2010 08:19:52 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: FileChooser für NetBeans Platform</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_filechooser_fuer_netbeans_platform/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_filechooser_fuer_netbeans_platform/index.html</link>
      <description>&lt;p class="bodytext"&gt;Die Frage kommt häufiger in den Schulungen und auch die Foren sind voll davon: Hat NetBeans eine FileChooser Komponente?&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Die Antwort ist einfach: Nein ;-) - Der Grund auch: Swing hat einen sehr guten JFileChooser, der genutzt werden kann. &lt;/p&gt; &lt;p class="bodytext"&gt;Aber da muss man sich immer noch viel Arbeit machen, um einen (für den Anwender) praktisch bedienbaren Datei-Dialog zu basteln. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Die FileSystem-API hat dafür aber auch eine Lösung: Der &lt;a title="API: FileChooserBuilder" href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileChooserBuilder.html" target="_blank" class="external-link-new-window"&gt;FileChooserBuilder&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Der lässt sich sehr einfach über Method-Chaining konfigurieren und merkt sich auch das zuletzt gewählte Verzeichnis. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Hier ein Beispiel, für die Auswahl einer Datenbank-Datei: &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;pre&gt;&#160;&#160;&#160; File basePath = new File (System.getProperty("netbeans.user"));&lt;/pre&gt; &lt;pre&gt;&#160;&#160;&#160; File db = new FileChooserBuilder("database-dir")&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .setTitle("Choose a database")&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
      .setDefaultWorkingDirectory(basePath).addFileFilter(new FileFilter() {&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @Override&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; public boolean accept(File f) {&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String name = f.getName().toLowerCase();&lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return name.endsWith(".fdb") || name.endsWith(".gdb");&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&lt;/pre&gt; &lt;pre&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @Override&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; public String getDescription() {&lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return "Firebird Database (*.fdb | *.gdb)";&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; })&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
      .setApproveText("Choose").showOpenDialog();&lt;/pre&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;pre&gt;&#160;&#160;&#160; if ( db != null ) {&lt;br /&gt;&#160;&#160;&#160;&#160;&#160; tfDatabase.setText(db.getAbsolutePath());&lt;br /&gt;&#160;&#160;&#160; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Spannend in dem Zusammenhang ist der &lt;a title="API: BadgeProvider" href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileChooserBuilder.BadgeProvider.html"
      target="_blank" class="external-link-new-window"&gt;BadgeProvider&lt;/a&gt;. Mit Ihm kann man Dateien mit kleinen zusätzlichen Icons versehen (wie man es in der IDE auch gewohnt ist). &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Thu, 08 Jul 2010 11:08:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Eigene Options - Hauptkategorien mit Annotationen</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_eigene_options_hauptkategorien_mit_annotationen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_eigene_options_hauptkategorien_mit_annotationen/index.html</link>
      <description>&lt;p class="bodytext"&gt;Wenn man mit Annotationen in der NetBeans&#160;Platform arbeitet bekommt man eine deutliche Erleichterung, da man weniger&#160;in den layer.xml Dateien arbeiten muss. Trotzdem gibt es noch kleinere Fallstricke. &lt;/p&gt; &lt;p class="bodytext"&gt;Möchte man dem Optionen-Dialog eine eigene Haupt-Kategorie zuordnen, in der Unterkategorien registriert werden dürfen (wie es die Verschiedenes-Kategorie zeigt), muss man eine besondere Form der Annotation verwenden:
      Die package-level Annotation &lt;a title="ContainerRegistration" href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-options-api/org/netbeans/spi/options/OptionsPanelController.ContainerRegistration.html" target="_blank" class="external-link-new-window"&gt;@OptionsPanelController.ContainerRegistration&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Diese Annotation muss vor der package Deklaration angegeben werden: &lt;/p&gt; &lt;pre&gt;@OptionsPanelController.ContainerRegistration(&lt;br
      /&gt;&#160; id="SepixBaseOptions",&lt;br /&gt;&#160; categoryName = "#OptionsCategory_Name_SepixBase",&lt;br /&gt;&#160; iconBase = "de/sepix/core/options/base/s-logo_32.png",&lt;br /&gt;&#160; keywords = "#OptionsCategory_Keywords_SepixBase",&lt;br /&gt;&#160; keywordsCategory = "SepixBase", position=10)&lt;br /&gt;package de.sepix.core.options.base;&lt;br /&gt;&lt;br /&gt;import org.netbeans.spi.options.OptionsPanelController;&lt;/pre&gt; &lt;p class="bodytext"&gt;Alte Java-Hasen werden sagen, dass
      das niemals eine vollständige Java-Datei sein kann, die compilierbar wäre. Das ist auch tatsächlich so. Es fehlt nämlich eine Klasse in dem Quelltext. Damit der Compiler nicht mit Fehler aussteigt, muss diese Datei eine ganz bestimmte Namenskonvention haben: sie muss &lt;a title="package-info.java Datei" href="http://entwickler.de/zonen/portale/psecom,id,101,online,659,.html" target="_blank" class="external-link-new-window"&gt;package-info.java&lt;/a&gt; heißen. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Damit kommen wir zum nächsten Fallstrick. Der New File... Assistent für Java-Klassen erlaubt es nicht, einen solchen Namen zu verwenden. Man muss also das Empty File Template nehmen, als Namen package-info.java eintragen und die Datei mit der ContainerRegistration-Annotation bestücken.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Hat man ein passendes Icon und die Bundle.properties Datei im selben Package, erscheint tatsächlich eine leere Kategorie im Optionen-Dialog. &lt;/p&gt;
      &lt;p class="bodytext"&gt;Jetzt kann man mit dem Assistenten weitere Sub-Kategorien erzeugen. Diese Sub-Kategorien erhalten als Primärpanel die ID des obigen Beispiels (man wählt also nichts aus der Combobox aus, sondern gibt die ID von Hand ein). &lt;/p&gt; &lt;p class="bodytext"&gt;Man erhält damit den Panel-Controller und das GUI als Panel. Die Annotation zum Controller sieht dann so aus: &lt;/p&gt; &lt;pre&gt;package de.sepix.core.options.base.db;&lt;br /&gt;&lt;br /&gt;import
      java.beans.PropertyChangeListener;&lt;br /&gt;import java.beans.PropertyChangeSupport;&lt;br /&gt;import javax.swing.JComponent;&lt;br /&gt;import org.netbeans.spi.options.OptionsPanelController;&lt;br /&gt;import org.openide.util.HelpCtx;&lt;br /&gt;import org.openide.util.Lookup;&lt;br /&gt;&lt;br /&gt;@OptionsPanelController.SubRegistration(location = "SepixBaseOptions",&lt;br /&gt; displayName = "#AdvancedOption_DisplayName_Database",&lt;br /&gt; keywords =
      "#AdvancedOption_Keywords_Database",&lt;br /&gt; keywordsCategory = "SepixBase/Database")&lt;br /&gt;public final class DatabaseOptionsPanelController extends OptionsPanelController {&lt;/pre&gt; &lt;p class="bodytext"&gt;Wichtig ist, dass location der id des Containers entspricht. &lt;/p&gt; &lt;p class="bodytext"&gt;Die Bundle-Datei wurde schon vom Assistenten angelegt. Hier mal ein Screenshot, wie die Optionen nun aussehen (könnten): &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/nboptions/main_sub.png" alt="" height="326" width="483" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Thu, 08 Jul 2010 09:50:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: AutoUpdateCenter Tweaks</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_autoupdatecenter_tweaks/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_autoupdatecenter_tweaks/index.html</link>
      <description>&lt;p class="bodytext"&gt;Es gibt ein paar Einstellungen die seit den 6'er Versionen neu in die manifest.mf hinzugekommen sind, die sich direkt auf die Ansicht des AutoUpdate-Center auswirken. Da man bei Maven Builds keine Einstellungen durch Assistenten hat, sollte man sich die Optionen mal wieder gedanklich abrufen: &lt;/p&gt; &lt;h3&gt;Module unsichtbar schalten&lt;/h3&gt; &lt;p class="bodytext"&gt;Soll ein Modul nicht sichtbar für den Anwender sein, fügt man folgenden Eintrag hinzu:
      &lt;/p&gt; &lt;pre&gt;AutoUpdate-Show-In-Client: false&lt;/pre&gt; &lt;p class="bodytext"&gt;Standard ist true (Modul wird im Plugin-Dialog angezeigt.). &lt;/p&gt; &lt;h3&gt;Module durch Anwender nicht zu deinstallieren&lt;/h3&gt; &lt;p class="bodytext"&gt;Darf der Anwender ein Modul nicht deinstallieren, muss es als Essential gekennzeichnet werden: &lt;/p&gt; &lt;pre&gt;AutoUpdate-Essential-Module: true&lt;/pre&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Thu, 08 Jul 2010 09:30:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Unit-Tests in der RCP Entwicklung</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_unit_tests_in_der_rcp_entwicklung/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_unit_tests_in_der_rcp_entwicklung/index.html</link>
      <description>&lt;p class="bodytext"&gt;In einer meiner letzten Schlungen kam die Frage auf, wie man Unit-Tests für RCP Module durchführen kann, wenn man abhängige Module der Platform benötigt. &lt;/p&gt; &lt;p class="bodytext"&gt;Die Antwort ist &lt;a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-nbjunit/org/netbeans/junit/NbModuleSuite.html" target="_blank" title="NbModuleSuite"&gt;NbModuleSuite&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Diese Hilfsklasse erlaubt
      es vor einem Test abhängige Module zu laden, damit der Test durchlaufen kann: &lt;/p&gt; &lt;pre&gt; public class YourTest extends &lt;a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-nbjunit/org/netbeans/junit/NbTestCase.html" target="_blank" title="NbTestCase"&gt;NbTestCase&lt;/a&gt; {&lt;br /&gt; public YourTest(String s) { super(s); }&lt;br /&gt; &lt;br /&gt; public static Test suite() {&lt;br /&gt; return NbModuleSuite.create(YourTest.class);&lt;br /&gt; }&lt;br /&gt; &lt;br
      /&gt; public void testXYZ() { ... }&lt;br /&gt; public void testABC() { ... }&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Die Aktivieren der abhängigen Module erfolgt über die &lt;a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-nbjunit/org/netbeans/junit/NbModuleSuite.Configuration.html" target="_blank" title="Configuration"&gt;Configuration&lt;/a&gt; der NbModuleSuite: &lt;/p&gt; &lt;pre&gt; public static Test suite() {&lt;br /&gt;&#160; &#160;return
      NbModuleSuite.create(&lt;br /&gt;&#160; &#160; &#160;NbModuleSuite.createConfiguration(YourTest.class)&lt;br /&gt; .addTest(YourTest.class, new String[] { "testXYZ"})&lt;br /&gt; .enableModules(".*").clusters(".*")&lt;br /&gt; );&lt;br /&gt;&#160;}&lt;/pre&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 21 Jun 2010 14:31:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: RCP switch zur neuen Platform (NetBeans 6.9)</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_rcp_switch_zur_neuen_platform_netbeans_69/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_rcp_switch_zur_neuen_platform_netbeans_69/index.html</link>
      <description>&lt;p class="bodytext"&gt;Mit NetBeans 6.9 wurde die Lookup API in ein extra Modul ausgelagert. Will man nun seine Projekte (RCP, Plugins) auf die neue API verlinken müssen die Abhängigkeiten neu aufgelöst werden. &lt;/p&gt; &lt;h3&gt;Ant basierte Projekte&lt;/h3&gt; &lt;p class="bodytext"&gt;Für Ant-Projekte gibt es ein sehr einfaches target, um die Abhängigkeiten generell zu korrigieren: &lt;/p&gt; &lt;pre&gt;ant fix-dependencies&lt;/pre&gt; &lt;p class="bodytext"&gt;Das dauert eine
      Weile, bietet aber einen sicheren Schutz vor Buildfehlern. In der IDE kann man das über "Important files" -&gt; rechter Mausklick auf "Build scripts" -&gt; "Run target" -&gt; "fix-dependendies" aufrufen. &lt;/p&gt; &lt;h3&gt;Maven basierte Projekte&lt;/h3&gt; &lt;p class="bodytext"&gt;Da muss man alles zu Fuß machen. Das Lookup-Artifakt wird so eingebunden: &lt;/p&gt; &lt;pre&gt;&amp;lt;dependency&gt;&lt;br /&gt; &amp;lt;groupId&gt;org.netbeans.api&amp;lt;/groupId&gt;&lt;br /&gt;
      &amp;lt;artifactId&gt;org-openide-util-lookup&amp;lt;/artifactId&gt;&lt;br /&gt; &amp;lt;version&gt;${netbeans.version}&amp;lt;/version&gt;&lt;br /&gt;&amp;lt;/dependency&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Und die Platform hat seit 6.9 keine Versionskennung mehr. Es darf also nicht mehr platform11 heißen, sondern nur noch platform. Also im Application pom: &lt;/p&gt; &lt;pre&gt;&amp;lt;dependency&gt;&lt;br /&gt; &amp;lt;groupId&gt;org.netbeans.cluster&amp;lt;/groupId&gt;&lt;br /&gt;
      &amp;lt;artifactId&gt;platform&amp;lt;/artifactId&gt;&lt;br /&gt; &amp;lt;version&gt;${netbeans.version}&amp;lt;/version&gt;&lt;br /&gt; &amp;lt;type&gt;pom&amp;lt;/type&gt;&lt;br /&gt;&amp;lt;/dependency&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Das war es schon. Nun sollte man die Projekte mal unter der neuen Platform testen. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 21 Jun 2010 09:32:00 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: “Organize Imports” für NetBeans 6.9</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=304</guid>
      <link>http://blog.nigjo.de/netbeans/2010/06/organize-imports-fur-netbeans-6-9/</link>
      <description>Nachdem NetBeans 6.9 jetzt offiziell draußen ist, habe ich auch mal das “Organize Imports” Plugin für diese Version zurecht gemacht. Download ist über die Kenai Projektseite möglich: http://kenai.com/projects/organizeimports/downloads/directory/NBMs</description>
      <pubDate>Thu, 17 Jun 2010 11:54:19 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Warum das userdir unter Windows nicht ins Benutzerprofil gehört.</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=281</guid>
      <link>http://blog.nigjo.de/netbeans/2010/06/warum-das-userdir-unter-windows-nicht-ins-benutzerprofil-gehort/</link>
      <description>NetBeans speichert nahezu alle seine Einstellungsdateien im so genannten “userdir” ab. In diesem Verzeichnis werden auch der Cache und die Protokolldatei abgelegt. Sollten keine Schreibrechte im Programmverzeichnis vorhanden sein (oder der Benutzer es gar nicht dort speichern wollen) werden auch alle Updates über das Autoupdate in diesem Benutzerverzeichnis abgelegt. Eine Menge Daten. Die Standardeinstellung von [...]</description>
      <pubDate>Sun, 13 Jun 2010 16:00:29 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: NetBeans als IDE stark im Anstieg</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_netbeans_als_ide_stark_im_anstieg/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_netbeans_als_ide_stark_im_anstieg/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Die neuen Java Trends sind raus und zeigen, dass die NetBeans IDE stark in der Nutzung zunimmt. In den letzten Java-Trends war die NetBeans IDE noch bei 30%, inzwischen &lt;a title="Ticker: Java Trend Barometer" href="http://blog.expeso.de/2010/05/10/358/" target="_blank" class="external-link-new-window"&gt;nutzen knapp 50%&lt;/a&gt;&#160;aller Entwickler NetBeans. &lt;/p&gt; &lt;p class="bodytext"&gt;Der Anstieg der
      Nutzung der der NetBeans IDE ist damit bemerkenswert. Wir werden weiter daran arbeiten, dass das so bleibt! &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Fri, 21 May 2010 08:59:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Maven based Multi-Suite Plattform Applikationen</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_multi_suite_plattform_applikationen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_multi_suite_plattform_applikationen/index.html</link>
      <description>&lt;p class="bodytext"&gt;Wenn man bei bisherigen Ant-Projekten sehr große NetBeans RCP Applikationen entwickelte, konnte man dies durch Suites recht gut organisieren. &lt;br /&gt;&lt;br /&gt;Eine Suite sind eine Organisationseinheit, die Module zusammenfasst und im Build-Prozess auch, mit einer XML-Datei, für alle Module der Suite gemeinsames Updatecenter erzeugt.&lt;br /&gt;&lt;br /&gt;Die Suites, die per Maven Projekt erzeugt werden, sind allerdings sehr auf IDE Plug-ins
      eingeschossen. D.h. ihr primärer Einsatzzweck orientiert sich an die Erweiterung der NetBeans IDE.&lt;br /&gt;&lt;br /&gt;Nur ist die IDE ja auch eine Plattform Applikation, warum sollte man Suites nicht auch für die eigene Plattform verwenden?&lt;br /&gt;&lt;br /&gt;Als grundlegende Ordnerstruktur habe ich folgendes vorbereitet:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;pre&gt;├───platforms&lt;br /&gt;│&#160;&#160; └───sXbase&lt;br /&gt;├───suites&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p
      class="bodytext"&gt;Das Projekt sXbase ist die RCP Anwendung, für die ich eine Suite anlegen möchte. &lt;/p&gt; &lt;p class="bodytext"&gt;Unter dem Ordner suites wird nun per Assistent ein Maven NetBeans Module Suite angelegt. In diesem Fall suite-demo. Artifact ID ist de.sepix.demos, Paket wird zu de.sepix.demos.suitedemo. &lt;/p&gt; &lt;p class="bodytext"&gt;Im weiteren Schritt des Assistenten lass ich mir gleich ein Modul mit dem Namen module-sample erzeugen. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Das Ergebnis&#160;ist überschaubar: &lt;/p&gt; &lt;pre&gt;suites&lt;br /&gt;├───suite-demo&lt;br /&gt;│ └───module-sample&lt;br /&gt;│ └───src&lt;br /&gt;│ ├───main&lt;br /&gt;│ │ ├───java&lt;br /&gt;│ │ │ └───de&lt;br /&gt;│ │ │ └───sepix&lt;br /&gt;│ │ │ └───demos&lt;br /&gt;│ │ │ └───suitedemo&lt;br /&gt;│ │ ├───nbm&lt;br /&gt;│ │ └───resources&lt;br /&gt;│ │ └───de&lt;br /&gt;│ │ └───sepix&lt;br /&gt;│ │ └───demos&lt;br /&gt;│ │ └───suitedemo&lt;br /&gt;│ └───test&lt;br /&gt;│
      └───java&lt;br /&gt;│ └───de&lt;br /&gt;│ └───sepix&lt;br /&gt;│ └───demos&lt;br /&gt;│ └───suitedemo&lt;/pre&gt; &lt;p class="bodytext"&gt;Spannender ist, wie die pom.xml erzeugt wurde. Es gibt zum Beispiel kein &amp;lt;parent&gt;-Eintrag für eine übergeordnete Projektdatei. Woher soll auch diese kommen? Der Assistent hat diese nicht abgefragt. Damit tauchen auch Repositories, Dependencies und Properties auf, die für die Zukunft hier nichts mehr zu suchen haben.&#160; &lt;/p&gt; &lt;p
      class="bodytext"&gt;Die pom.xml der Suite hat aber noch einen zusätzlichen &amp;lt;profiles&gt; Abschnitt erhalten: &lt;/p&gt; &lt;pre&gt; &amp;lt;profiles&gt;&lt;br /&gt; &amp;lt;profile&gt;&lt;br /&gt; &amp;lt;id&gt;updatesite&amp;lt;/id&gt;&lt;br /&gt; &amp;lt;build&gt;&lt;br /&gt; &amp;lt;plugins&gt;&lt;br /&gt; &amp;lt;plugin&gt;&lt;br /&gt; &amp;lt;groupId&gt;org.codehaus.mojo&amp;lt;/groupId&gt;&lt;br /&gt; &amp;lt;artifactId&gt;nbm-maven-plugin&amp;lt;/artifactId&gt;&lt;br /&gt;
      &amp;lt;executions&gt;&lt;br /&gt; &amp;lt;execution&gt;&lt;br /&gt; &amp;lt;id&gt;site&amp;lt;/id&gt;&lt;br /&gt; &amp;lt;phase&gt;package&amp;lt;/phase&gt;&lt;br /&gt; &amp;lt;goals&gt;&lt;br /&gt; &amp;lt;goal&gt;autoupdate&amp;lt;/goal&gt;&lt;br /&gt; &amp;lt;/goals&gt;&lt;br /&gt; &amp;lt;configuration&gt;&lt;br /&gt; &amp;lt;!-- &amp;lt;distBase&gt;url where your nbm files are located, if not defined within the nbm files&amp;lt;/distBase&gt;&lt;br /&gt; --&gt;&lt;br /&gt;
      &amp;lt;/configuration&gt;&lt;br /&gt; &amp;lt;/execution&gt;&lt;br /&gt; &amp;lt;/executions&gt;&lt;br /&gt; &amp;lt;/plugin&gt;&lt;br /&gt; &amp;lt;/plugins&gt;&lt;br /&gt; &amp;lt;/build&gt;&lt;br /&gt; &amp;lt;/profile&gt;&lt;br /&gt; &amp;lt;/profiles&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Das Profile mit der Id "updatesite" ist für die Erzeugung der XML-Updatecenter Datei zuständig.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn man so ein erzeugte Projekt startet, hat man recht schnell die
      Ernüchterung: &lt;/p&gt; &lt;p class="bodytext"&gt;Es startet nichts und im Ausgabefenster findet man folgende Zeilen (Windows): &lt;/p&gt; &lt;pre&gt;[nbm:run]&lt;br /&gt;Additional arguments=null&lt;br /&gt; --userdir&lt;br /&gt; C:\Entw\Work\svn\4.2\suites\suite-demo\target\userdir&lt;br /&gt; -J-Dnetbeans.logger.console=true&lt;br /&gt; -J-ea&lt;br /&gt;Executing: cmd.exe /X /C "C:\Entw\Work\svn\4.2\suites\suite-demo\path-to-associated-netbeans-install\bin\netbeans.exe --userdir
      C:\Entw\Work\svn\4.2\suites\suite-demo\target\userdir -J-Dnetbeans.logger.console=true -J-ea"&lt;br /&gt;Das System kann den angegebenen Pfad nicht finden.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Nun ja, path-to-associated-netbeans-install sieht nicht wirklich vernünftig aus. &lt;/p&gt; &lt;p class="bodytext"&gt;Neben der pom.xml Datei gibt es noch eine profiles.xml Datei, in der sich genau diese Zeichenkette wiederfindet. Das dortige Profil "netbeans-ide" definiert die
      Eigenschaft &amp;lt;netbeans.installation&gt; mit dem Platzhalter. Das Profil wird in der selben Datei aktiviert. &lt;/p&gt; &lt;p class="bodytext"&gt;Mit der Änderung auf die IDE, bekommt man das Projekt zum laufen. Als userdir wird ein Ordner im target der Suite verwendet: ...\suites\suite-demo\target\userdir. &lt;/p&gt; &lt;p class="bodytext"&gt;Schaut man in der gestarteten IDE unter Plugins nach, findet man unter "Installiert" auch das "modules-sample NetBeans Module". &lt;/p&gt; &lt;p
      class="bodytext"&gt;Wie sich die Anwendung zusammensetzt findet man im IDE Protokoll heraus: &lt;/p&gt; &lt;pre&gt; Current Directory = C:\Entw\Work\svn\4.2\suites\suite-demo&lt;br /&gt; User Directory = C:\Entw\Work\svn\4.2\suites\suite-demo\target\userdir&lt;br /&gt; Installation = C:\Entw\NetBeans69beta\nb&lt;br /&gt; C:\Entw\NetBeans69beta\ide&lt;br /&gt; C:\Entw\NetBeans69beta\java&lt;br /&gt; C:\Entw\NetBeans69beta\apisupport&lt;br /&gt; C:\Entw\NetBeans69beta\websvccommon&lt;br /&gt;
      C:\Entw\NetBeans69beta\profiler&lt;br /&gt; C:\Entw\NetBeans69beta\harness&lt;br /&gt; C:\Entw\Work\svn\4.2\suites\suite-demo\target\netbeans_clusters\foobar&lt;br /&gt; C:\Entw\NetBeans69beta\platform&lt;/pre&gt; &lt;p class="bodytext"&gt;Die neue Suite tanzt mit seinem Ordner deutlich aus der Reihe. &lt;/p&gt; &lt;p class="bodytext"&gt;Aber nun muss die Suite endlich mit der echten RCP-Anwendung verknüpft werden. Ausgehend von der vorgegebenen Ordnerstruktur: &lt;/p&gt;
      &lt;pre&gt;├───platforms&lt;br /&gt;│&#160;&#160; └───sXbase&lt;br /&gt;├───suites&lt;/pre&gt; &lt;p class="bodytext"&gt;wird der Pfad relativ auf die RCP Plattform sXbase verbogen (Ausschnitt in der profiles.xml): &lt;/p&gt; &lt;pre&gt; &amp;lt;properties&gt;&lt;br /&gt; &amp;lt;netbeans.installation&gt;../../platforms/sXbase/application/target/s3&amp;lt;/netbeans.installation&gt;&lt;br /&gt; &amp;lt;/properties&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Dabei ist application das
      Application-Projekt.Der Ordner target ist das erzeugte Build. Und "s3" der brandingToken der Applikation. &lt;/p&gt; &lt;p class="bodytext"&gt;Damit ist die Verknüpfung erfolgreich. Mit dem Run der Suite wird nun endlich die passende RCP Applikation gestartet. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Protokoll gibt wieder die gewünschten Informationen: &lt;/p&gt; &lt;pre&gt; Current Directory = C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3&lt;br /&gt; User Directory =
      C:\Entw\Work\svn\4.2\suites\suite-demo\target\userdir&lt;br /&gt; Installation = C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3\bin&lt;br /&gt; C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3\etc&lt;br /&gt; C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3\platform&lt;br /&gt; C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3\sxbase&lt;br /&gt; C:\Entw\Work\svn\4.2\suites\suite-demo\target\netbeans_clusters\foobar&lt;br /&gt;
      C:\Entw\Work\svn\4.2\platforms\sXbase\application\target\s3\platform&lt;/pre&gt; &lt;p class="bodytext"&gt;Man müsste nur noch den cluster in der pom.xml der Suite anpassen, damit man foobar los wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Außerdem würde ich den &amp;lt;profile&gt; Namen in der profiles.xml der Suite von "netbeans-ide" ändern (auch &amp;lt;activeProfile&gt; anpassen!). &lt;/p&gt; &lt;p class="bodytext"&gt;Die pom.xml der Suite muss auch geändert werden. Da die Suite direkt abhängig von
      der Applikation ist, sollte man auch eine &amp;lt;parent&gt; Verknüpfung durchführen. &lt;/p&gt; &lt;p class="bodytext"&gt;Die Mavenkoordinate der Applikation findet sich in seinem pom.xml: &lt;/p&gt; &lt;pre&gt; &amp;lt;groupId&gt;de.sepix&amp;lt;/groupId&gt;&lt;br /&gt; &amp;lt;artifactId&gt;sXbase&amp;lt;/artifactId&gt;&lt;br /&gt; &amp;lt;version&gt;4.2-SNAPSHOT&amp;lt;/version&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Diese Koordinate kommt in &amp;lt;parent&gt; Tags eingeschlossen in die
      pom.xml Datei der Suite: &lt;/p&gt; &lt;pre&gt; &amp;lt;parent&gt;&lt;br /&gt; &amp;lt;groupId&gt;de.sepix&amp;lt;/groupId&gt;&lt;br /&gt; &amp;lt;artifactId&gt;sXbase&amp;lt;/artifactId&gt;&lt;br /&gt; &amp;lt;version&gt;4.2-SNAPSHOT&amp;lt;/version&gt;&lt;br /&gt; &amp;lt;/parent&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Jetzt kann man gefahrlos erst mal &amp;lt;repositories&gt;...&amp;lt;/repositories&gt;, &amp;lt;dependencies&gt;...&amp;lt;/dependencies&gt; und
      &amp;lt;properties&gt;...&amp;lt;/properties&gt; entfernen. &lt;/p&gt; &lt;p class="bodytext"&gt;Sollte das jetzt auszuführende Build nicht klappen, muss man zunächst die RCP Applikation erstellen, weil das lokale Repository kein installiertes pom zur Parent-Koordinate enthält. Ansonsten gibt es keine Schwierigkeiten und Run sollte weiterhin klappen.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Mit diesen wenigen Handgriffen hat man eine neue Suite der Applikation hinzugefügt. Weitere Schritte wären
      Lokalisierungen, Updatecenter-URL eintragen (&amp;lt;distBase&gt; in der pom.xml der Suite) und mit dem Update-Center Assistenten im Sample-Modul die URL registrieren. &lt;/p&gt; &lt;pre&gt;&#160;&lt;/pre&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 11 May 2010 12:25:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: NetBeans und Maven mit Hudson als CI Server</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_netbeans_und_maven_mit_hudson_als_ci_server/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_netbeans_und_maven_mit_hudson_als_ci_server/index.html</link>
      <description>&lt;p class="bodytext"&gt;NetBeans eignet sich als hervorragender Zuspieler des &lt;a title="Wikipedia" href="http://de.wikipedia.org/wiki/Kontinuierliche_Integration" target="_blank" class="external-link-new-window"&gt;Continous Integration&lt;/a&gt; Server &lt;a title="Hudson CI" href="http://hudson-ci.org/" target="_blank" class="external-link-new-window"&gt;Hudson&lt;/a&gt;. Insbesondere mit Maven hat man ein kleines nettes Feature mit dem &lt;a title="Maven Referenz"
      href="http://maven.apache.org/pom.html#Continuous_Integration_Management" target="_blank" class="external-link-new-window"&gt;ciManagement&lt;/a&gt; Tag in Projektdateien. &lt;/p&gt; &lt;pre&gt; &amp;lt;ciManagement&gt;&lt;br /&gt; &amp;lt;url&gt;http://companyserver:8080/hudson&amp;lt;/url&gt;&lt;br /&gt; &amp;lt;/ciManagement&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Dort kann man nämlich den CI-Server festlegen den NetBeans auswertet und unter der Dienste Ansicht zur Verfügung stellt: &lt;/p&gt;
      &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/ci/cimgnt.PNG" alt="" height="245" width="389" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Über die Kontextmenüs&#160; lassen sich einige Dinge abrufen. Über den Serverknoten kann man z.B. die auf den Hudson Server eingerichteten Ansichten auswählen oder auch Builds neu erstellen. &lt;/p&gt; &lt;p class="bodytext"&gt;Auf Job-Ebene kann man diesen unmittelbar manuell starten. &lt;/p&gt;
      &lt;p class="bodytext"&gt;Für den individuellen Build erhält man die Konsolenausgabe und auch die Änderungen, die aus der Versionierung ermittelt wurden. &lt;/p&gt; &lt;p class="bodytext"&gt;Zu den Modulen kann man sich die Artefakte anschauen und herunterladen. &lt;/p&gt; &lt;p class="bodytext"&gt;Mit den zahlreichen Features, kann man Hudson schon recht gut steuern, ohne auf die Weboberfläche wechseln zu müssen. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt;
      &lt;pre&gt;&#160;&lt;/pre&gt;</description>
      <pubDate>Mon, 10 May 2010 07:56:00 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Möglichkeiten für eine methodvalue Implemetierung</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=204</guid>
      <link>http://blog.nigjo.de/netbeans/2010/05/moeglichkeiten-einer-methodvalue-implementierung/</link>
      <description>Schon länger hatte ich mich gefragt, welche Möglichkeiten man bei einem methodvalue Attribut in der layer.xml hat. Ziel ist es ja, dass man einem &amp;lt;attr&gt; Eintrag ein bestimmtes Objekt zuweisen kann und dieses Objekt durch einen Methodenaufruf erzeugt. Man hat also in dieser Methode alle Möglichkeiten das gewünschte Objekt zu beeinflussen. Aber wie muss die [...]</description>
      <pubDate>Thu, 06 May 2010 09:54:53 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Internationalisierung einer NetBeans Platform RCP und Maven</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_internationalisierung_einer_netbeans_platform_rcp_und_maven/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_internationalisierung_einer_netbeans_platform_rcp_und_maven/index.html</link>
      <description>&lt;p class="bodytext"&gt;Gegenüber meines &lt;a href="http://www.sepix.de/blogs/blogrittner/blog/archive/2008/august/07/beandev_platform_uebersetzung_als_plugin/index.html" class="external-link-new-window" title="BeanDev: Platformübersetzung als Plugin"&gt;alten Blogeintrages zur Lokalisierung&lt;/a&gt; von NetBeans RCP Projekten ist es mit Maven sogar einfacher geworden ein Build einzurichten. &lt;/p&gt; &lt;p class="bodytext"&gt;Wie auch damals, stehen zur Zeit keine deutschsprachigen
      Übersetzungen für NetBeans 6.9 RCP Projekte zur Verfügung. Kein Wunder, wir sind auch noch mitten im Development. Gerade mal eine Beta steht zur Zeit zur Verfügung. &lt;a title="Will you localize NetBeans IDE 6.9" href="http://blogs.sun.com/katakai/entry/will_you_localize_netbeans_ide" target="_blank" class="external-link-new-window"&gt;Übersetzungs-Projekte&lt;/a&gt; laufen erst gerade an. &lt;/p&gt; &lt;h3&gt;Vorbereitungen&lt;/h3&gt; &lt;p class="bodytext"&gt;Wer ein Lokalisierungsmodul jetzt
      nachbauen will, sollte zwei Dinge sofort tun. Erstens die aktuelle Mercurial Version installieren und zweitens die Sprachdateien von hg.netbeans.org herunterladen. Der Mercurial-Download &lt;a title="Mercurial Download" href="http://mercurial.selenic.com/downloads/" target="_blank" class="external-link-new-window"&gt;findet sich hier&lt;/a&gt;. NetBeans 6.9 dev nach der Installation von hg neu starten, damit der Installations-Pfad von hg gefunden wird. In NetBeans nun ein "Clone other" im
      Team-Menü/Mercurial ausführen. Das Repository ist &lt;a href="http://hg.netbeans.org/release68/l10n/" target="_blank"&gt;hg.netbeans.org/release68/l10n/&lt;/a&gt;. User/Password bleibt leer, pull und push Path auf der nächsten Seite bleibt wie vorgeschlagen. Auf der letzten Seite einen passenden Pfad festlegen und den Haken Scan for NetBeans Projects entfernen. [Finish] anklicken und hier weiter lesen, das wird nämlich dauern (ein bis zwei Stunden). &lt;/p&gt; &lt;h3&gt;Modul erstellen&lt;/h3&gt;
      &lt;p class="bodytext"&gt;Es wird zunächst ein ganz normales Maven based NetBeans RCP Module mit dem New Project Assistenten erzeugt. Da ich in diesem Fall ein&#160;Multimodule Projekt einrichte, wo das Sprachmodul direkt in der Platform zur Verfügung stehen soll, ist der beste Ort direkt unter dem Ordner des Maven Platform Projektes. &lt;/p&gt; &lt;pre&gt;├───42&lt;br /&gt;│ └───sxbase&lt;br /&gt;│ ├───application&lt;br /&gt;│ ├───branding&lt;/pre&gt; &lt;p class="bodytext"&gt;In meinem Fall ist
      sxbase das POM-Projekt (Maven Hauptprojekt für die Platform Applikation). Application ist die Platform-Suite und Branding übernimmt grundlegende Einrichtungen für Splash-Screen, Name der Anwendung, kleinere Lokalisierungen. Aber Branding eignet sich nicht generell für Sprach-Plugins. Besonders wenn man mehrere Sprachen in getrennten Plugins haben will. &lt;/p&gt; &lt;p class="bodytext"&gt;Also wird das neue Modul unter sxbase angelegt. &lt;/p&gt; &lt;p class="bodytext"&gt;Ich hatte mein
      deutschsprachiges Übersetzungsplugin i18n-de genannt, sinnvoller wäre vielleicht l10n-de. Aber letztendlich ist das egal, so lange es verstanden wird - und das wird sowieso über die Bundle.properties als Sprachtexte gesteuert. &lt;/p&gt; &lt;h3&gt;nbm-branding Plugin&lt;/h3&gt; &lt;p class="bodytext"&gt;Das neue Modul kann aber so noch keine Bundle-Dateien verarbeiten, wie man es schon vom branding-Modul gewohnt ist. Zunächst muss man ein NetBeans Plugin für den Branding-Build-Prozess in der pom.xml
      hinterlegen: &lt;/p&gt; &lt;pre&gt; &amp;lt;plugin&gt;&lt;br /&gt; &amp;lt;groupId&gt;org.codehaus.mojo&amp;lt;/groupId&gt;&lt;br /&gt; &amp;lt;artifactId&gt;nbm-maven-plugin&amp;lt;/artifactId&gt;&lt;br /&gt; &amp;lt;extensions&gt;true&amp;lt;/extensions&gt;&lt;br /&gt; &amp;lt;executions&gt;&lt;br /&gt; &amp;lt;execution&gt;&lt;br /&gt; &amp;lt;id&gt;branding&amp;lt;/id&gt;&lt;br /&gt; &amp;lt;phase&gt;process-resources&amp;lt;/phase&gt;&lt;br /&gt; &amp;lt;goals&gt;&lt;br /&gt;
      &amp;lt;goal&gt;branding&amp;lt;/goal&gt;&lt;br /&gt; &amp;lt;/goals&gt;&lt;br /&gt; &amp;lt;configuration&gt;&lt;br /&gt; &amp;lt;brandingToken&gt;s3&amp;lt;/brandingToken&gt;&lt;br /&gt; &amp;lt;/configuration&gt;&lt;br /&gt; &amp;lt;/execution&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/executions&gt;&lt;br /&gt; &amp;lt;/plugin&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Der Branding Token kann ggf. weggelassen werden. Wichtig ist die Angabe der phase und das goal. &lt;/p&gt; &lt;h3&gt;Resource Ordner
      einrichten&lt;/h3&gt; &lt;p class="bodytext"&gt;Nun braucht man zwingend unter dem src/main Ordner das Verzeichnis nbm-branding. Das macht man in der Files Ansicht (nicht im Project Explorer), öffnet dort den Ordner src/main und legt dort den Folder nbm-branding an. &lt;/p&gt; &lt;p class="bodytext"&gt;Darunter benötigt man nun zwei Unterordner core und modules. Im core-Ordner wird das Branding für den Boot-Prozess (Splash usw) angelegt, in modules die Brandings für die Platform-Module. &lt;/p&gt;
      &lt;p class="bodytext"&gt;Die Ordnerstruktur ist dann folgende: &lt;/p&gt; &lt;pre&gt;src&lt;br /&gt;├───main&lt;br /&gt;│ └───nbm-branding&lt;br /&gt;│ ├───core&lt;br /&gt;│ ├───modules&lt;/pre&gt; &lt;h3&gt;Branding-Archive für Bundle-Dateien&lt;/h3&gt; &lt;p class="bodytext"&gt;Jetzt kommt ein recht ungewöhnlicher Aufbau der Unterordner für das Build der Spracharchive. &lt;/p&gt; &lt;p class="bodytext"&gt;Alle Unterordner müssen exakt so heißen, wie die Original-Module, deren Ressourcen wir
      überschreiben wollen. Der Classloader von NetBeans überdeckt letztendlich die Bundle.properties der Original-Module mit den neuen Sparcharchiven gleichen Namens. &lt;/p&gt; &lt;p class="bodytext"&gt;Zwei Beispiele: Im core-Ordner wird ein Unterordner angelegt, der core.jar heißt (mit der Endung .jar!). Im modules-Ordner benötigen wir z.B. org-netbeans-core-windows.jar als Unterordner. In diesen Ordnern müssen aber wieder alle package-Ebenen der Original-Module nachvollzogen werden. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Für core.jar: &lt;/p&gt; &lt;pre&gt;core.jar&lt;br /&gt;├───org&lt;br /&gt;│ └───netbeans&lt;br /&gt;│ └───core&lt;br /&gt;│ └───startup&lt;/pre&gt; &lt;p class="bodytext"&gt;Und beispielsweise für org-netbeans-core-windows.jar: &lt;/p&gt; &lt;pre&gt;org-netbeans-core-windows.jar&lt;br /&gt;├───org&lt;br /&gt;│ └───netbeans&lt;br /&gt;│ └───core&lt;br /&gt;│ └───windows&lt;br /&gt;│ ├───actions&lt;br /&gt;│ ├───options&lt;br /&gt;│ ├───persistence&lt;br /&gt;...&lt;/pre&gt;
      &lt;h3&gt;Bundles aus dem hg-Clone kopieren&lt;/h3&gt; &lt;p class="bodytext"&gt;Aber woher bekommt man a) die Namen der Module und b) die Strukturen der Unterordner? &lt;/p&gt; &lt;p class="bodytext"&gt;Punkt a durch Raten und Vergleich, Punkt b durch kopieren. Es gibt zwar Java-Ant-Tasks, die aus den XML-Dateien der Platform-Module die Original Ordnerstrukturen ermitteln und damit die Original hg-Sprachdateien zu den Ziel-Archivnamen konvertieren, aber für dieses eine Sprachplugin habe ich die
      Methode "zu Fuß" durchgeführt. Zum einem, weil bei Maven-Platform Builds die Struktur der Mavenartifakte (und der Nutzung eines Firmenrepository für Platforms) eine direkte Umsetzung der Ant-Tasks nicht erlaubt und zum anderen, weil ich noch kein passendes Mojo fertig habe, dass die hg-Sprachbundles automatisiert kopiert. &lt;/p&gt; &lt;p class="bodytext"&gt;Die Namen der platform Module (bitte beachten, NetBeans 6.9 hat keine Nummerierung der Cluster mehr. In NetBeans 6.8 war es noch platform11)
      finden sich im Installationsverzeichnis von NetBeans /platform/core und /platform/modules. Alle JAR-Dateien darin sind die englischen Versionen (d.h. nicht lokalisierten)&#160;Module einer RCP Basis Anwendung. Nun wirft man einen Blick in den hg-Ordner, in dem die Multilanguage Sprachprojekte geclont wurden: &lt;/p&gt; &lt;pre&gt;local&lt;br /&gt;├───l10n&lt;br /&gt;│ ├───.hg&lt;br /&gt;│ ├───antsrc&lt;br /&gt;│ ├───l10n_uc_kits&lt;br /&gt;│ └───src&lt;br /&gt;│ └───de&lt;br /&gt;│
      └───platform11&lt;/pre&gt; &lt;p class="bodytext"&gt;Da ich ja ein clone von NetBeans 6.8 vorgenommen habe, heißt es hier platform11. &lt;/p&gt; &lt;p class="bodytext"&gt;Einige Unterordner habe schon eine passende tld-package-package-module Bezeichnung ohne die Endung .jar. Andere Ordner heißen nur print oder javahelp. Hier hilft nur "Educated Guess". Die Namen der Ordner aus den hg-Verzeichnissen müssen in die Modulordnernamen mit der Endung .jar umgesetzt werden. Das nächste Problem ist, dass
      teilweise in den Ordnern der Name des Spracharchiv wiederholt wird oder direkt mit der Packagestruktur begonnen wird. Das ist alles historisches Chaos von falscher Strukturierung. &lt;/p&gt; &lt;p class="bodytext"&gt;Was muss also gemacht werden? Nehmen wir ein einfaches Beispiel mit org-netbeans-core-windows. &lt;/p&gt; &lt;p class="bodytext"&gt;Struktur in hg: &lt;/p&gt; &lt;pre&gt;org-netbeans-core-windows&lt;br /&gt;├───org-netbeans-core-windows&lt;br /&gt;│ └───org&lt;br /&gt;│
      └───netbeans&lt;br /&gt;│ └───core&lt;br /&gt;│ └───windows&lt;br /&gt;...&lt;/pre&gt; &lt;p class="bodytext"&gt;Wir legen in unserem Maven-Projekt den Ordner org-netbeans-core-windows.jar an und kopieren alles ab dem org-Ordner dort hinein. damit haben wir folgende neue Ordnerstruktur: &lt;/p&gt; &lt;pre&gt;org-netbeans-core-windows.jar&lt;br /&gt;├───org&lt;br /&gt;│ └───netbeans&lt;br /&gt;│ └───core&lt;br /&gt;│ └───windows&lt;br /&gt;...&lt;/pre&gt; &lt;p class="bodytext"&gt;Das machen wir mit
      allen Ordnern, die wir so einfach erkennen können. &lt;/p&gt; &lt;p class="bodytext"&gt;Jetzt zu den komplizierteren Fällen. Ein Beispiel im hg: &lt;/p&gt; &lt;pre&gt;javahelp&lt;br /&gt;├───javahelp&lt;br /&gt;│ └───org&lt;br /&gt;│ └───netbeans&lt;br /&gt;│ └───modules&lt;br /&gt;│ └───javahelp&lt;br /&gt;...&lt;/pre&gt; &lt;p class="bodytext"&gt;Wir schauen in das NetBeans69/platform/modules Verzeichnis und finden das JAR org-netbeans-modules-javahelp.jar. Also haben wir den neuen Namen im
      Projekt: &lt;/p&gt; &lt;pre&gt;org-netbeans-modules-javahelp.jar&lt;br /&gt;├───org&lt;br /&gt;│ └───netbeans&lt;br /&gt;│ └───modules&lt;br /&gt;│ └───javahelp&lt;br /&gt;...&lt;/pre&gt; &lt;p class="bodytext"&gt;Na ja, ich habe für die ganzen Umstellungen 30 Minuten gebraucht. Langweilige Fleißarbeit und fast schlimmer als HTML coden, aber für das erste Beispiel machbar. So weiß man auch, wie man mal ein zukünftiges Mojo schreiben muss. &lt;/p&gt; &lt;p class="bodytext"&gt;Folgende Mappings müssen
      berücksichtigt werden: &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;&lt;table rules="NONE" border="0" frame="VOID" cols="2" cellspacing="0" class="contenttable"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width="319" align="LEFT" height="17"&gt;&lt;h4&gt;Ordner Modules&lt;/h4&gt;&lt;/td&gt; &lt;td width="327" align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT"
      height="18"&gt;&lt;p class="bodytext"&gt;org-jdesktop-layout&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-jdesktop-layout.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-api-annotations-common&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-api-annotations-common.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-api-progress&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-api-progress.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-api-visual&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-api-visual.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-core-execution&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-execution.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-io-ui&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-io-ui.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-core-multiview&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-multiview.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-nativeaccess&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-nativeaccess.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-core-output2&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-output2.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-ui&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-ui.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-core-windows&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-windows.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-core&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-core.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-libs-jna&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-libs-jna.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-libs-jsr223&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-libs-jsr223.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-libs-junit4&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-libs-junit4.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;applemenu&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-applemenu.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;autoupdate-services&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-autoupdate-services.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;autoupdate-ui&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-autoupdate-ui.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;core-kit&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-core-kit.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;editor-mimelookup-impl&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-editor-mimelookup-impl.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p
      class="bodytext"&gt;editor-mimelookup&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-editor-mimelookup.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;favorites&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-favorites.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;javahelp&lt;/p&gt;&lt;/td&gt;
      &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-javahelp.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;masterfs&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-masterfs.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;options-api&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-modules-options-api.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;options-keymap&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-options-keymap.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;print&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-modules-print.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;progress-ui&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-progress-ui.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;queries&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-modules-queries.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;sendopts&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-sendopts.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;settings&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-modules-settings.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;spi-actions&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-modules-spi-actions.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;templates&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-modules-templates.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-spi-quicksearch&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-spi-quicksearch.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-swing-outline&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-swing-outline.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-swing-plaf&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-netbeans-swing-plaf.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-netbeans-swing-tabcontrol&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-netbeans-swing-tabcontrol.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-actions&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-actions.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-awt&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-awt.jar&lt;/p&gt;&lt;/td&gt;
      &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-compat&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-compat.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-dialogs&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-dialogs.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p
      class="bodytext"&gt;org-openide-execution&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-execution.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-explorer&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-explorer.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-io&lt;/p&gt;&lt;/td&gt;
      &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-io.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-loaders&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-loaders.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-nodes&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-openide-nodes.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-options&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-options.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-text&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-text.jar&lt;/p&gt;&lt;/td&gt;
      &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-util-enumerations&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-util-enumerations.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="18"&gt;&lt;p class="bodytext"&gt;org-openide-windows&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-windows.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT"
      height="17"&gt;&lt;p class="bodytext"&gt;org-openide-util&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-util.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-openide-modules&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;org-openide-modules.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt;
      &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;h4&gt;Ordner Core&lt;/h4&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-openide-filesystems&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p
      class="bodytext"&gt;org-openide-filesystems.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-core-startup&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;core.jar&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt;
      &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;h4&gt;Kein Java Archive Build&lt;/h4&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td align="LEFT" height="17"&gt;&lt;p class="bodytext"&gt;org-netbeans-bootstrap&lt;/p&gt;&lt;/td&gt; &lt;td align="LEFT"&gt;&lt;p class="bodytext"&gt;Ist für die native Startdatei nbexec.exe&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt;
      &lt;/tbody&gt; &lt;/table&gt;&lt;p class="bodytext"&gt;Hat man diese gesamten Kopieraktionen erfolgreich durchgeführt, ist das Projekt vollständig, d.h. alle Plattform Übersetzungen wurden so in das Deutschsprachige übersetzt. Die Bundle-Dateien, die aus dem hg-Ordnern kopiert wurden, tragen alle schon das Kennzeichen _de im Namen. Das ist wichtig, damit die Bundles zu den passenden Sprachen geladen werden. &lt;/p&gt; &lt;p class="bodytext"&gt;Nun kann man im eigenen Projekt noch Applikationsnamen
      anpassen, ein paar Rechtschreibfehler korrigieren oder komplett Wörter ändern, um diese einer unternehmensweiten Sprachregelung anzupassen. &lt;/p&gt; &lt;p class="bodytext"&gt;Für alle, die sich nicht dir Mühe machen wollen, die Ordner für die Spracharchive aufzubauen, habe ich &lt;a href="http://www.sepix.de/fileadmin/maven/plug-branding/nbm-branding.zip" class="download" title="Initiates file download"&gt;hier eine kleine ZIP-Datei&lt;/a&gt;. Kleinere Teile müssten angepasst werden. Die
      splash-Grafik fehlt und ###APPLICATION NAME### steht überall dort, wo der Applikationsname eingesetzt werden muss. Außerdem sollte man nach www.example.com suchen und ersetzen (wird im About-Dialog verwendet). Das ZIP-Archiv wird direkt in das src/main Verzeichnis extrahiert. Wer es nutzt kann ja mal ein Kommentar hier hinterlassen, an sonsten ist die Lizenz &lt;a title="CDDL" href="http://de.wikipedia.org/wiki/Common_Development_and_Distribution_License" target="_blank"
      class="external-link-new-window"&gt;CDDL&lt;/a&gt; und &lt;a title="GPL" href="http://de.wikipedia.org/wiki/GNU_General_Public_License" target="_blank" class="external-link-new-window"&gt;GPL v2&lt;/a&gt; mit &lt;a title="GPL Classpath" href="http://de.wikipedia.org/wiki/GNU_Classpath" target="_blank" class="external-link-new-window"&gt;Classpath Exception&lt;/a&gt;. So wie die Originaldateien. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Tue, 04 May 2010 11:40:00 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Vorüberlegungen um statische Imports zu organisieren</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=194</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/voruberlegungen-um-statische-imports-zu-organisieren/</link>
      <description>Ich gebe zu, ich habe nicht damit gerechnet, dass mein “Organize Imports” Plugin so interessant sein könnte, dass man es sogar auf der Startseite von NetBeans als “Featured Plugin” packen könnte. Ok, es ist brauchbar, aber schließlich habe ich nur eine Idee aus einer anderen IDE kopiert. Sei’s drum. Ich freue mich, dass ich auch [...]</description>
      <pubDate>Fri, 30 Apr 2010 07:13:46 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Übersichtlichkeit im Quelltext</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=185</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/ubersichtlichkeit-im-quelltext/</link>
      <description>Quellcode neigt eigentlich immer dazu mit der Zeit unübersichtlich zu werden. Neue Methoden werden hinzugefügt. Mit viel Glück sogar “sortiert” eingefügt oder zumindest an eine mehr oder minder “sinnvolle” Stelle in der Quelltextdatei. Die meisten IDEs bekommen dies allerdings selten hin. Was aber auch nicht weiter verwundert, da das Programm selten weiß, welche Methoden “logisch” [...]</description>
      <pubDate>Wed, 28 Apr 2010 14:26:52 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Matisse: Grundlagen: Eine einfache Eingabemaske</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=134</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/matisse-tour-teil-1/</link>
      <description>Dieser erste Teil meiner kleinen Matisse Serie soll sich einfach nur damit beschäftigen, wie man den GUI Builder aufruft und welchen Quellcode wir von dem Tool generiert bekommen. Aber zunächst einmal die Frage nach dem “Warum”. Warum soll ich einem Tool meinen Sourcecode erzeugen lassen – der wenig übersichtlich ist – wenn ich doch selber [...]</description>
      <pubDate>Fri, 23 Apr 2010 21:27:50 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: NetBeans Site durchsuchen per Browser Such Plugin</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=139</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/netbeans-site-durchsuchen-per-browser-such-plugin/</link>
      <description>Ich werde immer mehr abhängig von dem kleinen Suchfeld oben rechts in meinem Firefox. Kleine so genannte “Search Plugins” die mir direkt die Suche einer bestimmten Website aufruft mit den Begriffen, die ich im Browser eingegeben habe. Eine Suche ohne vorher die Site selbst aufzurufen. Ein wichtiges Werkzeug der letzten Zeit ist die Suche auf [...]</description>
      <pubDate>Wed, 21 Apr 2010 20:24:47 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Update zu “Organize Imports”</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=111</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/update-zu-organize-imports/</link>
      <description>Ich habe ein kleines Update von meinem Organize Import Modul in das NetBeans Plugin Portal hochgeladen. Es sind nur kleine Änderungen passiert. Eine NPE, wenn man eine leere Liste in den Optionen zurück läßt wurde beseitigt und ich hatte vergessen ein paar Texte ins Englische zu übersetzen. Die größte Änderung ist, dass das Modul jetzt [...]</description>
      <pubDate>Fri, 16 Apr 2010 22:26:04 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Arbeiten mit dem GUI Builder Matisse</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=83</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/arbeiten-mit-dem-gui-builder-matisse/</link>
      <description>Die NetBeans IDE hat ein nettes und äußerst Hilfreiches Feature um eigene Benutzeroberflächen zu gestalten. Fast ohne sich um irgendwelche LayoutManager und deren sinnvolle Verschachtelung zu kümmern lassen sich mit dem “Matisse GUI Builder” auch komplexe Eingabemasken erstellen und bearbeiten. Aber so schön sich das im ersten Moment anhört, so kompliziert wird es, wenn man [...]</description>
      <pubDate>Fri, 16 Apr 2010 09:49:19 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: Wie verpacke ich ein eigenes Lookup in meinem Node</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=78</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/dynamisches-lookup-im-node/</link>
      <description>Geertjan hat in seinem Blog einem kurzen Artikel darüber geschrieben, wie man eine sogenannte “Capability” dynamisch in ein eigenes Node einbaut. Er nutzt dazu die Klasse InstanceContent über die dynamisch ein Lookup verändert werden kann. Bisher haben wir das bei uns immer über das CookieSet des DataObjects gemacht. Die “Cookies” (welches eine frühe Implementierung von [...]</description>
      <pubDate>Thu, 15 Apr 2010 13:16:27 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Maven based RCP, Branding Probleme im Plugin Manager</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_rcp_branding_probleme_im_plugin_manager/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_rcp_branding_probleme_im_plugin_manager/index.html</link>
      <description>&lt;p class="bodytext"&gt;Es gibt im aktuellem Dev-Build einige kleinere Probleme mit der Artifact-Beschreibung, die in den Modul-Properties eingestellt werden können. &lt;/p&gt; &lt;h3&gt;Zeilenumbrüche in Artifact Beschreibungen&lt;/h3&gt; &lt;p class="bodytext"&gt;Der erste (und massivere) Fehler ist, dass bei Eingaben mit Zeilenumbrüchen, die man per [Enter] eingegeben&#160;hat, es zu einem Build Fehler kommt. Der Text der Artifact-Beschreibung geht nämlich unmittelbar in die
      manifest.mf Datei des NBM ein. Und durch einen Fehler wird der Zeilenumbruch mit übertragen. Der Fehlerreport wurde &lt;a title="Opens external link in new window" href="https://netbeans.org/bugzilla/show_bug.cgi?id=184137" target="_blank" class="external-link-new-window"&gt;hier unter Issue 184137&lt;/a&gt; angelegt.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn man also so einen (oder ähnlichen) Fehler bekommt: &lt;/p&gt; &lt;pre id="comment_text_0" class="bz_comment_text"&gt;[ERROR]Manifest is
      invalid: Manifest line "Line 2" is not valid as it does not&lt;br /&gt;contain a name and a value separated by ': ' &lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;[ERROR]BUILD ERROR&lt;br /&gt;------------------------------------------------------------------------&lt;/pre&gt; &lt;p class="bodytext"&gt;Dann hat man mit hoher Wahrscheinlichkeit das beschriebene Problem (wobei "Line 2" natürlich ein Fragment der Beschreibungseingabe ist). &lt;/p&gt;
      &lt;p class="bodytext"&gt;Man sollte z.Z. also keine Zeilenumbrüche verwenden. &lt;/p&gt; &lt;h3&gt;Sonderzeichen in Beschreibungen&lt;/h3&gt; &lt;p class="bodytext"&gt;Ein weiteres Problem sind Sonderzeichen in der Beschreibung. Da kommt es ebenfalls zu einem Fehler des nbm-maven Builders. So wie es sich darstellt, wird als Encoding nicht das (nach Spezifikation) erforderliche UTF-8, sondern UTF-16 verwendet. Der Fehlerreport findet sich &lt;a title="Opens external link in new window"
      href="https://netbeans.org/bugzilla/show_bug.cgi?id=184135" target="_blank" class="external-link-new-window"&gt;hier #184135&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Build läuft durch und auch der Modul-Loader hat damit keine Probleme, aber die Anzeige im Plugin-Manager ist entsprechend kaputt. Umlaute und Sonderzeichen werden als Glyphensalat dargestellt. &lt;/p&gt; &lt;p class="bodytext"&gt;Um das zu verhindern, sollte man in der Projektbeschreibung auf Sonderzeichen verzichten. Oder
      gleich die Beschreibungen lokalisier &lt;/p&gt; &lt;h3&gt;Lokalisierung der Modulbeschreibung&lt;/h3&gt; &lt;p class="bodytext"&gt;Das ist keine Besonderheit der Maven Builds und ist im Prinzip immer der richtige Weg, um Module mit einer Beschreibung zu versehen. &lt;/p&gt; &lt;p class="bodytext"&gt;Es empfiehlt sich in den Projekteigenschaften die Artifact-Beschreibung zunächst sehr kurz und in Englisch zu halten. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Branding der Modulbeschreibung erfolgt dann
      unter Other Sources des Moduls. Dort befindet sich schon der "Bereich" src/main/resources, der in Maven Projekten der übliche Ort für Ressourcen ist. &lt;/p&gt; &lt;p class="bodytext"&gt;Darunter legt man (wenn es noch nicht existiert) ein Package mit dem Namen des Modul-Packages an (z.B. org.sepix.mymodule). Darunter wird eine Bundle.properties und für unseren Sprachraum&#160;eine Bundle_de.properties Datei angelegt. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/maven/mod-brand/modulebranding.jpg" alt="" height="292" width="600" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Meistens existiert das Paket und die Bundle.properties schon an passender Stelle, weil dort beim Erzeugen des Moduls (per Assistent), die Plugin-Kategorie hinterlegt wird: &lt;/p&gt; &lt;pre style="margin-bottom: 0.5cm;"&gt;OpenIDE-Module-Display-Category=foobar&lt;/pre&gt; &lt;p class="bodytext"&gt; Schon foobar sollte man ändern ;-) &lt;/p&gt; &lt;p
      class="bodytext"&gt;Zwei weitere Schlüssel kann man hinzufügen: &lt;/p&gt; &lt;pre&gt;OpenIDE-Module-Short-Description=Kurzbeschreibung&lt;br /&gt;OpenIDE-Module-Long-Description=Eine überlange Beschreibung zu dem Modul&lt;/pre&gt; &lt;p class="bodytext"&gt; Dort darf man Umlaute und andere Sonderzeichen verwenden. Zeilenumbrüche werden mit \n gekennzeichnet. &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn man aber mit der rechten Maustaste auf Bundle.properties klickt und "Open" im Kontextmenü auswählt,
      wird auch ein Bundle-Editor geöffnet. Dort kann man etwas komfortabler (über alle Sprachversionen) die Einträge der Bundle-Datei anpassen. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;</description>
      <pubDate>Thu, 15 Apr 2010 08:43:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: NetBeans Maven Links</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_netbeans_maven_links/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_netbeans_maven_links/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Hier ein paar (ausgesuchte) Links für die Entwicklung mit Maven 2 in NetBeans. &lt;/p&gt; &lt;h3&gt;NetBeans.org Links&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="RCP Maven Development mit NetBeans 6.8" href="http://platform.netbeans.org/tutorials/nbm-maven-quickstart68.html" target="_blank" class="external-link-new-window"&gt;RCP Entwicklung mit Maven Builds in NetBeans 6.8&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a
      title="NetBeans Platform Development" href="http://netbeans.org/community/magazine/html/04/maven.html" target="_blank" class="external-link-new-window"&gt;NetBeans Platform Development mit Maven 2 (NetBeans Magazine)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Maven Best Practice für NetBeans 6.x" href="http://wiki.netbeans.org/MavenBestPractices" target="_blank" class="external-link-new-window"&gt;Maven Best Practice in NetBeans 6.x&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Sceencast"
      href="http://netbeans.org/kb/docs/java/maven-dependencies-screencast.html" target="_blank" class="external-link-new-window"&gt;Maven Dependencies Screencast&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Maven Plan für NetBeans 6.8" href="http://wiki.netbeans.org/MavenPlan68" target="_blank" class="external-link-new-window"&gt;Maven Plan für NetBeans 6.8&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Maven 2 Plan for NetBeans 6.9" href="http://wiki.netbeans.org/MavenPlan69" target="_blank"
      class="external-link-new-window"&gt; Maven Plan für NetBeans 6.9&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;NetBeans Maven Plugins&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="NBM Maven Plugin" href="http://mojo.codehaus.org/nbm-maven-plugin/" target="_blank" class="external-link-new-window"&gt;NBM Maven Plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Jira" href="http://jira.codehaus.org/browse/MNBMODULE" target="_blank" class="external-link-new-window"&gt;JIRA für das NBM Maven
      Plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Blogs&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="10 Steps" href="http://blogs.sun.com/geertjan/entry/getting_started_with_maven_on" target="_blank" class="external-link-new-window"&gt;10 Steps to start a Maven project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Maven und NetBeans 6.7.1" href="http://today.java.net/article/2009/10/14/working-maven-netbeans-671" target="_blank" class="external-link-new-window"&gt;Working with Maven in NetBeans
      6.7.1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/blogs/blogrittner/category/maven/index.html" class="external-link-new-window" title="Joschs NetBeans Blog - Maven und NetBeans"&gt;NetBeans und Maven (mein Blog)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Ich möchte die Liste gerne erweitern. Wer Infos hat, darf sie mir gerne mitteilen. Danke und beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Wed, 14 Apr 2010 07:13:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Branding und Konfiguration eines Maven Platform Projektes</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_branding_und_konfiguration_eines_maven_platform_projektes/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_branding_und_konfiguration_eines_maven_platform_projektes/index.html</link>
      <description>&lt;p class="bodytext"&gt;Nachdem man das erste Application Projekt erstellt hat, fallen einem viele Kleinigkeiten auf, die Unschön sind. &lt;/p&gt; &lt;p class="bodytext"&gt;Besonders die Label, Icons und Namen der ausführbaren Dateien stören mit "komischen Platzhaltern" &lt;/p&gt; &lt;h3&gt;Foo und Foobar&lt;/h3&gt; &lt;p class="bodytext"&gt;Der Wizard lässt einige Einstellungen vermissen. Es kann noch ein Problem des 6.9'er Dev Builds sein, aber foo und foobar für Clusternamen,
      Branding Tokens und Name der ausführbaren Startdatei (Executable) sind doch nicht wirklich schön. &lt;/p&gt; &lt;p class="bodytext"&gt;Angepasst werden diese Namen im pom.xml des Maven Projektes. &lt;/p&gt; &lt;p class="bodytext"&gt;Ganz am Ende der pom.xml findet sich: &lt;/p&gt; &lt;pre&gt;&#160;&#160;&#160; &amp;lt;properties&gt;&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;lt;netbeans.version&gt;SNAPSHOT&amp;lt;/netbeans.version&gt;&lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &amp;lt;brandingToken&gt;foo&amp;lt;/brandingToken&gt;&lt;br /&gt;&#160;&#160;&#160; &amp;lt;/properties&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Das Brandingtoken kann man in einen gewünschten Namen (ohne Leerzeichen) ändern. &lt;/p&gt; &lt;p class="bodytext"&gt;Ich nehme mal "s3" (ein Applikationsname in meinem Unternehmen). Tipp: Keine Bindestriche im Branding-Token verwenden, ansonsten startet unter Windows die Applikation nicht! &lt;/p&gt; &lt;p
      class="bodytext"&gt;Mit einem Clean &amp;amp; Build wird im target-Ordner nun ein s3-Ordner angelegt und darunter im bin-Ordner findest sich nun s3.exe. Man sieht also, dass sich das Branding-Token auf den Applikationsnamen auswirkt. &lt;/p&gt; &lt;p class="bodytext"&gt;Unter dem s3-Ordner liegt aber noch ein foobar-Ordner. Das ist ein Clusterordner, in dem die Module der Applikation zusammengefasst sind. Auch foobar ist ein recht unnützer Name. &lt;/p&gt; &lt;p class="bodytext"&gt;Geändert wird das
      in der selben pom.xml weiter oben: &lt;/p&gt; &lt;pre&gt;&amp;lt;configuration&gt;&lt;br /&gt; &amp;lt;brandingToken&gt;${brandingToken}&amp;lt;/brandingToken&gt;&lt;br /&gt;&#160;&#160; &amp;lt;cluster&gt;foobar&amp;lt;/cluster&gt;&lt;br /&gt;&#160;&#160;&#160;&amp;lt;useOSGiDependencies&gt;true&amp;lt;/useOSGiDependencies&gt;&lt;br /&gt;&amp;lt;/configuration&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Auch der Clustername sollte keine Leerzeichen enthalten. Nicht mal Bindestriche oder Punkte. Ich
      wähle sxbase als Clustername. &lt;/p&gt; &lt;p class="bodytext"&gt;Nach einem Clean &amp;amp; Build findet sich nun im sxbase-demo/application Ordner folgende zufrieden stellende Ordnerstruktur: &lt;/p&gt; &lt;pre&gt;sxbase-demo/application:&lt;br /&gt;│&#160;&#160; └───target&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160; └───s3&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───bin&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───etc&lt;br
      /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───platform&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; ├───config&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; │&#160;&#160; ├───ModuleAutoDeps&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; │&#160;&#160; └───Modules&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160;
      ├───core&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; ├───docs&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; ├───lib&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; ├───modules&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; │&#160;&#160; └───ext&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160;
      └───update_tracking&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; └───sxbase&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───config&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───Modules&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───core&lt;br
      /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───locale&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───modules&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───locale&lt;br /&gt;│&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; └───update_tracking&lt;/pre&gt; &lt;p class="bodytext"&gt;Der
      Clustername findet sich auch im branding Ordner wieder: &lt;/p&gt; &lt;pre&gt;└───branding&lt;br /&gt;[...]&lt;br /&gt;&#160;&#160;&#160; └───target&lt;br /&gt;[...]&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───maven-archiver&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; └───nbm&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; └───netbeans&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
      └───sxbase&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───config&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───Modules&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───core&lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───locale&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ├───modules&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; │&#160;&#160; └───locale&lt;br
      /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; └───update_tracking&lt;/pre&gt; &lt;p class="bodytext"&gt;Damit hat man schon mal zwei unschöne Namen korrigiert. &lt;/p&gt; &lt;h3&gt;Branding der Texte &lt;/h3&gt; &lt;p class="bodytext"&gt;Das weitere Branding der Texte wird nicht im Maven-Parent-Projekt sondern im Branding Modul durchgeführt. Zwar kann man einiges in dem Kontext-Menü aufgerufenen Branding... Assistenten
      durchführen, aber ein Streifzug durch die Bundle.properties kann nicht schaden. &lt;/p&gt; &lt;p class="bodytext"&gt;Folgende Ansicht, zeigt den Other Sources Zweig des Branding-Moduls: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/app-brand/branding-res.jpg" alt="" height="600" width="300" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Die drei Bundle-Dateien unter core.jar, org-netbeans-core-windows.jar und org-netbeans-core.jar werden durch den
      Branding-Assistenten gespeist. Insbesondere den Application Title verteilt der Branding-Assisten über die drei Bundle-Dateien. core.jar/**/Bundle.properties bekommt currentVersion und LBL_splash_window_title gefüllt. In org-netbeans-core-windows.jar/**/Bundle.properties werden CTL_MainWindow_Title und CTL_MainWindow_Title_No_Project gefüllt. Die Datei org-netbeans-core.jar/**/Bundle.properties nimmt das Label für LBL_ProductInformation auf. Alle gefüllt durch ein Textfeld. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Möchte man das individuell steuern, kann man die Werte in den Bundle-Dateien von Hand anpassen. Man darf dann aber nicht mehr den Menüpunkt Brandings... im Kontextmenü aufrufen. Schade, wenn man darüber nachträglich den Spashscreen anpassen will. &lt;/p&gt; &lt;p class="bodytext"&gt;Tragen wir mal den Text "My Test Application" ein: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/app-brand/app-title.PNG" alt="" height="322" width="414" /&gt;
      &lt;/p&gt; &lt;p class="bodytext"&gt;Dann ergibt sich folgendes Bild in den Bundle.properties: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/app-brand/app-title-bundles.PNG" alt="" height="384" width="492" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Um die Auswirkung testen zu könne, muss man ein Clean &amp;amp; Build machen, danach Run: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/app-brand/app.jpg" alt="" height="376"
      width="600" /&gt; &lt;/p&gt; &lt;h3&gt;Anpassung der Icons&lt;/h3&gt; &lt;p class="bodytext"&gt;Leider ist es z.Z. möglich über den Branding-Assistenten nur die Icons für die Oberfläche zu ändern. Das Executable-Icon für Windows ändert sich dabei nicht. Eine &lt;a title="DevFaqExecutableIcon" href="http://wiki.netbeans.org/DevFaqExecutableIcon" target="_blank" class="external-link-new-window"&gt;FAQ existiert&lt;/a&gt; für das Problem. &lt;/p&gt; &lt;h3&gt;Anpassung des Splash Screens&lt;/h3&gt;
      &lt;p class="bodytext"&gt;Die Änderung des Splash Screens erfolgt so, wie man es in älteren Versionen gewohnt war. Nur nun über den Branding-Assistenten und nicht mehr über die Project Properties des Kontextmenüs. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/app-brand/splash.jpg" alt="" height="536" width="600" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Anpassungen zum Übersetzen und weitere Branding-Einstellungen werde ich im &lt;a
      href="http://www.sepix.de/blogs/blogrittner/blog/archive/2010/april/15/beandev_maven_based_rcp_branding_probleme_im_plugin_manager/index.html" class="external-link-new-window" title="Plugin Brandings und Internationalisierung"&gt;nächsten Teil&lt;/a&gt; beschreiben. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 13 Apr 2010 10:00:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Maven based NetBeans Platform RCP Projekte</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_netbeans_platform_rcp_projekte/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_maven_based_netbeans_platform_rcp_projekte/index.html</link>
      <description>&lt;p class="bodytext"&gt;Ich bin gerade dabei meine Platform Projekte auf das Maven Build System umzustellen. Damit die Sache noch ein wenig spannender wird, das auch noch mit dem NetBeans 6.9 Dev Build (genauer Build 201004120251). &lt;/p&gt; &lt;p class="bodytext"&gt;Grundsätzlich will ich für die Umstellung der einzelnen Bestandteile (Application, Suites und Modules) die Projekte komplett neu aufbauen, damit ich keine Altlasten meiner Ant-Builds habe und die Abhängigkeiten sauber
      aufgelöst sind. &lt;/p&gt; &lt;p class="bodytext"&gt;Dies wird der erste Teil einer lockeren Reihe von Tutorials, wie man solche Builds aufbaut, inkl. meiner Fehlschläge und Erkenntniss &lt;/p&gt; &lt;h3&gt;Application Projekt erzeugen&lt;/h3&gt; &lt;p class="bodytext"&gt;Zunächst baue ich mir ein Application Build auf. Der Wizard für neuen Projekte ist in 6.9 etwas anders als in 6.8. Bisher musste man zunächst ein Maven Projekt aussuchen, um dann im zweiten Schritt ein Platform Template zu wählen.
      Die NetBeans Maven Projekte sind inzwischen auf die erste Seite des Assistenten gerutscht, allerdings weiterhin unter der Kategorie Maven. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/appbuild/wizard-1.PNG" alt="" height="401" width="580" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Man wählt im "New Project" Assistenten also als erstes "Maven NetBeans Application" auf. Auf der nächsten Seite wählt man einen Projektnamen. Dieser Name wird an vielen Stellen im
      Branding verwendet. Also auch für die Titelleiste des Hauptfensters. Da man als Projektnamen keine Leerzeichen verwenden darf, nehme ich sowieso immer kurze Bezeichnungen, muss dann aber überall wieder das Branding anpassen. Als Trenner im Namen darf man auch Bindestriche verwenden (z.B. sXbase-demo). &lt;/p&gt; &lt;p class="bodytext"&gt;Als Project Location empfiehlt sich ein Ordner, der speziell alle Platforms aufnehmen soll. Ich spiele gerne mit verschiedenen Platform-Builds. Diese an einer Stelle
      wiederzufinden ist sinnvoll. &lt;/p&gt; &lt;p class="bodytext"&gt;Group-Id ist üblicherweise ein Domain-Name wie man das von package Beschreibungen gewohnt ist, z.B. de.sepix wäre in meinem Fall eine passende Group-Id. &lt;/p&gt; &lt;p class="bodytext"&gt;Als Version wird 1.0-SNAPSHOT vorgegeben, das lasse ich so. Das Package wird aus der Group-ID und dem Projektnamen (ohne Bindestriche) zusammengesetzt. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/maven/appbuild/wizard-2.PNG" alt="" height="400" width="580" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Die nächste Registerzunge erlaubt nun mit 6.9 OSGi Bundles als Abhängigkeiten zu binden. Ich setze da meinen Haken, weil ich das gerne in Zukunft probieren möchte. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/appbuild/wizard-3.PNG" alt="" height="399" width="580" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Mit Finish werden
      nun drei einzelne Projekte erzeugt (ein Maven Projekt, eine Application Suite mit orangem Puzzel-Icon und ein Modul Projekt für das Branding, das ein violettes Puzzel-Icon trägt). &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/appbuild/projects.jpg" alt="" height="600" width="309" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Das dauert auch relativ lange, wenn man das zum ersten Mal gemacht hat. Zum Teil wird nämlich das lokale Maven Repository aufgebaut (es
      findet sich im Homeverzeichnis unter ~/.m2). Auch wenn der Wizard sich beendet, werden im Hintergrund (über die Progessbar in der Statuszeile zu sehen) Quelltexte und Dokumentation aus öffentlichen Repositories heruntergeladen. &lt;/p&gt; &lt;h3&gt;Der erste Build&lt;/h3&gt; &lt;p class="bodytext"&gt;Ist das alles erfolgreich abgeschlossen (und die Voraussetzung ist natürlich eine Internetverbindung), kann man mal einen Build des Maven-Hauptprojektes versuchen (sic!). &lt;/p&gt; &lt;p
      class="bodytext"&gt;Macht man das wirklich zum ersten Mal, wird das Build nicht klappen. Man kann es auch den einzelnen Projekten ansehen (die Symbole haben ein Warndreieck), dass es Probleme gibt. &lt;/p&gt; &lt;p class="bodytext"&gt;Eine Abhängigkeit für das Branding-Modul konnte nicht geladen werden. Das Modul org-opende-util-SNAPSHOT.jar wird nicht erzeugt, weil die zugrunde liegende Datei nicht aus den NetBeans Repository geladen wurde (ggf. hat man schon CRC-Fehler im Output-Fenster gesehen).
      Das Problem kann gelöst werden, in dem man (nicht wie vorgeschlagen) aus dem Kontextmenü "Resolve Dependency Problems" aufruft. &lt;/p&gt; &lt;p class="bodytext"&gt;Auch die Fehlermeldung mit dem Hilfshinweis im Build, die Datei manuell zu laden und zu installieren, sollte man erst gar nicht anfangen. Es reicht einfach das Branding-Modul als Erstes zu erzeugen (rechte Maustaste auf das Projekt -&gt; Build), dann einen Build mit der Suite (NetBeans Platform based application) und zum Schluss ein Build
      mit dem Maven Projekt. &lt;/p&gt; &lt;p class="bodytext"&gt;In Zukunft wird das hoffentlich nicht mehr notwendig sein. Ein Bugreport gibt es bereits dazu. Aber ich musste ja mit dem Dev-Build spielen. &lt;/p&gt; &lt;h3&gt;Run&lt;/h3&gt; &lt;p class="bodytext"&gt;Jetzt endlich kann man die Applikation per Run (übrigens vom Suite Projekt, NetBeans platform based application) aus dem Kontextmenü starten. Oder man setzt das Suite-Projekt als Main-Projekt und kann dann den Toolbar-Button (der grüne Play
      Pfeil) nutzen. &lt;/p&gt; &lt;p class="bodytext"&gt;Ohne angepasstes Branding sieht es noch etwas Mau aus, aber die erste Application basierend auf der NetBeans Platform per Maven Build ist fertig, und keine Zeile XML oder Java programmiert. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/appbuild/run.PNG" alt="" height="622" width="580" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a
      href="http://www.sepix.de/blogs/blogrittner/blog/archive/2010/april/13/beandev_branding_und_konfiguration_eines_maven_platform_projektes/index.html" class="external-link-new-window" title="Branding einer Maven-Build NetBeans Platform"&gt;Im nächsten Teil&lt;/a&gt; gehe ich ein wenig auf das Branding ein. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 13 Apr 2010 08:25:00 +0000</pubDate>
    </item>
    <item>
      <title>Java Getriebe » NetBeans: NetBeans Certified Engineer</title>
      <guid isPermaLink="false">http://blog.nigjo.de/netbeans/?p=9</guid>
      <link>http://blog.nigjo.de/netbeans/2010/04/netbeans-certified-engineer/</link>
      <description>Gleich zu Beginn dieses neuen Blogs muss ich einmal ein bischen angeben. Seit gestern bin ich ein “NetBeans Certified Engineer“. Eingebracht hat mir das eigentlich nur die Tatsache, dass ich immernoch dem Java Editor von Eclipse nach trauere. Auch wenn die NetBeans Platform an sich recht nett ist und ich mittlerweile auch die NetBeans IDE ganz [...]</description>
      <pubDate>Sat, 10 Apr 2010 22:17:28 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: James Gosling hat Oracle verlassen</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_james_gosling_hat_oracle_verlassen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_james_gosling_hat_oracle_verlassen/index.html</link>
      <description>&lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/150px-James_Gosling_2005.jpg" style="padding-bottom: 10px; padding-left: 10px; float: right;" title="James Gosling" height="206" width="150" alt="Picture of James Gosling 2005" /&gt;Es wurde ja schon länger vermutet, dass &lt;a title="Wikipedia: James Gosling" href="http://de.wikipedia.org/wiki/James_Gosling" target="_blank" class="external-link-new-window"&gt;James Gosling&lt;/a&gt; nicht sehr lange bei &lt;a
      title="Oracle" href="http://www.oracle.com/index.html" target="_blank" class="external-link-new-window"&gt;Oracle&lt;/a&gt; bleiben wird. Nun ist es aber schon seit dem 2. April geschehen. James hat Oracle verlassen. In seinem &lt;a title="JAG" href="http://nighthacks.com/roller/jag/" target="_blank" class="external-link-new-window"&gt;neuen Blog&lt;/a&gt; hat er &lt;a title="Time to move on..." href="http://nighthacks.com/roller/jag/entry/time_to_move_on" target="_blank"
      class="external-link-new-window"&gt;es offiziell gemacht.&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;James schreibt weiterhin, dass er auch in St. Petersburg nicht bei den &lt;a title="TechDays" href="http://developers.sun.com/events/techdays/" target="_blank" class="external-link-new-window"&gt;TechDays&lt;/a&gt; dabei sein kann. &lt;/p&gt; &lt;p class="bodytext"&gt;Eine neue Firma für seine Schaffenskraft gibt es noch nicht, er will sich etwas Zeit nehmen, eine Entscheidung zu finden.
      &lt;/p&gt; &lt;p class="bodytext"&gt;Ich wünsche James Gosling alles Gute und hoffe, dass er uns in Zukunft mit seinen Ideen zur Seite stehen wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Apr 2010 13:48:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Lockere Kopplung von Nodes erfolgreich verhindert</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_lockere_kopplung_von_nodes_erfolgreich_verhindert/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_lockere_kopplung_von_nodes_erfolgreich_verhindert/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Mir ist es schon ein paar mal passiert, andere Entwickler stolpern auch ständig darüber. &lt;/p&gt; &lt;p class="bodytext"&gt;Da hat man alles ganz sauber programmiert, nichts vergessen und doch wollen die Nodes in NetBeans nicht das tun, was sie sollen. &lt;/p&gt; &lt;p class="bodytext"&gt;Der klassische Aufbau einer TopComponent mit BeanTreeView, ExplorerManager.Provider und associateLookup ist immer ein wenig
      Bastelei und verursacht schon so unnötige Tippfehler. Hat man alles zusammen (und es funktioniert) klappt es auch mit der Kopplung der weiteren Features in der RCP Anwendung. Magischerweise zeigt das Eigenschaftsfenster die Properties des Nodes, Kontextmenüs zeigen die gewünschten Actions und Toolbar-Buttons reagieren exakt wie gewünscht. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/SimpleViewer.png" alt="" height="408" width="600" /&gt; &lt;/p&gt; &lt;p
      class="bodytext"&gt;Aber manchmal will das alles nicht klappen. In voller Überzeugung alles richtig gemacht zu haben, stellt man fest, dass die selektierten Nodes im BeanTreeView eben nicht im globalen Lookup auftauchen. Und wenn die Nodes das nicht tun, dann können alle anderen Module der Plattform die Nodes auch nicht sehen. Und was man nicht sieht, kann man nicht unterstützen. &lt;/p&gt; &lt;p class="bodytext"&gt;Dieses "Sichtbarmachen" oder das bekannt machen der aktuellen Auswahl erledigt der
      ExplorerManager. Er verwaltet das Selection Management. Das Node-View sucht sich normalerweise den passenden ExplorerManager über die Swing-Hierarchie. In einer TopComponent muss man dafür nur das Interface ExplorerManager.Provider implementieren und in der Methode getExplorerManager eine Instanz zurückgeben. Innerhalb der TopComponent wird aus dieser ExplorerManager-Instanz das Lookup geholt und mit der Methode associateLookup an das globale Selection-Management gekoppelt (siehe auch meinen &lt;a
      href="http://www.sepix.de/blogs/blogrittner/blog/archive/2008/june/27/beandev_nodeaction_und_selection_management/index.html" class="external-link-new-window" title="Selection Management"&gt;Artikel von 2008&lt;/a&gt;) &lt;/p&gt; &lt;p class="bodytext"&gt;Nur durch diesen Weg ist es möglich ohne direkte Abhängigkeiten das View auszutauschen. Aber dieser Automatismus: der Suche nach der passenden Komponente, die ExplorerManager.Provider implementiert, hat so seine Tücken. Denn syntaktisch (und selten
      semantisch) ist es ohne Probleme möglich jeder Klasse, beliebigen Access Modifier zum trotz, Interfaces anzuhängen. Und da kommen wir schon zum Problem und zur Lösung. &lt;/p&gt; &lt;p class="bodytext"&gt;Manchmal passiert es schlicht und einfach, dass man den Access Modifier public für die Swing-Komponente vergessen hat. Also &lt;/p&gt; &lt;pre&gt;class MyWindow extends TopComponent implements ExplorerManager.Provider&lt;/pre&gt; &lt;p class="bodytext"&gt;Die TopComponent kann so ohne Probleme
      funktionieren, aber die View Komponenten in der TopComponent haben gar kein Zugriff auf das Interface ExplorerManager.Provider - es ist der API unsichtbar. Damit wird der gesamte Mechanismus der Entkopplung ausgehebelt. Die Nodes werden im View angezeigt, aber alle anderen erweiterten Funktionalitäten stehen einem nicht zur Verfügung. Keine Anzeige im Property-Window, keine funktionierenden NodeActions, usw. usf. &lt;/p&gt; &lt;p class="bodytext"&gt;Man sollte also immer darauf achten, dass man bei
      Implementation von Interfaces die der Modulkommunikation dienen, auch immer die Klasse öffentlich sichtbar macht. Ansonsten bekommt man recht unbefriedigende Ergebnisse. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Mon, 22 Mar 2010 16:41:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: EMF Integration in die NetBeans IDE und Platform</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_emf_integration_in_die_netbeans_ide_und_platform/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_emf_integration_in_die_netbeans_ide_und_platform/index.html</link>
      <description>&lt;p class="bodytext"&gt;In meinem letzten Interview auf JAXenter wurde &lt;a href="http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-1---NetBeans-2741.html#diskussion" target="_blank"&gt;ich gefragt&lt;/a&gt; wie es mit der Integration einer &lt;a href="http://de.wikipedia.org/wiki/Model_Driven_Architecture" target="_blank"&gt;Modell getriebenen Softwareentwicklung&lt;/a&gt; in der NetBeans IDE steht. &lt;/p&gt; &lt;p class="bodytext"&gt;Zwar besitzt NetBeans mit
      &lt;a href="http://netbeans.org/about/press/8.html" target="_blank"&gt;MDR&lt;/a&gt; ein Framework, es wird aber schon seit einiger Zeit nicht mehr weiterentwickelt. &lt;/p&gt; &lt;p class="bodytext"&gt;Auch halte ich es für unwahrscheinlich, dass Oracle nach der Übernahme selbst eine MDA-Technologie in NetBeans integrieren wird, wenn so etwas schon in den JDeveloper Tools zur Verfügung steht. &lt;/p&gt; &lt;p class="bodytext"&gt;Trotzdem hielt ich die Zukunft für MDA Tools in NetBeans für nicht ganz
      ausgeschlossen. Schließlich öffnet sich NetBeans immer mehr anderen Frameworks und Modulsystemen (z.B. &lt;a href="http://de.wikipedia.org/wiki/OSGi" target="_blank"&gt;OSGi&lt;/a&gt;). So gab ich &lt;a href="http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Ergebnisse---NetBeans-2854.html" target="_blank"&gt;als Antwort&lt;/a&gt;, dass ich davon ausgehe, dass in Zukunft eine Integration des EMF von Eclipse in NetBeans machbar wäre. &lt;/p&gt; &lt;p class="bodytext"&gt;Tatsächlich
      wurde das schon von einem Entwicklerteam aus Norwegen der Firma Exie umgesetzt. In deren internen RCP Anwendungen wurde das EMF integriert. Ein Beispiel, wie das in NetBeans umzusetzen ist, wird heute als OpenSource vorgestellt. Das Projekt wird unter der BSD Lizenz auf java.net gehostet. Bis das Projekt aktiviert ist, findet man den Quelltext unter &lt;a href="http://dl.dropbox.com/u/2392831/EmfNbm.zip" target="_blank"&gt;diesem Link&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/emf-1.png" alt="" height="396" width="592" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Eclipse Anwender werden sich fragen, warum man das UI des EMF unter einer anderen Plattform erneut programmieren will. Zunächst verwendet Exie das EMF in einer RCP Anwendung basierend auf der NetBeans Plattform. Da wurde also schon das NetBeans Platform Framework dem Eclipse RCP Framework vorgezogen. Außerdem finde ich es reizvoll ein neues UI für EMF in dem intuitiv zu bedienendem
      NetBeans Ökosystem der Entwicklungsumgebung zu integrieren. Das UI aus Eclipse kann man nicht übernehmen, da SWT unter Swing nur mit schweren Bauchschmerzen zum laufen zu bringen ist (schon SWT allein ist nicht trivial). &lt;/p&gt; &lt;p class="bodytext"&gt;Einen englischsprachigen Beitrag zu dem Thema findet sich auf &lt;a title="DZone EMF in NetBeans" href="http://netbeans.dzone.com/emf-on-netbeans-rcp" target="_blank" class="external-link-new-window"&gt;dzone&lt;/a&gt;. &lt;/p&gt; &lt;p
      class="bodytext"&gt;So bin ich gespannt, was die Zukunft für dieses Projekt bringen wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Wed, 17 Mar 2010 14:35:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Training: NetBeans Platform Certified Training in Weihenstephan</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_platform_certified_training_in_weihenstephan/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_platform_certified_training_in_weihenstephan/index.html</link>
      <description>&lt;p class="bodytext"&gt;Nach nur 1 1/2 Tagen haben wir unser NetBeans Platform Certified Training in Weihenstephan (FH, Fachbereich Bioinformatik) abgeschlossen.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Normalerweise dauert das Training 2-3 Tage. Wir haben es diesmal (trotz meiner Überziehungen) geschafft alle erforderlichen Themen in das Training zu packen. &lt;/p&gt; &lt;p class="bodytext"&gt;Danke auch an die Studenten, die an ihren ersten Tagen zum neuen Semester so konzentriert
      mitgemacht haben! &lt;/p&gt; &lt;p class="bodytext"&gt;Hier ein paar Bilder zu unserem Training. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/freising/GeertjanWeihenstephan.JPG" alt="" height="375" width="500" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/freising/ToniWeihenstephan.JPG" alt="" height="375" width="500" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Natürlich wurde auch
      gemütlich zusammen gesessen. In der berühmten Brauerei Weihenstephan: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/freising/PubWeihenstephan.JPG" alt="" height="375" width="500" /&gt;: &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Zum Schluss das obligatorische Gruppenfoto. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/freising/GruppenfotoWeihenstephan.JPG" alt="" height="495" width="650" /&gt;
      &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Natürlich kommen wir das nächste Jahr zu einem neuen Training an die Fachhochschule Weihenstephan. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Thu, 11 Mar 2010 14:40:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: Kenai.com nach java.net Migration schreitet voran</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_nach_javanet_migration_schreitet_voran/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_nach_javanet_migration_schreitet_voran/index.html</link>
      <description>&lt;p class="bodytext"&gt;Wie ich gestern in einer Mail lesen konnte, wird tatsächlich an einer Migration von kenai.com nach java.net gearbeitet.&#160;&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;Work is on-going for migrating the Java.net domain over to the Kenai infrastructure and we will move the existing Kenai.com projects over to the Java.net domain as soon as we have everything in place.&lt;/p&gt;&lt;/blockquote&gt;&lt;p
      class="bodytext"&gt;Nur bittet das Projekt Team um etwas Geduld, weil der Prozess wohl aufwändig ist.&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;The work will take a bit of time to complete, so please feel comfortable using Project Kenai while we work towards the final move to Java.net.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Im Netz gibt es zwar viele Stimmen trotzdem kenai.com zu verlassen, damit man sich der Abhängigkeit eines
      kommerziellen Anbieters wie Oracle entzieht, aber nüchtern betrachtet kann dies einem mit jedem Hoster passieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Trotz der ursprünglichen (schockierenden) Informationspolitik scheint sich Oracle doch eines besseren besinnt zu haben. Damit hat man hier schon einen Ansatz von Sicherheit, was die Beständigkeit von java.net haben wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Ich werde der Migration zu java.net eine Chance geben. Wohl aus einem (eventuellen trügerischen)
      Sicherheitsgefühl, dass java.net für eine lange Zeit ein gutes Heim sein wird, vielleicht auch aus Bequemlichkeit ;-) &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Wed, 03 Mar 2010 08:45:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: Maven Projekt Bibliotheken für NetBeans Java Projekte</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_projekt_bibliotheken_fuer_netbeans_java_projekte/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_projekt_bibliotheken_fuer_netbeans_java_projekte/index.html</link>
      <description>&lt;p class="bodytext"&gt;Wenn man Java Projekte hat, die Bibliotheken aus einem Maven Projekt benötigen, steht man zunächst auf dem Schlauch. &lt;br /&gt;&lt;br /&gt;Das simple "Add Project..." eines Maven Projektes zu einem NetBeans Java Projekt wird zwar angeboten, funktioniert aber nicht. Es werden keine JAR-Dateien gefunden und eingebunden. Die Problematik liegt vermutlich daran, dass die abhängigen Bibliotheken eines Maven Projektes in einem lokalem Repository zwischengespeichert
      sind (%homepath%/.m2/repository/ ...). &lt;br /&gt;&lt;br /&gt;Wie bekommt man aber alle Dependencies mit einem Schlag in eine herkömmliches Java Projekt?&lt;br /&gt;&lt;br /&gt;Etwas versteckt aber letztendlich einfacher als gedacht. Man öffnet per rechtem Mausklick das Kontextmenü des Maven-Projektes und führt "Show Dependency Graph" aus. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/ShowDependencyGraph.png" alt="" height="678" width="442" /&gt; &lt;/p&gt;
      &lt;p class="bodytext"&gt;Im Graph-View kann man sich die Abhängigkeiten veranschaulichen (und sogar Konflikte korrigieren). &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="Dependency Graph" href="http://www.sepix.de/fileadmin/maven/caldav4j-0.5.png" target="_blank" class="external-link-new-window"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/caldav4j-0.5-small.png" alt="" height="317" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Im Classpath View kommt nun die eigentliche Funktion zu
      tragen. Der Toolbar-Button "Create Library" rettet vor viel Arbeit: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/ClassPathView.png" alt="" height="466" width="786" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Nur noch im Dialog einen Namen vergeben und per [Ok] die Bibliothek erzeugen. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/CreateLibrary.png" alt="" height="638" width="334" /&gt; &lt;/p&gt; &lt;p
      class="bodytext"&gt;&lt;br /&gt;Im Library Manager wird dann die Bibliothek mit den Archiven angezeigt, wenn alle abhängigen JARs heruntergeladen wurden. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="Library Manager" href="http://www.sepix.de/fileadmin/maven/LibraryManager.png" target="_blank" class="external-link-new-window"&gt;&lt;img src="http://www.sepix.de/fileadmin/maven/LibraryManager-small.png" alt="" height="357" width="600" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Nun kann
      man diese Bibliothek dem eigenen Projekt hinzufügen.&lt;br /&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Thu, 25 Feb 2010 10:27:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: Maven ohne Tests</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_ohne_tests/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_maven_ohne_tests/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin!&lt;br /&gt;&lt;br /&gt;Aktuell hatte ich &lt;a title="Google Code: CalDAV for Java" href="http://code.google.com/p/caldav4j/" target="_blank" class="external-link-new-window"&gt;CalDav4j&lt;/a&gt; als &lt;a title="Soruces" href="http://caldav4j.googlecode.com/svn/trunk/" target="_blank" class="external-link-new-window"&gt;SVN Snapshot&lt;/a&gt; heruntergeladen und musste mal wieder feststellen, wie gut die &lt;a title="Apache Maven"
      href="http://maven.apache.org/" target="_blank" class="external-link-new-window"&gt;Maven&lt;/a&gt;-&lt;a title="Maven best Practices in Netbeans" href="http://wiki.netbeans.org/MavenBestPractices" target="_blank" class="external-link-new-window"&gt;Integration in NetBeans&lt;/a&gt; inzwischen ist.&lt;br /&gt;&lt;br /&gt;Ein schlichtes checkout mit anschließendem Öffnen des Projektes - Build - und alle Dependencies werden sauber geladen. &lt;br /&gt;&lt;br /&gt;Wenn nur das aktuelle Snapshot des
      Google Projektes nur so sauber wäre ;-)&lt;br /&gt;&lt;br /&gt;Die Test Ressourcen sind teilweise &lt;a title="Issue 24" href="http://code.google.com/p/caldav4j/issues/detail?id=24" target="_blank" class="external-link-new-window"&gt;unvollständig&lt;/a&gt;, es &lt;a title="Issue 34" href="http://code.google.com/p/caldav4j/issues/detail?id=34" target="_blank" class="external-link-new-window"&gt;fehlt auch eine Klasse komplett&lt;/a&gt; und einige Testparameter funktionieren schlicht und einfach
      nicht, weil Server und Berechtigungen fehlen. Nun will ich nicht alles an Tests löschen, sondern nur mal schnell ein JAR erzeugen, um das 0.6'er Snapshot ersatzweise für die ältere 0.5'er Version in meine Projekte integrieren. Aber ohne erfolgreichen Test kein JAR, weil das "Build failed" mir einen Strich durch die Rechnung macht.&lt;br /&gt;&lt;br /&gt;Maven hat aber eine Option, zum Deaktivieren der Tests. Und diese lässt sich sehr einfach in dem NetBeans Projekt setzen. Die Projekteigenschaften
      öffnen, in den &lt;a href="http://wiki.netbeans.org/wiki/images/5/52/Actions_MavenBestPractices.png" class="external-link-new-window" title="Actions in den Projekteigenschaften"&gt;Abschnitt Actions&lt;/a&gt; wechseln, "Build project" auswählen und in den "Set Properties" folgende Zeile einfügen: &lt;/p&gt; &lt;pre&gt;maven.test.skip=true&lt;/pre&gt; &lt;p class="bodytext"&gt;Das war es auch schon. Nun wird das JAR erzeugt, die Tests werden ignoriert.&lt;br /&gt;&lt;br /&gt;Beste Grüße,&lt;br
      /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Wed, 24 Feb 2010 09:04:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: PHPDev: NetBeans IDE für PHP - immer mehr eine Liebesgeschichte</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////phpdev_netbeans_ide_fuer_php_immer_mehr_eine_liebesgeschichte/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////phpdev_netbeans_ide_fuer_php_immer_mehr_eine_liebesgeschichte/index.html</link>
      <description>&lt;p class="bodytext"&gt;Besonders ein &lt;a title="Amber Weinberg, PHP Programming with NetBeans" href="http://www.amberweinberg.com/php-programming-with-netbeans/" target="_blank" class="external-link-new-window"&gt;Blogeintrag&lt;/a&gt; zeigt mir in den letzten Tagen, wie sehr &lt;a title="NetBeans PHP Development" href="http://netbeans.org/features/php/" target="_blank" class="external-link-new-window"&gt;NetBeans als PHP IDE&lt;/a&gt; inzwischen geschätzt wird. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Die Kommentare auf &lt;a href="http://www.amberweinberg.com/author/smellyfish/" target="_blank" title="Posts by Nikita Makeyev"&gt;Nikita Makeyev&lt;/a&gt;s Artikel sind überwiegend positiv, was den Einsatz mit NetBeans für PHP betrifft. &lt;/p&gt; &lt;p class="bodytext"&gt;Nikita hebt hervor, wie gut die IDE zu konfigurieren ist.&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;One of the best things about this IDE is its UI.&#160; All
      of the toolbars can be docked, closed or minimized depending on your display preferences.&#160; Minimized toolbars will helpfully spring open when you mouse over them and hide again once you click off of them.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Nicht verwunderlich, wenn das vorherige Tool der Wahl das Programm &lt;a title="TextPad" href="http://www.textpad.com/" target="_blank" class="external-link-new-window"&gt;TextPad&lt;/a&gt; gewesen ist. Aber gerade für PHP Anwender ist die
      Suche nach einer passenden IDE wohl eine Sisyphos Arbeit: &lt;/p&gt; &lt;p class="bodytext"&gt;gollyg:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;I have been using Aptana for about 2 years. Recently they announced that they were dropping development support for their PHP plugin and were going to use pdt instead. The sudden nature of this decision, along with some of the ‘Aptana Cloud’ marketing integration into the interface, left me feeling far less
      love for Aptana. After increasingly regular program freezes I decided to give Netbeans a try.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;&lt;a href="http://www.appropriatesolutions.co.uk" class="url" rel="external nofollow"&gt;Stuart Laverick&lt;/a&gt;:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;I’ve been using Netbeans since about 6.2 after I moved over from Aptana. As I run 64bit Linux as a desktop, I am precluded from using some IDE’s
      [...]&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;&lt;a href="http://www.chruezundquer.ch" class="url" rel="external nofollow"&gt;Christian Zumbrunnen&lt;/a&gt;:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;I made the switch from Aptana and I’m pretty impressed.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Gordon:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;Zend is a great IDE, but it
      is super expensive when you consider Netbeans has more functionality (ever so slightly slower, but unnoticeable on a 4GB Dual Core Windows Vista Laptop), and arguably still better code completion(as you can write custom rules, to personalise the code-completion responds). &lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Die Performance wurde von Nikita als gut bezeichnet mit Abzüge in der B-Note. Die IDE braucht relativ viel Arbeitsspeicher. NetBeans
      ist da aber nicht alleine und macht wohl seinen Job am besten, wenn man sich die anderen Kommentare betrachtet. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="chief27 on Twitter" href="http://www.twitter.com/chief27" target="_blank" class="external-link-new-window"&gt;Colin McCormick&lt;/a&gt;:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;I’ve been using Netbeans as my main IDE for 3/4 years now. I find it a pretty decent IDE. Yes it can be a little
      slow at times, but it’s certainly faster than its main competitor, Eclipse, which is slow regardless of the OS it’s running on. &lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Nacereddine:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;I was using Komodo IDE for my websites even it’s slow as hell, and crashes all the time, [...]&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Den abschließenden
      Worten von Nikita ist nichts hinzuzufügen:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt;Even if you’re pretty happy with your current IDE, give NetBeans a try because as a good developer you should never stop trying out new things and looking for tools that make you better at what you do; and hey, let’s face it, at the incredible price of $0 it’s truly a crime to pass up such a great product that has pretty much everything you will ever
      need.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 24 Feb 2010 07:41:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: kenai.com - nur die Domain verschwindet?</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_nur_die_domain_verschwindet/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_nur_die_domain_verschwindet/index.html</link>
      <description>&lt;p class="bodytext"&gt;(hier ein Update &lt;a href="http://www.sepix.de/blogs/blogrittner/blog/archive/2010/january/29/news_kenaicom_wird_abgeschaltet/index.html" class="external-link-new-window" title="Kenai wird abgeschaltet"&gt;zu meinem letzten Blog-Eintrag&lt;/a&gt; vor meinem Urlaub) &lt;/p&gt; &lt;p class="bodytext"&gt;Das die Informationspolitik nicht ideal sei, gibt das kenai-Team selbst in einer kurzen Mitteilung zu. &lt;/p&gt;&lt;blockquote style="margin-bottom: 0;
      margin-top: 0;"&gt;&lt;p class="bodytext"&gt;In an effort to get information out to the Kenai community quickly, while trying to manage the integration of our two companies, I think we did a poor job at communicating our plans for Kenai.com to you.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Aber was das Team zu melden hat, ist dann doch positiver, als es sich in Vergangenheit las. &lt;/p&gt; &lt;p class="bodytext"&gt;Kenai.com als Domain wird wohl tatsächlich nicht mehr bestehen bleiben.
      Eine Migration nach java.net wird empfohlen. Aber der Grund, warum java.net statt kenai.com genutzt werden soll ist neu:&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt; We are in the process of migrating java.net to the kenai technology. This means that any project currently hosted on kenai.com will be able to continue as you are on java.net. &lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Somit gibt Ted Farrell eine beruhigende Meldung
      aus:&lt;img src="http://www.sepix.de/fileadmin/oraclenb/TedFarrell.jpg" style="float: right; padding-left: 25px;" title="Ted Farrell" height="158" width="150" alt="Ted Farrell" /&gt;&lt;/p&gt;&lt;blockquote style="margin-bottom: 0; margin-top: 0;"&gt;&lt;p class="bodytext"&gt; So in the meantime I suggest that you stay put on kenai.com and let us work through the details and get back to you later this month. &lt;/p&gt;&lt;/blockquote&gt;&lt;p class="bodytext"&gt;Ich bin gespannt was Ende diesen
      Monats für Infos kommen. Vielleicht werden ja die Projekte automatisch nach java.net migriert. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 22 Feb 2010 10:11:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: kenai.com wird abgeschaltet</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_wird_abgeschaltet/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_kenaicom_wird_abgeschaltet/index.html</link>
      <description>&lt;p class="bodytext"&gt;Es scheint im Moment unausweichlich zu sein, dass kenai.com abgeschaltet wird. Damit fällt ein nützlicher Dienst unter den Hammer. Besonders schmerzlich ist das, weil gerade mit NetBeans eine relativ einfache Integration möglich ist (bald war). &lt;/p&gt; &lt;p class="bodytext"&gt;Oracle spricht davon, dass kenai.com intern weiter genutzt werden soll. Nicht verwunderlich. Die Site netbeans.org ist darauf umgestellt worden und keiner will davon wohl wieder weg.
      Auch andere Projekte, beispielsweise odftoolkit.org, basieren auf dem Kenai Projekt. &lt;/p&gt; &lt;p class="bodytext"&gt;Die Überlegung von Oracle war einfach, dass der größere Fokus auf Community basierte Projekte gelegt werden soll. Die Plattform java.net ist eindeutig näher an der Community. Wobei kenai.org eher das Hosting für Inselprojekte und (später) kommerzielle Projekte sein sollte. &lt;/p&gt; &lt;p class="bodytext"&gt;Ob aber in näherer Zukunft java.net tatsächlich auf Kenai basieren soll,
      halte ich im Moment für ausgeschlossen. Diese Umstellung erscheint mir unter aktuellen Gesichtspunkten einfach zu aufwändig. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Nun stellt sich die Frage nach Alternativen. &lt;/p&gt; &lt;p class="bodytext"&gt;Da gäbe es natürlich &lt;a title="java.net" href="http://www.java.net/" target="_blank" class="external-link-new-window"&gt;java.net&lt;/a&gt; selbst. Mir erschien aber bisher die Struktur zu unflexibel, ist aber nur
      eine persönliche Präferenz. Weiterhin gäbe es noch &lt;a title="Google Code" href="http://code.google.com/intl/de/" target="_blank" class="external-link-new-window"&gt;Google Code&lt;/a&gt; - der Dienst bietet auch Mercurial als Versioning System. &lt;/p&gt; &lt;p class="bodytext"&gt;Viele Projektbesitzer liebäugeln mit &lt;a title="Linkification: http://github.com/" href="http://github.com/" target="_blank" class="linkification-ext"&gt;http://github.com/&lt;/a&gt;. Die git-Integration in
      NetBeans&#160;wäre tatsächlich möglich. Es gibt ein &lt;a title="NetBeans git plugin" href="http://git.wiki.kernel.org/index.php/NetBeansPlugin" target="_blank" class="external-link-new-window"&gt;Plugin&lt;/a&gt; dafür.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Auch sieht &lt;a title="JavaForge" href="http://javaforge.com/" target="_blank" class="external-link-new-window"&gt;JavaForge&lt;/a&gt; gar nicht so schlecht aus (ebenfalls Mercurial). Der Dienst ist in einer Cloud implementiert und bietet
      als Highlight ein &lt;a title="Application Lifecycle Management for NetBeans" href="http://www.javaforge.com/wiki/41101" target="_blank" class="external-link-new-window"&gt;ALM Plugin&lt;/a&gt; für NetBeans an. Ich konnte das Plugin aber leider unter 6.8 noch nicht testen. &lt;/p&gt; &lt;p class="bodytext"&gt;Einen Vergleich weiterer Dienste &lt;a title="Opens external link in new window" href="http://www.ibiblio.org/fosphost/exhost.htm" target="_blank" class="external-link-new-window"&gt;findet sich
      hier&lt;/a&gt; und auch auf &lt;a title="Opens external link in new window" href="http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities" target="_blank" class="external-link-new-window"&gt;Wikipedia&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Eine Empfehlung kann ich kaum geben. Ich werde zunächst javaforge ausprobieren (entgegen des Namens ist es nicht ausschließlich für Java Projekte gedacht). Ich finde es nur sehr ärgerlich, dass es z.Z. keinen Zeitplan gibt, wann
      kenai.com verschwindet, bzw. wie lange man noch auf die Projekte (zumindest read only) zugreifen kann. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 29 Jan 2010 10:14:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: News: Oracle, Sun, Java Developer Tools Strategy und NetBeans</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////news_oracle_sun_java_developer_tools_strategy_und_netbeans/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////news_oracle_sun_java_developer_tools_strategy_und_netbeans/index.html</link>
      <description>&lt;p class="bodytext"&gt;Nun ist es raus, in den nächsten 100 Tagen wird Oracle die Strategie mit den Java-Tools neu aufbauen. Allerdings gibt es jetzt schon eine Richtung wohin es gehen wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Hier ein paar Slides und Fotos aus einem &lt;a title="Oracle NetBeans Java Strategy Video" href="http://oracle.com.edgesuite.net/ivt/4000/8104/9236/12627/lobby_external_flash_clean_480x360/default.htm" target="_blank"
      class="external-link-new-window"&gt;Podcast&lt;/a&gt; von Ted Farell (Chief Architect of Oracle Tools and Middleware), die die Strategie von Oracle verdeutlichen sollen. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_0_TedFarrel.png" alt="" height="537" width="614" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Ted Farrel spricht von einem Oracle Stack. Java Development aus der Midleware ist ist ein primärer Bereich
      worüber er spricht. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_1_Oracle_Stack.png" alt="" height="505" width="614" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_2_Middleware_Stack.png" alt="" height="500" width="614" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Besonders spannend ist, wie Oracle mit den drei großen IDEs umgehen will. &lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_3_Strategy.png" alt="" height="500" width="616" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Ted Farell spricht im Video eindeutig darüber, dass die NetBeans IDE die primäre Plattform für Java Development wird. Darunter fällt JavaME, JavaSE, JavaEE und auch JavaFX sowie alle aktuellen Scripting Sprachen auf der Java VM. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/oraclenb/_5_NetBeans_IDE_Strategy.png" alt="" height="501" width="612" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_6_NetBeans_IDE_Strategy-2.png" alt="" height="500" width="614" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Eclipse wird weiterhin von Oracle als Partner und Mitglied unterstützt. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Auch JDeveloper behält seinen Platz im Oracle Portfolio. JDeveloper wird in Zukunft (und im Prinzip wie bisher) die komplette Middleware der Oracle Tools übernehmen.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Die Unterscheidung zwischen NetBeans und JDeveloper divergiert dann in den beiden Attributen: Lightweight Java Development für NetBeans und Heavyweight Java Development für JDeveloper.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Nichts desto trotz werden alle drei IDEs
      gleichberechtigt von Oracle als IDE angeboten und unterstützt. Besonders zwischen NetBeans und Eclipse wird es wohl weiterhin Überschneidungen geben. Aber das ist so gewollt, weil es nicht zu übersehen ist, dass die Entwickler weltweit doch in Zukunft zwei "Lager" bleiben werden. Ich denke das ist auch ganz gut so, denn nur wo Konkurrenz existiert bleibt die Entwicklung nicht stehen. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_4_JavaTools.png" alt=""
      height="500" width="616" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Die CDDL für die NetBeans IDE (und Platform) wird in zukünftigen Versionen wohl weiter existieren. Sie wird mit mit einer flexibleren Policy von Oracle erweitert. Wie erwartet bleibt GPLv2 mit classpath exception. Das bedeutet eine Sicherheit in der Entwicklung von Rich Client Platform Anwendungen auf freier und kommerzieller Basis. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img
      src="http://www.sepix.de/fileadmin/oraclenb/_7_Lizensing.png" alt="" height="502" width="615" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="kenai.com" href="http://kenai.com" target="_blank" class="external-link-new-window"&gt;kenai.com&lt;/a&gt; wird als Hosting Project wohl nicht mehr bestehen bleiben. Oracle will kenai.com intern weiterverwenden. Das wäre ein herber Verlust für die NetBeans Integration. IMHO ein Punkt, wo die Community unbedingt
      intervenieren sollte, damit Oracle diesen Dienst bestehen lässt. &lt;/p&gt; &lt;p class="bodytext"&gt;Ein wirklich schöne Neuigkeit ist, dass die JavaONE bleibt und sogar auf weitere Länder ausgeweitet werden soll. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/oraclenb/_8_JavaONE.png" alt="" height="501" width="612" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Ich vermisse nur ein Land in Europa. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p
      class="bodytext"&gt;Ich denke damit haben wir insgesamt sehr gute Neuigkeiten von Oracle erhalten. Nach den sehr stillen Tagen ohne das kleinste Commit zur NetBeans IDE und Platform ist das eine fantastische Aussage. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Thu, 28 Jan 2010 05:20:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Silent Update/Install mit NBM Dateien</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_silent_updateinstall_mit_nbm_dateien/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_silent_updateinstall_mit_nbm_dateien/index.html</link>
      <description>&lt;p class="bodytext"&gt;RCP Anwendungen im Unternehmenseinsatz benötigen meistens eine Updatepolitik, die mit dem Standard Autoupdatecenter nicht optimal abgebildet wird. Über das, von der NetBeans Platform gebotene, AutoUpdate Center wird vom Anwendern einiges an Konfiguration und manuellen Eingriffen erwartet, was häufig nicht gewünscht ist.&lt;br /&gt;&lt;br /&gt;Die zwei wichtigsten Gründe sind, dass der Anwender zum einem mit der (teilweise fehleranfälligen) Konfiguration der
      Updates schlicht überfordert ist und zum anderen, dass ein Updaterollout der RCP Anwendung durch Anwender nicht verhindert werden soll.&lt;br /&gt;&lt;br /&gt;&lt;a title="Opens external link in new window" href="http://wiki.netbeans.org/FaqSilentInstallationNBPlugin" target="_blank" class="external-link-new-window"&gt;Bisher&lt;/a&gt; wurde empfohlen, dass man stille (silent) Updates über das Kopieren von Dateien in Cluster-Ordner realisieren soll. Der wichtigste Nachteil ist, dass man beim Kopieren
      exakt wissen muss, in welchem Cluster-Ordner die Installationsdateien kopiert werden sollen. &lt;br /&gt;&lt;br /&gt;Der zweite deutlich Nachteil ist, dass man danach den Updater explizit per Befehl aufrufen muss. Das ist für platformunabhängige Anwendungen schon fast ein Totschlagargument gegen diese Vorgehensweise. &lt;br /&gt;&lt;br /&gt;&lt;a title="Opens external link in new window" href="http://blogs.sun.com/rechtacek/entry/how_to_update_netbeans_platform" target="_blank"
      class="external-link-new-window"&gt;Jiri Rechtacek hat in seinem Blog&lt;/a&gt; aufgezeigt wie man mit der Autoupdate Services API im Hintergrund Updates aller Bibliotheken durchführt, so dass bestehende (im Plugin-Dialog eingetragene Updatecenter) automatisch komplett aktualisiert werden. Ich habe das bisher so in meinen Anwendungen ähnlich angewendet. Allerdings habe ich teilweise Infrastrukturen, wo ich nicht mal Updatecenter als XML-Dateien auf Servern zur Verfügung stellen kann. Teilweise werden
      die NBM-Dateien sogar "on-the-fly" erzeugt, um diese direkt zu installieren. &lt;br /&gt;&lt;br /&gt;Aber sogar für manuell heruntergeladene NBM-Dateien bietet die Update Autoupdate Services API eine Möglichkeit der Installation. Es ist nämlich nicht zwingend notwendig ein Updatecenter zu haben, um NBM-Dateien zu installieren. Der Plugin Dialog zeigt es ja schon selbst mit der &lt;a title="Opens external link in new window" href="http://blogs.sun.com/NetBeansSupport/entry/how_to_download_and_install"
      target="_blank" class="external-link-new-window"&gt;Registerzunge für Downloads&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Zunächst benötigt man eine Modul mit einer &lt;a title="Opens external link in new window" href="http://bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/ModuleInstall.html" target="_blank" class="external-link-new-window"&gt;ModuleInstall&lt;/a&gt; Klasse die am besten über den Assistenten erzeugt wird. Man überschreibt die restored() Methode und sucht sich die
      passende (bereits) heruntergeladene NBM-Datei. Hier im Beispiel soll das in einer Methode namens getMyDownloadedNBMFile() realisiert werden: &lt;/p&gt; &lt;pre&gt; @Override&lt;br /&gt; public void restored() {&lt;br /&gt; // schedule refresh providers&lt;br /&gt; // install update checker when UI is ready (main window shown)&lt;br /&gt; WindowManager.getDefault().invokeWhenUIReady(new Runnable() {&lt;br /&gt; public void run() {&lt;br /&gt; File file = getMyDownloadedNBMFile();&lt;br /&gt;
      RequestProcessor.getDefault().post(new SilentNBMInstaller(file), 10000); &lt;br /&gt; }&lt;br /&gt; });&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p class="bodytext"&gt;Der Aufruf der Hilfsklasse SilentNBMInstaller erfolgt erst, wenn die Anwendung einigermaßen hochgefahren ist (invokeWhenUIReady). Der SilentNBMInstaller ist eine schlichte Java Klasse die massiven Gebrauch von der Autoupdate Services API macht. Im Gegensatz zu dem Beispiel von Jiri Rechtacek verwende ich die Progress API
      gar nicht, um den Fortschritt der Installation zu visualisieren. Auch bekommt der Anwender keine Info die Anwendung neu zu starten. Das kann aber individuell nachgerüstet werden. &lt;/p&gt; &lt;pre&gt;public class SilentNBMInstaller implements Runnable {&lt;br /&gt; &lt;br /&gt; private final File nbmFile;&lt;br /&gt;&lt;br /&gt; public SilentNBMInstaller(File nbmFile) {&lt;br /&gt; this.nbmFile = nbmFile;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt; &lt;p class="bodytext"&gt;Die run-Methode muss erstmal
      implementiert werden, außerdem sollte man für das Update (oder die Neuinstallation) aus dem EventDispatchThread heraus sein. Die Methode timeToCheck() liefert true, wenn das Update/die Installation durchgeführt werden soll. Wie das gemacht wird, kann man selbst implementieren. Auch könnte die Prüfung eher im ModulInstall durchgeführt werden. &lt;/p&gt; &lt;pre&gt; public void run() {&lt;br /&gt; if (SwingUtilities.isEventDispatchThread()) {&lt;br /&gt; RequestProcessor.getDefault().post(this);&lt;br
      /&gt; return;&lt;br /&gt; }&lt;br /&gt; if (timeToCheck()) {&lt;br /&gt; runUpdate();&lt;br /&gt; }&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Das Kernstück ist nun die runUpdate()-Methode. Außerdem unterscheidet sich meine Implementation von Jiri Rechtaceks Beispiel bei dem Ermitteln des Updates. In meinem Fall erzeuge ich einen temporären UpdateUnitProvider zu einer (oder auch mehreren) NBM Datei(en). Dafür nutzt man die Klasse UpdateUnitProviderFactory. &lt;/p&gt; &lt;pre&gt; private void
      runUpdate() {&lt;br /&gt; try {&lt;br /&gt; // Step (1) &lt;br /&gt; boolean isInstalled = false;&lt;br /&gt; // A temporary installer for downloaded nbm files:&lt;br /&gt; UpdateUnitProvider uup = UpdateUnitProviderFactory.getDefault().create("Installer for " + nbmFile.getName(), nbmFile);&lt;br /&gt; Collection&amp;lt;UpdateElement&gt; elements4update = new HashSet&amp;lt;UpdateElement&gt;();&lt;br /&gt; List&amp;lt;UpdateUnit&gt; updateUnits = uup.getUpdateUnits();&lt;br /&gt; for (UpdateUnit unit
      : updateUnits) {&lt;br /&gt; isInstalled = unit.getInstalled() != null; // We need this flag for different OperationContainer&lt;br /&gt; List&amp;lt;UpdateElement&gt; updates = unit.getAvailableUpdates();&lt;br /&gt; if (!updates.isEmpty()) { // has updates&lt;br /&gt; elements4update.add(updates.get(0)); // add plugin with highest version&lt;br /&gt; }&lt;br /&gt; } &lt;br /&gt; // ... continue with (2)&lt;/pre&gt; &lt;p class="bodytext"&gt;Wie man oben sieht, wird aus dem UpdateUnitProvider die
      Collection der UpdateUnits gezogen. Außerdem merke ich mir, ob die NBM-Datei neu installiert werden soll, oder ein Update erfährt. Das ist notwendig, weil da für unterschiedliche OperationContainer erzeugt werden müssen. Das habe ich in eine extra Methode ausgelagert: &lt;/p&gt; &lt;pre&gt; // Step (2)&lt;br /&gt; if (elements4update.size() &gt; 0) {&lt;br /&gt; OperationContainer&amp;lt;InstallSupport&gt; operation = getOperationContainer(elements4update, !isInstalled);&lt;br /&gt; // ... continue
      with (3)&lt;/pre&gt; &lt;p class="bodytext"&gt;Die Methode getOperationContainer liefert mir den passenden Container, der die folgende Installation oder das Update durchführen soll.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;pre&gt; private OperationContainer&amp;lt;InstallSupport&gt; getOperationContainer (Collection&amp;lt;UpdateElement&gt; elements4update, boolean install) {&lt;br /&gt; OperationContainer&amp;lt;InstallSupport&gt; container = install ? OperationContainer.createForInstall() :
      OperationContainer.createForUpdate ();&lt;br /&gt; for (UpdateElement element : elements4update) {&lt;br /&gt; if (container.canBeAdded (element.getUpdateUnit(), element)) {&lt;br /&gt; OperationInfo&amp;lt;InstallSupport&gt; operationInfo = container.add (element);&lt;br /&gt; if (operationInfo == null) {&lt;br /&gt; continue;&lt;br /&gt; }&lt;br /&gt; container.add (operationInfo.getRequiredElements ());&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; return container;&lt;br /&gt; }&lt;/pre&gt; &lt;p
      class="bodytext"&gt;Im dritten Schritt (der runUpdate-Methode) kann ich den OperationContainer (vom Typ InstallSupport) nun endlich für die Installation oder das Update nutzen: &lt;/p&gt; &lt;pre&gt; // Step (3)&lt;br /&gt; InstallSupport install = operation.getSupport();&lt;br /&gt;&lt;br /&gt; Validator validator = install.doDownload(null, false); // Yes we need this call (but the file is already downloaded)&lt;br /&gt; Installer installer = install.doValidate(validator, null); // Validating&lt;br
      /&gt; Restarter restarter = install.doInstall(installer, null); // Installing&lt;br /&gt;&lt;br /&gt; // ... continue with (4)&lt;/pre&gt; &lt;p class="bodytext"&gt;Auch wenn man das NBM-File schon lokal auf der Festplatte haben wird, müssen zwingend die drei Aufrufe doDownload/doValidate/doInstall durchgeführt werden. Nur so bekommt man die Objekte Validator/Installer/Restarter, um die Kette auszuführen. Die null-Parameter sind die von mir vernachlässigten ProgressHandle Objekte für die Darstellung
      des Verlaufs. Die Installation ist aber meistens so schnell, dass das UI in der Statuszeile gar nicht reagiert. &lt;br /&gt;&lt;br /&gt;Der Installationsvorgang ist mit den obigen Schritten "vorbereitet". Wir müssen nur dem InstallSupport sagen, wann der Abschluss erfolgen soll. &lt;/p&gt; &lt;pre&gt; // Step (4)&lt;br /&gt;&lt;br /&gt; // It's a silent updated library. For the current run it's unnessesary to ask the user for a restart.&lt;br /&gt; install.doRestartLater(restarter);&lt;br /&gt; //
      ... continue with (5)&lt;/pre&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Für den Abschluss der Methode runUpdate() noch dieses hier:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;pre&gt; // Step (5)&lt;br /&gt; }&lt;br /&gt; } catch (OperationException ex) {&lt;br /&gt; Exceptions.printStackTrace(ex);&lt;br /&gt; } &lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Damit wäre die Klasse SilentNBMInstaller vollständig. Jiri Rechtacek empfiehlt noch, die Lizenzen der Updates abzufragen und (ggf.) dem
      Anwender vorzulegen. Das ist spannend bei 3rd-party Bibliotheken und Plugins. Für Silent Updates von Unternehmensanwendungen ist das eher hinderlich und wird bei mir auch damit nicht abgefragt. &lt;br /&gt;&lt;br /&gt;In Jiris Blog findet man dazu mehr, wie man die Lizenzen ausliest.&lt;br /&gt;&lt;br /&gt;SilentNBMInstaller installiert auch nur einzelne NMB-Dateien. Das ist aber keine notwendige Einschränkung, weil der UpdateUnitProviderFactory.create Methode mehr als eine Datei für die Installation
      übergeben werden darf. Allerdings erhöht sich dann der Komplexitätsgrad, wenn einige NBM Dateien neu installiert werden und andere nur ein Update benötigen (verschiedene OperationContainer!). Für das einfache Beispiel habe ich es damit erstmal bei einer Unterscheidung einer NBM-Datei belassen. &lt;br /&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 12 Jan 2010 09:35:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: Essential NetBeans Platform</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_essential_netbeans_platform/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_essential_netbeans_platform/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Auf dzone gibt es eine brandneue Ref-Card zur NetBeans Platform. Die Essential NetBeans Platform&lt;a title="Opens external link in new window" href="http://refcardz.dzone.com/refcardz/essential-netbeans-platform" target="_blank" class="external-link-new-window"&gt; Refcard&lt;/a&gt; zeigt auf sechs Seiten die wichtigsten Referenzen der NetBeans Platform.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a
      title="Opens external link in new window" href="http://refcardz.dzone.com/refcardz/essential-netbeans-platform" target="_blank" class="external-link-new-window"&gt;&lt;img src="http://www.sepix.de/fileadmin/NBPlatformRefcard.PNG" alt="" height="519" width="403" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Also ausdrucken und an die Wand gepinnt! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 29 Dec 2009 19:51:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: NetBeans 6.8 und Embedded Webbrowser</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_netbeans_68_und_embedded_webbrowser/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_netbeans_68_und_embedded_webbrowser/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Irgendwie hatte ich in Erinnerung, dass das Plugin für den nativen Webbrowser als Embedded Komponente nicht unter 64Bit OS funktioniert. Nun ja. Mit 6.8 wollte ich es einfach mal selber testen und sogar Win7 deutsch, 64Bit ausprobieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Plugin findet sich ganz oben in der Liste des AutoUpdate Center. Der Download ist schnell, reicht dann aber noch nicht. Mit dem ersten Aufruf des
      Webbrowser (zu finden mit Menu View/Ansicht) müssen die nativen Bibliotheken nachgeladen werden.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Bis zum Schluss glaubte ich nicht an einen Erfolg. Aber wie man sieht, es geht doch :-D &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/NB68Webbrowser.PNG" alt="" height="553" width="600" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Der Embedded Browser (auf Basis des XULRunner für den Mozilla Browser) verhält sich dann so, wie
      gewohnt. Nur nicht als extra Browserfenster, sondern direkt in NetBeans integriert. Also auch für Kenai.com Projekte, JavaDoc usw.. &lt;/p&gt; &lt;p class="bodytext"&gt;Nur der Mauszeiger ist nicht immer passend und flackert. Ansonsten ist mir nichts Negatives aufgefallen. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Sat, 12 Dec 2009 18:38:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: Interaktiver IDE-Vergleich: Teil 1 - NetBeans</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_interaktiver_ide_vergleich_teil_1_netbeans/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_interaktiver_ide_vergleich_teil_1_netbeans/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Es geht nun los. Der interaktive IDE Vergleich hat gleich mit meinen Antworten auf JAXenter begonnen. Jeder IDE Nutzer und interessierte Leser darf die Fragen und Antworten gerne kommentieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Alle Kommentare werden gesammelt und im Finale zusammengefasst. Hier geht es nicht um die 100% objektive Empfehlung und vielleicht bleibt jeder Anwender da wo er heute mit seiner IDE ist. Aber
      ich finde es sehr wichtig sich im IDE "Geschäft" nicht nur als Konkurrenz zu sehen, sondern auch die IDE User der Mitbewerber zu verstehen. Bestimmt lässt sich viel über die Motivation der Community lernen. Aber dafür brauchen wir nun Feedback: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="JAXenter: IDE Vergleich - Kommentare" href="http://it-republik.de/jaxenter/artikel/Interaktiver-IDE-Vergleich-Teil-1---NetBeans-2740.html#last_comment" target="_blank"
      class="external-link-new-window"&gt;Kommentarbereich zum interaktiven IDE Vergleich&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Danke für Eure Hilfe! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 08 Dec 2009 13:33:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: IDEDev: IDE Vergleich und Voting</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_ide_vergleich_und_voting/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////idedev_ide_vergleich_und_voting/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Votings zu einer Lieblingsanwendung sind selten Objektiv und belastbar, besonderns wenn es ein Onlinevoting ist. &lt;/p&gt; &lt;p class="bodytext"&gt;Aber in diesem Fall ist es nicht so wichtig. JAXenter versucht mal auf eine andere Art und Weise heranzugehen, wie man die aktuellen IDEs vergleichen kann. Es wurden drei Fragen gestellt, die man über die Kommentar-Funktion der JAXenter Seite beantworten kann.&#160;
      &lt;/p&gt; &lt;p class="bodytext"&gt;Wir werden darauf eingehen und bestmögliche Antworten finden. Daniel Megert, Roman Strobl und ich haben die Antworten schon hinterlegt die in Zusammenfassung mit allen anderen Antworten der Community in ein paar Tagen veröffentlicht werden sollen. &lt;/p&gt; &lt;p class="bodytext"&gt;So lässt sich vielleicht mal die Motivation erkennen, warum&#160;sich andere für eine bestimmte IDE entschieden haben.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a title="Opens
      external link in new window" href="http://it-republik.de/jaxenter/news/Interaktiver-IDE-Vergleich-Eclipse-vs.-NetBeans-vs.-IntelliJ-052829.html" target="_blank" class="external-link-new-window"&gt;Hier geht es zu dem Einstiegsartikel auf JAXenter&lt;/a&gt;. Es würde mich freuen, wenn viele mitmachen würden.&#160;Denn auch für mich ist es spannend zu wissen, was die persönliche Entscheidung ausmacht eine bestimmte IDE einzusetzen. &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Beste Grüße,&lt;br
      /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Mon, 07 Dec 2009 15:01:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Trends: Statistiken auf Suchanfragen</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////trends_statistiken_auf_suchanfragen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////trends_statistiken_auf_suchanfragen/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Einige Zeit gab es weniger Blog-Posts von mir, aber das hat gute Gründe: Ich hab viel zu tun, was ja auch was Positives ist. &lt;/p&gt; &lt;p class="bodytext"&gt;Nach dem ich aber &lt;a title="Charles Ditzel" href="http://cld.blog-city.com/oracles_missed_opportunity.htm" target="_blank" class="external-link-new-window"&gt;Charles Ditzel mit seinem letzten Blog&lt;/a&gt; gelesen hatte, musste ich doch selber mal wieder
      was schreiben. Statistiken sind eine schöne Sache etwas zu untermauern, von dem man selbst überzeugt ist. Und gerade die Google Trends Statistiken helfen einem sehr dabei. &lt;/p&gt; &lt;p class="bodytext"&gt;Ich muss Charles Ditzel sehr zustimmen, dass Oracle die NetBeans IDE und Platform erheblich unterschätzt. Allerdings geht es auch in einem solch kommerziell orientierten Unternehmen nicht nur ausschließlich um ein Wesen als Gesamtes, das Fehler macht, sondern auch um eine gehörige Portion von
      Lobbyismus - und die geht wohl gerade von der JDeveloper Entwicklingsabteilung aus. Aber egal, das soll jetzt nicht mein Thema sein. &lt;/p&gt; &lt;p class="bodytext"&gt;Charles hatte Eclipse aus der Google Trends Abfrage raus genommen, weil das Ergebnis (wegen der angeblichen Marktdominanz) von Eclipse das Ergebnis schwerer zu lesen macht. Aber das ist m.E. eine falsche Einschätzung, denn der Suchbegriff Eclipse bei Google Trends gibt keinesfalls das Ergebnis der Suchmasse zur Eclipse
      Entwicklungsumgebung wieder. Das sieht man eindeutig an den Trend-Peeks zu den letzten Naturschauspielen: Sonnenfinsternisse. &lt;/p&gt; &lt;p class="bodytext"&gt;Also habe ich mal mir genehme Suchbegriffe genommen. &lt;a title="NetBeans IDE vs. Eclipse IDE" href="http://www.google.de/trends?q=netbeans+IDE%2C+eclipse+IDE&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0" target="_blank" class="external-link-new-window"&gt;NetBeans IDE vs. Eclipse IDE&lt;/a&gt;. Und schon verändert sich
      die Welt der Wahrnehmung. Eclipse IDE nimmt mehr und mehr ab. NetBeans war bis 2007 stabil und schoss dann Ende 2007 sogar über die Eclipse IDE Suchanfragen. Beide IDEs nahmen dann aber auch weiter (und wieder) ab, bis NetBeans Anfang 2009 plötzlich wieder einbrach (womit wir wieder beim Oracle/IBM-Übernahme Thema wären). Seit 2009 halten sich beide IDEs im Trend stabil, weder NetBeans IDE noch Eclipse IDE verlieren oder gewinnen. &lt;/p&gt; &lt;p class="bodytext"&gt;Dabei ist der Druck bei NetBeans
      IDE eindeutig: die Übernahmegerüchte durch IBM und die tatsächliche Übernahme von Oracle (und die nun furchtbare Informationspolitik). &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/NBvsEc.jpg" alt="" height="363" width="734" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Warum schwächelt aber Eclipse? Ist die Stabilisierung von Eclipse (nach dem langen Fall) nur eine Auswirkung des "schwachen" NetBeans? (Ich spreche nicht von den Features, sondern von der Wahrnehmung in
      der Community, denn nur das zeigt Google Trends auf). Würde der Trend Eclipse IDE weiter sinken, wenn Oracle sich besser zu NetBeans positionieren würde? &lt;/p&gt; &lt;p class="bodytext"&gt;Ich kann das kaum beantworten, subjektiv habe ich mir meine Meinung gebildet, untermauern könnte ich es mit Google Trends Abfragen, die meiner Meinungsbildung am besten passen. Aber ganz neutral: NetBeans IDE vs. Eclipse IDE ist schon ein spannender Blick. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br
      /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 09 Nov 2009 10:23:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: LowLevelDev: Code Signierung mit echten Root CAs, wen nehmen?</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////lowleveldev_code_signierung_mit_echten_root_cas_wen_nehmen/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////lowleveldev_code_signierung_mit_echten_root_cas_wen_nehmen/index.html</link>
      <description>&lt;p class="bodytext"&gt;Es stellt sich für mich immer wieder die Frage, ob die JAR-Dateien unserer Firmen-Projekte signiert werden müssen. Für die meisten Entwicklungen war es nicht notwendig. Nur für spezielle Java ME Projekte brauchte ich Signaturen die auf Root-Zertifikate basieren, die von der VM ohne Klage angenommen werden. &lt;/p&gt; &lt;p class="bodytext"&gt;Gerade im ME Bereich ist es recht schwer passende Root CA's zu finden, die auf möglichst vielen Mobiles funktionieren.
      Und einige Endgeräte Hersteller brauen da sowieso ihre eigenen Süppchen. &lt;/p&gt; &lt;p class="bodytext"&gt;Im Java SE/EE Bereich gibt es zumindest einen festen Satz von vorinstallierten Root-CA's die man nicht mehr importieren muss. Das manuelle Importieren kann schon eine Hürde für den Endanwender einer Software sein, die dieser nicht bereit ist zu überspringen. &lt;/p&gt; &lt;p class="bodytext"&gt;Aber wie lautet nun die Liste? Es gibt da tatsächlich nichts öffentliches. Trotzdem kann man diese
      Liste mit einem installierten JDK schnell ermitteln. &lt;/p&gt; &lt;p class="bodytext"&gt;Es wird das keytool benötigt, es muss bekannt sein, wo sich die Zertifikate der Root-CA's befinden und es wird das Kennwort für den Keystore gebraucht. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Das keytool findet sich im Ordner "bin" des installierten JDK&lt;/li&gt;&lt;li&gt;Die Datei "cacerts" findet sich im JRE Ordner: "lib/security"&lt;/li&gt;&lt;li&gt;und das Kennwort? Sun verrät es auf seiner Homepage:
      changeit&lt;/li&gt;&lt;/ol&gt;&lt;p class="bodytext"&gt;Nein das ist kein Witz, es funktioniert ;-) &lt;/p&gt; &lt;p class="bodytext"&gt;Also in den "bin"-Ordner wechseln und (z.B. für Windows) folgenden Befehl eingeben: &lt;/p&gt; &lt;pre&gt;keytool -list -storepass changeit -keystore {...}\jre\lib\security\cacerts &lt;/pre&gt; &lt;p class="bodytext"&gt;Statt {...} gibt man natürlich den Pfad zum JRE an. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Ergebnis ist eine Liste mit Aliasnamen der Root-CAs,
      Datum der Ausstellung, Typ und MD5-Hash. &lt;/p&gt; &lt;p class="bodytext"&gt;Meine Java Runtime in Version 1.6_14 enthält 63 Aliasnamen mit zugehörigen Zertifikaten. Mehrere Zertifikate wurden allerdings teilweise von einer Stelle ausgestellt. Z.B. Verisign hat da mehrere Root-Zertifikate hinterlegt. &lt;/p&gt; &lt;p class="bodytext"&gt;Mit dem -v Parameter wird die Ausgabe erheblich geschwätziger. Die ca. 80kB große Ausgabe informiert dann genauer über die Aussteller und Eigner der Zertifikate.
      &lt;/p&gt; &lt;p class="bodytext"&gt;Mit dieser (doch sehr umfangreichen) Liste kann man sich übrigens gut auf die Suche machen, um einen Root CA mit passenden Konditionen zu finden. Außerdem läuft man nicht in Gefahr, dass der Anwender (trotz Signatur) genötigt wird ein Root-Zertifikat zu importieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Wed, 23 Sep 2009 12:56:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Training: NetBeans Certified Platform Training - Noch 3 Tage Early Bird Anmeldung</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_certified_platform_training_noch_3_tage_early_bird_anmeldung/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_certified_platform_training_noch_3_tage_early_bird_anmeldung/index.html</link>
      <description>&lt;p class="bodytext"&gt;Während der Göttinger Source Talk Tage wird vom 29.-30. September 2009 ein NetBeans Platform Certified Training am Mathematischen Institut angeboten. &lt;/p&gt; &lt;p class="bodytext"&gt;Wer noch den Early Bird Rabatt für das NetBeans Platform Certified Training in Göttingen abschnappen möchte, sollte sich umgehend (und spätestens bis Freitag, 4. September) dazu verbindlich anmelden.&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;Die Plätze schmelzen langsam
      dahin!&#160; &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/diplom.jpg" alt="" height="138" width="200" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Weitere Infos zum Kurs &lt;a href="http://www.sepix.de/blogs/blogrittner/blog/archive/2009/august/28/training_netbeans_certified_training_anmeldung_jetzt/index.html" class="external-link-new-window" title="Infos"&gt;finden sich hier&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Für Firmenmitglieder gilt eine
      Teilnahmegebühr von 699,-- Euro. Für Frühbucher gibt es einen Early Bird Discount bis zum 4. September 2009, dann kostet die Teilnahme nur 599,-- Euro. Studenten und Mitarbeiter von Non-Profit-Organisationen dürfen kostenlos teilnehmen! &lt;/p&gt; &lt;p class="align-left"&gt;Hier geht es zur verbindlichen Teilnameanmeldung:&lt;/p&gt; &lt;p class="align-center"&gt;&lt;a title="Anmelden. Jetzt!" href="http://www.uni-math.gwdg.de/st-anmelden/" target="_blank"
      class="external-link-new-window"&gt;Anmeldeseite der Source Talk Tage 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir benötigen die Anmeldedaten (auch von Studenten) so früh wie möglich, damit auch die Zertifikate vorbereitet werden können.&#160;&lt;/p&gt; &lt;p class="align-center"&gt;Beste Grüße,&lt;br /&gt;&#160; Aljoscha Rittner&lt;/p&gt;</description>
      <pubDate>Wed, 02 Sep 2009 07:06:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Plugin: Tutorial Builder Bug Fix Update</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_tutorial_builder_bug_fix_update/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_tutorial_builder_bug_fix_update/index.html</link>
      <description>&lt;p class="bodytext"&gt;Der Tutorial Builder hat ein kleines Update erhalten.&#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sortieren der Galeriebilder funktioniert nun mit passender Selektion&lt;/li&gt;&lt;li&gt;Tastaturkürzel zum Sortieren sind nun [Alt-Shift-Pfeil auf] und [Alt-Shift-Pfeil ab]&lt;/li&gt;&lt;li&gt;Unter Linux/Unix-Systemen wurde der Screen Shot zweimal ausgeführt. Das müsste nun korrigiert sein. Bitte mal testen.&lt;/li&gt;&lt;li&gt;Bei Macs wurden die Sondertasten in der
      Optionsauswahl als Icons dargestellt. Allerdings musste ich feststellen, dass die Symbole schlecht zu lesen sind und teilweise auf MacBooks gar nicht existieren... Für Macs werden nun Texte angezeigt&lt;/li&gt;&lt;li&gt;Meta-Taste im Optionsdialog ist für Linux/Win ausgeblendet&lt;/li&gt;&lt;li&gt;Es gibt einen neuen Speicher-Provider für die Screen Shots. Man kann nun auch JPEG speichern. Bei Bildern mit Transparenz kann man im Speicherdialog die Hintergrundfarbe festlegen (JPEG unterstützt ja keine
      Transparenz)&lt;/li&gt;&lt;li&gt;Der Toolbar Button für die Bereichsanalyse ist in das Vorschaufenster gewandert (wegen kompletter Umstellung der Programmierung)&lt;/li&gt;&lt;li&gt;Im Bereichsanalyse-Modus kann man nun per Strg+Mausklick mehrere Bereiche direkt in der Vorschau zusammenfassen. Das ging auch schon im Inspektor.&#160;&lt;/li&gt;&lt;li&gt;Die Mehrfachauswahl von Bereichen wird nun ordentlich im Vorschaufenster angezeigt.&lt;/li&gt;&lt;li&gt;Im Optionsdialog wurden für einige Werkzeuge
      das Optionspanel mehrfach angezeigt. Korrigiert.&lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt;Außerdem gibt es ein paar Verbesserungen und Refactorings im Quelltext, die aber so noch nicht sichtbar sind. Performance-Verbesserungen sind auch ein paar rein gekommen. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Update ist wie immer im UpdateCenter erreichbar. Oder per Download: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;a href="http://www.sepix.de/fileadmin/tutorialbuilder/org-sepix-tutorialbuilder.nbm"
      class="download" title="Initiates file download"&gt;Download-Link&lt;/a&gt;. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Fri, 28 Aug 2009 12:36:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Training: NetBeans Certified Training. Anmeldung JETZT!</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_certified_training_anmeldung_jetzt/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////training_netbeans_certified_training_anmeldung_jetzt/index.html</link>
      <description>&lt;p class="bodytext"&gt;Während der &lt;a title="Source Talk Tage 2009" href="http://www.sourcetalk.de/2009/" target="_blank" class="external-link-new-window"&gt;Göttinger Source Talk Tage&lt;/a&gt; wird vom 29.-30. September 2009 ein NetBeans Platform Certified Training am Mathematischen Institut angeboten.&lt;br /&gt;&lt;br /&gt;Studenten und Mitglieder einer Non-Profit Organisation haben die Möglichkeit kostenlos an dem zweitägigen Kurs teilzunehmen. Zum Abschluss des Kurses erhält
      jeder Teilnehmer und jede Teilnehmerin ein Zertifikat.&lt;br /&gt;&lt;br /&gt;Nähere Details zu den Inhalten des Trainings findet sich auf der &lt;a title="NetBeans Platform Education Program" href="http://edu.netbeans.org/courses/nbplatform-certified-training/" target="_blank" class="external-link-new-window"&gt;Homepage von NetBeans&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt; &lt;/p&gt; &lt;h2&gt;Themenübersicht&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/lookup-pres.jpg" alt=""
      height="115" style="padding-bottom: 10px; padding-left: 10px; float: right; padding-top: 25px;" width="150" /&gt;&lt;/h2&gt; &lt;p class="bodytext"&gt;Hier eine Übersicht der Themen zu einem Kurs: &lt;/p&gt; &lt;h3&gt;Tag 1&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Intro &amp;amp; Simple Port of a Swing Application&lt;/li&gt;&lt;li&gt;Window System (Teil 1)&lt;/li&gt;&lt;li&gt; Window System (Teil 2)&lt;/li&gt;&lt;li&gt; Nodes &amp;amp; Views&lt;/li&gt;&lt;li&gt; Workshop&lt;/li&gt;&lt;/ul&gt;&lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt; &lt;h3&gt;Tag 2&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Visual Library&lt;/li&gt;&lt;li&gt; Workshop&lt;/li&gt;&lt;li&gt; Lookup&lt;/li&gt;&lt;li&gt; Module System&lt;/li&gt;&lt;li&gt; Workshop&lt;/li&gt;&lt;li&gt; Wrap Up&lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt;&lt;br /&gt;Es stehen insgesamt 24 Rechnerplätze zur Verfügung. Darüber hinaus ist es möglich ein eigenes Notebook mitzubringen (kostenloses WLAN ist verfügbar). Alle Teilnehmer mit einem eigenen Notebook
      sollten ein installiertes &lt;a title="Opens external link in new window" href="http://java.sun.com/javase/downloads/index.jsp" target="_blank" class="external-link-new-window"&gt;Java 6 JDK&lt;/a&gt; und die aktuelle &lt;a title="NetBeans IDE" href="http://www.netbeans.org/downloads/index.html" target="_blank" class="external-link-new-window"&gt;NetBeans 6.7.1 IDE&lt;/a&gt; zur Verfügung haben, damit die Workshops erfolgreich durchgespielt werden können. &lt;/p&gt; &lt;h2&gt;Infos zum
      Zertifizierungsprogramm&lt;img src="http://www.sepix.de/fileadmin/certtrainings/diplom.jpg" style="padding-bottom: 10px; padding-left: 10px; float: right; padding-top: 25px;" title="NetBeans Certified Associate" height="138" width="200" alt="" /&gt;&lt;/h2&gt; &lt;p class="bodytext"&gt;Es gibt insgesamt drei Stufen der Zertifizierung. &lt;/p&gt; &lt;h3&gt;NetBeans Certified Associate&lt;/h3&gt; &lt;p class="bodytext"&gt;Die erste Stufe bekommt schon man mit der Teilnahme an beiden Tagen des
      Zertifizierungskurses. Danach sollte jeder Teilnehmer das Rüstzeug in die Hand gelegt bekommen haben, um sich in der Platform Entwicklung bei den ersten Schritten zurechtzufinden. &lt;/p&gt; &lt;h3&gt;NetBeans Certified Engineer&lt;/h3&gt; &lt;p class="bodytext"&gt;Dieses Zertifikat erhält jeder Teilnehmer, der ein Programm basierend auf der NetBeans Platform (zum Beispiel eine Migration einer alten Swing Anwendung) oder ein Plugin programmiert hat. Dabei geht es nicht um Größe, sondern um das
      Verständnis. Wir schauen uns die Projekte an, helfen dabei und geben Tipps, bis das Projekt den Status erreicht hat, wo so ein Zertifikat besten Gewissens vergeben werden kann. &lt;/p&gt; &lt;h3&gt;NetBeans Certified Committer&lt;/h3&gt; &lt;p class="bodytext"&gt;Diese höchste Stufe ist schon etwas anspruchsvoller. Es handelt sich dabei um Erweiterungen und Korrekturen (z.B. Bug fixing, Feature enhancements) der NetBeans Platform (oder Derivate, wie z.B. die IDE selbst), die in den Quelltext von
      NetBeans eingereicht und bestätigt werden. Da werden dann noch andere Augenpaare auf die eingereichten Quelltexte geworfen (nämlich von den Core Entwicklern) und erwartet auch eine hohe Bereitschaft sich direkt mit den Entwicklungsprozessen auseinander zu setzen. Aber auch hier lassen wir niemanden allein.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alle Teilnehmer erhalten eine Nachbetreuung in einer dafür speziell eingerichteten Mailingliste. In der können sich weltweit die Mitglieder der
      Zertifizierungskurse austauschen. &lt;/p&gt; &lt;h2&gt;Studenten &amp;amp; Non-Profit frei!&lt;br /&gt; Frühbucherrabatt bis 4.9. sichern...&lt;/h2&gt; &lt;p class="bodytext"&gt;Für Firmenmitglieder gilt eine Teilnahmegebühr von 699,-- Euro. Für Frühbucher gibt es einen Early Bird Discount bis zum 4. September 2009, dann kostet die Teilnahme nur 599,-- Euro. Studenten und Mitarbeiter von Non-Profit-Organisationen dürfen kostenlos teilnehmen! &lt;/p&gt; &lt;h2&gt;Anmeldung&lt;/h2&gt; &lt;p
      class="bodytext"&gt;WICHTIG: Hier geht es zur verbindlichen Teilnameanmeldung:&lt;br /&gt;&lt;a title="Anmelden. Jetzt!" href="http://www.uni-math.gwdg.de/st-anmelden/" target="_blank" class="external-link-new-window"&gt;Anmeldeseite der Source Talk Tage 2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir benötigen die Anmeldedaten so früh wie möglich, damit auch die Zertifikate vorbereitet werden können.&lt;br /&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&lt;br /&gt;Aljoscha Rittner&lt;/p&gt;</description>
      <pubDate>Fri, 28 Aug 2009 07:48:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Artikel: JAXenter - Mehr Substanz für NetBeans</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////artikel_jaxenter_mehr_substanz_fuer_netbeans/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////artikel_jaxenter_mehr_substanz_fuer_netbeans/index.html</link>
      <description>&lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/nbsubstance/nbsubstance.png" style="padding-bottom: 10px; padding-left: 10px; float: right;" title="NetBeans Substance Logo" height="128" width="128" alt="NetBeans Substance Logo" /&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Auf JAXenter ist ein kleiner Artikel zu dem Substance Support Plugin erschienen. Wer mehr über die Interna des Plugins erfahren möchte, findet weitere Infos dort: &lt;/p&gt; &lt;p
      class="bodytext"&gt;&lt;a title="JAXenter: Mehr Substanz für NetBeans" href="http://it-republik.de/jaxenter/artikel/Mehr-Substanz-fuer-NetBeans-2518.html" target="_blank" class="external-link-new-window"&gt;JAXenter: Mehr Substanz für NetBeans&lt;/a&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 26 Aug 2009 12:38:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Plugin: Substance Support Plugin auf kenai.com</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_substance_support_plugin_auf_kenaicom/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_substance_support_plugin_auf_kenaicom/index.html</link>
      <description>&lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/nbsubstance/nbsubstance.png" style="padding-bottom: 10px; padding-left: 10px; float: right;" title="NetBeans Substance Logo" height="128" width="128" alt="NetBeans Substance Logo" /&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Da mein Blog etwas unter Überlastung leidet, habe ich das Plugin nun nach &lt;a title="Opens external link in new window" href="http://kenai.com/projects/nbsubstance" target="_blank"
      class="external-link-new-window"&gt;kenai.com verschoben&lt;/a&gt; (was sowieso meine Intention war). Damit sollte das hängende Update-Center wieder funktionieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Wer das Plugin schon installiert hat, wird automatisch nach kenai.com für die Updates umgeleitet. Es muss also nichts neu installiert werden (ja, wie genial ist das denn...) &lt;/p&gt; &lt;p class="bodytext"&gt;Die &lt;a title="Opens external link in new window"
      href="http://kenai.com/projects/nbsubstance/downloads/directory/updates" target="_blank" class="external-link-new-window"&gt;neuen Download Links&lt;/a&gt; sind folgende (nur für eine Neuinstallation notwendig):&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="Opens external link in current window" href="http://kenai.com/projects/nbsubstance/downloads/download/updates/org-sepix-substance.nbm" target="_blank" class="external-link"&gt;Substance Support Plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Opens
      external link in current window" href="http://kenai.com/projects/nbsubstance/downloads/download/updates/org-jvnet-substance.nbm" target="_blank" class="external-link"&gt;Substance 5.2 Patch Module&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Opens external link in current window" href="http://kenai.com/projects/nbsubstance/downloads/download/updates/org-jvnet-lafwidget.nbm" target="_blank" class="external-link"&gt;Substance LAF Widget Patch Module&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p
      class="bodytext"&gt;Das Plugin hat auch eine Änderung erfahren. Man erhält nur eine Neustart Erinnerung, wenn man das Skinning geändert hat. Das ist sinnvoll, da manche Editor-Elemente nach dem Ändern etwas "spinnen". &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 25 Aug 2009 11:05:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: PHPDev: We need your Help - Dateisynchronisation im aktuellen NetBeans PHP-Build</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////phpdev_we_need_your_help_dateisynchronisation_im_aktuellen_netbeans_php_build/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////phpdev_we_need_your_help_dateisynchronisation_im_aktuellen_netbeans_php_build/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Hier ein Aufruf aus dem PHP Blog, ein neues spezielles NetBeans PHP Build zu testen: &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Wir suchen Anwender, die uns beim Testen unseres neuen experimentellen PHP NetBeans Builds helfen möchten. Jeder ist willkommen, aber wir benötigen ein besonderes Feedback von den Benutzern, die häufig zwischen NetBeans und externen Anwendungen wechseln
      müssen (Versionierung, PHP-Framework etc.), wobei es zu externen Dateiänderungen kommen kann. Alle diese Veränderungen durch Drittanbieter-Tools sollten korrekt in NetBeans zurück fließen. Es geht also um eine gut funktionierende Synchronisation der Dateiänderungen zwischen NetBeans und anderen Tools, die an den selben Dateien arbeiten. &lt;/p&gt; &lt;p class="bodytext"&gt;Allerdings könnte die Performnce, vor allem auf nicht-lokalen Festplatten, etwas schlechter werden. Wenn Sie PHP-Projekte mit
      solchen Quellen auf externen Medien haben (z.B. Netzlaufwerke), testen Sie bitte den aktuellen Build, weil wir wirklich an Ihren Ergebnissen interessiert sind. &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn Sie als an diesem Test teilnehmen möchten, downloaden Sie das aktuelle Build (93,2 MB) und starten Sie NetBeans mit der Option &lt;/p&gt; &lt;pre&gt;-J-Dorg.netbeans.modules.masterfs.REFRESH.level=0&lt;/pre&gt; &lt;p class="bodytext"&gt;damit nützliche Informationen protokolliert werden können. Senden
      Sie bitte bis Ende August 2009 (je früher, desto besser) uns Ihr Feedback zusammen mit dem IDE-Log direkt an an tomas (dot) mysik (at) sun (dot) com. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Der &lt;a title="We need your Help!" href="http://blogs.sun.com/netbeansphp/entry/we_need_your_help" target="_blank" class="external-link-new-window"&gt;Link zum Download&lt;/a&gt; ist in dem englischsprachigen PHP Blog zu finden. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste
      Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:36:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: GUI Beans, Container Beans mit Komponenten</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_gui_beans_container_beans_mit_komponenten/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_gui_beans_container_beans_mit_komponenten/index.html</link>
      <description>&lt;p class="bodytext"&gt;In einem &lt;a href="http://www.sepix.de/blogs/blogrittner/blog/archive/2009/january/13/beandev_gui_beans_zurueck_zu_den_wurzeln/index.html" class="external-link-new-window" title="GUI Beans"&gt;mehrteiligen Tutorial&lt;/a&gt; habe ich beschrieben, wie man mit GUI Beans im GUI Builder umgeht. Eine Spezialität ist aber offen geblieben. Wie kann man GUI Container in den GUI Builder verwenden und zugleich schon Komponenten vorgeben? &lt;/p&gt; &lt;p
      class="bodytext"&gt;Generell ist es erstmal nur möglich Container als GUI Elemente zu verwenden, wenn diese keine Komponenten enthalten. Also ein leeres JPanel. Diese Container müssen auch zwingend&#160;java.awtContainer als Super-Klasse haben und die letzte Einschränkung: der LayoutManager des Beans muss vom GUI Builder verstanden werden. &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn diese Voraussetzungen erfüllt sind, kann man das Bean direkt per Drag and Drop in den GUI-Builder ziehen und dann auch
      sofort Komponenten einfügen. &lt;/p&gt; &lt;p class="bodytext"&gt;Aber gerade bei GUI Beans will man schon Komponenten in das Bean einfügen. Das darf man auch, allerdings muss dann das Bean im GUI Builder "so-wie-es-ist" verwenden. Man darf dem Bean selber keine Komponenten mehr hinzufügen. &lt;/p&gt; &lt;p class="bodytext"&gt;Was also tun, wenn man dem Bean-Anwender doch die Möglichkeit geben möchte, Komponenten hinzufügen zu dürfen. Beispiele gibt es genug. Vielleicht könnte es ein File-Dialog Bean
      sein, dem der Entwickler später eine Vorschauansicht mitgeben möchte. &lt;/p&gt; &lt;p class="bodytext"&gt;Wenn man solche Beans realisieren möchte, kommt man (leider) um die BeanInfo Klasse nicht herum. Man muss nämlich auf dem Bean eine freien Platz reservieren, in dem der spätere Anwender seine Komponenten hinzufügen darf. &lt;/p&gt; &lt;p class="bodytext"&gt;Diesen freien Platz muss man in der BeanInfo Klasse bekannt machen. Aber erstmal zum ersten Schritt. Einfach mal ein JPanel-GUI mit der
      NetBeans IDE erzeugen. Dort packe ich ein Label und ein Textfeld rein. Diese beiden Komponenten sollen immer von diesem Bean vorgegeben sein: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/tutorials/beans/BeanContainer1.PNG" alt="" height="464" width="737" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Den Container (das Delegate Panel) habe ich grün eingefärbt, damit man ihn in diesem Tutorial besser sehen kann. Es ist ein einfaches JPanel mit beliebigen Namen. In diesem
      Fall ist es der Name innerPane. &lt;/p&gt; &lt;p class="bodytext"&gt;Das Bean benötigt nun eine Methode, die das JPanel als Container bekannt gibt. Auch dieser Name der Methode ist gleichgültig. Aber getInnerPane bietet sich an: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/tutorials/beans/BeanContainer2.PNG" alt="" height="288" width="455" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Aber damit kann der GUI Builder noch nichts anfangen. Wenn wir das Bean (im
      compilierten Zustand) so per Drag and Drop in den GUI Builder ziehen würden, könnte man dem Bean keine Komponente hinzufügen. &lt;/p&gt; &lt;p class="bodytext"&gt;Nun der Trick. Auf das Bean die rechte Maustaste und eine BeanInfo-Klasse erzeugen lassen. Der Quelltext wird folgendermaßen ergänzt: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/tutorials/beans/BeanContainer3.PNG" alt="" height="212" width="963" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Es muss also nur
      der Wert containerDelegate gesetzt werden: Mit dem Methodennamen aus unserem Bean. &lt;/p&gt; &lt;p class="bodytext"&gt;Nun kann man das Bean (neu compiliert und eingefügt) als Container für Komponenten nutzen. Wenn man den grünen Platzhalter nicht sofort sieht, einfach trotzdem eine Komponente von der Palette auf das Bean ziehen. Die Komponente wird dann an der passenden Stelle eingefügt. Ggf. wurde nämlich vom LayoutManager der Bereich einfach auf 0 * 0 Pixel zusammen geschrumpft. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Hier das Ergebnis: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/tutorials/beans/BeanContainer4.PNG" alt="" height="232" width="829" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Bleibt nur noch zu sagen, dass in diesem Fall das Delegate die Einschränkungen geerbt hat: Es dürfen keine vorgegebenen Komponenten im Panel liegen und ein bekannter LayoutManager des GUI-Builders muss genutzt werden. &lt;/p&gt;
      &lt;p class="bodytext"&gt;&lt;br /&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Mon, 24 Aug 2009 14:05:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: BeanDev: @ConvertAsProperties zerstört Singleton Pattern von TopComponents</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_convertasproperties_zerstoeren_singleton_pattern_von_topcomponents/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////beandev_convertasproperties_zerstoeren_singleton_pattern_von_topcomponents/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Seit dem 10. Januar 2009 gibt es eine nette Erweiterung der NetBeans API für TopComponents. Die &lt;a title="@ConvertAsProperties" href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-settings/apichanges.html#convertor.propertyannotation" target="_blank" class="external-link-new-window"&gt;@ConvertAsProperties Annotation&lt;/a&gt; erlaubt es Eigenschaften des Fensters als Properties zu speichern.&#160;
      &lt;/p&gt; &lt;p class="bodytext"&gt;Das ist sehr bequem, weil man sich erstmal nicht generell mit der Serialisierung beschäftigen muss. &lt;/p&gt; &lt;h3&gt;@ConvertAsProperties einsetzen&lt;/h3&gt; &lt;p class="bodytext"&gt;Das Schreiben von Eigenschaften sieht dann so aus: &lt;/p&gt; &lt;pre&gt; void writeProperties(java.util.Properties p) {&lt;br /&gt; p.setProperty("version", "1.2");&lt;br /&gt; // TODO store your settings&lt;br /&gt; p.setProperty("dividerLocation",
      Integer.toString(jSPLMain.getDividerLocation()));&lt;br /&gt; p.setProperty("regionViewer.visible", Boolean.toString(((JPreviewViewer)jPNPreview).isRegionViewerVisible()));&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Und das Einlesen: &lt;/p&gt; &lt;pre&gt; private void readPropertiesImpl(java.util.Properties p) {&lt;br /&gt; String version = p.getProperty("version");&lt;br /&gt; // TODO read your settings according to their version&lt;br /&gt; if ( "1.1".equals(version) ) {&lt;br /&gt;
      jSPLMain.setDividerLocation(Integer.parseInt(p.getProperty("dividerLocation")));&lt;br /&gt; }&lt;br /&gt; if ( "1.2".equals(version)) {&lt;br /&gt; ((JPreviewViewer)jPNPreview).setRegionViewerVisible(Boolean.valueOf(p.getProperty("regionViewer.visible", "true")));&lt;br /&gt; }&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Die NetBeans Platform kümmert sich automatisch um das Speichern auf die Festplatte (oder sonst wo hin). Ich als Programmierer muss mich darum nicht kümmern. Die TopComponent
      muss aber annotiert werden: &lt;/p&gt; &lt;pre&gt;@ConvertAsProperties(&lt;br /&gt; dtd = "-//org.sepix.tutorialbuilder.ui//Gallery//EN",&lt;br /&gt; autostore = false)&lt;br /&gt;public final class GalleryTopComponent extends TopComponent {&lt;/pre&gt; &lt;p class="bodytext"&gt;Das erstellt übrigens schon alles das Template, wenn man neue TopComponents mit dem Wizard erzeugt. &lt;/p&gt; &lt;h3&gt;Singleton Pattern funktioniert nicht mehr&lt;/h3&gt; &lt;p class="bodytext"&gt;Nun zum Problem. Es
      passiert nun, dass zum Einlesen der Properties das Fenster zwei mal erzeugt wird. Einmal zum Einlesen der Eigenschaften und das zweite Mal bei ersten Anzeigen der TopComponent. Das ist natürlich fatal, wenn man davon ausgeht, dass das Fenster ein Singleton sein soll. Zum Beispiel wenn man Resourcen bindet, Listener verknüpft usw... &lt;/p&gt; &lt;p class="bodytext"&gt;Es wurde ein &lt;a title="Issue 167395" href="http://www.netbeans.org/issues/show_bug.cgi?id=167395" target="_blank"
      class="external-link-new-window"&gt;Issue&lt;/a&gt; dazu angelegt und heute kam &lt;/p&gt; &lt;h3&gt;...die Lösung&lt;/h3&gt; &lt;p class="bodytext"&gt;Es ist tatsächlich kein API Problem, sondern das vom Wizard erzeugte Template hat einen winzigen Bug. &lt;/p&gt; &lt;p class="bodytext"&gt;Wie man oben sehen kann, werden die Eigenschaften in der Methode readPropertiesImpl eingelesen. Es gibt auch noch readProperties, die in der alten Version des Templates folgendes machte: &lt;/p&gt; &lt;pre&gt;
      Object readProperties(java.util.Properties p) {&lt;br /&gt; GalleryTopComponent singleton = GalleryTopComponent.getDefault();&lt;br /&gt; singleton.readPropertiesImpl(p);&lt;br /&gt; return singleton;&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Das sieht zunächst sauber aus, verursacht aber durch den getDefault()-Aufruf eine Instanz, die bedauerlicherweise später verworfen wird. &lt;/p&gt; &lt;p class="bodytext"&gt;Das neue (korrigierte) Template wurde nun in den &lt;a title="Template
      correction" href="http://hg.netbeans.org/main-golden/rev/1e286e551363" target="_blank" class="external-link-new-window"&gt;main-golden Trunk&lt;/a&gt; integriert und würde folgende Methode erzeugen: &lt;/p&gt; &lt;pre&gt; Object readProperties(java.util.Properties p) {&lt;br /&gt; if ( instance == null ) {&lt;br /&gt; instance = this;&lt;br /&gt; }&lt;br /&gt; instance.readPropertiesImpl(p);&lt;br /&gt; return instance;&lt;br /&gt; }&lt;/pre&gt; &lt;p class="bodytext"&gt;Sieht eigentlich noch
      logischer aus ;-) - Und das ist übrigens auch die Lösung für aktuelle Versionen (6.7 und 6.7.1) von NetBeans. Einfach in den TopComponents, die man durch den Assistenten erzeugt hatte, die readProperties-Methode mit dem obigen Quelltext austauschen. Dann werden die TopComponents garantiert nur noch einmal erzeugt. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Fri, 21 Aug 2009 08:16:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Plugin: Substance 5.2 for NetBeans Update</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_substance_52_for_netbeans_update/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_substance_52_for_netbeans_update/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Das Plugin für den Substance Support hat ein kleines Update erfahren. &lt;/p&gt; &lt;p class="bodytext"&gt;Zum einem gab es noch eine Violation Exception im Plugin Manager, die nun unterdrückt wird und man kann nun "On-the-fly" die Skins ändern (soweit man das erste mal das Substance PLAF aktiviert hatte und ein Neustart erfolgte). Man kann Substance trotz Plugin deaktivieren und Fensterdekoration von Substance
      übernehmen lassen (Unterschiede sieht man in den unteren Screenshots) &lt;/p&gt; &lt;p class="bodytext"&gt;Ich habe das Plugin in meinem Updatecenter aktualisiert. Wenn es Probleme beim Updatecenter gibt (ewiges herunterladen), gelten noch diese Download-Links:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/fileadmin/nbsubstance/org-sepix-substance.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance 5.2 Module&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a
      href="http://www.sepix.de/fileadmin/nbsubstance/org-jvnet-substance.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance 5.2 Patch Libraries&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/fileadmin/nbsubstance/org-jvnet-lafwidget.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance LAF Widget Patch&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Fensterdekoration vom Betriebssystem:
      &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/nbsubstance/SubstanceOptions.JPG" alt="" height="386" width="758" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Fensterdekoration von Substance: &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/nbsubstance/SubstanceOptions-2.JPG" alt="" height="394" width="759" /&gt; &lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 Aug 2009 14:55:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Plugin: NetBeans Substance 5.2 Look and Feel</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_netbeans_substance_52_look_and_feel/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_netbeans_substance_52_look_and_feel/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Ich habe heute noch mal schnell ein Substance Look And Feel Support erstellt. Es ist etwas Beta und man kann nur ein paar PLAFs über die Optionen einstellen (die --laf Einstellung geht im Moment nicht). &lt;/p&gt; &lt;p class="bodytext"&gt;Hier ein Screen-Shot einer der PLAFs: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;&lt;img src="http://www.sepix.de/fileadmin/nbsubstance/NB-Substance-small.JPG" alt=""
      height="418" width="600" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Man benötigt für das Plugin drei Dateien:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/fileadmin/nbsubstance/org-sepix-substance.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance 5.2 Module&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/fileadmin/nbsubstance/org-jvnet-substance.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance 5.2 Patch
      Libraries&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sepix.de/fileadmin/nbsubstance/org-jvnet-lafwidget.nbm" class="download" title="Initiates file download"&gt;NetBeans Substance LAF Widget Patch&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="bodytext"&gt;Nach der Installation der drei NBM-Dateien findet Ihr unter den Optionen (in Verschiedenes) eine Registerzunge Look and Feel. Mal eines ausprobieren und die IDE neu starten. Updates zu dem Plugin erhaltet Ihr per Update-Center. &lt;/p&gt;
      &lt;p class="bodytext"&gt;Voraussetzung ist NetBeans 6.7.1 und Java 6. Und es ist pure Beta, nur unter Windows getestet. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 18 Aug 2009 14:58:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Certified Training: NetBeans Platform in Bonn</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////certified_training_netbeans_platform_in_bonn/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////certified_training_netbeans_platform_in_bonn/index.html</link>
      <description>&lt;p class="bodytext"&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;Am Wochenende gab es wieder ein Certified Training zur NetBeans Platform in der schönen und quirligen Universitätsstadt Bonn. &lt;/p&gt; &lt;p class="bodytext"&gt;Das war die Ankündigung der studentischen Consultingfirma &lt;a title="aureliusconsult.de" href="http://www.aureliusconsult.de/" target="_blank" class="external-link-new-window"&gt;AureliusConsult&lt;/a&gt;. Ich möchte mich im Namen der Trainer für
      die hervorragende Planung und Bewirtung bedanken! &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/teaser.jpg" alt="" height="405" width="500" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Zusammen mit &lt;a title="Geertjan" href="http://blogs.sun.com/geertjan/entry/welcome_to_me" target="_blank" class="external-link-new-window"&gt;Geertjan&lt;/a&gt; (Sun Microsystems) und &lt;a title="Blog" href="http://eppleton.sharedhost.de/blog/" target="_blank"
      class="external-link-new-window"&gt;Toni&lt;/a&gt; (&lt;a title="Eppleton" href="http://eppleton.sharedhost.de/" target="_blank" class="external-link-new-window"&gt;Eppleton&lt;/a&gt;) haben wir in zwei Tagen ein strammes Programm zur Platform Programmierung geboten: &lt;/p&gt; &lt;p class="bodytext"&gt;Samstag &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Intro &amp;amp; Simple Port of Anagram Game (Geertjan) &lt;/li&gt;&lt;li&gt;Window System (Teil 1) (Toni) &lt;/li&gt;&lt;li&gt;Window System (Teil 2) (Toni)
      &lt;/li&gt;&lt;li&gt;Nodes &amp;amp; Views (Josh) &lt;/li&gt;&lt;li&gt;Workshop (Geertjan) &lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt; Sonntag&lt;b&gt;&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visual Library (Toni) &lt;/li&gt;&lt;li&gt;Workshop (Toni) &lt;/li&gt;&lt;li&gt;Lookup (Josh) &lt;/li&gt;&lt;li&gt;Workshop (Geertjan) &lt;/li&gt;&lt;li&gt;Wrap Up (all) &lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt;Hier ein Gruppenfoto aller Teilnehmer mit uns Trainern im Hintergrund: &lt;/p&gt; &lt;p
      class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/bonnGroup.jpg" alt="Gruppenfoto" height="299" title="Gruppenfoto" width="500" /&gt; &lt;/p&gt; &lt;p class="bodytext"&gt;Die Unterlagen zu dem Training sind unter &lt;a title="NetBeans Platform Docs" href="http://edu.netbeans.org/contrib/slides/netbeans-platform/" target="_blank" class="external-link-new-window"&gt;edu.netbeans.org&lt;/a&gt; zu finden. &lt;/p&gt; &lt;p
      class="bodytext"&gt;Meine Vortrags-Präsentationen waren folgende: &lt;/p&gt; &lt;p class="align-left"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/lookup-pres.jpg" alt="" height="105" style="padding-bottom: 10px; padding-left: 10px; float: right;" width="150" /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Modules-und-Lookups.pdf" href="http://edu.netbeans.org/contrib/slides/netbeans-platform/nbp-lookup-gj_de.pdf" target="_blank" class="external-link-new-window"&gt;Modules
      &amp;amp; Lookups (vollständige Präsentation)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Nodes-and-Views.pdf" href="http://edu.netbeans.org/contrib/slides/netbeans-platform/nbp-javabeans_de.pdf" target="_blank" class="external-link-new-window"&gt;Nodes &amp;amp; Views (vollständige Präsentation)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt; &lt;p
      class="bodytext"&gt;Und hier noch ein paar Impressionen: &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/geertjanToni.jpg" alt="" height="260" width="300" /&gt;&lt;br /&gt;Geertjan (links) und Toni (rechts) beim Intro zur Visual Library &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/learning.jpg" alt="" height="140" width="300" /&gt;&lt;br /&gt;Geertjan unterstützt die Studenten bei den Workshops.
      &lt;/p&gt; &lt;p class="bodytext"&gt;&lt;br /&gt;&lt;img src="http://www.sepix.de/fileadmin/certtrainings/bonn/josh.jpg" alt="" height="175" width="300" /&gt;&lt;br /&gt;Ich bei der Präsentation der Nodes und Explorer API &lt;/p&gt; &lt;p class="bodytext"&gt;Dieser 2-tages Kurs ist Teil des &lt;a title="Certified Training" href="http://edu.netbeans.org/courses/nbplatform-certified-training/" target="_blank" class="external-link-new-window"&gt;NetBeans Platform Certified Training&lt;/a&gt;. Wir bieten
      diese Kurse kostenlos für Universitäten, Java User Groups und Non-Profit-Unternehmen an. Als Ergebnis erhalten die Teilnehmer Zertifikate, die noch in zwei Stufen erweitert werden können. &lt;/p&gt; &lt;p class="bodytext"&gt;Natürlich bieten wir erweiterte Kurse auch für Firmen weltweit in deutscher und englischer Sprache an. Sprechen Sie uns an! &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch. &lt;/p&gt; &lt;p class="bodytext"&gt;&#160;&lt;/p&gt;</description>
      <pubDate>Tue, 18 Aug 2009 09:24:00 +0000</pubDate>
    </item>
    <item>
      <title>JNBB - Joschs NetBeans Blog: Plugin: Project Group Toolbar - Update auf 1.0.2</title>
      <guid isPermaLink="false">http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_project_group_toolbar_update_auf_102/index.html</guid>
      <link>http://www.sepix.de/blogs/blogrittner/blog/archive////plugin_project_group_toolbar_update_auf_102/index.html</link>
      <description>&lt;p class="bodytext"&gt;&lt;img src="http://www.sepix.de/fileadmin/nbprjgrptoolbar/Project_Group_Toolbar.png" style="padding-bottom: 10px; padding-left: 10px; float: right;" title="Project Group Toolbar" height="227" width="288" alt="Project Group Toolbar" /&gt;Moin! &lt;/p&gt; &lt;p class="bodytext"&gt;Ich habe der Project Group Toolbar ein kleines Update gegeben. &lt;/p&gt; &lt;p class="bodytext"&gt;Nun werden alle Änderungen der Gruppen an den Toolbar-Button und an das Menü
      weitergereicht. Darunter fällt das Hinzufügen und Entfernen sowie das Umbenennen von Projekt-Gruppen. &lt;/p&gt; &lt;p class="bodytext"&gt;Weiterhin habe ich einen Lizenztext hinzugefügt. Ich werde für den Sourcecode ein paar Hinweise als zukünftige Blog-Einträge posten. Der Quelltext selbst kämpft mit so vielen Hacks und Tricks, das will ich so nicht veröffentlichen. Ich möchte eher dafür sorgen, dass die API in NetBeans da verbessert wird ;-) &lt;/p&gt; &lt;p class="bodytext"&gt;Link für &lt;a
      href="http://www.sepix.de/fileadmin/nbprjgrptoolbar/org-sepix-modules-project-ui-groups.nbm" class="download" title="Initiates file download"&gt;Download&lt;/a&gt;. Ein Update ist im Plugin-Center auf plugins.netbeans.org. Und mein Update-Center wird bei allen installierten Versionen sowieso reagieren. &lt;/p&gt; &lt;p class="bodytext"&gt;Beste Grüße,&lt;br /&gt;&#160; Josch.&lt;/p&gt;</description>
      <pubDate>Tue, 18 Aug 2009 08:19:00 +0000</pubDate>
    </item>
  </channel>
</rss>
