You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tb...@apache.org on 2006/12/12 16:24:14 UTC

svn commit: r486187 [15/49] - in /directory/trunks/triplesec: ./ admin-api/ admin-api/src/ admin-api/src/main/ admin-api/src/main/java/ admin-api/src/main/java/org/ admin-api/src/main/java/org/safehaus/ admin-api/src/main/java/org/safehaus/triplesec/ a...

Added: directory/trunks/triplesec/installers/src/main/installers/izpack-unix.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/izpack-unix.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/izpack-unix.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/izpack-unix.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!--
+  /*
+  *   Copyright 2004 The Apache Software Foundation
+  *
+  *   Licensed under the Apache License, Version 2.0 (the "License");
+  *   you may not use this file except in compliance with the License.
+  *   You may obtain a copy of the License at
+  *
+  *       http://www.apache.org/licenses/LICENSE-2.0
+  *
+  *   Unless required by applicable law or agreed to in writing, software
+  *   distributed under the License is distributed on an "AS IS" BASIS,
+  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *   See the License for the specific language governing permissions and
+  *   limitations under the License.
+  *
+  */
+-->
+
+<installation version="1.0">
+  <info>
+    <appname>${app}</appname>
+    <appversion>${app.version}</appversion>
+    <appsubpath>${app}-${app.version}</appsubpath>
+    <authors>
+      <author name="${app.author}" email="${app.email}" />
+    </authors>
+    <url>${app.url}</url>
+    <javaversion>${app.java.version}</javaversion>
+  </info>
+
+  <guiprefs height="480" resizable="yes" width="640">
+    <laf name="metouia">
+      <os family="unix" />
+    </laf>
+  </guiprefs>
+
+  <locale>
+    <langpack iso3="eng" />
+  </locale>
+
+  <resources>
+    <res id="installer.langsel.img" src="${app.icon}" />
+    <res id="Installer.image" src="${app.icon}" />
+    <res id="Installer.image.0" src="${app.icon}" />
+    <res id="Installer.image.1" src="${app.icon}" />
+    <res id="Installer.image.2" src="${app.icon}" />
+    <res id="Installer.image.3" src="${app.icon}" />
+    <res id="Installer.image.4" src="${app.icon}" />
+    <res id="Installer.image.5" src="${app.icon}" />
+    <res id="LicencePanel.licence" src="${app.license}" />
+    <res id="InfoPanel.info" src="${app.readme}" />
+    <res id="ImgPacksPanel.img.0" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.1" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.2" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.3" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.4" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.5" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.6" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.7" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.8" src="${app.icon}" />
+    <res id="shortcutSpec.xml" src="${unix.shortcuts}" />
+    <res id="Unix_shortcutSpec.xml" src="${unix.shortcuts}" />
+    <res id="userInputSpec.xml" src="${user.input}" />
+  </resources>
+
+  <panels>
+    <panel classname="HelloPanel" />
+    <panel classname="InfoPanel" />
+    <panel classname="LicencePanel" />
+    <panel classname="TargetPanel" />
+    <panel classname="ImgPacksPanel" />
+    <panel classname="InstallPanel" />
+    <panel classname="ShortcutPanel" />
+    <panel classname="FinishPanel" />
+  </panels>
+
+  <packs>
+    <pack name="Init Script" required="no">
+      <description>Init Script (must be root)</description>
+      <singlefile os="unix" src="bin/${server.init}" target="/etc/init.d/${app}" />
+      <parsable os="unix" targetfile="/etc/init.d/${app}" type="shell" />
+      <executable os="unix" targetfile="/etc/init.d/${app}" stage="never" keep="true" />
+    </pack>
+    <pack name="ROOT Web UI" required="no">
+      <description>ROOT Web Application</description>
+      <fileset dir="${image.basedir}/webapps/ROOT" targetdir="$INSTALL_PATH/webapps/ROOT">
+        <include name="**/*"/>
+      </fileset>
+    </pack>
+    <pack name="Registration Web UI" required="no">
+      <description>Registration Web Application</description>
+      <fileset dir="${image.basedir}/webapps/registration" targetdir="$INSTALL_PATH/webapps/registration">
+        <include name="**/*"/>
+      </fileset>
+    </pack>
+    <pack name="Activation WAP Application (provisioning)" required="no">
+      <description>A WAP Application (Web Application) for MIDlet Provisioning</description>
+      <fileset dir="${image.basedir}/webapps/activation" targetdir="$INSTALL_PATH/webapps/activation">
+        <include name="**/*"/>
+      </fileset>
+    </pack>
+    <pack name="Startup Configuration Web Application" required="no">
+      <description>A Web Application to configure the server only on startup</description>
+      <fileset dir="${image.basedir}/webapps/config" targetdir="$INSTALL_PATH/webapps/config">
+        <include name="**/*"/>
+      </fileset>
+    </pack>
+    <pack name="Demo Web Application" required="no">
+      <description>A Web Application to demonstrate the features of Triplesec</description>
+      <fileset dir="${image.basedir}/webapps/demo" targetdir="$INSTALL_PATH/webapps/demo">
+        <include name="**/*"/>
+      </fileset>
+    </pack>
+    <pack name="Binaries" required="yes">
+      <description>Binary Executables</description>
+      <fileset dir="${image.basedir}" targetdir="$INSTALL_PATH">
+        <include name="**/*" />
+        <exclude name="webapps/activation/**"/>
+        <exclude name="webapps/admin/**"/>
+        <exclude name="webapps/config/**"/>
+        <exclude name="webapps/demo/**"/>
+        <exclude name="webapps/registration/**"/>
+        <exclude name="webapps/ROOT/**"/>
+      </fileset>
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/${app}" stage="never" keep="true" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" type="shell" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/triplesec-tools.sh" type="shell" />
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" stage="never" keep="true" />
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/triplesec-tools.sh" stage="never" keep="true" />
+    </pack>
+  </packs>
+</installation>

Added: directory/trunks/triplesec/installers/src/main/installers/izpack-windows.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/izpack-windows.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/izpack-windows.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/izpack-windows.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!--
+  /*
+  *   Copyright 2004 The Apache Software Foundation
+  *
+  *   Licensed under the Apache License, Version 2.0 (the "License");
+  *   you may not use this file except in compliance with the License.
+  *   You may obtain a copy of the License at
+  *
+  *       http://www.apache.org/licenses/LICENSE-2.0
+  *
+  *   Unless required by applicable law or agreed to in writing, software
+  *   distributed under the License is distributed on an "AS IS" BASIS,
+  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *   See the License for the specific language governing permissions and
+  *   limitations under the License.
+  *
+  */
+-->
+<installation version="1.0">
+  <info>
+    <appname>${app}</appname>
+    <appversion>${app.version}</appversion>
+    <appsubpath>${app}-${app.version}</appsubpath>
+    <authors>
+      <author name="${app.author}" email="${app.email}" />
+    </authors>
+    <url>${app.url}</url>
+    <javaversion>${app.java.version}</javaversion>
+  </info>
+
+  <guiprefs height="480" resizable="yes" width="640">
+    <laf name="looks">
+      <os family="windows" />
+      <param name="variant" value="extwin" />
+    </laf>
+  </guiprefs>
+
+  <locale>
+    <langpack iso3="eng" />
+  </locale>
+
+  <resources>
+    <res id="installer.langsel.img" src="${app.icon}" />
+    <res id="Installer.image" src="${app.icon}" />
+    <res id="Installer.image.0" src="${app.icon}" />
+    <res id="Installer.image.1" src="${app.icon}" />
+    <res id="Installer.image.2" src="${app.icon}" />
+    <res id="Installer.image.3" src="${app.icon}" />
+    <res id="Installer.image.4" src="${app.icon}" />
+    <res id="Installer.image.5" src="${app.icon}" />
+
+    <res id="LicencePanel.licence" src="${app.license}" />
+    <res id="InfoPanel.info" src="${app.readme}" />
+
+    <res id="ImgPacksPanel.img.0" src="${app.icon}" />
+    <res id="ImgPacksPanel.img.1" src="${app.icon}" />
+    <res id="Win_shortcutSpec.xml" src="${windows.shortcuts}" />
+    <res id="userInputSpec.xml" src="${user.input}" />
+  </resources>
+
+  <native type="izpack" name="ShellLink.dll" />
+
+  <panels>
+    <panel classname="HelloPanel" />
+    <panel classname="InfoPanel" />
+    <panel classname="LicencePanel" />
+    <panel classname="TargetPanel" />
+    <panel classname="ImgPacksPanel" />
+    <panel classname="InstallPanel" />
+    <panel classname="ShortcutPanel" />
+    <panel classname="FinishPanel" />
+  </panels>
+
+  <!--
+    The packs section.  We specify here our packs.
+  -->
+  <packs>
+    <pack name="Binaries" required="yes">
+      <description>Binary executables</description>
+      <fileset dir="${image.basedir}" targetdir="$INSTALL_PATH">
+        <include name="**/*" />
+      </fileset>
+
+      <!-- WINDOWS section
+        <parsable   os="windows" targetfile="$INSTALL_PATH/bin/${windows.uninstall.bat}" />
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/${windows.uninstall.bat}" failure="warn" stage="uninstall" keep="false"/>
+        <singlefile os="windows" src="../bin/win32/${app}.exe" target="$INSTALL_PATH/bin/${app}.exe"/>
+        <singlefile os="windows" src="../bin/win32/${app}w.exe" target="$INSTALL_PATH/bin/${app}w.exe"/>
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/${app}.exe" stage="never" keep="true"/>
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/${app}w.exe" stage="never" keep="true"/>
+        <parsable   os="windows" targetfile="$INSTALL_PATH/bin/install-service.bat" />
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/install-service.bat" failure="warn" stage="postinstall" keep="false"/>
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/${app}w.exe" stage="postinstall" keep="true"/>
+      -->
+      <!-- looks like we're going to need a batch file for registering the service 
+        <executable os="windows" targetfile="$INSTALL_PATH/bin/install-service.bat" stage="postinstall" keep="false"/>
+      -->
+    </pack>
+  </packs>
+</installation>

Added: directory/trunks/triplesec/installers/src/main/installers/log4j.properties
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/log4j.properties?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/log4j.properties (added)
+++ directory/trunks/triplesec/installers/src/main/installers/log4j.properties Tue Dec 12 07:23:31 2006
@@ -0,0 +1,18 @@
+log4j.rootCategory=WARN, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n
+
+# with these we'll not get innundated when switching to DEBUG
+log4j.logger.org.apache.directory.shared.ldap.name=WARN
+log4j.logger.org.apache.directory.server.core.schema=WARN
+log4j.logger.org.springframework=WARN
+log4j.logger.org.apache.directory.shared.codec=WARN
+log4j.logger.org.apache.directory.shared.asn1=WARN
+log4j.logger.org.apache.commons.digester.Digester=WARN
+log4j.logger.org.mortbay=WARN
+log4j.logger.org.apache.jasper=WARN
+log4j.logger.wicket=WARN
+log4j.logger.org.apache.commons=WARN
+log4j.logger.org.apache.myfaces=WARN

Added: directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec-tools.sh
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec-tools.sh?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec-tools.sh (added)
+++ directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec-tools.sh Tue Dec 12 07:23:31 2006
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Really simple script to launch triplesec tools with RPM installer
+
+TRIPLESEC_HOME=/usr/local/${app}-${app.version}
+$JAVA_HOME/bin/java -jar $TRIPLESEC_HOME/bin/triplesec-tools.jar $@

Added: directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec.spec
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec.spec?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec.spec (added)
+++ directory/trunks/triplesec/installers/src/main/installers/rpm-triplesec.spec Tue Dec 12 07:23:31 2006
@@ -0,0 +1,109 @@
+Summary: Triplesec Strong Identity Server 
+Name: triplesec
+Version: ${app.version}
+Release: ${app.release}
+License: ${app.license.type}
+Group: System Environment/Daemons
+URL: ${app.url}
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+%description
+${app.description}
+
+%prep
+echo $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT
+cp -rf ${image.basedir} $RPM_BUILD_ROOT/%{name}-%{version}
+cd $RPM_BUILD_ROOT
+tar -zcvf /usr/src/redhat/SOURCES/%{name}-%{version}.tar.gz %{name}-%{version}
+
+%setup -q
+
+%build
+cd $RPM_BUILD_ROOT/%{name}-%{version}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/lib/ext
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/lib/tools
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/run
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/partitions
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/guardian
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/webapps
+mkdir -p $RPM_BUILD_ROOT/usr/local/${app}-%{version}/licenses
+touch $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log/${app}-stderr.log
+touch $RPM_BUILD_ROOT/usr/local/${app}-%{version}/var/log/${app}-stdout.log
+mkdir -p $RPM_BUILD_ROOT/etc/init.d
+${mk.docs.dirs}
+${mk.sources.dirs}
+
+pwd
+install -m 755 ${image.basedir}/bin/${app} $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/${app}
+install -m 644 ${image.basedir}/bin/bootstrapper.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/bootstrapper.jar
+install -m 644 ${image.basedir}/bin/triplesec-tools.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/triplesec-tools.jar
+install -m 644 ${image.basedir}/bin/triplesec-admin.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/triplesec-admin.jar
+install -m 755 ${image.basedir}/bin/triplesec-tools.sh $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/triplesec-tools.sh
+install -m 644 ${image.basedir}/bin/logger.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/logger.jar
+install -m 644 ${image.basedir}/bin/daemon.jar $RPM_BUILD_ROOT/usr/local/${app}-%{version}/bin/daemon.jar
+install -m 600 ${image.basedir}/conf/server.xml $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/server.xml
+install -m 644 ${image.basedir}/conf/bootstrapper.properties $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/bootstrapper.properties
+install -m 644 ${image.basedir}/conf/log4j.properties $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/log4j.properties
+install -m 644 ${image.basedir}/conf/00server.ldif $RPM_BUILD_ROOT/usr/local/${app}-%{version}/conf/00server.ldif
+install -m 744 ${image.basedir}/bin/${server.init} $RPM_BUILD_ROOT/etc/init.d/${app}
+install -m 644 ${image.basedir}/${app.license.name} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -m 644 ${image.basedir}/${app.readme.name} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -m 644 ${image.basedir}/${app.icon} $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -m 644 ${image.basedir}/COPYING.txt $RPM_BUILD_ROOT/usr/local/${app}-%{version}
+install -d ${image.basedir}/webapps $RPM_BUILD_ROOT/usr/local/${app}-%{version}/webapps
+cp -rf ${image.basedir}/webapps/* $RPM_BUILD_ROOT/usr/local/${app}-%{version}/webapps
+cp -rf ${image.basedir}/lib/tools/* $RPM_BUILD_ROOT/usr/local/${app}-%{version}/lib/tools
+cp -rf ${image.basedir}/guardian/* $RPM_BUILD_ROOT/usr/local/${app}-%{version}/guardian
+cp -rf ${image.basedir}/licenses/* $RPM_BUILD_ROOT/usr/local/${app}-%{version}/licenses
+${install.append.libs}
+${install.docs}
+${install.sources}
+${install.notice.file}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%doc ${app.license.name} ${app.readme.name}
+
+/etc/init.d/${app}
+/usr/local/${app}-%{version}/bin/${app}
+/usr/local/${app}-%{version}/bin/bootstrapper.jar
+/usr/local/${app}-%{version}/bin/triplesec-tools.jar
+/usr/local/${app}-%{version}/bin/triplesec-admin.jar
+/usr/local/${app}-%{version}/bin/triplesec-tools.sh
+/usr/local/${app}-%{version}/bin/logger.jar
+/usr/local/${app}-%{version}/bin/daemon.jar
+/usr/local/${app}-%{version}/conf/log4j.properties
+/usr/local/${app}-%{version}/conf/bootstrapper.properties
+/usr/local/${app}-%{version}/conf/server.xml
+/usr/local/${app}-%{version}/conf/00server.ldif
+/usr/local/${app}-%{version}/lib/ext
+/usr/local/${app}-%{version}/lib/tools/*
+/usr/local/${app}-%{version}/var/run
+/usr/local/${app}-%{version}/var/log
+/usr/local/${app}-%{version}/var/partitions
+/usr/local/${app}-%{version}/var/log/${app}-stderr.log
+/usr/local/${app}-%{version}/var/log/${app}-stdout.log
+/usr/local/${app}-%{version}/${app.readme.name}
+/usr/local/${app}-%{version}/${app.license.name}
+/usr/local/${app}-%{version}/${app.icon}
+/usr/local/${app}-%{version}/COPYING.txt
+/usr/local/${app}-%{version}/webapps/*
+/usr/local/${app}-%{version}/guardian/*
+/usr/local/${app}-%{version}/licenses/*
+${verify.append.libs}
+${verify.docs}
+${verify.sources}
+${verify.notice.file}
+

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-license.rtf
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-license.rtf?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/safehaus-license.rtf (added)
+++ directory/trunks/triplesec/installers/src/main/installers/safehaus-license.rtf Tue Dec 12 07:23:31 2006
@@ -0,0 +1,33 @@
+{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset238\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\f1\fswiss\fcharset238\fprq2{\*\panose 020b0604020202020204}Arial;}{\f39\froman\fcharset0\fprq2 Times New Roman;}{\f38\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f40\froman\fcharset161\fprq2 Times New Roman Greek;}
+{\f41\froman\fcharset162\fprq2 Times New Roman Tur;}{\f42\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f43\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f44\froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\f45\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f49\fswiss\fcharset0\fprq2 Arial;}{\f48\fswiss\fcharset204\fprq2 Arial Cyr;}{\f50\fswiss\fcharset161\fprq2 Arial Greek;}{\f51\fswiss\fcharset162\fprq2 Arial Tur;}
+{\f52\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f53\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f54\fswiss\fcharset186\fprq2 Arial Baltic;}{\f55\fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
+\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;
+\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive 
+\ssemihidden Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\*\cs15 \additive \ul\cf2 \sbasedon10 Hyperlink;}}
+{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1379267\rsid3345586\rsid5638524\rsid6496053\rsid6510316\rsid6697379\rsid7028353\rsid9000330\rsid9454304\rsid10124145\rsid10819759\rsid12321742\rsid12593955\rsid14358633\rsid15670059\rsid16132583
+}{\*\generator Microsoft Word 11.0.5604;}{\info{\author Mladen Turk}{\operator Mladen Turk}{\creatim\yr2003\mo4\dy9\hr14\min37}{\revtim\yr2004\mo4\dy7\hr8\min42}{\version14}{\edmins11}{\nofpages1}{\nofwords96}{\nofchars549}
+{\*\company Apache Software Foundation}{\nofcharsws644}{\vern24689}}\margl1417\margr1417\margt1417\margb1417 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701
+\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot9000330 \fet0\sectd \linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang 
+{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang 
+{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain 
+\qc \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid14358633 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f1\insrsid16132583\charrsid12321742 The Apache Software License, Version 2.0
+\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\f1\fs18\insrsid16132583\charrsid16132583 
+\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid9454304 {\f1\fs18\insrsid9454304   }{\f1\fs18\insrsid16132583\charrsid16132583 Copyright 2002-2004 The Apache Software Foundation.
+\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid1379267 {\f1\fs18\insrsid16132583\charrsid16132583    
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 Licensed under the Apache License, Version 2.0 (the "License");
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 you may not use this file except in compliance with the License.
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 You may obtain a copy of the License at
+\par }{\f1\fs18\insrsid12593955 
+\par }{\f1\fs18\insrsid16132583\charrsid16132583    
+\par }{\cf2\insrsid6510316   }{\ul\cf2\insrsid16132583\charrsid6510316 http://www.apache.org/licenses/LICENSE-2.0
+\par }{\f1\fs18\insrsid12593955 
+\par 
+\par }{\f1\fs18\insrsid12321742 \line }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 Unless required by applicable law or agreed to in writing, software
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 distributed under the License is distributed on an "AS IS" BASIS,}{\f1\fs18\insrsid14358633  }{\f1\fs18\insrsid16132583\charrsid16132583 
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid16132583\charrsid16132583 See the License for the specific language governing permissions and
+\par }{\f1\fs18\insrsid14358633   }{\f1\fs18\insrsid14358633\charrsid16132583 L}{\f1\fs18\insrsid16132583\charrsid16132583 imitations under the License.
+\par }}
\ No newline at end of file

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-license.rtf
------------------------------------------------------------------------------
    svn:executable = 

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-manager.ico
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-manager.ico?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-manager.ico
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-manager.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-start.ico
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-start.ico?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-start.ico
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-start.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-start.png
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-start.png?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-start.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.ico
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.ico?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.ico
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.png
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.png?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus-stop.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus.bmp
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus.bmp?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus.bmp
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus.bmp
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/safehaus.ico
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/safehaus.ico?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus.ico
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/safehaus.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/server.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/server.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/server.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/server.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
+  "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+  <bean id="environment" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
+    <property name="properties">
+      <props>
+        <prop key="java.naming.security.authentication">simple</prop>
+        <prop key="java.naming.security.principal">uid=admin,ou=system</prop>
+        <prop key="java.naming.security.credentials">secret</prop>
+        <prop key="java.naming.provider.url">dc=example,dc=com</prop>
+        <prop key="java.naming.factory.state">org.safehaus.triplesec.store.ProfileStateFactory</prop>
+        <prop key="java.naming.factory.object">org.safehaus.triplesec.store.ProfileObjectFactory</prop>
+
+        <prop key="kdc.primary.realm">EXAMPLE.COM</prop>
+        <prop key="kdc.principal">krbtgt/EXAMPLE.COM@EXAMPLE.COM</prop>
+        <prop key="kdc.encryption.types">des-cbc-md5 des3-cbc-sha1 des3-cbc-md5 des-cbc-md4 des-cbc-crc</prop>
+        <prop key="kdc.entryBaseDn">ou=users,dc=example,dc=com</prop>
+        <prop key="kdc.java.naming.security.credentials">secret</prop>
+
+        <prop key="changepw.entryBaseDn">ou=users,dc=example,dc=com</prop>
+        <prop key="changepw.java.naming.security.credentials">secret</prop>
+        <prop key="changepw.principal">kadmin/changepw@EXAMPLE.COM</prop>
+
+        <!-- All times are in minutes -->
+        <prop key="kdc.allowable.clockskew">5</prop>
+        <prop key="kdc.tgs.maximum.ticket.lifetime">1440</prop>
+        <prop key="kdc.tgs.maximum.renewable.lifetime">10080</prop>
+        <prop key="kdc.pa.enc.timestamp.required">true</prop>
+        <prop key="kdc.tgs.empty.addresses.allowed">true</prop>
+        <prop key="kdc.tgs.forwardable.allowed">true</prop>
+        <prop key="kdc.tgs.proxiable.allowed">true</prop>
+        <prop key="kdc.tgs.postdate.allowed">true</prop>
+        <prop key="kdc.tgs.renewable.allowed">true</prop>
+
+        <prop key="safehaus.entry.basedn">ou=Users,dc=example,dc=com</prop>
+        <prop key="safehaus.load.testdata">true</prop>
+        <prop key="kerberos.sam.type.7">org.safehaus.triplesec.verifier.hotp.DefaultHotpSamVerifier</prop>
+      </props>
+    </property>
+  </bean>
+
+  <bean id="configuration" class="org.safehaus.triplesec.configuration.MutableTriplesecStartupConfiguration">
+    <property name="workingDirectory"><value>partitions</value></property>
+    <property name="allowAnonymousAccess"><value>false</value></property>
+    <property name="accessControlEnabled"><value>true</value></property>
+    <property name="ldapPort"><value>10389</value></property>
+    <property name="enableKerberos"><value>true</value></property>
+    <property name="enableNtp"><value>false</value></property>
+    <property name="enableChangePassword"><value>true</value></property>
+
+    <!-- Uncomment below to have the server load entries on startup!        -->
+    <!-- ldifDirectory property can point to a relative file, directory or  -->
+    <!-- can point to an absolute path to either using the URL path         -->
+    <!-- notation: i.e. file:///Users/jack/apacheds/ldifs                   -->
+
+    <!-- Entries will optionally be filtered using LdifLoadFilters in the   -->
+    <!-- order specified.  The included Krb5KdcEntryFilter will filter      -->
+    <!-- kerberos principals creating keys for them using their             -->
+    <!-- userPassword attribute if present.                                 -->
+
+    <!-- If missing the Triplesec server will use LDIF files under the conf -->
+    <!-- directory where it has been installed.                             -->
+
+    <!--
+    <property name="ldifDirectory">
+      <value>example.ldif</value>
+    </property>
+    -->
+    <property name="ldifFilters">
+      <list>
+        <bean class="org.apache.directory.server.protocol.shared.store.Krb5KdcEntryFilter"/>
+      </list>
+    </property>
+
+    <property name="activationConfiguration">
+      <bean class="org.safehaus.triplesec.configuration.ActivationConfiguration">
+        <property name="enableDecoyMidlet"><value>true</value></property>
+        <property name="otpLength"><value>6</value></property>
+        <property name="midletNameAttribute"><value>midletNameAttribute</value></property>
+      </bean>  
+    </property>    
+    
+    <property name="smsConfiguration">
+      <bean class="org.safehaus.triplesec.configuration.SmsConfiguration">
+        <property name="smsUsername"><value>hauskeys</value></property>
+        <property name="smsPassword"><value>secret</value></property>
+        <property name="smsAccountName"><value>demo</value></property>
+        <property name="smsTransportUrl"><value>http://www.nbroadcasting.com/customers/messages/Sender.asp</value></property>
+      </bean>  
+    </property>    
+    
+    <property name="smtpConfiguration">
+      <bean class="org.safehaus.triplesec.configuration.SmtpConfiguration">
+        <property name="smtpAuthenticate"><value>false</value></property>
+        <!-- uncomment and set above property if authentication is required by mail server
+             <property name="smtpUsername"><value>hauskeys</value></property>
+             <property name="smtpPassword"><value>secret</value></property>
+             -->
+             <property name="smtpHost"><value>localhost</value></property>
+             <property name="smtpSubject"><value>Triplesec Account Activated</value></property>
+             <property name="smtpFrom"><value>dev@safehaus.org</value></property>
+           </bean>  
+         </property>    
+         
+    <property name="contextPartitionConfigurations">
+      <set>
+        <ref bean="examplePartitionConfiguration"/>
+      </set>
+    </property>
+    
+    <property name="bootstrapSchemas">
+      <set>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.CorbaSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.CoreSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.CosineSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.ApacheSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.CollectiveSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.InetorgpersonSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.JavaSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.Krb5kdcSchema"/>
+        <bean class="org.apache.directory.server.core.schema.bootstrap.SystemSchema"/>
+        <bean class="org.safehaus.triplesec.store.schema.SafehausSchema"/>
+      </set>
+    </property>
+    
+    <property name="extendedOperationHandlers">
+      <list>
+        <bean class="org.apache.directory.server.ldap.support.extended.GracefulShutdownHandler"/>
+        <bean class="org.apache.directory.server.ldap.support.extended.LaunchDiagnosticUiHandler"/>
+      </list>
+    </property>  
+
+    <property name="interceptorConfigurations">
+      <list>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>normalizationService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.normalization.NormalizationService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>authenticationService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.authn.AuthenticationService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>referralService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.referral.ReferralService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>authorizationService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.authz.AuthorizationService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>defaultAuthorizationService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.authz.DefaultAuthorizationService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>exceptionService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.exception.ExceptionService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>schemaService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.schema.SchemaService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>subentryService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.subtree.SubentryService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>operationalAttributeService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.operational.OperationalAttributeService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>collectiveAttributeService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.collective.CollectiveAttributeService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>eventService</value></property>
+          <property name="interceptor">
+            <bean class="org.apache.directory.server.core.event.EventService" />
+          </property>
+        </bean>
+        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
+          <property name="name"><value>policyProtectionService</value></property>
+          <property name="interceptor">
+            <bean class="org.safehaus.triplesec.store.interceptor.PolicyProtectionInterceptor" />
+          </property>
+        </bean>
+      </list>
+    </property>
+  </bean>
+  
+  <bean id="examplePartitionConfiguration" class="org.apache.directory.server.core.configuration.MutablePartitionConfiguration">
+    <property name="name"><value>example</value></property>
+    <property name="suffix"><value>dc=example,dc=com</value></property>
+    <property name="indexedAttributes">
+      <set>
+        <value>objectClass</value>
+        <value>ou</value>
+        <value>dc</value>
+        <value>uid</value>
+        <value>profileId</value>
+        <value>permName</value>
+        <value>roleName</value>
+        <value>roles</value>
+        <value>grants</value>
+        <value>denials</value>
+        <value>krb5PrincipalName</value>
+      </set>
+    </property>
+    <property name="contextEntry">
+      <value>
+        objectClass: top
+        objectClass: domain
+        objectClass: extensibleObject
+        dc: example
+        administrativeRole: accessControlSpecificArea
+        administrativeRole: collectiveAttributeSpecificArea
+      </value>
+    </property>
+  </bean>
+
+  <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
+    <property name="customEditors">
+      <map>
+        <entry key="javax.naming.directory.Attributes">
+          <bean class="org.apache.directory.server.core.configuration.AttributesPropertyEditor"/>
+        </entry>
+      </map>
+   </property>
+  </bean>
+</beans>

Added: directory/trunks/triplesec/installers/src/main/installers/triplesec.exe
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/triplesec.exe?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/triplesec.exe
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/triplesec.exe
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/triplesecw.exe
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/triplesecw.exe?view=auto&rev=486187
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/triplesec/installers/src/main/installers/triplesecw.exe
------------------------------------------------------------------------------
    svn:executable = 

Propchange: directory/trunks/triplesec/installers/src/main/installers/triplesecw.exe
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/triplesec/installers/src/main/installers/unix_shortcuts.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/unix_shortcuts.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/unix_shortcuts.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/unix_shortcuts.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+
+<shortcuts>
+  <programGroup defaultName="${app}" location="applications"/>
+
+  <shortcut
+    name="Start ${app} Server"
+    programGroup="yes"
+    desktop="yes"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH/bin/${server.init}"
+    workingDirectory="$INSTALL_PATH/bin"
+    commandLine=" start"
+    iconFile="$INSTALL_PATH/start.png"
+    type="Application"
+    encoding="UTF-8"
+    description="Start ${app} Server">
+    <createForPack name="Binaries"/>
+  </shortcut>
+
+  <shortcut
+    name="Stop ${app} Server"
+    programGroup="yes"
+    desktop="yes"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH/bin/${server.init}"
+    workingDirectory="$INSTALL_PATH/bin"
+    commandLine=" stop"
+    iconFile="$INSTALL_PATH/stop.png"
+    type="Application"
+    encoding="UTF-8"
+    description="Start ${app} Server">
+    <createForPack name="Binaries"/>
+  </shortcut>
+  
+  <shortcut
+           name="Debug ${app} Server"
+           programGroup="yes"
+           desktop="yes"
+           terminal="true"
+           applications="no"
+           startMenu="no"
+           startup="no"
+           target="$INSTALL_PATH/bin/${server.init}"
+           workingDirectory="$INSTALL_PATH/bin"
+           commandLine=" debug"
+           iconFile="$INSTALL_PATH/debug.png"
+           type="Application"
+           encoding="UTF-8"
+           description="Debug ${app} Server">
+    <createForPack name="Binaries"/>
+  </shortcut>
+  
+  <shortcut
+           name="Triplesec Admin"
+           programGroup="yes"
+           desktop="yes"
+           applications="no"
+           startMenu="no"
+           startup="no"
+           target="$JAVA_HOME/bin/java"
+           commandLine=" -jar &quot;$INSTALL_PATH&quot;/bin/triplesec-admin.jar &quot;$INSTALL_PATH&quot;"
+           iconFile="$INSTALL_PATH/admin-tool.png"
+           workingDirectory="$INSTALL_PATH/bin"
+           type="Application"
+           encoding="UTF-8"
+           description="Triplesec Admin">
+    <createForPack name="Binaries" />
+  </shortcut>
+  
+  <shortcut
+    name="Uninstall"
+    programGroup="yes"
+    desktop="no"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$JAVA_HOME/bin/java"
+    commandLine=" -jar &quot;$INSTALL_PATH/Uninstaller/uninstaller.jar&quot;"
+    initialState="noShow"
+    iconFile="trashcan_full"
+    iconIndex="0"
+    workingDirectory=""
+    type="Application"
+    encoding="UTF-8"
+    description="Uninstall ${app} Server">
+    <createForPack name="Binaries" />
+  </shortcut>
+</shortcuts>

Added: directory/trunks/triplesec/installers/src/main/installers/windows_shortcuts.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/windows_shortcuts.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/windows_shortcuts.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/windows_shortcuts.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<!--
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+ 
+  This script has been generated by the daemon installer plugin and was not
+  supplied by the application.
+ 
+ -->
+
+<shortcuts>
+  <programGroup defaultName="${app}" location="applications"/>
+
+  <shortcut
+    name="Service Settings"
+    programGroup="yes"
+    desktop="no"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH\bin\${app}w.exe"
+    commandLine="//ES//${app}"
+    workingDirectory="$INSTALL_PATH\bin"
+    description="Edit ${app} Service"
+    iconFile="$INSTALL_PATH\icons\${app.icon}">
+
+    <createForPack name="Binaries" />
+  </shortcut>
+     
+  <shortcut
+    name="Tray Monitor"
+    programGroup="yes"
+    desktop="no"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH\bin\${app}w.exe"
+    commandLine="//MS//${app}"
+    workingDirectory="$INSTALL_PATH\bin"
+    description="Monitor ${app} Service"
+    iconFile="$INSTALL_PATH\icons\${app.icon}">
+     
+    <createForPack name="Binaries" />
+  </shortcut>
+     
+  <shortcut
+    name="Test Service"
+    programGroup="yes"
+    desktop="no"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH\bin\${app}.exe"
+    commandLine=""
+    workingDirectory="$INSTALL_PATH\bin"
+    description="Test Service on Console"
+    iconFile="$INSTALL_PATH\icons\${app.icon}">
+     
+    <createForPack name="Binaries" />
+  </shortcut>
+  
+  <shortcut
+    name="Uninstaller"
+    programGroup="yes"
+    desktop="no"
+    applications="no"
+    startMenu="no"
+    startup="no"
+    target="$INSTALL_PATH\Uninstaller\uninstaller.jar"
+    commandLine=""
+    description="${app} Server Uninstaller">
+     
+    <createForPack name="Binaries" />
+  </shortcut>
+</shortcuts>

Added: directory/trunks/triplesec/integration/pom.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/integration/pom.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/integration/pom.xml (added)
+++ directory/trunks/triplesec/integration/pom.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+    http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License. 
+-->
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.safehaus.triplesec</groupId>
+    <artifactId>build</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>triplesec-integration</artifactId>
+  <name>Triplesec Integration Testing</name>
+  <packaging>jar</packaging>  
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>nlog4j</artifactId>
+      <version>1.2.25</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-main</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>1.2</version>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>no-integration-tests</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <build>
+        <plugins>
+           <plugin>
+              <artifactId>maven-surefire-plugin</artifactId>
+              <configuration>
+                <excludes>
+                  <exclude>**/*ITest.java</exclude>
+                  <exclude>**/*IntegrationTest.java</exclude>
+                </excludes>
+              </configuration>
+            </plugin>
+            <plugin>
+              <artifactId>maven-antrun-plugin</artifactId>
+              <executions>
+                <execution>
+                  <phase>validate</phase>
+                  <configuration>
+                    <tasks>
+                      <echo>
+=================================================================
+                          W A R N I N G
+                          -------------
+
+Integration tests have been disabled.  To enable integration
+tests run maven with the -Dintegration switch.
+=================================================================
+                      </echo>
+                    </tasks>
+                  </configuration>
+                  <goals>
+                    <goal>run</goal>
+                  </goals>
+                </execution>
+              </executions>
+            </plugin>
+         </plugins>
+       </build>
+    </profile>
+    <profile>
+      <id>integration</id>
+      <activation>
+        <property><name>integration</name></property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <systemProperties>
+                <property>
+                  <name>org.safehaus.triplesec.integration.resourcesDirectory</name>
+                  <value>${basedir}/src/test/resources</value>
+                </property>
+              </systemProperties>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>

Added: directory/trunks/triplesec/integration/src/main/java/org/safehaus/triplesec/integration/TriplesecIntegration.java
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/integration/src/main/java/org/safehaus/triplesec/integration/TriplesecIntegration.java?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/integration/src/main/java/org/safehaus/triplesec/integration/TriplesecIntegration.java (added)
+++ directory/trunks/triplesec/integration/src/main/java/org/safehaus/triplesec/integration/TriplesecIntegration.java Tue Dec 12 07:23:31 2006
@@ -0,0 +1,425 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.safehaus.triplesec.integration;
+
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.commons.io.FileUtils;
+import org.apache.mina.util.AvailablePortFinder;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Expand;
+import org.safehaus.triplesec.TriplesecInstallationLayout;
+import org.safehaus.triplesec.Service;
+
+
+/**
+ * A unit test case base class for implementing Triplesec Unit tests.  To
+ * use TriplesecUnit properly you must set two System properties.
+ * TrilpesecUnit builds a minimal install footprint to start up Triplesec
+ * and needs to know where this home directory should be created along with
+ * where to find configuration files which it copies over to the home
+ * directory.
+ *
+ * Generally one can create a src/test/resource directory for a project and
+ * point the org.safehaus.triplesec.unit.resource.dir property to the absolute
+ * path for this directory.  Absolute paths must be used, however with Maven
+ * the ${basedir} macro can be used in the project.properties file to set this
+ * path in a position independent fashion.  Within an IDE the test run must
+ * have the absolute path specified as a jvm -D parameter before running the
+ * test.  Within this directory you put the server.xml file that is needed
+ * as well as any files ending in the ldif extention to be imported on server
+ * startup.  An optional log4j.properties can be put here as well however
+ * for Maven to use it the log4j.properties must be explicity specified within
+ * the resources section of the project.xml to be copied into the test-classes
+ * directory on test runs.
+ *
+ * At the present point in time the unit test must be run as root otherwise
+ * Triplesec cannot bind to the Kerberos port.  We will make this configurable
+ * so we can search for a free bindable port so tests can pass as non-root
+ * users.
+ *
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev$
+ */
+public class TriplesecIntegration extends TestCase
+{
+    /** the resources property to set */
+    public static final String RESOURCES_DIRECTORY = "org.safehaus.triplesec.integration.resourcesDirectory";
+    /** a comma delimited list of web applications */
+    public static final String WEBAPPS_PROPERTY = "org.safehaus.triplesec.integration.webapps";
+    /** the base property for a the path to a webapp war */
+    public static final String WEBAPPWARBASE_PROPERTY = "org.safehaus.triplesec.integration.webappWarBase";
+    /** the SLF4J logger for this class */
+    private static final Logger log = LoggerFactory.getLogger( TriplesecIntegration.class );
+
+    /** a handle on the server's newly created "install" home directory */
+    private File serverHome;
+    /**
+     * The configuration directory is where TriplesecUnit searches for configuration 
+     * files to copy into the server home directory it will create.  Within this 
+     * directory where ever it may be, must reside a server.xml configuration file 
+     * for Triplesec Server.  Optional LDIF files can also be placed here for import 
+     * when the server starts up.
+     */
+    private File resourcesDirectory;
+    private Service server;
+    private int httpPort;
+    private int ldapPort;
+    private int ldapsPort;
+    private int krb5Port;
+    private int changepwPort;
+    private int ntpPort;
+
+
+    /**
+     * Creates a unit test case that sets up and runs the Triplesec server
+     * for each unit test with a fresh database.
+     *
+     * @param resourcesDirectory the directory containing triplesec resource files
+     * @throws Exception if there are configuration issues with the unit test
+     */
+    public TriplesecIntegration() throws Exception
+    {
+        init();
+    }
+
+
+    /**
+     * Creates a unit test case that sets up and runs the Triplesec server
+     * for each unit test with a fresh database.
+     *
+     * @param resourcesDirectory the directory containing triplesec resource files
+     * @param string the name of the unit test
+     * @throws Exception if there are configuration issues with the unit test
+     */
+    public TriplesecIntegration( String string ) throws Exception
+    {
+        super( string );
+        init();
+    }
+
+
+    /**
+     * Get's the LDAP port the server starts on.
+     *
+     * @return the LDAP port the server starts on
+     */
+    protected int getLdapPort()
+    {
+        return ldapPort;
+    }
+
+
+    /**
+     * Get's the HTTP port the server starts on.
+     *
+     * @return the HTTP port the server starts on
+     */
+    protected int getHttpPort()
+    {
+        return httpPort;
+    }
+
+
+    /**
+     * Get's the LDAPS port the server starts on.
+     *
+     * @return the LDAPS port the server starts on
+     */
+    protected int getLdapsPort()
+    {
+        return ldapsPort;
+    }
+
+
+    /**
+     * Gets the Kerberos port the server binds to.
+     *
+     * @return the Kerberos port the server binds to.
+     */
+    protected int getKerberosPort()
+    {
+        return krb5Port;
+    }
+
+
+    /**
+     * Gets the Changepw port the server binds to.
+     *
+     * @return the Changepw port the server binds to.
+     */
+    protected int getChangepwPort()
+    {
+        return changepwPort;
+    }
+
+
+    /**
+     * Gets the Ntp port the server binds to.
+     *
+     * @return the Ntp port the server binds to.
+     */
+    protected int getNtpPort()
+    {
+        return ntpPort;
+    }
+
+
+    /**
+     * Gets the file for the server home which is the directory containing the
+     * minimal install footprint for the Triplesec Server.
+     *
+     * @return the server home
+     */
+    protected File getServerHome()
+    {
+        return serverHome;
+    }
+
+
+    /**
+     * Gets a handle to the directory containing the configuration resources
+     * that were copied over to the server home directory.
+     *
+     * @return the handle to the configuration resources directory
+     */
+    protected File getConfigResourcesDir()
+    {
+        return resourcesDirectory;
+    }
+    
+    
+    private void initWebapps( File webappsDirectory ) throws IOException
+    {
+        String value = System.getProperties().getProperty( WEBAPPS_PROPERTY, null );
+        if ( value == null )
+        {
+            return;
+        }
+        
+        String[] webapps = value.split( "," );
+        for ( int ii = 0; ii < webapps.length; ii++ )
+        {
+            String warPath = System.getProperties().getProperty( WEBAPPWARBASE_PROPERTY + "." + webapps[ii], null );
+            if ( warPath == null )
+            {
+                log.warn( "Abandoning webapplication. No path for webapp's war: " + webapps[ii] );
+                continue;
+            }
+            
+            if ( ! new File( warPath ).exists() )
+            {
+                log.warn( "War for webapp " + webapps[ii] + " does not exist for path: " + warPath 
+                    + ".\nCheck that the war is present or rebuild that webapp module." );
+                continue;
+            }
+            
+            File explodedDirectory = new File( webappsDirectory, webapps[ii] );
+            explodedDirectory.mkdirs();
+            try
+            {
+                explodeWar( explodedDirectory, new File( warPath ) );
+            }
+            catch ( IOException e )
+            {
+                log.error( "Failed to explode war at " + warPath, e );
+            }
+        }
+    }
+
+
+    private void explodeWar( File explodedDirectory, File warFile ) throws IOException
+    {
+        log.info( "Exploding war " + warFile.getAbsolutePath() + " into directory " 
+            + explodedDirectory.getAbsolutePath()  );
+        Expand expand = new Expand();
+        expand.setProject( new Project() );
+        expand.setSrc( warFile );
+        expand.setOverwrite( true );
+        expand.setDest( explodedDirectory );
+        expand.execute();
+    }
+
+
+    /**
+     * Initializes TriplesecUnit once (not on every test run) by cleaning out
+     * the old server home if it exists and building it once again using the
+     * configuration files present within the configuration resources directory.
+     * This method does not start the server.  The server is started with a
+     * fresh new database for each run within the setUp() method.
+     *
+     * @throws Exception if there are problems with the T-unit configuration
+     */
+    private void init() throws Exception
+    {
+        this.resourcesDirectory = new File ( System.getProperties().getProperty( 
+            RESOURCES_DIRECTORY, "src/test/resources" ) );
+
+        if ( ! resourcesDirectory.exists() )
+        {
+            String msg = "The configuration resources directory '" +
+                    resourcesDirectory + "' does not exist will search classpath for resources";
+            fail( msg );
+        }
+
+        // --------------------------------------------------------------------
+        // Setup the serverHome directory
+        // --------------------------------------------------------------------
+
+        File targetDirectory = new File( "target" );
+        if ( ! targetDirectory.exists() )
+        {
+            targetDirectory.mkdirs();
+        }
+        
+        serverHome = new File( targetDirectory, "serverHome" );
+        if ( serverHome.exists() )
+        {
+            FileUtils.deleteDirectory( serverHome );
+        }
+
+        // --------------------------------------------------------------------
+        // Create minimal install footprint with configuration files
+        // --------------------------------------------------------------------
+
+        serverHome.mkdirs();
+        File logsDir = new File( serverHome, "logs" );
+        logsDir.mkdir();
+        File confDir = new File( serverHome, "conf" );
+        confDir.mkdir();
+        File webappsDir = new File( serverHome, "webapps" );
+        webappsDir.mkdir();
+        initWebapps( webappsDir );
+        
+        FileUtils.copyFileToDirectory( new File( resourcesDirectory, "server.xml" ), confDir );
+        File [] ldifFiles = resourcesDirectory.listFiles( new FileFilter()
+        {
+            public boolean accept( File file )
+            {
+                return file.getName().endsWith( "ldif" );
+            }
+        });
+        for ( int ii = 0; ii < ldifFiles.length; ii++ )
+        {
+            FileUtils.copyFileToDirectory( ldifFiles[ii], confDir );
+        }
+    }
+
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+
+        // must delete the contents under the partitions directory
+        File partitionDir = new File( serverHome, "var" );
+        partitionDir = new File( partitionDir, "partitions" );
+        if ( partitionDir.exists() )
+        {
+            FileUtils.forceDelete( partitionDir );
+        }
+        partitionDir.mkdir();
+
+        server = new Service();
+        server.setEnableShutdownHook( false );
+        
+        if ( ! AvailablePortFinder.available( 88 ) )
+        {
+            krb5Port = AvailablePortFinder.getNextAvailable( 1088 );
+            server.setKrb5PortOverride( krb5Port );
+        }
+        else
+        {
+            krb5Port = 88;
+        }
+
+        if ( ! AvailablePortFinder.available( 464 ) )
+        {
+            changepwPort = AvailablePortFinder.getNextAvailable( 1464 );
+            server.setChangepwPortOverride( changepwPort );
+        }
+        else
+        {
+            changepwPort = 464;
+        }
+
+        if ( ! AvailablePortFinder.available( 123 ) )
+        {
+            ntpPort = AvailablePortFinder.getNextAvailable( 1123 );
+            server.setNtpPortOverride( ntpPort );
+        }
+        else
+        {
+            ntpPort = 123;
+        }
+
+        if ( ! AvailablePortFinder.available( 10389 ) )
+        {
+            ldapPort = AvailablePortFinder.getNextAvailable( 10389 );
+            server.setLdapPortOverride( ldapPort );
+        }
+        else
+        {
+            ldapPort = 10389;
+        }
+
+        if ( ! AvailablePortFinder.available( 8383 ) )
+        {
+            httpPort = AvailablePortFinder.getNextAvailable( 8383 );
+            server.setHttpPortOverride( httpPort );
+        }
+        else
+        {
+            httpPort = 8383;
+        }
+
+        if ( ! AvailablePortFinder.available( 10636 ) )
+        {
+            ldapsPort = AvailablePortFinder.getNextAvailable( 10636 );
+            server.setLdapsPortOverride( ldapsPort );
+        }
+        else
+        {
+            ldapsPort = 10636;
+        }
+
+        String home = serverHome.getCanonicalPath();
+        log.debug( "server home used = " + home );
+        server.init( new TriplesecInstallationLayout( serverHome ), new String[] { home, "start" } );
+        log.info( "initialized Triplesec Server" );
+        server.start();
+        log.info( "started Triplesec Server" );
+    }
+
+
+    protected void tearDown() throws Exception
+    {
+        server.stop( null );
+        server.destroy();
+        server = null;
+        super.tearDown();
+    }
+}

Added: directory/trunks/triplesec/integration/src/test/java/org/safehaus/triplesec/integration/TriplesecIntegrationITest.java
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/integration/src/test/java/org/safehaus/triplesec/integration/TriplesecIntegrationITest.java?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/integration/src/test/java/org/safehaus/triplesec/integration/TriplesecIntegrationITest.java (added)
+++ directory/trunks/triplesec/integration/src/test/java/org/safehaus/triplesec/integration/TriplesecIntegrationITest.java Tue Dec 12 07:23:31 2006
@@ -0,0 +1,61 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.safehaus.triplesec.integration;
+
+
+import org.safehaus.triplesec.integration.TriplesecIntegration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+
+/**
+ * Test case to make sure the TriplesecUnit is working correctly.
+ *
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev$
+ */
+public class TriplesecIntegrationITest extends TriplesecIntegration
+{
+    private static Logger log = LoggerFactory.getLogger( TriplesecIntegrationITest.class );
+
+
+    public TriplesecIntegrationITest() throws Exception
+    {
+        super();
+    }
+
+
+    /**
+     * Checks to see that init has done it's job
+     */
+    public void testInit()
+    {
+        log.info( "entered testInit()" );
+        assertTrue( getServerHome().exists() );
+        assertTrue( new File( getServerHome(), "logs" ).exists() );
+        assertTrue( new File( getServerHome(), "conf" ).exists() );
+        assertTrue( new File( getServerHome(), "var" ).exists() );
+
+        File confDir = new File( getServerHome(), "conf" );
+        assertTrue( new File( confDir, "server.xml" ).exists() );
+    }
+}

Added: directory/trunks/triplesec/integration/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/integration/src/test/resources/log4j.properties?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/integration/src/test/resources/log4j.properties (added)
+++ directory/trunks/triplesec/integration/src/test/resources/log4j.properties Tue Dec 12 07:23:31 2006
@@ -0,0 +1,11 @@
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=ERROR, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
+

Added: directory/trunks/triplesec/integration/src/test/resources/server.ldif
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/integration/src/test/resources/server.ldif?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/integration/src/test/resources/server.ldif (added)
+++ directory/trunks/triplesec/integration/src/test/resources/server.ldif Tue Dec 12 07:23:31 2006
@@ -0,0 +1,189 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#    http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License. 
+#  
+#
+#
+#   EXAMPLE.COM is freely and reserved for testing according to this RFC:
+#
+#   http://www.rfc-editor.org/rfc/rfc2606.txt
+#
+#
+
+#
+# This ACI allows brouse access to the root suffix and one level below that to anyone.
+# At this level there is nothing critical exposed.  Everything that matters is one or
+# more levels below this.
+#
+
+dn: cn=browseRootAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { maximum 1 }
+prescriptiveACI: { identificationTag "browseRoot", precedence 100, authenticationLevel none, itemOrUserFirst userFirst: { userClasses { allUsers }, userPermissions { { protectedItems {entry}, grantsAndDenials { grantReturnDN, grantBrowse } } } } }
+
+dn: ou=Users, dc=example, dc=com
+objectclass: top
+objectclass: organizationalunit
+ou: Users
+
+#
+# This ACI allows users to modify a limited set of attributes in their own user
+# entry as well as read, compare those attributes.  The user's entry must be 
+# browseable and the DN must be returnable.
+#
+
+dn: cn=allowSelfModificationsAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { base "ou=users", maximum 1 }
+prescriptiveACI: { identificationTag "allowSelfModifications", precedence 14, authenticationLevel simple, itemOrUserFirst userFirst: { userClasses { thisEntry }, userPermissions  {  { protectedItems {entry}, grantsAndDenials { grantReturnDN, grantModify, grantBrowse, grantRead, grantDiscloseOnError } }, { protectedItems {allAttributeValues {userPassword, krb5Key, givenName, cn, commonName, surName, sn, objectClass }}, grantsAndDenials { grantModify, grantAdd, grantRemove, grantRead, grantDiscloseOnError, grantCompare } } } } }
+
+#
+# This ACI allows users to access a limited set of attributes in their own user
+# entry as well as compare those attributes.  The user's entry must be browseable 
+# and the DN must be returnable.
+#
+
+dn: cn=allowSelfAccessAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { base "ou=users", maximum 1 }
+prescriptiveACI: { identificationTag "allowSelfAccess", precedence 15, authenticationLevel simple, itemOrUserFirst userFirst: { userClasses { thisEntry }, userPermissions  {  { protectedItems {entry}, grantsAndDenials { grantReturnDN, grantBrowse, grantRead, grantDiscloseOnError } }, { protectedItems {allAttributeValues {uid, userPassword, givenName, cn, commonName, surName, sn, objectClass, creatorsName, modifiersName, createTimestamp, modifyTimestamp, krb5AccountDisabled, description, apacheSamType }}, grantsAndDenials { grantRead, grantDiscloseOnError, grantCompare } } } } }
+
+dn: ou=Groups, dc=example, dc=com
+objectclass: top
+objectclass: organizationalunit
+ou: Groups
+
+dn: cn=superUsers, ou=Groups, dc=example, dc=com
+objectClass: top
+objectClass: groupOfUniqueNames
+cn: superUsers
+uniqueMember: uid=admin, ou=system
+
+dn: cn=userAdmins, ou=Groups, dc=example, dc=com
+objectClass: top
+objectClass: groupOfUniqueNames
+cn: userAdmin
+uniqueMember: uid=admin, ou=system
+
+dn: cn=applicationAdmins, ou=Groups, dc=example, dc=com
+objectClass: top
+objectClass: groupOfUniqueNames
+cn: applicationAdmin
+uniqueMember: uid=admin, ou=system
+
+dn: cn=groupAdmins, ou=Groups, dc=example, dc=com
+objectClass: top
+objectClass: groupOfUniqueNames
+cn: groupAdmin
+uniqueMember: uid=admin, ou=system
+
+#
+# This ACI allows members of the superUsers group to have full modify and read access
+# to the entire realm as does the system administrator principal: uid=admin, ou=system.
+#
+# The only thing these users cannot do is modify the system partition.  They are only
+# restricted to superUser rights within this realm partition
+#
+ 
+dn: cn=superUsersAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { }
+prescriptiveACI: { identificationTag "superUsersAci", precedence 20, authenticationLevel simple,  itemOrUserFirst userFirst: { userClasses { userGroup { "cn=superUsers,ou=groups,dc=example,dc=com" } }, userPermissions { { protectedItems {entry, allUserAttributeTypesAndValues},  grantsAndDenials { grantRead, grantReturnDN, grantBrowse, grantDiscloseOnError, grantCompare, grantAdd, grantRename, grantRemove, grantModify, grantImport, grantExport } } } } }
+
+#
+# This ACI allows members of the userAdmin group to have full modify and read access
+# to user accounts besides their own.  Hence they can administer users in the system.
+#
+ 
+dn: cn=userAdminsAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { base "ou=users", maximum 1 }
+prescriptiveACI: { identificationTag "userAdminsAci", precedence 16, authenticationLevel simple,  itemOrUserFirst userFirst: { userClasses { userGroup { "cn=userAdmins,ou=groups,dc=example,dc=com" } }, userPermissions { { protectedItems {entry, allUserAttributeTypesAndValues},  grantsAndDenials { grantRead, grantReturnDN, grantBrowse, grantDiscloseOnError, grantCompare, grantAdd, grantRename, grantRemove, grantModify, grantImport, grantExport } } } } }
+
+
+#
+# This ACI allows members of the applicationAdmin group to have full modify and read access
+# to all applications in the realm.  Adding users to this group is like a wild card for 
+# application access.
+#
+ 
+dn: cn=applicationAdminsAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { base "ou=applications" }
+prescriptiveACI: { identificationTag "applicationAdminsAci", precedence 17, authenticationLevel simple,  itemOrUserFirst userFirst: { userClasses { userGroup { "cn=applicationAdmins,ou=groups,dc=example,dc=com" } }, userPermissions { { protectedItems {entry, allUserAttributeTypesAndValues},  grantsAndDenials { grantRead, grantReturnDN, grantBrowse, grantDiscloseOnError, grantCompare, grantAdd, grantRename, grantRemove, grantModify, grantImport, grantExport } } } } }
+
+
+#
+# This ACI allows members of the groupAdmins group to have full modify and read access
+# to all groups in the realm other than the superUsers, userAdmins, groupAdmins, and the 
+# applicationAdmins groups.
+#
+# The rational behind this is to prevent these users from changing their or other
+# users' access rights for the entire system by modifying their membership in these 
+# groups. Making someone a groupAdmin should not open the door to their ability to
+# grant themselves or others system wide administrative abilities.
+#
+# Really the groupAdmins group is intended for users that have the ability to manage 
+# group membership in specific application administration groups and that's all.  
+# These types of admins should not have the right to promote others to system level
+# administrators or complete super users.
+#
+ 
+dn: cn=groupAdminsAci,dc=example,dc=com
+objectClass: top
+objectClass: subentry
+objectClass: accessControlSubentry
+subtreeSpecification: { base "ou=groups", specificExclusions { chopBefore: "cn=userAdmins", chopBefore: "cn=groupAdmins", chopBefore: "cn=applicationAdmins", chopBefore: "cn=superUsers" } }
+prescriptiveACI: { identificationTag "groupAdminsAci", precedence 18, authenticationLevel simple,  itemOrUserFirst userFirst: { userClasses { userGroup { "cn=groupAdmins,ou=groups,dc=example,dc=com" } }, userPermissions { { protectedItems {entry, allUserAttributeTypesAndValues},  grantsAndDenials { grantRead, grantReturnDN, grantBrowse, grantDiscloseOnError, grantCompare, grantAdd, grantRename, grantRemove, grantModify, grantImport, grantExport } } } } }
+
+dn: uid=krbtgt, ou=Users, dc=example,dc=com
+cn: Kerberos Server
+sn: Server
+givenname: Kerberos
+objectclass: top
+objectclass: uidObject
+objectclass: person
+objectclass: organizationalPerson
+objectclass: inetOrgPerson
+objectclass: krb5Principal
+objectclass: krb5KDCEntry
+ou: Directory
+ou: Users
+uid: krbtgt
+krb5PrincipalName: krbtgt/EXAMPLE.COM@EXAMPLE.COM
+krb5KeyVersionNumber: 0
+telephonenumber: +1 408 555 9187
+facsimiletelephonenumber: +1 408 555 8473
+userPassword: secret
+
+dn: ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalunit
+ou: applications
+