<?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>Schreinert.com &#187; Liferay</title>
	<atom:link href="http://www.schreinert.com/tags/liferay/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.schreinert.com</link>
	<description>Software-Entwicklung • IT-Projektmanagement  • E-Commerce-Beratung</description>
	<lastBuildDate>Sat, 23 Jul 2011 08:46:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Java Content Repository API (JCR) mit Jackrabbit</title>
		<link>http://www.schreinert.com/java-content-repository-jcr-mit-jackrabbit-268/</link>
		<comments>http://www.schreinert.com/java-content-repository-jcr-mit-jackrabbit-268/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 13:05:57 +0000</pubDate>
		<dc:creator>Stefan Schreinert</dc:creator>
				<category><![CDATA[Produkt-Tests]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Derby]]></category>
		<category><![CDATA[Jackrabbit]]></category>
		<category><![CDATA[JCR]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Mirage]]></category>

		<guid isPermaLink="false">http://www.schreinert.com/?p=268</guid>
		<description><![CDATA[In einem aktuellen Projekt habe ich als Herausforderung, eine gro&#223;e Menge an Daten zu speichern, wobei sich das Datenschema h&#228;ufig &#228;ndern kann. In diesem Zusammenhang habe ich die OpenSource-Implementierung &#8221; Jackrabbit&#8221; (v1.6.0) des Java Content Repository API (JCR, JSR-170) beispielhaft angebunden.Zu Beginn m&#252;ssen (wie immer) die abh&#228;ngigen Bibliotheken eingebunden werden. Dies geschieht einfach per Apache [...]]]></description>
			<content:encoded><![CDATA[<p>In einem aktuellen Projekt habe ich als Herausforderung, eine gro&#223;e Menge an Daten zu speichern, wobei sich das Datenschema h&#228;ufig &#228;ndern kann. In diesem Zusammenhang habe ich die OpenSource-Implementierung &#8221; <a href="http://jackrabbit.apache.org/">Jackrabbit</a>&#8221; (v1.6.0) des Java Content Repository API (JCR, <a href="http://jcp.org/aboutJava/communityprocess/final/jsr170/index.html">JSR-170</a>) beispielhaft angebunden.<img src="http://www.schreinert.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />Zu Beginn m&#252;ssen (wie immer) die abh&#228;ngigen Bibliotheken eingebunden werden. Dies geschieht einfach per <a href="http://maven.apache.org/">Apache Maven</a> oder per folgender Liste:</p>
<ul>
<li> <a href="http://jackrabbit.apache.org/">jackrabbit-core</a>: Die Implementierung des JSR-170 Standards</li>
<li> <a href="http://commons.apache.org/collections/">commons-collections</a>: Bekanntes &#8220;commons&#8221; Paket f&#252;r Datenstrukturen</li>
<li> <a href="http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html">concurrent</a>: Bibliothek f&#252;r Concurrent Programming</li>
<li>jcr: Die JSR-170 API</li>
<li>log4j: Der bekannte Logger</li>
<li>slfj4: Simple Logging Facade for Java</li>
<li>xerces: XML Parser</li>
<li> <a href="http://db.apache.org/derby/">derby</a>: Wenn der Workspace in einer Datenbank liegen soll.</li>
</ul>
<p>Auf den Projektseiten von Jackrabbit empfiehlt sich zu Beginn die treffende genannte Seite &#8221; <a href="http://jackrabbit.apache.org/first-hops.html">First Hops</a>&#8220;, auf der drei einfache Beispiele f&#252;r die Verwendung des JCR gelistet sind: Der erste &#8220;Login&#8221;, das Anlegen und Abfragen von Daten und das Importieren einer XML-Quelle. Vor der ersten Verwendung muss aber noch das Repository konfiguriert sein. Jackrabbit sucht standardm&#228;&#223;ig im Klassenpfad nach einer Daten namens repository.xml. Auf den Projektseiten lassen sich die <a href="http://jackrabbit.apache.org/jackrabbit-configuration.html">Einstellungen</a> genau nachlesen, f&#252;r den ersten Einsatz empfiehlt sich die <a href="http://jackrabbit.apache.org/jackrabbit-configuration.data/repository.xml">Standard-Datei</a>.</p>
<p>Hilfreich f&#252;r die ersten Spr&#252;nge mit Jackrabbit ist auch die IBM-Seite &#8221; <a href="http://www.ibm.com/developerworks/java/library/j-jcr/">Introducing the Java Content Repository API</a>&#8220;.</p>
<p>F&#252;r mein Projekt hat sich gezeigt, dass der Import von mehreren tausend Knoten mehrere Minuten ben&#246;tigen und zudem der RAM-Speicherbedarf sehr stark ansteigt. So kam bereits beim Versuch 5.000 Knoten mit je 160 Properties ein Out-Of-Memory &#8212; bei 1 GB bereitgestelltem Hauptspeicher.</p>
<p>Wer das JCR f&#252;r die Verwaltung von Inhalten (Content-Management) einsetzen m&#246;chte, kann einen Blick auf das Projekt &#8221; <a href="https://mirage.dev.java.net/">mirage</a>&#8221; werfen. Aufbauend auf Jackrabbit und einer Workflow-API bietet Mirrage die M&#246;glichkeit, Content zu verwalten. Wer den Einsatz genauer sehen m&#246;chte, kann sich die Content-Management-Portlets des <a href="http://www.google.de/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.liferay.com%2F&amp;ei=PNa0SobGC4_K_gaW4I2pDQ&amp;usg=AFQjCNHQReSNMvnqwn1FuHnufm1cnVHGMw">Liferay Portals</a> genauer anschauen. Diese verwenden n&#228;mlich &#8220;mirage&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schreinert.com/java-content-repository-jcr-mit-jackrabbit-268/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
