You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2019/05/20 11:23:20 UTC

svn commit: r1859550 [14/26] - in /jackrabbit/site/live/archive: ./ wiki/ wiki/JCR/ wiki/JCR/attachments/ wiki/JCR/attachments/115513387/ wiki/JCR/attachments/115513390/ wiki/JCR/attachments/115513408/ wiki/JCR/attachments/115513413/ wiki/JCR/attachmen...

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html Mon May 20 11:23:18 2019
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitOnTomcat6</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitOnTomcat6
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    
+<h1 id="JackrabbitOnTomcat6-JackrabbitOnTomcat6">Jackrabbit On Tomcat 6</h1>
+<ul>
+	<li>This applies to Jackrabbit 1.6, Tomcat 6 and Mysql 5</li>
+	<li>My configuration is Ubuntu Server 8.10 (Intrepid) using stock tomcat6 install from ubuntu repository. Can easily tweak this for vanilla tomcat6 install on any distro.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnTomcat6-Prerequisites">Prerequisites</h2>
+
+<h3 id="JackrabbitOnTomcat6-Ubuntusetup">Ubuntu setup</h3>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>apt-get install mysql-server sun-java6-jdk tomcat6 tomcat6-admin libmysql-java
+ln -s /usr/share/java/mysql.jar /usr/share/tomcat6/lib/mysql.jar
+</pre>
+</div></div>
+<p>Note: I am using the <a href="http://ourdelta.org" class="external-link" rel="nofollow">http://ourdelta.org</a> version of MySQL - will work with any version though</p>
+
+
+<h3 id="JackrabbitOnTomcat6-JCR">JCR</h3>
+
+<p>Make sure jcr-2.0.jar is in /usr/share/tomcat6/lib (don't link it to /var/lib/tomcat6/lib as well as the other tomcat libraries - this seemed to cause problems) </p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>cd /usr/share/tomcat6/lib
+wget http://mirrors.ibiblio.org/pub/mirrors/maven2/javax/jcr/jcr/2.0/jcr-2.0.jar
+</pre>
+</div></div>
+
+<h2 id="JackrabbitOnTomcat6-JackrabbitInstallation">Jackrabbit Installation</h2>
+
+<p>Copy the jackrabbit war to webapps directory</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>wget http://www.apache.org/dist/jackrabbit/1.6.4/jackrabbit-webapp-1.6.4.war
+cp jackrabbit-webapp-1.6.4.war /var/lib/tomcat6/webapps/jackrabbit.war
+</pre>
+</div></div>
+
+<p>Note: please use mirror</p>
+
+<p>You can now go to <a href="http://localhost:8080/jackrabbit" class="external-link" rel="nofollow">http://localhost:8080/jackrabbit</a> and you should see the welcome page. Create a standard default repository (mine is called &quot;jackrabbit&quot;) When creating a default repository, make sure the directory is writeable for Tomcat. Otherwise you will get messages like 'content repository already exists', however, it doesn't. E.g. the default repository would be created in /var/lib/tomcat, so change the owner to user tomcat</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>chown -R tomcat6:tomcat6 /var/lib/tomcat6
+</pre>
+</div></div>
+
+<h2 id="JackrabbitOnTomcat6-CustomisationforMysql">Customisation for Mysql</h2>
+
+<p>Create Mysql database (mine is called jackrabbit here with standard user/password):</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>mysqladmin -u root create jackrabbit
+mysql -u root jackrabbit -e &quot;GRANT ALL ON jackrabbit.* TO &#39;jackrabbit&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;jackrabbit&#39;&quot;
+</pre>
+</div></div>
+
+<p>Ok, this is the fiddly part. Edit /var/lib/tomcat6/temp/jackrabbit and do either 1. or 1. &amp; 2.</p>
+
+<h3 id="JackrabbitOnTomcat6-1.">1. <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=PersistenceManager&amp;linkCreation=true&amp;fromPageId=115513436">PersistenceManager</a></h3>
+
+<p>This stores all the repository in mysql - all the file config is still on the file system. Find all the occurances of something like this:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;PersistenceManager class=&quot;org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager&quot;&gt;
+  &lt;param name=&quot;url&quot; value=&quot;jdbc:derby:${wsp.home}/db;create=true&quot;/&gt;
+  &lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;${wsp.name}_&quot;/&gt;
+&lt;/PersistenceManager&gt;
+</pre>
+</div></div>
+
+<p>and change them to </p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;PersistenceManager class=&quot;org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager&quot;&gt;
+  &lt;param name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/jackrabbit&quot;/&gt;
+  &lt;param name=&quot;user&quot; value=&quot;jackrabbit&quot; /&gt;
+  &lt;param name=&quot;password&quot; value=&quot;jackrabbit&quot; /&gt;
+  &lt;param name=&quot;schema&quot; value=&quot;mysql&quot;/&gt;
+  &lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;pm_someuniqueprefix_&quot;/&gt;
+&lt;/PersistenceManager&gt;
+</pre>
+</div></div>
+
+<h3 id="JackrabbitOnTomcat6-2.">2. <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=DbFileSystem&amp;linkCreation=true&amp;fromPageId=115513436">DbFileSystem</a></h3>
+
+<p>This part is optional, but if you do this <em>everything</em> is stored in the mysql database. Find all the occurances of something like this:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;FileSystem class=&quot;org.apache.jackrabbit.core.fs.local.LocalFileSystem&quot;&gt;
+  &lt;param name=&quot;path&quot; value=&quot;${rep.home}/repository&quot;/&gt;
+&lt;/FileSystem&gt;
+</pre>
+</div></div>
+
+<p>and replace with this:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;FileSystem class=&quot;org.apache.jackrabbit.core.fs.db.DbFileSystem&quot;&gt;
+  &lt;param name=&quot;driver&quot; value=&quot;com.mysql.jdbc.Driver&quot;/&gt;
+  &lt;param name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/jackrabbit&quot;/&gt;
+  &lt;param name=&quot;user&quot; value=&quot;jackrabbit&quot;/&gt;
+  &lt;param name=&quot;password&quot; value=&quot;jackrabbit&quot;/&gt;
+  &lt;param name=&quot;schema&quot; value=&quot;mysql&quot;/&gt;
+  &lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;fs_someuniqueprefix_&quot;/&gt;
+&lt;/FileSystem&gt;
+</pre>
+</div></div>
+
+<p>Make sure you change the part someuniqueprefix to something unique for the type of repository configuration item you are modifying (ie. workspace, versioning etc)</p>
+
+<h3 id="JackrabbitOnTomcat6-Cleanup&amp;Test">Cleanup &amp; Test</h3>
+
+<p>Now delete the version, workspaces and repository directories and redeploy the app (or restart tomcat if you like)</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>rm -rf /var/lib/tomcat6/temp/jackrabbit/version /var/lib/tomcat6/temp/jackrabbit/workspaces /var/lib/tomcat6/temp/jackrabbit/repository
+/etc/init.d/tomcat6 restart
+</pre>
+</div></div>
+
+<p>If everything worked, if you issue the command</p>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>mysql -u jackrabbit -pjackrabbit jackrabbit -e &quot;show tables&quot;
+</pre>
+</div></div>
+<p>You should get something like this:</p>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>+----------------------+
+| Tables_in_jackrabbit |
++----------------------+
+| FS_REPO_FSENTRY      | 
+| FS_VERSION_FSENTRY   | 
+| FS_WORKSPACE_FSENTRY | 
+| PM_VERSION_BINVAL    | 
+| PM_VERSION_BUNDLE    | 
+| PM_VERSION_NAMES     | 
+| PM_VERSION_REFS      | 
+| PM_WS_BINVAL         | 
+| PM_WS_BUNDLE         | 
+| PM_WS_NAMES          | 
+| PM_WS_REFS           | 
++----------------------+
+</pre>
+</div></div>
+
+<p>and should be able to access the repository in exactly the same way as if it was out of the box (file/derby) based.</p>
+
+<h2 id="JackrabbitOnTomcat6-CommonProblems">Common Problems</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>org.apache.jackrabbit.rmi.client.RemoteRepositoryException - Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused
+</pre>
+</div></div>
+<p> - Make sure mysql.jar is in right place.</p>
+<h2 id="JackrabbitOnTomcat6-OtherLinks">Other Links</h2>
+<ul>
+	<li><a href="http://sujitpal.blogspot.com/2007/08/apache-jackrabbit-is-it-for-me.html" class="external-link" rel="nofollow">http://sujitpal.blogspot.com/2007/08/apache-jackrabbit-is-it-for-me.html</a></li>
+	<li><a href="http://ke-cai.net/configure-jackrabbit-use-mysql/" class="external-link" rel="nofollow">http://ke-cai.net/configure-jackrabbit-use-mysql/</a></li>
+	<li><a href="http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Clustering" class="external-link" rel="nofollow">http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Clustering</a></li>
+</ul>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6_115513436.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html Mon May 20 11:23:18 2019
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitOnTomcat6withJndiAndPostgresql</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitOnTomcat6withJndiAndPostgresql
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    
+<h1 id="JackrabbitOnTomcat6withJndiAndPostgresql-JackrabbitonTomcat6withJNDIandPostgreSQL">Jackrabbit on Tomcat6 with JNDI and PostgreSQL</h1>
+
+<h2 id="JackrabbitOnTomcat6withJndiAndPostgresql-Installation">Installation</h2>
+
+<p>Install tomcat and postgresql on your system and verify they are working correctly.  On Debian/Ubuntu development systems you can install both with &quot;apt-get&quot;.  Be aware that many production sites prefer to install all server software manually.</p>
+
+<p>(Sidenote: it is a considered good practice to use a separate partition for each service's data on a production server, e.g., for <strong>/var/lib/postgresql/8.3</strong> and <strong>/var/lib/tomcat6</strong>.  This makes it easier to perform specialized backups, migrate the data from one server to another, etc.  There's little cost to this if you use Linux Logical Virtual Modules (lvm), and it's not really necessary on a development server.)</p>
+
+<p>Install the jackrabbit .war file.  If the system will be a dedicated jackrabbit server you can rename the jackrabbit-1.5.4.war file to ROOT.war and have it unpacked as ROOT.  This means you can access the jackrabbit instance as <a href="http://example.com:8080/" class="external-link" rel="nofollow">http://example.com:8080/</a> instead of <a href="http://example.com:8080/jackrabbit-1.5.4/" class="external-link" rel="nofollow">http://example.com:8080/jackrabbit-1.5.4/</a>.</p>
+
+<p>Create a <strong>${catalina.home}/common</strong> directory and copy <em>jcr-1.0.jar</em> to it.  Edit <strong>${catalina.home}/conf/catalina.properties</strong> and add <em>${catalina.home}/common,${catalina.home}/common/*.jar</em> to the <em>common.loader</em> entry.  This allows us to add libraries to the server without mixing them with the standard tomcat libraries - something that's extremely helpful when things stop working and you aren't sure which library is the culprit!</p>
+
+<p>Finally, edit <strong>/etc/default/tomcat6</strong> to add <em>-Djava.rmi.server.hostname=hostname</em> to <em>CATALINA_OPTS</em>, where you have changed 'hostname' to a public network interface.  If you don't do this the RMI library will probably pick something weird like 127.0.1.1 (NOT 127.0.0.1) and you'll spend hours knocking head-shaped holes in the wall.  You will need to use a public network interface to allow others to connect to the RMI server.</p>
+
+<h2 id="JackrabbitOnTomcat6withJndiAndPostgresql-BasicConfiguration">Basic Configuration</h2>
+
+<ul>
+	<li>Create a user and database for jackrabbit.  (see: createuser, createdb).
+<br class="atl-forced-newline"/></li>
+	<li>Create an external directory for the jackrabbit files.  By default it puts them somewhere in the tomcat tree (under bin?), but it's a good practice to put that someplace external from tomcat since you may want to access the repository later via a mechanism other than the tomcat webapp.  I put it under <strong>/srv/jackrabbit</strong>.
+<br class="atl-forced-newline"/></li>
+	<li>Copy the <strong>bootstrap.properties</strong> and <strong>repository.xml</strong> files from <strong>/WEB-INF/templates</strong> to <em>/srv/jackrabbit</em>.
+<br class="atl-forced-newline"/></li>
+	<li>Edit <strong>/WEB-INF/web.xml</strong> and change the value of all <em>bootstrap-config</em> parameters to <strong>/srv/jackrabbit/bootstrap.properties</strong>.
+<br class="atl-forced-newline"/></li>
+	<li>Edit <strong>/srv/jackrabbit/bootstrap.properties</strong> so <em>repository.home=/srv/jackrabbit</em> and <em>repository.conf=/srv/jackrabbit/repository.xml</em>.
+<br class="atl-forced-newline"/></li>
+	<li>Edit <strong>/srv/jackrabbit/repository.xml</strong> so all <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=FileSystem&amp;linkCreation=true&amp;fromPageId=115513437">FileSystem</a> stanzas use <em>org.apache.jackrabbit.core.fs.db.DbFileSystem</em> and all <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=PersistenceManager&amp;linkCreation=true&amp;fromPageId=115513437">PersistenceManager</a> stanzas use <em>org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager</em>.  Set <em>schema</em> to <em>postgresql</em> in each stanza's configuration.
+<br class="atl-forced-newline"/></li>
+	<li>The <a href="DataStore_115513387.html">DataStore</a> stanza should use <em>org.apache.jackrabbit.core.data.db.DbDataStore</em> with a <em>databaseType</em> (not <em>schema</em>) of <em>postgresql</em>.
+<br class="atl-forced-newline"/></li>
+	<li>Set all <em>schemaObjectPrefix</em> as described in other wiki entries.  (I use <em>FS</em>_,</li>
+</ul>
+
+
+<p><em>FS_WSP</em>${wsp.name}<em>, _PM_WSP</em>${wsp.name}_, etc.)</p>
+
+<ul>
+	<li>In all of these stanzas set the <em>driver</em> to <em>org.postgresql.Driver</em>, the <em>url</em> to <em>jdbc:postgresql://host:5432/dbname</em>, and the <em>user</em> and <em>password</em> as appropriate.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Restart tomcat.  The database should now contain about 20 tables, and more importantly we know that the basic infrastructure is in place and we just need to refine it to use JNDI.</p>
+
+<h2 id="JackrabbitOnTomcat6withJndiAndPostgresql-JNDIConfiguration">JNDI Configuration</h2>
+
+<ul>
+	<li>Copy your postgresql jdbc jar, <em>postgresql-xxx.jar</em>, to <strong>${catalina.home}/common</strong>.
+<br class="atl-forced-newline"/></li>
+	<li>If you unpacked the jackrabbit .war file as ROOT, edit <strong>${catalina.home}/conf/Catalina/localhost/ROOT.xml</strong>.  If not, edit <strong>conf/Catalina/localhost/jackrabbit-1.5.4.xml</strong> or whatever you named the webapp.  This file may not yet exist.  You want <em>root</em> to own this file, not the tomcat user, so prevent it from being overridden when redeploying the jackrabbit webapp.
+<br class="atl-forced-newline"/></li>
+	<li>Add the following Resource stanza to the Context stanza:
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>&lt;Resource name=&quot;jdbc/jcr&quot;<br/>
+   auth=&quot;container&quot;<br/>
+   type=&quot;javax.sql.DataSource&quot;<br/>
+   driverClassName=&quot;org.postgresql.Driver&quot;<br/>
+   maxActive=&quot;20&quot;<br/>
+   maxIdle=&quot;10&quot;<br/>
+   maxWait=&quot;-1&quot;<br/>
+   url=&quot;jdbc:postgresql://localhost:5432/jcr&quot;<br/>
+   username=&quot;jcr&quot;<br/>
+   password=&quot;jackrabbit&quot;<br/>
+   validationQuery=&quot;select 1&quot;/&gt;</p>
+
+<ul>
+	<li>Add the following stanza to the bottom of your <strong>web.xml</strong> file:
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>&lt;resource-ref&gt;<br/>
+   &lt;description&gt;JCR database connection&lt;/description&gt;<br/>
+   &lt;res-ref-name&gt;jdbc/jcr&lt;/res-ref-name&gt;<br/>
+   &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br/>
+   &lt;res-auth&gt;Container&lt;/res-auth&gt;<br/>
+&lt;/resource-ref&gt;</p>
+
+<ul>
+	<li>Edit the <strong>repository.xml</strong> file so that all <em>driver</em> are set to <em>javax.naming.InitialContext</em>,</li>
+</ul>
+
+
+<p>all <em>url</em> are set to <em>java:comp/env/jdbc/jcr</em>, and all <em>user</em> and <em>password</em> entries are dropped.</p>
+
+<ul>
+	<li>Restart tomcat.  Check the logs for errors.  Jackrabbit should now be running using the JNDI-specified database.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnTomcat6withJndiAndPostgresql-ChangingDatabases">Changing Databases</h2>
+
+<p>At this point it should be trivial to change the database: edit <strong>ROOT.xml</strong> and restart tomcat.  You'll want to back up and restore the jackrabbit instance as you do this.</p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html Mon May 20 11:23:18 2019
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitOnTomcat</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitOnTomcat
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    
+<h1 id="JackrabbitOnTomcat-JackrabbitOnTomcat">Jackrabbit On Tomcat</h1>
+<ul>
+	<li>This applies to Tomcat 5.5 and Oracle 10g</li>
+	<li>Other versions should work with the same configuration as well.</li>
+	<li>Make sure you have ojdbc14.jar in common/lib</li>
+	<li>On the <a href="ExamplesPage_115513397.html">ExamplesPage</a> a patch is included that can be run in Eclipse and against jackrabbit-core-1.1.1 to create the JNDI Oracle support in Jackrabbit.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnTomcat-server.xml">server.xml</h2>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>  &lt;Resource
+                                name=&quot;jdbc/jcr&quot;
+                                auth=&quot;Container&quot;
+                                type=&quot;oracle.jdbc.pool.OracleDataSource&quot;
+                                user=&quot;jackrabbit&quot;
+                                password=&quot;&quot;
+                                driverClassName=&quot;oracle.jdbc.OracleDriver&quot;
+                                url=&quot;jdbc:oracle:thin:@localhost:1521:XE&quot;
+                                factory=&quot;oracle.jdbc.pool.OracleDataSourceFactory&quot;
+                                maxActive=&quot;20&quot;
+                                maxIdle=&quot;10&quot;
+                                maxWait=&quot;-1&quot;
+                        /&gt;
+</pre>
+</div></div>
+
+<ul>
+	<li>An <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=OracleDatasource&amp;linkCreation=true&amp;fromPageId=115513435">OracleDatasource</a> and <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=OracleDataSourceFactory&amp;linkCreation=true&amp;fromPageId=115513435">OracleDataSourceFactory</a> must be configured so JNDI returns the appropriate datasource for the Oracle extensions</li>
+	<li><strong>Please take note: use <code>user</code> and not the default <code>username</code> in the resources section in server.xml</strong></li>
+	<li>the repository.xml  must be configured as follows:
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>	&lt;FileSystem class=&quot;org.apache.jackrabbit.core.fs.db.JNDIOracleDatabaseFileSystem&quot;&gt;
+	        &lt;param name=&quot;path&quot; value=&quot;${rep.home}&quot;/&gt;
+		&lt;param name=&quot;dataSourceLocation&quot; value=&quot;jdbc/jcr&quot;/&gt;
+		&lt;param name=&quot;checkValidConnectionSQL&quot; value=&quot;select 0 from dual&quot; /&gt;
+		&lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;default&quot;/&gt;
+		&lt;param name=&quot;schema&quot; value=&quot;oracle&quot; /&gt;
+	&lt;/FileSystem&gt;
+
+
+	&lt;PersistenceManager class=&quot;org.apache.jackrabbit.core.state.db.JNDIOracleDatabasePersistenceManager&quot;&gt;
+                &lt;param name=&quot;path&quot; value=&quot;${wsp.home}/db&quot;/&gt;
+		&lt;param name=&quot;dataSourceLocation&quot; value=&quot;jdbc/jcr&quot;/&gt;
+		&lt;param name=&quot;checkValidConnectionSQL&quot; value=&quot;select 0 from dual&quot; /&gt;				
+		&lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;pm_def&quot;/&gt;
+		&lt;param name=&quot;schema&quot; value=&quot;oracle&quot; /&gt;
+ 		&lt;param name=&quot;externalBLOBs&quot; value=&quot;false&quot;/&gt;
+	&lt;/PersistenceManager&gt;
+
+
+</pre>
+</div></div>
+<ul>
+	<li>What about other <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=FileSystem&amp;linkCreation=true&amp;fromPageId=115513435">FileSystem</a> and <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=PersistenceManager&amp;linkCreation=true&amp;fromPageId=115513435">PersistenceManager</a> other than Oracle? See <a href="JackrabbitOnTomcat6_115513436.html">JackrabbitOnTomcat6</a></li>
+	<li>What about using the Tomcat <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=UserDatabase&amp;linkCreation=true&amp;fromPageId=115513435">UserDatabase</a> for user authentication and roles?</li>
+</ul>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnTomcat_115513435.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html Mon May 20 11:23:18 2019
@@ -0,0 +1,417 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitOnWeblogic</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitOnWeblogic
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    
+<h1 id="JackrabbitOnWeblogic-JackrabbitOn">Jackrabbit On <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=WebLogic&amp;linkCreation=true&amp;fromPageId=115513438">WebLogic</a></h1>
+
+<h2 id="JackrabbitOnWeblogic-Appliestoversions">Applies to versions</h2>
+<ul>
+	<li><a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=WebLogic&amp;linkCreation=true&amp;fromPageId=115513438">WebLogic</a> 8.1 SP4</li>
+	<li>Oracle 9i
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnWeblogic-SettingupJNDIinJackrabbit">Setting up JNDI in Jackrabbit</h2>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>        &lt;FileSystem class=&quot;org.apache.jackrabbit.core.fs.db.JNDIOracleDatabaseFileSystem&quot;&gt;
+	        &lt;param name=&quot;path&quot; value=&quot;${rep.home}&quot;/&gt;
+		&lt;param name=&quot;dataSourceLocation&quot; value=&quot;jdbc/jcr&quot;/&gt;
+		&lt;param name=&quot;checkValidConnectionSQL&quot; value=&quot;select 0 from dual&quot; /&gt;
+		&lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;default&quot;/&gt;
+		&lt;param name=&quot;schema&quot; value=&quot;oracle&quot; /&gt;
+	&lt;/FileSystem&gt;
+
+	&lt;PersistenceManager class=&quot;org.apache.jackrabbit.core.state.db.JNDIOracleDatabasePersistenceManager&quot;&gt;
+                &lt;param name=&quot;path&quot; value=&quot;${wsp.home}/db&quot;/&gt;
+		&lt;param name=&quot;dataSourceLocation&quot; value=&quot;jdbc/jcr&quot;/&gt;
+		&lt;param name=&quot;checkValidConnectionSQL&quot; value=&quot;select 0 from dual&quot; /&gt;				
+		&lt;param name=&quot;schemaObjectPrefix&quot; value=&quot;pm_def&quot;/&gt;
+		&lt;param name=&quot;schema&quot; value=&quot;oracle&quot; /&gt;
+ 		&lt;param name=&quot;externalBLOBs&quot; value=&quot;false&quot;/&gt;
+	&lt;/PersistenceManager&gt;
+</pre>
+</div></div>
+<ul>
+	<li>With Oracle you need an <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=OracleConnection&amp;linkCreation=true&amp;fromPageId=115513438">OracleConnection</a> to be able to use Oracle extensions such as BLOB, Struct etc.</li>
+	<li>For Oracle support with JNDI a new classes are implemented: <code>JNDIOracleDatabaseFileSystem</code> and <code>JNDIOracleDatabasePersistenceManager</code>. The code for these classes stored on the <a href="ExamplesPage_115513397.html">ExamplesPage</a> -&gt; see the patch included on that page.
+<br class="atl-forced-newline"/>
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnWeblogic-Configuring">Configuring <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=WebLogic&amp;linkCreation=true&amp;fromPageId=115513438">WebLogic</a></h2>
+<ul>
+	<li>Use the default Oracle driver</li>
+	<li>Configure a datasource</li>
+	<li>create a JNDI name</li>
+	<li>now webLogic will return a wrapper <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=DataSource&amp;linkCreation=true&amp;fromPageId=115513438">DataSource</a> for Oracle from which Jackrabbit can use Oracle extensions
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="JackrabbitOnWeblogic-UsingWebDAV">Using WebDAV</h2>
+<ul>
+	<li>No special configuration is needed for using WebDAV
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h1 id="JackrabbitOnWeblogic-jackrabbitonWLP">jackrabbit on WLP</h1>
+
+<ul>
+	<li>Download Jackrabbit JCA Resource Adapter (e.g. jackrabbit-jca-1.3.1.rar ) from - <a href="http://jackrabbit.apache.org/downloads.html" class="external-link" rel="nofollow">http://jackrabbit.apache.org/downloads.html</a></li>
+	<li>Explode the rar ** put jars in system class path (this is architecturally unsound, use RMI appraoch for real world application) ** put only the MANIFEST.MF, ra.xml &amp; weblogic-ra.xml in autodeploy/jackrabbit-jca-1.3.1/META-INF dir (WLS Console doesn't seem to work well with .rar files)</li>
+	<li>modify ra.xml to point to repository directory &amp; repository.xml (repository must be in domain root or BEA_HOME)
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="JackrabbitOnWeblogic-Samplera.xml">Sample ra.xml</h3>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  Sample ra.xml
+  --&gt;
+&lt;connector xmlns=&quot;http://java.sun.com/xml/ns/j2ee&quot;
+    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/j2ee
+           http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd&quot;
+    version=&quot;1.5&quot;&gt;
+
+    &lt;display-name&gt;Jackrabbit JCR Adapter&lt;/display-name&gt;
+    &lt;vendor-name&gt;Apache.org&lt;/vendor-name&gt;
+    &lt;eis-type&gt;JCR Adapter&lt;/eis-type&gt;
+    &lt;resourceadapter-version&gt;1.0&lt;/resourceadapter-version&gt;
+
+    &lt;resourceadapter&gt;
+        &lt;resourceadapter-class&gt;org.apache.jackrabbit.jca.JCAResourceAdapter&lt;/resourceadapter-class&gt;
+        &lt;outbound-resourceadapter&gt;
+
+            &lt;connection-definition&gt;
+                &lt;managedconnectionfactory-class&gt;org.apache.jackrabbit.jca.JCAManagedConnectionFactory&lt;/managedconnectionfactory-class&gt;
+                
+                &lt;config-property&gt;
+                    &lt;config-property-name&gt;HomeDir&lt;/config-property-name&gt;
+                    &lt;config-property-type&gt;java.lang.String&lt;/config-property-type&gt;
+                    &lt;config-property-value&gt;
+                        @DOMAIN_HOME/jackrabbit
+                    &lt;/config-property-value&gt;
+                &lt;/config-property&gt;
+                &lt;config-property&gt;
+                    &lt;config-property-name&gt;ConfigFile&lt;/config-property-name&gt;
+                    &lt;config-property-type&gt;java.lang.String&lt;/config-property-type&gt;
+                    &lt;config-property-value&gt;
+                        @DOMAIN_HOME/jackrabbit/repository.xml
+                    &lt;/config-property-value&gt;
+                &lt;/config-property&gt;
+                
+                &lt;connectionfactory-interface&gt;javax.jcr.Repository&lt;/connectionfactory-interface&gt;
+                &lt;connectionfactory-impl-class&gt;org.apache.jackrabbit.jca.JCARepositoryHandle&lt;/connectionfactory-impl-class&gt;
+                
+                &lt;connection-interface&gt;javax.jcr.Session&lt;/connection-interface&gt;
+                &lt;connection-impl-class&gt;org.apache.jackrabbit.jca.JCASessionHandle&lt;/connection-impl-class&gt;
+            &lt;/connection-definition&gt;
+            
+            &lt;transaction-support&gt;XATransaction&lt;/transaction-support&gt;
+            &lt;reauthentication-support&gt;false&lt;/reauthentication-support&gt;
+        &lt;/outbound-resourceadapter&gt;            
+    &lt;/resourceadapter&gt;
+&lt;/connector&gt;
+</pre>
+</div></div> 
+
+<h3 id="JackrabbitOnWeblogic-Sampleweblogic-ra.xml">Sample weblogic-ra.xml</h3>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE weblogic-connection-factory-dd SYSTEM &quot;http://www.bea.com/servers/wls810/dtd/weblogic810-ra.dtd&quot; &gt;
+
+&lt;!--
+  Sample weblogic-ra.xml
+  --&gt;
+
+&lt;weblogic-connection-factory-dd&gt;
+  &lt;connection-factory-name&gt;contentRepository&lt;/connection-factory-name&gt;
+  &lt;jndi-name&gt;repository&lt;/jndi-name&gt;
+
+  &lt;pool-params&gt;
+    &lt;initial-capacity&gt;10&lt;/initial-capacity&gt;
+    &lt;max-capacity&gt;50&lt;/max-capacity&gt;
+    &lt;capacity-increment&gt;1&lt;/capacity-increment&gt;
+    &lt;shrinking-enabled&gt;true&lt;/shrinking-enabled&gt;
+    &lt;connection-profiling-enabled&gt;true&lt;/connection-profiling-enabled&gt;
+    &lt;shrink-frequency-seconds&gt;5&lt;/shrink-frequency-seconds&gt;
+
+    &lt;inactive-connection-timeout-seconds&gt;0&lt;/inactive-connection-timeout-seconds&gt;
+    &lt;highest-num-waiters&gt;2147483647&lt;/highest-num-waiters&gt;
+    &lt;highest-num-unavailable&gt;0&lt;/highest-num-unavailable&gt;
+    &lt;connection-creation-retry-frequency-seconds&gt;1&lt;/connection-creation-retry-frequency-seconds&gt;
+
+    &lt;connection-reserve-timeout-seconds&gt;10&lt;/connection-reserve-timeout-seconds&gt;
+    &lt;test-frequency-seconds&gt;0&lt;/test-frequency-seconds&gt;
+    &lt;match-connections-supported&gt;true&lt;/match-connections-supported&gt;
+  &lt;/pool-params&gt;
+&lt;/weblogic-connection-factory-dd&gt;
+</pre>
+</div></div>
+
+<ul>
+	<li>write scripting to map dirs to local system</li>
+	<li>add entry to content-config.xml
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="JackrabbitOnWeblogic-Samplecontent-config.xml">Sample content-config.xml</h3>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;content-config xmlns=&quot;http://www.bea.com/ns/portal/90/content-config&quot;&gt;
+    &lt;!-- 
+      Sample content-config.xml
+      --&gt;
+    &lt;content-store&gt;
+        &lt;!-- ... snipped for brevity ... --&gt;
+    &lt;/content-store&gt;
+    &lt;content-store&gt;
+        &lt;name&gt;Jackrabbit&lt;/name&gt;
+        &lt;description&gt;Jackrabbit JNDI Content Repository Configuration&lt;/description&gt;
+        &lt;class-name&gt;com.day.content.spi.jsr170.JNDIRepository&lt;/class-name&gt;
+        &lt;repository-property&gt;
+            &lt;description&gt;JSR-170 Repository Workspace&lt;/description&gt;
+            &lt;name&gt;jsr170.workspace&lt;/name&gt;
+            &lt;value&gt;jackrabbit&lt;/value&gt;
+        &lt;/repository-property&gt;
+        &lt;repository-property&gt;
+            &lt;description&gt;JSR-170 Repository JNDI name&lt;/description&gt;
+            &lt;name&gt;jsr170.jndi.name&lt;/name&gt;
+            &lt;value&gt;repository&lt;/value&gt;
+        &lt;/repository-property&gt;
+        &lt;read-only&gt;false&lt;/read-only&gt;
+        &lt;binary-cache-max-entry-size&gt;1024&lt;/binary-cache-max-entry-size&gt;
+        &lt;search-is-enabled&gt;true&lt;/search-is-enabled&gt;
+        &lt;fulltext-search-is-enabled&gt;false&lt;/fulltext-search-is-enabled&gt;
+        &lt;search-indexing-is-enabled&gt;true&lt;/search-indexing-is-enabled&gt;
+    &lt;/content-store&gt;
+&lt;/content-config&gt;
+</pre>
+</div></div>
+<ul>
+	<li>write custom node type def file (cnd)</li>
+</ul>
+
+
+<h3 id="JackrabbitOnWeblogic-SampleCustomNodeTypeDefinitionFile">Sample Custom Node Type Definition File</h3>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;nt = &#39;http://www.jcp.org/jcr/nt/1.0&#39;&gt;
+&lt;flix = &#39;http://wlp.bea.com/jcr/1.0/flix&#39;&gt;
+
+[flix:MEDIA] &gt; nt:unstructured
+ - flix:TITLE (string) primary mandatory
+ - flix:RELEASE_DATE (long) mandatory
+ - flix:THUMBNAIL (binary)
+ - flix:LENGTH (long)
+ - flix:DIRECTOR (name) mandatory
+ - flix:CAST (name) mandatory multiple
+ - flix:GENRE (string) mandatory multiple
+   &lt; &#39;Action&#39;, &#39;Comedy&#39;, &#39;Drama&#39;, &#39;Horror&#39;, &#39;Romance&#39;, &#39;Sci-Fi &amp; Fantasy&#39;, &#39;Thrillers&#39; 
+ - flix:MEDIA_TYPE (string) = &#39;DVD&#39; mandatory
+   &lt; &#39;VHS&#39;, &#39;DVD&#39;, &#39;Blue-Ray&#39;, &#39;HD DVD&#39;, &#39;CD&#39;, &#39;PS3&#39;, &#39;XBOX 360&#39;, &#39;Wii&#39;, &#39;PS2&#39;
+ - flix:IMDB_LINK (string)
+ - flix:QUOTES (string) multiple
+ - flix:SYNOPSIS (string) mandatory
+ - flix:TRAILER_CLIP (binary)
+ - flix:STOCK_STATUS (string) = &#39;in stock&#39; mandatory
+   &lt; &#39;unreleased&#39;, &#39;in stock&#39;, &#39;out of stock&#39;
+</pre>
+</div></div>
+<ul>
+	<li>write code against jackrabbit api to create types &amp; content</li>
+</ul>
+
+
+<h3 id="JackrabbitOnWeblogic-SampleTypeandNodeCreationCode">Sample Type and Node Creation Code</h3>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>package com.bea.wlp.scenarios.flix.jackrabbit;
+
+import javax.jcr.NamespaceException;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.Node;
+import javax.jcr.Workspace;
+import javax.jcr.Repository;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.apache.jackrabbit.core.TransientRepository;
+import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
+import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
+import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
+import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
+import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefReader;
+import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Iterator;
+
+public class CustomNodeTypeLoader 
+{
+    public static final String REPO_JNDI_NAME = &quot;repository&quot;;
+	public static final String CND_FILE_NAME = &quot;/schemas/flixTypes.cnd&quot;;
+    public static final String FLIX_NS_PREFIX = &quot;flix&quot;;
+    public static final String FLIX_NS_URI = &quot;http://wlp.bea.com/jcr/1.0/flix&quot;;
+
+    public void loadCustomNodeTypes()
+    {
+        try
+        {
+            InitialContext ctx = new InitialContext();
+            Repository repository = (Repository)ctx.lookup(REPO_JNDI_NAME);
+
+            Session session = repository.login(new SimpleCredentials(&quot;weblogic&quot;, &quot;weblogic&quot;.toCharArray()));
+            Workspace ws = session.getWorkspace();
+            
+            NamespaceRegistry nsr = ws.getNamespaceRegistry();
+            
+            try {
+            	nsr.registerNamespace(FLIX_NS_PREFIX, FLIX_NS_URI);
+            } catch (NamespaceException e) {
+                // ignore - implies we&#39;ve already registered the namespace
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+
+            Reader cndFileReader = new InputStreamReader(this.getClass().getResourceAsStream(CND_FILE_NAME));
+            
+            // Create a CompactNodeTypeDefReader
+            CompactNodeTypeDefReader cndReader = new CompactNodeTypeDefReader(cndFileReader, CND_FILE_NAME);
+    
+            // Get the List of NodeTypeDef objects
+            List ntdList = cndReader.getNodeTypeDefs();
+    
+            // Get the NodeTypeManager from the Workspace.
+            // Note that it must be cast from the generic JCR NodeTypeManager to the
+            // Jackrabbit-specific implementation.
+            NodeTypeManagerImpl ntmgr =(NodeTypeManagerImpl)ws.getNodeTypeManager();
+    
+            // Acquire the NodeTypeRegistry
+            NodeTypeRegistry ntreg = ntmgr.getNodeTypeRegistry();
+    
+            // Loop through the prepared NodeTypeDefs
+            for (Iterator i = ntdList.iterator(); i.hasNext();) {
+    
+                // Get the NodeTypeDef...
+                NodeTypeDef ntd = (NodeTypeDef)i.next();
+
+                try {
+	                // ...and register it
+	                ntreg.registerNodeType(ntd);
+	            } catch (InvalidNodeTypeDefException e) {
+	                // ignore - implies we&#39;ve already created the type
+	            } catch (Exception e) {
+	                throw new RuntimeException(e);
+	            }
+            }
+            
+            Node rootNode = session.getRootNode();
+            Node baseNode = rootNode.addNode(&quot;Flix Media Auto&quot;, &quot;nt:unstructured&quot;);
+            
+            Calendar releaseDate = Calendar.getInstance();
+            
+            releaseDate.set(2007, 8, 17);
+            createNode(baseNode, &quot;Superbad&quot;, releaseDate, 114, &quot;Greg Mottola&quot;, &quot;Jonah Hill&quot;, &quot;Comdey&quot;, &quot;DVD&quot;, 
+            		&quot;http://www.imdb.com/title/tt0829482/&quot;, &quot;Same-sies!&quot;, &quot;Hilarous!&quot;, &quot;unreleased&quot;);
+            
+            
+            session.save();
+        } catch (InvalidNodeTypeDefException e) {
+            // ignore - implies we&#39;ve already created everything
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+    
+    public void createNode(Node parentNode, String title, Calendar releaseDate, long length, String director, 
+    		String castMember, String genre, String mediaType, String imdbLink, String quote, String synopsis, 
+    		String stockStatus)
+    	throws Exception
+    {
+    	Node newNode = parentNode.addNode(title, &quot;flix:MEDIA&quot;);
+        newNode.setProperty(&quot;flix:TITLE&quot;, title);
+        newNode.setProperty(&quot;flix:RELEASE_DATE&quot;, releaseDate);
+        newNode.setProperty(&quot;flix:LENGTH&quot;, length);
+        newNode.setProperty(&quot;flix:DIRECTOR&quot;, director);
+        newNode.setProperty(&quot;flix:CAST&quot;, castMember);
+        newNode.setProperty(&quot;flix:GENRE&quot;, genre);
+        newNode.setProperty(&quot;flix:MEDIA_TYPE&quot;, mediaType);
+        newNode.setProperty(&quot;flix:IMDB_LINK&quot;, imdbLink);
+        newNode.setProperty(&quot;flix:QUOTES&quot;, quote);
+        newNode.setProperty(&quot;flix:SYNOPSIS&quot;, synopsis);
+        newNode.setProperty(&quot;flix:STOCK_STATUS&quot;, stockStatus);
+    }
+}
+</pre>
+</div></div>
+<ul>
+	<li>add app lifecycle listener or filter to call type creation code</li>
+	<li>use federated cm api to create and access content (e.g. <a href="http://edocs/wlp/docs100/cm/index.html" class="external-link" rel="nofollow">http://edocs/wlp/docs100/cm/index.html</a> )
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Also see:  <a href="http://edocs/wlp/docs100/pdf/day170adapter_developers_guide.pdf" class="external-link" rel="nofollow">http://edocs/wlp/docs100/pdf/day170adapter_developers_guide.pdf</a></p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOnWeblogic_115513438.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html Mon May 20 11:23:18 2019
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitOsgi</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitOsgi
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h1 id="JackrabbitOsgi-EmbeddingAJackrabbitRepositoryinanOSGiFramework">Embedding A Jackrabbit Repository in an OSGi Framework</h1>
+<p>The Apache Sling project has provided an infrastructure for embedding and accessing JCR Repositories right from the start. With Jackrabbit 2 it is about time, that Jackrabbit itself becomes more OSGi friendly and provides many of the features which are currently part of Apache Sling.</p>
+
+<p>This page is about the changes and enhancements proposed in the <a href="http://svn.apache.org/repos/asf/jackrabbit/sandbox/jackrabbit2-bundle" class="external-link" rel="nofollow">Jackrabbit 2 Bundle Sandbox</a>.</p>
+
+<h2 id="JackrabbitOsgi-ApacheSlingJCRBundles">Apache Sling JCR Bundles</h2>
+<p>Apache Sling currently provides the following JCR related bundles:</p>
+
+<p>Bundle Current Version Jackrabbit Version Description</p>
+<div class="table-wrap"><table class="confluenceTable"><tbody>
+<tr>
+<td class="confluenceTd"><p> <strong>Bundle</strong> </p></td>
+<td class="confluenceTd"><p> <strong>Current Version</strong> </p></td>
+<td class="confluenceTd"><p> <strong>Jackrabbit Version</strong> </p></td>
+<td class="confluenceTd"><p> <strong>Description</strong> </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling JCR API </p></td>
+<td class="confluenceTd"><p>2.0.6 </p></td>
+<td class="confluenceTd"><p>– </p></td>
+<td class="confluenceTd"><p>Provides additional API to simplify use. Most notably contains the <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=SlingRepository&amp;linkCreation=true&amp;fromPageId=115513439">SlingRepository</a> interface to ease configuration pain for bundles requiring administrative repository access. This bundle used to include and provide the JCR 1.0 API in the OSGi framework. This has been removed to allow the provision of the JCR 2.0 API as a proper bundle. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling JCR Base </p></td>
+<td class="confluenceTd"><p>2.0.4 </p></td>
+<td class="confluenceTd"><p>1.5 </p></td>
+<td class="confluenceTd"><p>Provides an abstract default implementation of the <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=SlingRepository&amp;linkCreation=true&amp;fromPageId=115513439">SlingRepository</a> interface and includes the Jackrabbit RMI library at version 1.5 to access a repository over RMI. This abstract base implementation supports accessing repositories both through JNDI and RMI. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling JCR Classloader </p></td>
+<td class="confluenceTd"><p>3.0 </p></td>
+<td class="confluenceTd"><p> </p></td>
+<td class="confluenceTd"><p>Provides support to load classes from the repository. This bundle was based on the Jackrabbit Repository Classloader. Now it contains a stripped-down copy of the class loader with a few fixes. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling Jackrabbit Client </p></td>
+<td class="confluenceTd"><p>2.0.2 </p></td>
+<td class="confluenceTd"><p> </p></td>
+<td class="confluenceTd"><p>A concrete extension of the <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=AbstractSlingRepository&amp;linkCreation=true&amp;fromPageId=115513439">AbstractSlingRepository</a> in the Sling JCR Base bundle. This extension is almost empty, since the basic support is already provided by the abstract class. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling Jackrabbit Server </p></td>
+<td class="confluenceTd"><p>2.0.4 </p></td>
+<td class="confluenceTd"><p>1.6 </p></td>
+<td class="confluenceTd"><p>Embeds Jackrabbit Core and most of its dependencies like Lucene, Derby, PDFBox, etc. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling Jackrabbit Access Manager </p></td>
+<td class="confluenceTd"><p>2.0.2 </p></td>
+<td class="confluenceTd"><p>1.6 </p></td>
+<td class="confluenceTd"><p>Supports Access Control Management in a Jackrabbit Repository using the Sling Features. </p></td>
+</tr>
+<tr>
+<td class="confluenceTd"><p>Sling Jackrabbit User Manager </p></td>
+<td class="confluenceTd"><p>2.0.2 </p></td>
+<td class="confluenceTd"><p>1.6 </p></td>
+<td class="confluenceTd"><p>Supports User Management in a Jackrabbit Repository using the Sling features. </p></td>
+</tr>
+</tbody></table></div>
+
+
+
+<p>Note: The future of the Jackrabbit Repository Classloader library has not yet been decided upon. At the moment, we have a relatively stable release in the Commons subproject and Apache Sling has a stripped-down fork of that class loader. It will have to be discussed where we are heading with this beast and what the requirements of the Community will be around this.</p>
+
+<p>Of these bundles, the <em>Sling Jackrabbit Server</em> bundle is probably the one which should be integrated in the Jackrabbit Core library. Over time I could imagine to also merge most of the <em>Sling JCR Base</em> and <em>Sling JCR Client</em> bundles into the Jackrabbit project.</p>
+
+
+<h2 id="JackrabbitOsgi-CurrentStateofOSGiSupportinJackrabbit">Current State of OSGi Support in Jackrabbit</h2>
+
+<p>Currently many helper libraries of Jackrabbit are already setup as proper OSGi bundles. Most notably this includes the Jackrabbit API, JCR Commons, SPI, and SPI Commons libraries.</p>
+
+<p>The major missing link is the Jackrabbit Core library, which is the actual implementation of the repository.</p>
+
+
+<h2 id="JackrabbitOsgi-ExtensionstoJackrabbitCore">Extensions to Jackrabbit Core</h2>
+
+<p>The goal of turning the Jackrabbit Core library into an OSGi bundle is to preserve as much of the functionality of the current Sling Jackrabbit Server bundle as possible. Concretely this means:</p>
+
+<ul>
+	<li>Build the Jackrabbit Core library as a bundle (obviously)</li>
+	<li>Embed only as much dependencies as are really needed (goal: none)</li>
+	<li>Support easy startup and access to the embedded repository instances</li>
+	<li>Provide some degree of dynamic extensibility (at least provide the pluggability currently supported by the Sling Jackrabbit Server bundle)
+<br class="atl-forced-newline"/>
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h4 id="JackrabbitOsgi-JackrabbitCoreBundleandEmbeddedDependencies">Jackrabbit Core Bundle and Embedded Dependencies</h4>
+
+<p>The biggest issue when bundelizing the Jackrabbit Core bundle is the is the list of dependencies and extensibility. </p>
+
+<p>The problem with dependencies is, that Jackrabbit Core has quite big number of dependencies. To launch a Jackrabbit repository a number of libraries have been collected and put together. Some of these libraries are available as OSGi bundles (e.g. the Jackrabbit helper libraries, the JCR 2.0 API, Derby) and some are not (yet) (e.g. Lucene, Concurrent, Commons Pool, Commons DBCP). Tika is special in that it will be available as a bundle starting with release 0.6.</p>
+
+<p>The problem with extensibility is, some internal extension APIs of Jackrabbit Core are not yet separated from internal implementations. One example is the persistence manager interface. This makes it close to impossible to expose those APIs with OSGi <code>Export-Package</code> without also requiring to exposing internal packages.</p>
+
+<p>The current approach followed in the <a href="http://svn.apache.org/repos/asf/jackrabbit/sandbox/jackrabbit2-bundle" class="external-link" rel="nofollow">Jackrabbit 2 Bundle Sandbox</a> is to embed libraries, which are not available as bundles and to not embed libraries available as bundles.</p>
+
+
+<h4 id="JackrabbitOsgi-EasyStartupandAccess">Easy Startup and Access</h4>
+
+<p>For easy startup and access the OSGi specification offers great functionalities: To startup an embedded repository instance, we need a location to store the filesystem data to and a location to access a configuration. Both properties can easily be provided through the OSGi Configuration Admin Service. This is what we do in the Sling Jackrabbit Server bundle and thus this is also implemented in the current approach.</p>
+
+<p>Accessing an embedded repository is equally easy: As soon as a repository has been configured and started, it will be registered as an OSGi service and can be referenced like any other service using the service name. An embedded Jackrabbit Repository is registered under the two names implemented by Jackrabbit Core: <code>javax.jcr.Jackrabbit</code> and <code>org.apache.jackrabbit.api.JackrabbitRepository</code>.</p>
+
+<p>The Jackrabbit Core bundle also contains an OSGi <code>BundleActivator</code> which ensures configuration can be provided by the Configuration Admin Service and which also ensures an initial configuration to have a running repository as soon as the bundle is started.</p>
+
+<p>As for the configuration file: The Jackrabbit Core library contains a default repository.xml file (<code>OSGI-INF/repository_osgi.xml</code>) which is used as a configuration file if none is provided.</p>
+
+
+<h4 id="JackrabbitOsgi-Extensibility">Extensibility</h4>
+
+
+<p>Jackrabbit configuration is the subject of a book of its own. Yet some things may be setup rather dynamically in the sense of extensible at runtime by the system administrator. Things in this area, we have at the moment in the Sling Jackrabbit Server bundle are a framework to extend login modules and a support to plugin extensible access controllers.</p>
+
+<p>Both should, if possible, be migrated to the Jackrabbit Core bundle; possibly even enhancing it. Of course such extensibility points will have to be exported from the Jackrabbit Core bundle and as such will be placed into separate locations.</p>
+
+
+
+<h2 id="JackrabbitOsgi-Pluggable">Pluggable <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=LoginModule&amp;linkCreation=true&amp;fromPageId=115513439">LoginModule</a></h2>
+
+<p>The goal of a pluggable login module system is to provide a simple means to extend the functionality of the <code>DefaultLoginModule</code> which is part of the internal API (but is one of those things, which cannot easily be exported without exposing internal implementation). One major use case of such pluggable login module functionality is to account for authentication mechanisms which require more than just the final <code>SimpleCredentials</code> class but otherwise would benefit from all the <code>Principal</code> resolution support of the <code>DefaultLoginModule</code>.</p>
+
+<p>The <code>PluggableDefaultLoginModule</code> overwrites the following methods of the <code>DefaultLoginModule</code> and the <code>AbstractLoginModule</code>:</p>
+
+<p> <strong>doInit</strong></p>
+
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Locates a login module plugin which is capable of handling the credentials provided in the <code>Repository.login</code> method.</p></div>
+<p> <strong>commit</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Allows the login module plugin to properly cleanup after a successful login attempt</p></div>
+<p> <strong>abort</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Allows the login module plugin to properly cleanup after a failed login attempt</p></div>
+<p> <strong>supportsCredentials</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Locates a login module plugin which is capable of handlig the credentials. If none can be found, the base class implementation is called.</p></div>
+<p> <strong>getUserID</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Overwrites the <code>AbstractLoginModule</code> implementation to check whether one of the plugins can provide the user ID for the given credentials. If not the base class implementation is called.</p></div>
+<p> <strong>getPrincipal</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Overwrites the <code>DefaultLoginModule</code> implementation to check whether one of the plugins can provide a Principal. If not the base class implementation is called.</p></div>
+<p> <strong>getPrincipals</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Calls base class implementation to get the base set of principals and the calls the currently used plugin to add further prinicipals and returns the completed set.</p></div>
+<p> <strong>authenticate</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Calls the authenticate method of the plugin handling the given credentials and returns <code>true</code>. If no plugin can handle the credentials the result of calling the base class implementation is returned. If the plugin fails to authenticate the credentials for the principal a <code>FailedLoginException</code> is thrown.</p></div>
+<p> <strong>impersonate</strong></p>
+ <div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline p:first-child { display: inline; }</style><p> Calls the impersonate method of the plugin handling the given credentials and returns <code>true</code> or <code>false</code> if the plugin handles impersonation. If no plugin can handle the credentials or the selected plugin does not handle impersonation the result of calling the base class implementation is returned. If impersonation either by the plugin or the base class implementation fails a <code>FailedLoginException</code> is thrown.</p></div>
+
+
+<p>Because login modules are created for each login request and may keep internal state while handling the login request, the service API for pluggable login modules defines a factory interface:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>public interface LoginModulePluginFactory {
+
+    /**
+     * The name of the service under which to register the module factory.
+     */
+    String SERVICE_NAME = &quot;org.apache.jackrabbit.core.api.security.LoginModulePluginFactory&quot;;
+
+    /**
+     * Returns a login module is capable of handling the login request for the
+     * given &lt;code&gt;Credentials&lt;/code&gt; instance or &lt;code&gt;null&lt;/code&gt; if this
+     * factory does not support the credentials.
+     *
+     * @param credentials The &lt;code&gt;Credentials&lt;/code&gt; intended to be handled by
+     *            the {@link LoginModulePlugin}.
+     */
+    LoginModulePlugin create(final Credentials credentials);
+</pre>
+</div></div>
+
+<p>In the <code>doInit</code> method the <code>PluggableDefaultLoginModule</code> calls the <code>create</code> method of all registered <code>LoginModulePluginFactory</code> services for a <code>LoginModulePlugin</code>. The first factory returning an non-<code>null</code> instance &quot;wins&quot; and the instance is used throughout the login process.</p>
+
+<p>The actual plugin API is <a href="http://svn.apache.org/repos/asf/jackrabbit/sandbox/jackrabbit2-bundle/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/api/security/LoginModulePlugin.java" class="external-link" rel="nofollow">here</a></p>
+
+<p>It is important to understand, that the <code>PluggableDefaultLoginModule</code> supports any number of <code>LoginModuleFactoryPluginFactory</code> services and selects the one to use by querying them in turn. This allows for a number of login modules for different special cases: OpenID, Kerberos, SecurID, NTLM, etc. without having to reconfigure the repository – or even to have to restart Java VM to be able to add more login modules.</p>
+
+
+<h2 id="JackrabbitOsgi-PluggableAccessControlManager">Pluggable Access Control Manager</h2>
+
+<p>TBD</p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitOsgi_115513439.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html Mon May 20 11:23:18 2019
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitStandalone</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitStandalone
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h3 id="JackrabbitStandalone-Simplestartupscript">Simple startup script</h3>
+
+<p>The maintained version of this script can be found on <a href="https://github.com/sixty-nine/Jackrabbit-startup-script" class="external-link" rel="nofollow">github</a>.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>#!/bin/sh
+### BEGIN INIT INFO
+# Provides:         jackrabbit
+# Description:      Start/stop the Jackrabbit server.
+#                   This relies on a PID file to check if Jackrabbit is running or not.
+#                   If you kill Jackrabbit without removing the PID file, you will not be
+#                   start Jackrabbit with this script before you manually removed the PID
+#                   file.
+# Author:						Daniel Barsotti &lt;daniel.barsotti@liip.ch&gt;
+### END INIT INFO
+
+
+### YOU HAVE TO EDIT THESE VALUES !!!
+BASEDIR=/home/dev/jackalope/jackrabbit
+JACKRABBIT_JAR=$BASEDIR/jackrabbit-standalone-2.2.6-SNAPSHOT.jar
+JACKRABBIT_HOST=127.0.0.1
+JACKRABBIT_PORT=8080
+### 
+
+
+PIDFILE=$BASEDIR/jackrabbit.pid
+LOGFILE=$BASEDIR/jackrabbit.log
+
+#set -x
+
+do_start() {
+	if [ ! -f $PIDFILE ]; then
+		cd $BASEDIR
+		nohup java -jar $JACKRABBIT_JAR -h $JACKRABBIT_HOST -p $JACKRABBIT_PORT &gt;&gt; $LOGFILE 2&gt;&amp;1 &amp; echo $! &gt; $PIDFILE
+		echo &quot;Jackrabbit started&quot;
+	else
+		echo &quot;Jackrabbit is already running&quot;
+	fi
+}
+
+do_stop() {
+	if [ -f $PIDFILE ]; then
+		kill $(cat $PIDFILE)
+		rm $PIDFILE
+		echo &quot;Jackrabbit stopped&quot;
+	else
+		echo &quot;Jackrabbit is not running&quot;
+	fi
+}
+
+do_status() {
+	if [ -f $PIDFILE ]; then
+          echo &quot;Jackrabbit is running [ pid = &quot; $(cat $PIDFILE) &quot;]&quot;
+	else
+		echo &quot;Jackrabbit is not running&quot;
+	fi
+}
+
+case &quot;$1&quot; in
+  start)
+		do_start
+		;;
+  stop)
+		do_stop
+		;;
+	status)
+		do_status
+		;;
+  *)
+		echo &quot;Usage: $SCRIPTNAME {start|stop|status}&quot; &gt;&amp;2
+		exit 3
+	;;
+esac
+
+</pre>
+</div></div>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitStandalone_115513440.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html Mon May 20 11:23:18 2019
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JackrabbitWebsite</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JackrabbitWebsite
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <p>The static Jackrabbit web site at <a href="http://jackrabbit.apache.org/" class="external-link" rel="nofollow">http://jackrabbit.apache.org/</a> is managed using svnpubsub as outlined in the ASF's <a href="http://www.apache.org/dev/project-site.html" class="external-link" rel="nofollow">guide for project websites</a>. More dynamic parts of the site, like active documentation and various guides (including this page), are kept in the wiki where all registered contributors can more easily modify them.</p>
+
+<p>The static site sources are kept in <a href="https://svn.apache.org/repos/asf/jackrabbit/site/live/" class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/jackrabbit/site/live/</a> and can be directly modified by all Jackrabbit committers. The svnpubsub mechanism makes any changes visible on the public web site within seconds of the respective commits. Other contributors can submit patches against the site sources through the <a href="https://issues.apache.org/jira/browse/JCRSITE" class="external-link" rel="nofollow">JCRSITE</a> issue tracker.</p>
+
+<p>Note that the current site sources are based on a raw HTML export from the Confluence wiki we used earlier for managing the project web site (until Apache infra discontinued the service), so modifying them can be a bit tricky. Instead of the root of the site tree (as one might guess from the URLs) the exported HTML pages are stored in the <a href="https://svn.apache.org/repos/asf/jackrabbit/site/live/JCR/" class="external-link" rel="nofollow">JCR</a> subdirectory, and a few rewrite rules in the <a href="https://svn.apache.org/repos/asf/jackrabbit/site/live/.htaccess" class="external-link" rel="nofollow">.htaccess</a> file are used to map them to a cleaner URL space. These contortions should eventually get phased out as we complete the migration away from Confluence.</p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JackrabbitWebsite_115513441.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html Mon May 20 11:23:18 2019
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : JcrCommons</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : JcrCommons
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h2 id="JcrCommons-JackrabbitJCRCommons">Jackrabbit JCR Commons</h2>
+
+<style type='text/css'>/*<![CDATA[*/
+div.rbtoc1558350681707 {padding: 0px;}
+div.rbtoc1558350681707 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1558350681707 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style><div class='toc-macro rbtoc1558350681707'>
+<ul class='toc-indentation'>
+<li><a href='#JcrCommons-JackrabbitJCRCommons'>Jackrabbit JCR Commons</a></li>
+<li><a href='#JcrCommons-Overview'>Overview</a></li>
+<li><a href='#JcrCommons-Javadoc'>Javadoc</a></li>
+<li><a href='#JcrCommons-Download'>Download</a>
+<ul class='toc-indentation'>
+<li><a href='#JcrCommons-Maven'>Maven</a></li>
+</ul>
+</li>
+</ul>
+</div>
+
+<h2 id="JcrCommons-Overview">Overview</h2>
+
+<p>Jackrabbit JCR Commons is a collection of general purpose classes for use with the JCR API. The project does not depend on a specific JCR implementation, however it is best tested with Jackrabbit.</p>
+
+<h2 id="JcrCommons-Javadoc">Javadoc</h2>
+
+<p><a href="http://jackrabbit.apache.org/api/2.1/org/apache/jackrabbit/commons/JcrUtils.html" class="external-link" rel="nofollow">JcrUtils</a></p>
+
+<p>Utility methods to open a repository, get and add nodes and properties, run a query, and create a string representation from a node.</p>
+
+<p><a href="http://jackrabbit.apache.org/api/2.1/org/apache/jackrabbit/commons/package-summary.html" class="external-link" rel="nofollow">Jackrabbit JCR Commons API Javadocs</a></p>
+
+<p>The package Javadocs</p>
+
+<h2 id="JcrCommons-Download">Download</h2>
+
+<p>This project is included in Jackrabbit standalone.</p>
+
+<h3 id="JcrCommons-Maven">Maven</h3>
+
+<p>The Maven dependency is (replace the version number with the version of your choice):</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.jackrabbit&lt;/groupId&gt;
+    &lt;artifactId&gt;jackrabbit-jcr-commons&lt;/artifactId&gt;
+    &lt;version&gt;2.3&lt;/version&gt;
+&lt;/dependency&gt;
+</pre>
+</div></div>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/JcrCommons_115513442.html
------------------------------------------------------------------------------
    svn:executable = *