<?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; Notes</title>
	<atom:link href="http://my.center-of.info/category/notes/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>Sat, 22 Oct 2011 11:09:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CDI in JavaSE</title>
		<link>http://my.center-of.info/2011/10/22/cdi-in-javase/</link>
		<comments>http://my.center-of.info/2011/10/22/cdi-in-javase/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 11:06:03 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[DevEnv]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Notes]]></category>
		<category><![CDATA[cdi]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=198</guid>
		<description><![CDATA[CDI – Contexts and Dependency Injection for the Java(tm) EE platform [1] &#8211; ist nicht neu und man findet im Netz auch genug gute Einführungen (z.B. [2] und natürlich immer auch bei [3], [4] etc). Möchte man jedoch CDI außerhalb eines Container (AppServer) verwenden, sprich in einer Java SE Umgebung, sucht man schon etwas länger. [...]]]></description>
			<content:encoded><![CDATA[<p>CDI – Contexts and Dependency Injection for the Java(tm) EE platform [1] &#8211; ist nicht neu und man findet im Netz auch genug gute Einführungen (z.B. [2] und natürlich immer auch bei [3], [4] etc). Möchte man jedoch CDI außerhalb eines Container (AppServer) verwenden, sprich in einer Java SE Umgebung, sucht man schon etwas länger.<br />
<span id="more-198"></span><br />
Bei CDI gibt es u.a. folgende Implementierungen: Weld [5] und OpenWebBeans [6].<br />
Bei der Referenzimplementierung Weld ist die Dokumentation vorbildlich und es gibt auch ein Kapitel [7] welches den Einsatz in einer Java SE Umgebung beschreibt. Solch ein Kapitel sucht man bei OpenWebBeans leider vergebens – das Kapitel an sich existiert schon, leider ohne Inhalt.<br />
Zum Glück findet man im SVN jedoch ein SE-Bespiel [8].<br />
Für Version 1.1.2 ersetzt man folgende Zeil:</p>
<pre class="brush: java">lifecycle = WebBeansContext.getInstance().getService(ContainerLifecycle.class);</pre>
<p>durch</p>
<pre class="brush: java">lifecycle = WebBeansContext.currentInstance().getService(ContainerLifecycle.class);</pre>
<p>Und der Einsatz von CDI mit OpenWebBeans in einer Java SE Umgebung steht nix mehr im Weg.</p>
<p>Zur Vollständigkeit anbei die Maven pom.xml:</p>
<pre class="brush: xml">
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;

	&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
	&lt;groupId&gt;com.haddouti.maven&lt;/groupId&gt;
	&lt;artifactId&gt;cdi-test&lt;/artifactId&gt;
	&lt;packaging&gt;jar&lt;/packaging&gt;
	&lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
	&lt;name&gt;cdi-test&lt;/name&gt;

	&lt;url&gt;http://www.haddouti.com&lt;/url&gt;

	&lt;dependencies&gt;

		&lt;!-- CDI Impl: Apache OpenWebBeans --&gt;
		&lt;dependency&gt;
			&lt;groupId&gt;org.apache.openwebbeans&lt;/groupId&gt;
			&lt;artifactId&gt;openwebbeans-impl&lt;/artifactId&gt;
			&lt;version&gt;1.1.2&lt;/version&gt;
		&lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
            &lt;artifactId&gt;geronimo-el_2.2_spec&lt;/artifactId&gt;
            &lt;version&gt;1.0.2&lt;/version&gt;
        &lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
            &lt;artifactId&gt;geronimo-interceptor_1.1_spec&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;

		&lt;!-- JSR-299 --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
            &lt;artifactId&gt;geronimo-jcdi_1.0_spec&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;

		&lt;!-- JSR-330 --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
            &lt;artifactId&gt;geronimo-atinject_1.0_spec&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.openwebbeans&lt;/groupId&gt;
            &lt;artifactId&gt;openwebbeans-spi&lt;/artifactId&gt;
            &lt;version&gt;1.1.2&lt;/version&gt;
        &lt;/dependency&gt;

	&lt;/dependencies&gt;
&lt;/project&gt;
</pre>
<p>[1] <url>http://www.jcp.org/en/jsr/summary?id=299</url><br />
[2] <url>http://blog.namics.com/2011/01/cdi-leichtgewic.html</url><br />
[3] <url>http://matthiaswessendorf.wordpress.com/2010/01/19/dependency-injection-the-jsr-330-way/</url><br />
[4] <url>http://www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_15</url><br />
[5] <url>http://seamframework.org/Weld</url><br />
[6] <url>http://openwebbeans.apache.org/owb/index.html</url><br />
[7] <url>http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html/environments.html#d0e5333</url><br />
[8] <url>http://svn.apache.org/repos/asf/openwebbeans/trunk/samples/standalone-sample/src/main/java/org/apache/webbeans/se/sample/Boot.java</url></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2011/10/22/cdi-in-javase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET: XmlSerializer ohne dynamische Code-Generierung</title>
		<link>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/</link>
		<comments>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 23:02:50 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=149</guid>
		<description><![CDATA[Unter C# kann man mittels XmlSerializer XML Daten zu Objekten deserialisieren oder den umgekehrten Weg, Objekte zu XML umwandeln. Hier hat die Dokumentation jedoch eine beachtliche Lücke. XmlSerialiser generiert nämlich jedesmal on-the-fly eine DLL um den XML Stream typ-sicher umwandeln zu können. Hierfür wird eine C# Source-Datei generiert und csc.exe aufgerufen. Die erstellten Dateien werden [...]]]></description>
			<content:encoded><![CDATA[<p>Unter C# kann man mittels <a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx" target="_blank" title="MSDN: XmlSerializer Class">XmlSerializer</a> XML Daten zu Objekten deserialisieren oder den umgekehrten Weg, Objekte zu XML umwandeln.<br />
Hier hat die Dokumentation jedoch eine beachtliche Lücke. XmlSerialiser generiert nämlich jedesmal on-the-fly eine DLL um den XML Stream typ-sicher umwandeln zu können. Hierfür wird eine C# Source-Datei generiert und <a href="http://msdn.microsoft.com/en-us/library/78f4aasd.aspx" target="_blank" title="MSDN: Command-line Building With csc.exe">csc.exe</a> aufgerufen.<br />
<span id="more-149"></span><br />
Die erstellten Dateien werden im %TEMP%-Verzeichnis erstellt und in der Standardeinstellung sofort wieder gelöscht, wenn sie nicht mehr benötigt werden.<br />
Das automatische Löschen kann man umgehen, wenn man z.B. in <code>WINDOWS\Microsoft.NET\Framework\v2.0...\CONFIG\maschine.config</code> folgenden Eintrag hinzufügt:</p>
<pre class="brush: xml">
&lt;system.diagnostics&gt;
  &lt;switches&gt;
     &lt;add name=&quot;XmlSerialization.Compilation&quot; value=&quot;true&quot; /&gt;
  &lt;/switches&gt;
&lt;/system.diagnostics&gt;
</pre>
<p>Nun kann man entweder die .CS-Datei oder die generierte DLL-Datei in das eigene Projekt integrieren. Dann ist die direkte Nutzung von XmlSerializer nicht mehr notwendig.</p>
<p>Mit dieser Lösung wird zur Laufzeit die csc.exe nicht mehr benötigt und entsprechend die Performance verbessert.</p>
<p>Links:<br />
- XmlSerializer: <a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx" target="_blank" title="MSDN: XmlSerializer Class">http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Add-on Pencil</title>
		<link>http://my.center-of.info/2008/11/13/firefox-add-on-pencil/</link>
		<comments>http://my.center-of.info/2008/11/13/firefox-add-on-pencil/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 22:21:07 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=44</guid>
		<description><![CDATA[Um schnell Diagramme bzw. Screendesign zu erstellen, empfehlt es sich das Firefox Add-on &#8220;Pencil&#8221; zu nutzen. Pencil bietet die gängisten HTML-Elemente (Inputfeld, Tabellenstruktur, Select-Boxen etc.) und ein paar zusätzliche Elemente (Notizen, Pfeile etc.) um somit in kurzester Zeit schöne Screendesigns zusammen zu klicken. Die einzelnen Elemente können gruppiert werden und an andere Elemten ausgerichtet werden. [...]]]></description>
			<content:encoded><![CDATA[<p>Um schnell Diagramme bzw. Screendesign zu erstellen, empfehlt es sich das Firefox Add-on &#8220;<a title="Pencil Homepage" href="http://www.evolus.vn/Pencil/Home.html">Pencil</a>&#8221; zu nutzen. Pencil bietet die gängisten HTML-Elemente (Inputfeld, Tabellenstruktur, Select-Boxen etc.) und ein paar zusätzliche Elemente (Notizen, Pfeile etc.) um somit in kurzester Zeit schöne Screendesigns zusammen zu klicken. Die einzelnen Elemente können gruppiert werden und an andere Elemten ausgerichtet werden. Jedes Element beinhaltet ein paar Einstellungsmöglichkeiten wie Farbe, Schriftart und Größe.</p>
<p><span id="more-44"></span></p>
<p>Die erstellten Designs können dann als PNG exportiert werden.</p>
<p>Die zwei Abbildungen zeigen die Arbeitsfläche und die Shapes:</p>

<a href='http://my.center-of.info/2008/11/13/firefox-add-on-pencil/pencil_shapes/' title='Pencil Shapes'><img width="150" height="150" src="http://my.center-of.info/wp-content/uploads/2008/11/pencil_shapes-150x150.gif" class="attachment-thumbnail" alt="Pencil Shapes" title="Pencil Shapes" /></a>
<a href='http://my.center-of.info/2008/11/13/firefox-add-on-pencil/pencil/' title='Pencil Workspace'><img width="150" height="150" src="http://my.center-of.info/wp-content/uploads/2008/11/pencil-150x150.gif" class="attachment-thumbnail" alt="Pencil Workspace" title="Pencil Workspace" /></a>

<p>Ein paar Verbesserungen wären:</p>
<ul>
<li> Die Festlegung der konkreten Größe der Elemente (Width und Height)</li>
<li>Bessere Tabellenunterstützung (z.B. Definition der Spaltenränder)</li>
</ul>
<p>Links:</p>
<p>[1] <a title="Pencil Homepage" href="http://www.evolus.vn/Pencil/Home.html">Pencil</a></p>
<p>[2] <a title="Firefox Add-on Pencil" href="https://addons.mozilla.org/en-US/firefox/addon/8487">Firefox Add-on Pencil</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2008/11/13/firefox-add-on-pencil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

