<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Information Centre &#187; java</title>
	<atom:link href="http://my.center-of.info/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://my.center-of.info</link>
	<description>“Wenn etwas schon da war, wie kann man es dann patentieren?” D.E.Knuth, 2002</description>
	<lastBuildDate>Mon, 28 Sep 2009 23:04:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Commons-IO: DirectoryWalker</title>
		<link>http://my.center-of.info/2009/07/19/commons-io-directorywalker/</link>
		<comments>http://my.center-of.info/2009/07/19/commons-io-directorywalker/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 19:43:27 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[util]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=132</guid>
		<description><![CDATA[Commons-IO bzw. allg. Apache Commons ist eine schöne Ansammlung von nützlichen Bibliotheken und Funktionen.
Darunter ist auch Commons-IO zu finden. Daraus will ich heute eine spezielle Lösung vorstellen.
Hat man folgendes Problem:
Möchte man einen Ordner, inklusive dessen Unterordner, nach bestimmten Dateien suchen und dann diese vielleicht nach Last-Modified sortiert, bietet Commons-IO eine Lösung an.

Um den/die Ordner durchzulaufen [...]]]></description>
			<content:encoded><![CDATA[<p>Commons-IO bzw. allg. <a href="http://commons.apache.org/" target="_blank" title="Apache Commons">Apache Commons</a> ist eine schöne Ansammlung von nützlichen Bibliotheken und Funktionen.<br />
Darunter ist auch Commons-IO zu finden. Daraus will ich heute eine spezielle Lösung vorstellen.<br />
Hat man folgendes Problem:<br />
Möchte man einen Ordner, inklusive dessen Unterordner, nach bestimmten Dateien suchen und dann diese vielleicht nach Last-Modified sortiert, bietet Commons-IO eine Lösung an.<br />
<span id="more-132"></span></p>
<p>Um den/die Ordner durchzulaufen existiert ein <a href="http://commons.apache.org/io/api-release/org/apache/commons/io/DirectoryWalker.html" target="_blank" title="Commons-IO API: DirectoryWalker">DirectoryWalker</a>.<br />
Um den abstrakten DirectoryWalker nutzen zu können könnte man z.B. eine folgende Implementierung nutzen:</p>
<pre class="brush: java">
public class TestDirectoryWalker extends DirectoryWalker {

	public TestDirectoryWalker(IOFileFilter dirFilter, IOFileFilter fileFilter, int depth) {
		super(dirFilter, fileFilter, depth);
	}

        /**
          * This method sets the start directory and starts the DirectoryWalker.
          */
	public List search(File startDir) throws IOException {

		List results = new ArrayList();
		walk(startDir, results);
		return results;
	}

	protected boolean handleDirectory(File directory, int depth, Collection results) {
		// return true, cause every sub directory is allowed
		return true;
	}

	protected void handleFile(File file, int depth, Collection results) {		

                // we want only the files with the name &quot;abc.txt&quot; in the
                // subdirectories. This files will be inserted in the given
                // result collection. This collection is the same as the
                // created List in search(File)
		String filename = file.getName();
		if(&quot;abc.txt&quot;.equalsIgnoreCase(filename))
			results.add(file);
	}
}
</pre>
<p>Wie man sehen kann, kann man innerhalb weniger Zeilen einen DirectoryWalker schreiben, der alle Unterordner durchgeht und alle Dateien mit dem Titel &#8220;abc.txt&#8221; liefert.<br />
Die Nutzung ist genauso simpel:</p>
<pre class="brush: java">
TestDirectoryWalker idw = new TestDirectoryWalker(DirectoryFileFilter.DIRECTORY, FileFilterUtils.suffixFileFilter(&quot;.txt&quot;), 3);

		String startDir = &quot;D:/Temp/.../blub&quot;;
		List files = null;
		try {
                        // search the directory for the wanted files
			files = idw.search(new File(startDir));
			System.out.println(&quot;Files: #&quot; + files.size());

                        // sort the resulting files using the LastModifiedFileComparator
			System.out.println(&quot;first file: &quot; + files.get(0));
			Collections.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR);

			System.out.println(&quot;oldest file: &quot; + files.get(0));
		} catch (IOException e) {
			e.printStackTrace();
		}
</pre>
<p>Der Konstruktor TestDirectoryWalker(<a href="http://commons.apache.org/io/api-release/org/apache/commons/io/filefilter/IOFileFilter.html" target="_blank" title="Apache Commons-IO API: IOFileFilter">IOFileFilter</a>, <a href="http://commons.apache.org/io/api-release/org/apache/commons/io/filefilter/IOFileFilter.html" target="_blank" title="Apache Commons-IO API: IOFileFilter">IOFileFilter</a>, int) erwartet zwei Filter, einen für die Ordner und einen für die Dateien. Die <a href="http://commons.apache.org/io/api-release/org/apache/commons/io/filefilter/IOFileFilter.html" target="_blank" title="Apache Commons-IO API: IOFileFilter">Auswahl</a> ist umfangreich, ansonsten kann man auch seinen eigenen schreiben.</p>
<p>Als letztes ist vielleicht noch die Zeile</p>
<pre class="brush: java">
Collections.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR);
</pre>
<p>interessant. <a href="http://commons.apache.org/io/api-release/org/apache/commons/io/comparator/LastModifiedFileComparator.html" target="_blank" title="Apache Commons IO API: LastModifiedFileComparator">LastModifiedFileComparator</a> ist wie der Name schon andeutet, eine Klasse welches <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html" target="_blank" title="J2SE API: Comparator">Comparator</a> implementiert bzgl. <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#lastModified()" target="_blank" title="J2SE API: File#lastModified()">File.lastModified()</a>. Die Liste mit den gefundenen Dateien wird aufsteigend sortiert.</p>
<p>Innerhalb weniger Minuten kann man verschiedene Ordner nach speziellen Dateien suchen. Dank <a href="http://commons.apache.org/io/" target="_blank" title="Apache Commons IO">Apache Commons IO</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/07/19/commons-io-directorywalker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java JMS MQ Beispiel</title>
		<link>http://my.center-of.info/2009/06/23/java-jms-mq-beispiel/</link>
		<comments>http://my.center-of.info/2009/06/23/java-jms-mq-beispiel/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 09:27:51 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mq]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=128</guid>
		<description><![CDATA[Vor einiger Zeit wurde MQ installiert. Nun folgt endlich ein Beispiel wie man in Java MQ ansprechen kann. Dabei wird JMS (Java Message Servic) ohne JNDI (Java Naming and Directory Interface) verwendet. Ein JNDI-Beispiel folgt in einem späteren Blog.

Das Beispiel zeigt wie man mittels JMS eine MQ Nachricht verschicken und empfangen kann.
Die Architektur steht hier [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit wurde <a href="http://my.center-of.info/2008/10/28/mq-install-on-linux/" target="_blank">MQ installiert</a>. Nun folgt endlich ein Beispiel wie man in Java MQ ansprechen kann. Dabei wird JMS (Java Message Servic) ohne JNDI (Java Naming and Directory Interface) verwendet. Ein JNDI-Beispiel folgt in einem späteren Blog.<br />
<span id="more-128"></span></p>
<p>Das Beispiel zeigt wie man mittels JMS eine MQ Nachricht verschicken und empfangen kann.<br />
Die Architektur steht hier nicht im Vordergrund, das nur die MQ Kommunikation.</p>
<p>Für das Versenden von MQ Nachrichten ist ein MQQueueSender verantwortlich, entsprechendes gilt für das Empfangen (MQQueueReceiver).<br />
Da bei MQ mehrere Clients Nachrichten verschicken können und jedem Client nur seine Antworten interessieren, gibt es die Möglichkeit dem Receiver einen Filter (Selector) anzugeben. Mit diesem Selector werden dann nur die MQ Nachrichten geliefert (empfangen), welche die Kriterien erfüllen.<br />
Hier lohnt es sich (nur) Correlation und Message ID zu nutzen, da andere Eigenschaften zu langsam in der Filterung sind.<br />
Bei der Correlation ID muss noch das Präfix &#8216;ID:&#8217; angehangen werden, welches bei der Message ID schon automatisch vorhanden ist.</p>
<p>Nachfolgend ein kleines MQ JMS Beispiel</p>
<pre class="brush: java">
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;

import com.ibm.jms.JMSTextMessage;
import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQQueue;
import com.ibm.mq.jms.MQQueueConnection;
import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.mq.jms.MQQueueReceiver;
import com.ibm.mq.jms.MQQueueSender;
import com.ibm.mq.jms.MQQueueSession;
import com.ibm.msg.client.wmq.v6.base.internal.MQC;

public class TestMQJMSPlain {

     public static void main(String[] args) {

         MQQueueConnectionFactory cf = new MQQueueConnectionFactory();

         try {

           cf.setHostName(&amp;quot;...&amp;quot;);
           cf.setPort(1415);
           cf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
           cf.setQueueManager(&amp;quot;...&amp;quot;);
           cf.setChannel(&amp;quot;SYSTEM.DEF.SVRCONN&amp;quot;);
           String qIn = &amp;quot;...&amp;quot;;
           String qOut = &amp;quot;...&amp;quot;;

           MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection();
           // create a new Session, which is not transacted
           MQQueueSession session = (MQQueueSession) connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
           // create queues
           MQQueue queueRead = (MQQueue) session.createQueue(qIn);
           MQQueue queueWrite = (MQQueue) session.createQueue(qOut);
           // if the client on the other side is a non-jms client set this property
           queueWrite.setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);

           // create a sender
           MQQueueSender sender =  (MQQueueSender) session.createSender(queueWrite);
           MQQueueReceiver receiver = null;      

           // create the message which will be sent over MQ
           JMSTextMessage message = (JMSTextMessage) session.createTextMessage(dat);
          // define the message type (not really necessary, depends from the client on the other side)
          message.setJMSType(MQC.MQFMT_STRING);
          // set a correlation ID
          message.setJMSCorrelationID(&amp;quot;MyIdSomethingElse&amp;quot; + System.currentTimeMillis());
          // set the replay queue
          message.setJMSReplyTo(queueRead);

          // lets start the connection
          connection.start();

          // send the JMS-Message
          sender.send(message);

          // create the selector to retrieve only the right response
          // the combination of message and correlation ID depends the individually defined constraints
          // it is wise to use the correlation and message ID for the selector, cause this are
          // faster as some other properties
          // Hint: the format for correlation ID is
          // JMSCorrelationID = &#039;ID:AF01CE....hex string...&#039;
          // the prefix &#039;ID&#039; is mandatory. However the message ID contains the fragment &#039;ID:&#039;
          String selector = &amp;quot;JMSCorrelationID = &#039;ID:&amp;quot; + dumpId2Hex(message.getJMSCorrelationIDAsBytes()) +
                                 &amp;quot;&#039; AND JMSMessageID = &#039;&amp;quot; + message.getJMSMessageID() + &amp;quot;&#039;&amp;quot;;

          // create a receiver with the defined selector
          receiver = (MQQueueReceiver) session.createReceiver(queueRead, selector);

          // receive the response (with match the filter in the selector). This call blocks max. 20000 ms
          Message receivedMessage = receiver.receive(20000);

          // check if message is received and a text message
          if (receivedMessage instanceof TextMessage) {
               // get the content...
              String replyString = ((TextMessage) receivedMessage).getText();
         }

         // close everything...
         sender.close();
         receiver.close();
         session.close();
         connection.close();		    

           }
	    catch (JMSException jmsex) {
	    	log.error(&amp;quot;JMSException&amp;quot;, jmsex);
	    }
	    catch (Exception ex) {
	    	log.error(&amp;quot;An other error occurred.&amp;quot;, ex);
	    }
     }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/06/23/java-jms-mq-beispiel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebSphere + JSF 1.2 + Facelets</title>
		<link>http://my.center-of.info/2009/01/28/websphere-jsf12-facelets/</link>
		<comments>http://my.center-of.info/2009/01/28/websphere-jsf12-facelets/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 21:33:06 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[facelets]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=113</guid>
		<description><![CDATA[Möchte man ein JSF Projekt unter IBM WebSphere Application Server 6.x nutzen, muss man ein paar Sachen bedenken:
Wie man bei [1] sehen kann, unterstüzt WebSphere 6.1 Servlet 2.4 und JSP 2.0 &#8211; das entspricht etwa einem Tomcat 5.5.x [2]. Möchte man nun JSF 1.2 (mittels MyFaces 1.2.x) nutzen hat man da ein kleines Problem.
JSF 1.2 [...]]]></description>
			<content:encoded><![CDATA[<p>Möchte man ein JSF Projekt unter IBM WebSphere Application Server 6.x nutzen, muss man ein paar Sachen bedenken:</p>
<p><span id="more-113"></span>Wie man bei [1] sehen kann, unterstüzt WebSphere 6.1 Servlet 2.4 und JSP 2.0 &#8211; das entspricht etwa einem Tomcat 5.5.x [2]. Möchte man nun JSF 1.2 (mittels MyFaces 1.2.x) nutzen hat man da ein kleines Problem.<br />
JSF 1.2 benötigt nämlich Servlet 2.5, JSP 2.1 und Java 5 oder später. Genau das kann WebSphere 6.1 mit seiner integrierten JSF 1.1 Implementierung nicht bieten.</p>
<p>Erst bei WebSphere Application Server 7 werden die gewünschten Versionen unterstützt. Wenn man jetzt nicht auf Version 7 umsteigen will/kann, und nicht unzählige Bibliotheken in WebSphere 6 ersetzen will, kann man es sich &#8220;einfach&#8221; machen und auf JSP verzichten. Das geht. Und zwar mit JSF und Facelets [4] als View-Technologie. D.h. es ist kein JSP mehr notwendig und WebSphere kann irgendeine Version anbieten.</p>
<p>Ich werde jetzt hier nicht Facelets beschreiben, das ich mach vielleicht mal später. Speziell geht es hier gerade um die Nutzung von JSF 1.2 mit Facelets in WebSphere Application Server 6.x.</p>
<p>Dazu muss in dem WEB-INF/lib-Ordner alle benötigten Bibliotheken aufgeführt werden. Das sind mindestens diese:</p>
<ul>
<li>commons-beanutils-1.7.0.jar</li>
<li>commons-codec-1.3.jar</li>
<li>commons-collections-3.2.jar</li>
<li>commons-digester-1.8.jar</li>
<li>commons-discovery-0.4.jar</li>
<li>el-api-1.0.jar</li>
<li>el-impl-1.0.jar</li>
<li>jsf-facelets-1.1.11.jar</li>
<li>jstl-1.2.jar</li>
<li>myfaces-api-1.2.5.jar</li>
<li>myfaces-impl-1.2.5.jar</li>
<li>myfaces-shared-impl-3.0.5.jar</li>
</ul>
<p>Wie man vielleicht bemerkt hat, commons-logging.jar ist nicht dabei. Denn diese existiert schon in WebSphere App Server und sollte rausgenommen werden. Weiter sind die el-*.jars auch drin. Die hat WebSphere gar nicht und werden von Facelets benötigt.</p>
<p>Nachdem man nun das WAR-Archiv in WebSphere Application Server deployed hat, muss man noch die Reihenfolge des Classloaders ändern, damit zuerst die eigenen Bibliotheken genutzt werden und nicht z.B. JSF 1.1 von WebSphere. Das wählt man in &#8220;Modul verwalten&#8221;, wenn man das Web-Modul ausgewählt hat aus, und selektiert in der Select-Box den Eintrag, damit der Classloader der Anwendung zuerst gewählt wird (intern auch als &#8220;PARENT_LAST&#8221; bekannt).</p>
<p>Nun kann die Anwendung gestartet werden und sollte ohne Probleme laufen. Im Endeffekt einfach. Wenn man weiß wie! <img src='http://my.center-of.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Links:<br />
[1] <a title="IBM WebSphere: Supported Specs and APIs" href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rovr_specs.html" target="_blank">WebSphere supported Specifications and API</a><br />
[2] <a title="Apache Tomcat" href="http://tomcat.apache.org" target="_blank">Tomcat</a><br />
[3] <a title="Apache MyFaces" href="http://myfaces.apache.org/" target="_blank">MyFaces</a><br />
[4] <a title="SUN Facelets" href="https://facelets.dev.java.net/" target="_blank">Facelets</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/01/28/websphere-jsf12-facelets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaFX 1.0</title>
		<link>http://my.center-of.info/2008/12/07/javafx-10/</link>
		<comments>http://my.center-of.info/2008/12/07/javafx-10/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 11:11:59 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javafx]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=82</guid>
		<description><![CDATA[Seit dem 04.12.2008 gibt es nun endlich die Version 1.0 von JavaFX. JavaFX ist eine Plattform um Rich Internet Applications für verschiedene End-Geräte zu erstellen. Im Idealfall realisiert man eine Anwendung, die dann später im Browser, auf dem Desktop und auf dem mobilen Gerät läuft. Für weitere Details sei auf die JavaFX-Seiten verwiesen [1] und [...]]]></description>
			<content:encoded><![CDATA[<p>Seit dem 04.12.2008 gibt es nun endlich die Version 1.0 von <a title="SUN JavaFX" href="http://www.javafx.com/" target="_blank">JavaFX</a>. JavaFX ist eine Plattform um Rich Internet Applications für verschiedene End-Geräte zu erstellen. Im Idealfall realisiert man eine Anwendung, die dann später im Browser, auf dem Desktop und auf dem mobilen Gerät läuft. Für weitere Details sei auf die JavaFX-Seiten verwiesen [1] und [2].</p>
<p><span id="more-82"></span></p>
<p><strong>Überblick</strong></p>
<p>Um JavaFX-Anwendung zu nutzen, braucht man standardmäßig nur die aktuelle Java Version. Hier ist Java 1.6.0_11 [3] passend, da diese Version die Fähigkeit anbietet, Applets auf den Desktop zu ziehen. Beim ersten Aufruf einer JavaFX-Anwendung werden die Runtime-Bibliotheken beim ersten Mal runtergeladen, wenn sie nicht vorhanden sind. Bei entsprechender Implimentierung der JavaFX-Anwendung (was ja ein Applet ist), kann man sich das Applet auf den Desktop ziehen. Schließt man dann den Browser, bekommt man die Möglichkeit ein Verweis auf den Desktop zu erstellen, um später das Applet &#8211; und nur das Applet, nicht auch den Browser &#8211; wieder zu nutzen.</p>
<p>JavaFX kommt auch mit einer neuen Script-Sprache, dem JavaFX Script. JavaFX Script ist eine deklarative kompilierbare Scriptsprache, was auch type inference &#8211; und somit implizit auch statische Typen &#8211; anbietet.</p>
<p><strong>Entwicklung</strong></p>
<p>Zur Entwicklung. Sun setzt ja bekanntlich auf Netbeans. Das bedeutet in dem Fall, es gibt ein Netbeans-Version [4] mit integriertem JavaFX. Diese Version beinhaltet das JavaFX Software Development Kit, Beispiele und bei Windows noch den JavaFX Mobile Emulator.</p>
<p>Zusätzlich gibt es Plugins für Photoshop und Adobe Illustrator. Mit JavaFX sollen ja auch schöne GUIs erstellt werden und hierfür bietet man Grafikern eine einfache Möglichkeit dies in ihren bekannten Umgebungen zu erstellen. Wie gut diese Plugins funktionieren, kann ich leider nicht sagen.</p>
<p>Für Eclipse-Nutzer gibt es ein veraltetes Plugin [5], hier ist zu hoffen, dass demnächst eine aktuellere Version veröffentlich wird.</p>
<p>Mit Netbeans kann man jedenfalls recht einfach erste JavaFX Anwendungen realisieren. Für die grafische Darstellung kann man eine Palette von vorhandenen Mustern, Transformationen etc nutzen. Jedoch gibt es hier keinen visuellen Designer. Die Palette beinhaltet nur Code-Fragmente, die in den existierenden Code eingefügt werden können. Ob es hier einen Designer geben wird, ist fraglich, da entsprechen Photoshop/Illustrator Plugins existieren.</p>
<p><strong>Features</strong></p>
<p>Die Features dürfen nun auch nicht vergessen werden:</p>
<ul>
<li>RIA Plattform für verschiedene Endgeräte</li>
<li>Einfache Integration für Grafiker</li>
<li>Gute Unterstützung von Grafiken, 2D, 3D, Video, Audio</li>
<li>Zugang zu Java-Bibliotheken</li>
</ul>
<p>Für weitere Details sei auf die Überblicks-Seite in [1] verwiesen.</p>
<p>Links:<br />
[1] JavaFX Überblick: <a title="SUN JavaFX Überblick" href="http://javafx.com/about/overview/" target="_blank">http://javafx.com/about/overview/ </a><br />
[2] JavaFX Getting Started with the Technology: <a title="Getting Started with JavaFX Technology" href="http://javafx.com/docs/gettingstarted/javafx/" target="_blank">http://javafx.com/docs/gettingstarted/javafx/</a><br />
[3] Java SE 6 Update Release Notes: <a title="SUN Java6 Changelogs" href="http://java.sun.com/javase/6/webnotes/6u11.html" target="_blank">http://java.sun.com/javase/6/webnotes/6u11.html</a><br />
[4] JavaFX Download (for Windows): <a title="SUN JavaFX Download page" href="http://javafx.com/downloads/windows.jsp" target="_blank">http://javafx.com/downloads/windows.jsp</a><br />
[5] OpenJFX Eclipse Plugin v0.0.2: <a title="Altes Eclipse JavaFX Plugin" href="http://download.java.net/general/openjfx/plugins/eclipse/" target="_blank">http://download.java.net/general/openjfx/plugins/eclipse/</a><br />
[6] JavaFX API: <a title="SUN JavaFX API" href="http://java.sun.com/javafx/1/docs/api/index.html" target="_blank">http://java.sun.com/javafx/1/docs/api/index.html</a><br />
[7] JavaFX Script Language: <a title="SUN JavaFX Script Language" href="http://java.sun.com/javafx/1/tutorials/core/" target="_blank">http://java.sun.com/javafx/1/tutorials/core/</a><br />
[8] JavaFX Language Reference: <a title="Openjfx: JavaFX Language Reference" href="http://openjfx.java.sun.com/current-build/doc/reference/JavaFXReference.html" target="_blank">http://openjfx.java.sun.com/current-build/doc/reference/JavaFXReference.html</a><br />
[9] JavaFX Blog: <a title="SUN JavaFX Blog" href="http://blogs.sun.com/javafx/" target="_blank">http://blogs.sun.com/javafx/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2008/12/07/javafx-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
