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 [14/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/guardian-ldif/src/main/java/org/safehaus/triplesec/guardian/ldif/LdifConnectionDriver.java
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/guardian-ldif/src/main/java/org/safehaus/triplesec/guardian/ldif/LdifConnectionDriver.java?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/guardian-ldif/src/main/java/org/safehaus/triplesec/guardian/ldif/LdifConnectionDriver.java (added)
+++ directory/trunks/triplesec/guardian-ldif/src/main/java/org/safehaus/triplesec/guardian/ldif/LdifConnectionDriver.java Tue Dec 12 07:23:31 2006
@@ -0,0 +1,103 @@
+/*
+ *  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.guardian.ldif;
+
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Properties;
+
+import org.apache.directory.shared.ldap.NotImplementedException;
+import org.safehaus.triplesec.guardian.ApplicationPolicy;
+import org.safehaus.triplesec.guardian.ApplicationPolicyFactory;
+import org.safehaus.triplesec.guardian.ConnectionDriver;
+import org.safehaus.triplesec.guardian.GuardianException;
+
+
+/**
+ * A simple LDIF file based driver for guardian.
+ *
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev: 62 $
+ */
+public class LdifConnectionDriver implements ConnectionDriver
+{
+    static
+    {
+        ApplicationPolicyFactory.registerDriver( new LdifConnectionDriver() );
+    }
+
+    
+    public LdifConnectionDriver()
+    {
+    }
+
+    
+    public boolean accept( String url )
+    {
+        if ( ( url.startsWith( "file://" ) || url.startsWith( "jar:" ) ) && url.endsWith( ".ldif" ) )
+        {
+            return true;
+        }
+
+        return false;
+    }
+    
+
+    public ApplicationPolicy newStore( String url, Properties info ) throws GuardianException
+    {
+        if ( info == null )
+        {
+            info = new Properties();
+        }
+
+        if ( url == null )
+        {
+            throw new IllegalArgumentException( "A non-null url must be provided." );
+        }
+
+        String application = info.getProperty( "applicationPrincipalDN" );
+        if ( application == null )
+        {
+            throw new IllegalArgumentException( "An applicationPrincipalDN property value must be provided." );
+        }
+        
+        if ( url.startsWith( "file://" ) )
+        {
+            File ldifFile = null;
+            try
+            {
+                ldifFile = new File( new URL( url ).getPath() );
+            }
+            catch ( MalformedURLException e )
+            {
+                throw new GuardianException( "Malformed LDIF file URL: " + url );
+            }
+            return new LdifApplicationPolicy( ldifFile, info );
+        }
+        else if ( url.startsWith( "jar:" ) )
+        {
+            throw new NotImplementedException();
+        }
+        
+        throw new GuardianException( "Unrecognized URL scheme for " );
+    }
+}

Added: directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdapConnectionDriverTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdapConnectionDriverTest.java?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdapConnectionDriverTest.java (added)
+++ directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdapConnectionDriverTest.java Tue Dec 12 07:23:31 2006
@@ -0,0 +1,79 @@
+/*
+ *  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.guardian.ldif;
+
+
+import junit.framework.TestCase;
+
+import java.util.Properties;
+
+
+/**
+ * Tests the LDAP ConnectionDriver.
+ *
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev$
+ */
+public class LdapConnectionDriverTest extends TestCase
+{
+    public void testNullProperties()
+    {
+        LdifConnectionDriver driver = new LdifConnectionDriver();
+        try
+        {
+            driver.newStore( "", null );
+            fail( "should not get here due to exception" );
+        }
+        catch( IllegalArgumentException e )
+        {
+        }
+    }
+
+
+    public void testNullUrl()
+    {
+        LdifConnectionDriver driver = new LdifConnectionDriver();
+        Properties props = new Properties();
+        props.setProperty( "applicationPrincipalDN", "appName=something" );
+        try
+        {
+            driver.newStore( null, props );
+            fail( "should never get here due to an exception" );
+        }
+        catch ( IllegalArgumentException e )
+        {
+        }
+    }
+
+
+    public void testNoPrincipalName()
+    {
+        LdifConnectionDriver driver = new LdifConnectionDriver();
+        try
+        {
+            Properties props = new Properties();
+            driver.newStore( "", props );
+            fail( "should never get here due to an exception" );
+        }
+        catch ( IllegalArgumentException e )
+        {
+        }
+    }
+}

Added: directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdifApplicationPolicyTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdifApplicationPolicyTest.java?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdifApplicationPolicyTest.java (added)
+++ directory/trunks/triplesec/guardian-ldif/src/test/java/org/safehaus/triplesec/guardian/ldif/LdifApplicationPolicyTest.java Tue Dec 12 07:23:31 2006
@@ -0,0 +1,207 @@
+/*
+ *  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.guardian.ldif;
+
+
+import junit.framework.TestCase;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+
+import org.safehaus.triplesec.guardian.ApplicationPolicyFactory;
+import org.safehaus.triplesec.guardian.Profile;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * TestCase to test the LDAP ApplicationPolicyStore implementation.
+ *
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev$
+ */
+public class LdifApplicationPolicyTest extends TestCase
+{
+    Logger log = LoggerFactory.getLogger( LdifApplicationPolicyTest.class );
+    LdifApplicationPolicy policy;
+
+
+    public LdifApplicationPolicyTest( String string ) throws Exception
+    {
+        super( string );
+    }
+
+
+    public LdifApplicationPolicyTest() throws Exception
+    {
+        super();
+    }
+
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        Properties props = new Properties();
+        props.setProperty( "applicationPrincipalDN", "appName=mockApplication,ou=applications,dc=example,dc=com" );
+        Class.forName( "org.safehaus.triplesec.guardian.ldif.LdifConnectionDriver" );
+        String url = System.getProperty( "ldif.url", "file://src/test/resources/server.ldif" );
+        log.info( "using url for ldif file: " + url );
+        policy = ( LdifApplicationPolicy ) ApplicationPolicyFactory.newInstance( url, props );
+    }
+
+
+    protected void tearDown() throws Exception
+    {
+        super.tearDown();
+        policy.close();
+        policy = null;
+    }
+
+
+    public void testGetProfileIds() throws Exception
+    {
+        Set ids = new HashSet();
+        for ( Iterator ii = this.policy.getProfileIdIterator(); ii.hasNext(); /**/ )
+        {
+            ids.add( ii.next() );
+        }
+        assertEquals( 5, ids.size() );
+        assertTrue( ids.contains( "mockProfile0" ) );
+        assertTrue( ids.contains( "mockProfile1" ) );
+        assertTrue( ids.contains( "mockProfile2" ) );
+        assertTrue( ids.contains( "mockProfile3" ) );
+        assertTrue( ids.contains( "mockProfile4" ) );
+        assertFalse( ids.contains( "bogus" ) );
+    }
+
+
+    public void testGetApplicationNameString()
+    {
+        String applicationName = LdifApplicationPolicy.getApplicationName(
+                "appName=testingApp,ou=applications,dc=example,dc=com" );
+        assertEquals( "testingApp", applicationName );
+
+        try
+        {
+            LdifApplicationPolicy.getApplicationName( "notanapp=blahblah" );
+            fail( "should never get here due to an exception" );
+        }
+        catch ( IllegalArgumentException e )
+        {
+        }
+    }
+
+
+    public void testNonExistantProfile()
+    {
+        Profile p = policy.getProfile( "nonexistant" );
+        assertNull( p );
+    }
+
+
+    public void testProfile0()
+    {
+        Profile p = policy.getProfile( "mockProfile0" );
+        assertTrue( p.getEffectivePermissions().isEmpty() );
+        assertEquals( 5, policy.getRoles().size() );
+        assertEquals( p, policy.getProfile( "mockProfile0" ) );
+    }
+
+
+    public void testProfile1()
+    {
+        Profile p = policy.getProfile( "mockProfile1" );
+        assertEquals( 2, p.getEffectivePermissions().size() );
+        assertTrue( p.hasPermission( "mockPerm0" ) );
+        assertTrue( p.hasPermission( "mockPerm1" ) );
+        assertFalse( p.hasPermission( "mockPerm3") );
+        assertEquals( p, policy.getProfile( "mockProfile1" ) );
+    }
+
+
+    public void testProfile2()
+    {
+        Profile p = policy.getProfile( "mockProfile2" );
+        assertEquals( 2, p.getEffectivePermissions().size() );
+        assertTrue( p.hasPermission( "mockPerm0" ) );
+        assertTrue( p.hasPermission( "mockPerm1" ) );
+        assertFalse( p.hasPermission( "mockPerm3") );
+        assertEquals( p, policy.getProfile( "mockProfile2" ) );
+    }
+
+
+    public void testProfile3()
+    {
+        Profile p = policy.getProfile( "mockProfile3" );
+        assertEquals( 4, p.getEffectivePermissions().size() );
+        assertTrue( p.hasPermission( "mockPerm0" ) );
+        assertTrue( p.hasPermission( "mockPerm7" ) );
+        assertTrue( p.hasPermission( "mockPerm2" ) );
+        assertTrue( p.hasPermission( "mockPerm3" ) );
+        assertFalse( p.hasPermission( "mockPerm4" ) );
+        assertEquals( p, policy.getProfile( "mockProfile3" ) );
+    }
+
+
+    public void testProfile4()
+    {
+        Profile p = policy.getProfile( "mockProfile4" );
+        assertEquals( 7, p.getEffectivePermissions().size() );
+        assertTrue( p.hasPermission( "mockPerm0" ) );
+        assertFalse( p.hasPermission( "mockPerm1" ) );
+        assertTrue( p.hasPermission( "mockPerm2" ) );
+        assertTrue( p.hasPermission( "mockPerm3" ) );
+        assertTrue( p.hasPermission( "mockPerm4" ) );
+        assertTrue( p.hasPermission( "mockPerm5" ) );
+        assertTrue( p.hasPermission( "mockPerm6" ) );
+        assertFalse( p.hasPermission( "mockPerm7" ) );
+        assertFalse( p.hasPermission( "mockPerm8" ) );
+        assertTrue( p.hasPermission( "mockPerm9" ) );
+        assertFalse( p.hasPermission( "mockPerm14" ) );
+        assertEquals( p, policy.getProfile( "mockProfile4" ) );
+    }
+    
+    
+    public void testGetUserProfileIds() 
+    {
+        Set ids = policy.getUserProfileIds( "akarasulu" );
+        assertEquals( 5, ids.size() );
+        ids = policy.getUserProfileIds( "trustin" );
+        assertEquals( 0, ids.size() );
+    }
+
+
+    public void testClosedState()
+    {
+        policy.close();
+        try
+        {
+            policy.getProfile( "asdf" );
+            fail( "should never get here due to an exception" );
+        }
+        catch ( Exception e )
+        {
+
+        }
+    }
+}
+                                                     
\ No newline at end of file

Added: directory/trunks/triplesec/guardian-ldif/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/guardian-ldif/src/test/resources/log4j.properties?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/guardian-ldif/src/test/resources/log4j.properties (added)
+++ directory/trunks/triplesec/guardian-ldif/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=WARN, 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/guardian-ldif/src/test/resources/server.ldif
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/guardian-ldif/src/test/resources/server.ldif?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/guardian-ldif/src/test/resources/server.ldif (added)
+++ directory/trunks/triplesec/guardian-ldif/src/test/resources/server.ldif Tue Dec 12 07:23:31 2006
@@ -0,0 +1,151 @@
+dn: ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalunit
+ou: applications
+
+dn: appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyApplication
+appName: mockApplication
+userPassword:: dGVzdGluZw==
+
+dn: ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: permissions
+
+dn: permName=mockPerm0,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm0
+
+dn: permName=mockPerm1,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm1
+
+dn: permName=mockPerm2,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm2
+
+dn: permName=mockPerm3,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm3
+
+dn: permName=mockPerm4,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm4
+
+dn: permName=mockPerm5,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm5
+
+dn: permName=mockPerm6,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm6
+
+dn: permName=mockPerm7,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm7
+
+dn: permName=mockPerm8,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm8
+
+dn: permName=mockPerm9,ou=permissions,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyPermission
+permName: mockPerm9
+
+dn: ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: roles
+
+dn: roleName=mockRole0,ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: policyRole
+objectClass: top
+roleName: mockRole0
+
+dn: roleName=mockRole1,ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyRole
+grants: mockPerm0
+roleName: mockRole1
+
+dn: roleName=mockRole2,ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyRole
+grants: mockPerm1
+roleName: mockRole2
+
+dn: roleName=mockRole3,ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyRole
+grants: mockPerm3
+grants: mockPerm2
+roleName: mockRole3
+
+dn: roleName=mockRole4,ou=roles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyRole
+grants: mockPerm9
+grants: mockPerm7
+grants: mockPerm6
+grants: mockPerm5
+grants: mockPerm4
+roleName: mockRole4
+
+dn: ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: profiles
+
+dn: profileId=mockProfile0,ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyProfile
+user: akarasulu
+profileId: mockProfile0
+
+dn: profileId=mockProfile1,ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyProfile
+roles: mockRole2
+roles: mockRole1
+user: akarasulu
+profileId: mockProfile1
+
+dn: profileId=mockProfile2,ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyProfile
+grants: mockPerm0
+roles: mockRole2
+user: akarasulu
+profileId: mockProfile2
+
+dn: profileId=mockProfile3,ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyProfile
+grants: mockPerm7
+grants: mockPerm0
+roles: mockRole3
+user: akarasulu
+profileId: mockProfile3
+
+dn: profileId=mockProfile4,ou=profiles,appName=mockApplication,ou=applications,dc=example,dc=com
+objectClass: top
+objectClass: policyProfile
+denials: mockPerm7
+grants: mockPerm0
+roles: mockRole4
+roles: mockRole3
+user: akarasulu
+profileId: mockProfile4
+

Added: directory/trunks/triplesec/installers/LICENSE.txt
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/LICENSE.txt?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/LICENSE.txt (added)
+++ directory/trunks/triplesec/installers/LICENSE.txt Tue Dec 12 07:23:31 2006
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.

Added: directory/trunks/triplesec/installers/NOTICE.txt
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/NOTICE.txt?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/NOTICE.txt (added)
+++ directory/trunks/triplesec/installers/NOTICE.txt Tue Dec 12 07:23:31 2006
@@ -0,0 +1,2 @@
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).

Added: directory/trunks/triplesec/installers/README.txt
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/README.txt?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/README.txt (added)
+++ directory/trunks/triplesec/installers/README.txt Tue Dec 12 07:23:31 2006
@@ -0,0 +1,81 @@
+                        Triplesec Strong Identity Server 
+                        ================================
+
+Documentation
+-------------
+
+Documentation in the form of a User's Guide and tutorials are available here:
+
+     http://triplesec.safehaus.org
+
+
+Running
+-------
+
+The server is designed to run as a Windows Service or as a UNIX Daemon (also
+on MacOSX).  
+
+You can start, and stop the daemon on UNIX using the /etc/init.d/triplesec 
+script if you chose to install it via the installer.  Otherwise you can use
+another script in the installation home under the bin directory called
+server.init.  
+
+Both these scripts take a single argument of either start, stop or debug.
+The debug command starts the server without the daemon.  It can be
+used to attach to the server using a debugger and to dump output to the
+console.  Only in debug mode can the diagnostic screens be launched.  In
+daemon mode the proper DISPLAY parameter must be set to launch the diagnostics
+on startup.
+
+On windows the server can be started like any other service using the services
+console via Microsoft Management Console.  It can also be started, stopped and
+configured using the procrun service manager installed for it: see
+ 
+        Start->All Programs->Triplesec->Service Setttings
+
+A tray icon can also be launched to monitor it and to control the service: see
+ 
+        Start->All Programs->Triplesec->Tray Monitor
+
+On Windows the server can also be started in a special test mode where it 
+dumps output to the command line in a cmd window rather than to the log files.  
+You can launch the server in this mode by selecting 
+
+        Start->All Programs->Triplesec->Test Service
+
+The server can also be started in test mode by running the triplesec.exe 
+executable from the commandline.  Likewise the service manager can be started 
+from the command line by invoking apachedsw.exe.
+
+
+Tool Support
+------------
+
+Two tool come with Triplesec.  A commandline client tool and GUI based
+administration tool called Triplesec Admin Tool.  Both these tools can be
+found withing the bind directory.  Both are executable jar files.  So you
+can execute them like so:
+
+  java -jar triplesec-tools.jar help 
+  java -jar triplesec-admin.jar /path/to/installation
+
+The command line tool, triplesec-tools.jar, can be run to perform maintenance
+operation on the server.  Here's what the 'help' command lists for the tool:
+
+   help             displays help message 
+   notifications    listens to the server for disconnect msgs
+   dump             dumps partitions in LDIF format for recovery and backup
+   graceful         starts graceful shutdown with shutdown delay & timeoffline
+   diagnostic       launches diagnostic UI for inspecting server partitions
+                    and client sessions
+
+The Triplesec Administration Tool is a Swing application which allows you to 
+manage your realm.  With it you can add, remove and modify, applications,
+roles, users, groups, and permissions.  For more information about the admin
+tool you can consult it's User's Guide here:
+
+   http://docs.safehaus.org/display/TRIPLESEC/Administration+Tool+User's+Guide
+
+Thanks and enjoy,
+Triplesec Development Team
+

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

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

Added: directory/trunks/triplesec/installers/pom.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/pom.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/pom.xml (added)
+++ directory/trunks/triplesec/installers/pom.xml Tue Dec 12 07:23:31 2006
@@ -0,0 +1,522 @@
+<?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-installers</artifactId>
+  <name>Triplesec Server Installers</name>
+  <packaging>jar</packaging>
+  <description>
+    Installer generating project for Triplesec
+  </description>
+  <dependencies>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-jaas</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-tools</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-configuration</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-webapp-root</artifactId>
+      <version>${pom.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-webapp-activation</artifactId>
+      <version>${pom.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-swing-admin</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-webapp-config</artifactId>
+      <version>${pom.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-webapp-demo</artifactId>
+      <version>${pom.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-webapp-registration</artifactId>
+      <version>${pom.version}</version>
+      <type>war</type>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-guardian-api</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>triplesec-guardian-ldap</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+<!--
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId></artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+-->
+    <dependency>
+      <groupId>org.apache.directory.daemon</groupId>
+      <artifactId>daemon-bootstrappers</artifactId>
+      <version>1.0-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.directory.server</groupId>
+      <artifactId>apacheds-server-tools</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>nlog4j</artifactId>
+      <version>1.2.25</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-daemon</groupId>
+      <artifactId>commons-daemon</artifactId>
+      <version>1.0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>springframework</groupId>
+      <artifactId>spring-core</artifactId>
+      <version>1.2.6</version>
+    </dependency>
+    <dependency>
+      <groupId>springframework</groupId>
+      <artifactId>spring-beans</artifactId>
+      <version>1.2.6</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+    <dependency>
+      <groupId>springframework</groupId>
+      <artifactId>spring-context</artifactId>
+      <version>1.2.6</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.directory.daemon</groupId>
+        <artifactId>daemon-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <configuration>
+          <excludes>
+            <exclude>
+              org.safehaus.triplesec:triplesec-webapp-registration
+            </exclude>
+            <exclude>
+              org.safehaus.triplesec:triplesec-webapp-activation
+            </exclude>
+            <exclude>org.safehaus.triplesec:triplesec-swing-admin</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-webapp-config</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-webapp-root</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-guardian-ldap</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-jaas</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-guardian-api</exclude>
+            <exclude>org.safehaus.triplesec:triplesec-tools</exclude>
+            <exclude>aopalliance:aopalliance</exclude>
+            <exclude>xerces:xerces</exclude>
+            <exclude>checkstyle:checkstyle</exclude>
+            <exclude>commons-pool:commons-pool</exclude>
+            <exclude>xml-apis:xml-apis</exclude>
+            <exclude>aspectwerkz:aspectwerkz-core</exclude>
+            <exclude>velocity:velocity</exclude>
+            <exclude>org.springframework:spring-aop</exclude>
+            <exclude>qdox:qdox</exclude>
+            <exclude>oro:oro</exclude>
+            <exclude>commons-cli:commons-cli</exclude>
+            <exclude>commons-attributes:commons-attributes-compiler</exclude>
+            <exclude>commons-attributes:commons-attributes-api</exclude>
+            <exclude>cglib:cglib</exclude>
+            <exclude>velocity:velocity-dep</exclude>
+            <exclude>com.jamonapi:jamon</exclude>
+            <exclude>asm:asm</exclude>
+            <exclude>freemarker:freemarker</exclude>
+            <exclude>asm:asm-util</exclude>
+            <exclude>jasperreports:jasperreports</exclude>
+            <exclude>commons-cli:commons-cli</exclude>
+            <exclude>org.apache.directory.server:apacheds-server-tools</exclude>
+          </excludes>
+          <application>
+            <name>triplesec</name>
+            <version>${pom.version}</version>
+            <copyrightYear>2006</copyrightYear>
+            <minimumJavaVersion>1.4</minimumJavaVersion>
+            <url>http://triplesec.safehaus.org</url>
+            <email>dev@safehaus.org</email>
+            <description>Triplesec Strong Identity Server</description>
+            <authors>
+              <author>Safehaus Development Team</author>
+              <author>akarasulu@safehuas.org</author>
+              <author>ersiner@safehaus.org</author>
+              <author>trustin@safehaus.org</author>
+              <author>smustaoglu@safehaus.org</author>
+              <author>tbennett@safehaus.org</author>
+            </authors>
+          </application>
+<!--
+          <svnBaseUrl>
+            http://svn.safehaus.org/repos/triplesec
+          </svnBaseUrl>
+          <packageSources>true</packageSources>
+          <packageDocs>true</packageDocs>
+-->
+          <applicationClass>
+            org.safehaus.triplesec.Service
+          </applicationClass>
+          <packagedFiles>
+            <packagedFile>
+              <source>src/main/installers/00server.ldif</source>
+              <destinationPath>conf/00server.ldif</destinationPath>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-tools</source>
+              <destinationPath>bin/triplesec-tools.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-swing-admin</source>
+              <destinationPath>bin/triplesec-admin.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+
+            <!-- web application jars -->
+
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-webapp-root</source>
+              <destinationPath>webapps/ROOT</destinationPath>
+              <dependency>true</dependency>
+              <expandable>true</expandable>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>
+                org.safehaus.triplesec:triplesec-webapp-activation
+              </source>
+              <destinationPath>webapps/activation</destinationPath>
+              <dependency>true</dependency>
+              <expandable>true</expandable>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-webapp-config</source>
+              <destinationPath>webapps/config</destinationPath>
+              <dependency>true</dependency>
+              <expandable>true</expandable>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-webapp-demo</source>
+              <destinationPath>webapps/demo</destinationPath>
+              <dependency>true</dependency>
+              <expandable>true</expandable>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>
+                org.safehaus.triplesec:triplesec-webapp-registration
+              </source>
+              <destinationPath>webapps/registration</destinationPath>
+              <dependency>true</dependency>
+              <expandable>true</expandable>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+
+            <!-- non-server jars -->
+
+            <packagedFile>
+              <source>
+                org.safehaus.triplesec:triplesec-jaas
+              </source>
+              <destinationPath>guardian/triplesec-jaas-${pom.version}.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+
+            <packagedFile>
+              <source>
+                org.safehaus.triplesec:triplesec-guardian-api
+              </source>
+              <destinationPath>guardian/triplesec-guardian-api-${pom.version}.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.safehaus.triplesec:triplesec-guardian-ldap</source>
+              <destinationPath>guardian/triplesec-guardian-ldap-${pom.version}.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>org.apache.directory.server:apacheds-server-tools</source>
+              <destinationPath>lib/tools/apacheds-server-tools-1.0-RC3.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+            <packagedFile>
+              <source>commons-cli:commons-cli</source>
+              <destinationPath>lib/tools/commons-cli-1.0.jar</destinationPath>
+              <dependency>true</dependency>
+              <installationBundleId>Binaries</installationBundleId>
+            </packagedFile>
+          </packagedFiles>
+          <rpmTargets>
+            <rpmTarget>
+              <id>linux-jsvc</id>
+              <rpmSpecificationFile>
+                src/main/installers/rpm-triplesec.spec
+              </rpmSpecificationFile>
+              <packagedFiles>
+                <packagedFile>
+                  <source>rpm-triplesec-tools.sh</source>
+                  <destinationPath>bin/triplesec-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
+              <finalName>
+                triplesec-${pom.version}-linux-i386.rpm
+              </finalName>
+              <osName>Linux</osName>
+              <osFamily>unix</osFamily>
+              <osArch>i386</osArch>
+              <daemonFramework>jsvc</daemonFramework>
+            </rpmTarget>
+          </rpmTargets>
+          <innoTargets>
+            <innoTarget>
+              <packagedFiles>
+                <packagedFile>
+                  <source>inno-triplesec-admin.bat</source>
+                  <destinationPath>bin/triplesec-admin.bat</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+                <packagedFile>
+                  <source>admin-tool.ico</source>
+                  <destinationPath>admin-tool.ico</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+              </packagedFiles>
+              <innoConfigurationFile>
+                src/main/installers/inno-triplesec.iss
+              </innoConfigurationFile>
+              <id>windows-xp-procrun</id>
+              <prunsrvExecutablePath>
+                triplesec.exe
+              </prunsrvExecutablePath>
+              <prunmgrExecutablePath>
+                triplesecw.exe
+              </prunmgrExecutablePath>
+              <finalName>
+                triplesec-${pom.version}-win32-setup
+              </finalName>
+              <osName>Windows XP</osName>
+              <osFamily>windows</osFamily>
+              <osVersion>5.1</osVersion>
+              <osArch>x86</osArch>
+              <daemonFramework>procrun</daemonFramework>
+            </innoTarget>
+          </innoTargets>
+          <izPackTargets>
+            <izPackTarget>
+              <izPackInstallFile>
+                src/main/installers/izpack-unix.xml
+              </izPackInstallFile>
+              <izPackShortcutsUnixFile>
+                src/main/installers/unix_shortcuts.xml
+              </izPackShortcutsUnixFile>
+              <packagedFiles>
+                <packagedFile>
+                  <source>admin.png</source>
+                  <destinationPath>admin.png</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+                <packagedFile>
+                  <source>bug.png</source>
+                  <destinationPath>debug.png</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+                <packagedFile>
+                  <source>safehaus-start.png</source>
+                  <destinationPath>start.png</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+                <packagedFile>
+                  <source>safehaus-stop.png</source>
+                  <destinationPath>stop.png</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+                <packagedFile>
+                  <source>izpack-triplesec-tools.sh</source>
+                  <destinationPath>bin/triplesec-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+                <packagedFile>
+                  <source>admin-tool.png</source>
+                  <destinationPath>admin-tool.png</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                </packagedFile>
+              </packagedFiles>
+              <id>linux-jsvc</id>
+              <finalName>
+                triplesec-${pom.version}-linux-i386-setup.jar
+              </finalName>
+              <osName>Linux</osName>
+              <osFamily>unix</osFamily>
+              <osArch>i386</osArch>
+              <daemonFramework>jsvc</daemonFramework>
+            </izPackTarget>
+            <izPackTarget>
+              <izPackInstallFile>
+                src/main/installers/izpack-unix.xml
+              </izPackInstallFile>
+              <izPackShortcutsUnixFile>
+                src/main/installers/unix_shortcuts.xml
+              </izPackShortcutsUnixFile>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-triplesec-tools.sh</source>
+                  <destinationPath>bin/triplesec-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
+              <finalName>
+                triplesec-${pom.version}-solaris-sparc-setup.jar
+              </finalName>
+              <id>solaris-jsvc-sparc</id>
+              <osName>sunos</osName>
+              <osFamily>unix</osFamily>
+              <osArch>sparc</osArch>
+              <daemonFramework>jsvc</daemonFramework>
+            </izPackTarget>
+            <izPackTarget>
+              <izPackInstallFile>
+                src/main/installers/izpack-unix.xml
+              </izPackInstallFile>
+              <izPackShortcutsUnixFile>
+                src/main/installers/unix_shortcuts.xml
+              </izPackShortcutsUnixFile>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-triplesec-tools.sh</source>
+                  <destinationPath>bin/triplesec-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
+              <id>solaris-jsvc-i386</id>
+              <finalName>
+                triplesec-${pom.version}-solaris-i386-setup.jar
+              </finalName>
+              <osName>sunos</osName>
+              <osFamily>unix</osFamily>
+              <osArch>i386</osArch>
+              <daemonFramework>jsvc</daemonFramework>
+            </izPackTarget>
+            <izPackTarget>
+              <izPackInstallFile>
+                src/main/installers/izpack-mac.xml
+              </izPackInstallFile>
+              <packagedFiles>
+                <packagedFile>
+                  <source>izpack-triplesec-tools.sh</source>
+                  <destinationPath>bin/triplesec-tools.sh</destinationPath>
+                  <installationBundleId>Binaries</installationBundleId>
+                  <executable>true</executable>
+                  <filtered>true</filtered>
+                </packagedFile>
+              </packagedFiles>
+              <id>macosx-jsvc</id>
+              <finalName>
+                triplesec-${pom.version}-macosx-ppc-setup.jar
+              </finalName>
+              <osName>macosx</osName>
+              <osFamily>unix</osFamily>
+              <osArch>ppc</osArch>
+              <daemonFramework>jsvc</daemonFramework>
+            </izPackTarget>
+          </izPackTargets>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
+

Added: directory/trunks/triplesec/installers/src/main/installers/00server.ldif
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/00server.ldif?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/00server.ldif (added)
+++ directory/trunks/triplesec/installers/src/main/installers/00server.ldif Tue Dec 12 07:23:31 2006
@@ -0,0 +1,209 @@
+#
+#   Copyright 2004 Safehaus
+#
+#   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.
+#
+#   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 } } } } }
+
+# ----------------------------------------------------------------------------
+# Required Kerberos Server User
+# ----------------------------------------------------------------------------
+
+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
+mail: admin@example.com
+userPassword: secret
+
+dn: ou=Applications,dc=example,dc=com
+objectClass: top
+objectClass: organizationalunit
+ou: applications
+
+dn: appName=tsecAdminTool,ou=Applications,dc=example,dc=com
+objectClass: policyApplication
+objectClass: top
+appName: tsecAdminTool
+description: Policy for Safehaus web and swing based administration UIs.
+userPassword: secret
+
+dn: ou=Permissions,appName=tsecAdminTool,ou=Applications,dc=example,dc=com
+objectclass: organizationalUnit
+objectclass: top
+ou: Permissions
+
+dn: ou=Roles,appName=tsecAdminTool,ou=Applications,dc=example,dc=com
+objectclass: organizationalUnit
+objectclass: top
+ou: Roles
+
+dn: ou=Profiles,appName=tsecAdminTool,ou=Applications,dc=example,dc=com
+objectclass: organizationalUnit
+objectclass: top
+ou: Profiles
+

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

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

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

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

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

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

Added: directory/trunks/triplesec/installers/src/main/installers/bootstrapper.properties
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/bootstrapper.properties?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/bootstrapper.properties (added)
+++ directory/trunks/triplesec/installers/src/main/installers/bootstrapper.properties Tue Dec 12 07:23:31 2006
@@ -0,0 +1,2 @@
+bootstrap.start.class=org.safehaus.triplesec.Service
+bootstrap.stop.class=org.safehaus.triplesec.Service

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

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

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

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

Added: directory/trunks/triplesec/installers/src/main/installers/inno-triplesec-admin.bat
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/inno-triplesec-admin.bat?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/inno-triplesec-admin.bat (added)
+++ directory/trunks/triplesec/installers/src/main/installers/inno-triplesec-admin.bat Tue Dec 12 07:23:31 2006
@@ -0,0 +1,16 @@
+@REM --------------------------------------------------------------------------
+@REM Triplesec Admin Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM TSEC_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM TSEC_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM TSEC_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug the admin itself, use
+@REM set TSEC_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM ----------------------------------------------------------------------------
+
+%JAVA_HOME%\bin\java.exe -jar %1 %2
+

Propchange: directory/trunks/triplesec/installers/src/main/installers/inno-triplesec-admin.bat
------------------------------------------------------------------------------
    svn:executable = 

Added: directory/trunks/triplesec/installers/src/main/installers/inno-triplesec.iss
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/inno-triplesec.iss?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/inno-triplesec.iss (added)
+++ directory/trunks/triplesec/installers/src/main/installers/inno-triplesec.iss Tue Dec 12 07:23:31 2006
@@ -0,0 +1,88 @@
+#define MyAppName "${app}"
+#define MyAppVerName "${app} ${app.version}"
+#define MyAppVersion "${app.version}"
+#define MyAppPublisher "${app.author}"
+#define MyAppURL "${app.url}"
+#define MyAppExeName "${app}w.exe"
+#define MyAppCompanyName "${app.company.name}"
+#define MyAppDescription "${app.description}"
+#define MyAppCopyright "Copyright (c) ${app.copyright.year} ${app.company.name}"
+
+; Set this constant to the path where your installation image resides
+#define SourceBase "${image.basedir}"
+
+[Setup]
+AppName={#MyAppName}
+AppVerName={#MyAppVerName}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={pf}\${app}-${app.version}
+DefaultGroupName={#MyAppName}
+LicenseFile={#SourceBase}\${app.license.name}
+OutputDir="${installer.output.directory}"
+OutputBaseFilename=${app.final.name}
+SetupIconFile={#SourceBase}\${app.icon.name}
+Compression=lzma
+SolidCompression=true
+VersionInfoCompany={#MyAppCompanyName}
+VersionInfoDescription={#MyAppDescription}
+AppCopyright={#MyAppCopyright}
+ShowLanguageDialog=yes
+AppVersion={#MyAppVersion}
+
+[Languages]
+Name: eng; MessagesFile: compiler:Default.isl
+
+[Tasks]
+Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
+
+[Files]
+; bin directory targets
+Source: {#SourceBase}\bin\${app}w.exe; DestDir: {app}\bin; Tasks: ; Languages: 
+Source: {#SourceBase}\bin\${app}.exe; DestDir: {app}\bin
+Source: {#SourceBase}\bin\bootstrapper.jar; DestDir: {app}\bin; DestName: bootstrapper.jar
+Source: {#SourceBase}\bin\logger.jar; DestDir: {app}\bin; DestName: logger.jar
+Source: {#SourceBase}\bin\triplesec-tools.jar; DestDir: {app}\bin; DestName: triplesec-tools.jar
+Source: {#SourceBase}\bin\triplesec-admin.jar; DestDir: {app}\bin; DestName: triplesec-admin.jar
+Source: {#SourceBase}\bin\daemon.jar; DestDir: {app}\bin; DestName: daemon.jar
+; conf directory targets
+Source: {#SourceBase}\conf\log4j.properties; DestDir: {app}\conf; DestName: log4j.properties
+Source: {#SourceBase}\conf\server.xml; DestDir: {app}\conf; DestName: server.xml
+Source: {#SourceBase}\conf\bootstrapper.properties; DestDir: {app}\conf; DestName: bootstrapper.properties
+Source: {#SourceBase}\conf\00server.ldif; DestDir: {app}\conf; DestName: 00server.ldif
+; top level directory targets 
+Source: {#SourceBase}\${app.license.name}; DestDir: {app}; DestName: ${app.license.name}
+Source: {#SourceBase}\${app.readme.name}; DestDir: {app}; DestName: ${app.readme.name}
+Source: {#SourceBase}\${app.icon.name}; DestDir: {app}; DestName: ${app.icon.name}
+Source: {#SourceBase}\admin-tool.ico; DestDir: {app}; DestName: admin-tool.ico
+Source: {#SourceBase}\COPYING.txt; DestDir: {app}; DestName: COPYING.txt
+; empty var & lib\ext directory structure
+Source: {#SourceBase}\var\*; DestDir: "{app}\var\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\licenses\*; DestDir: "{app}\licenses\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\webapps\*; DestDir: "{app}\webapps\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\guardian\*; DestDir: "{app}\guardian\"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\lib\ext; DestDir: "{app}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: {#SourceBase}\lib\tools\*; DestDir: "{app}\lib\tools\"; Flags: ignoreversion recursesubdirs createallsubdirs
+; lib directory targets
+${app.lib.jars}
+${docs.directive}
+${sources.directive}
+${notice.file}
+
+[Icons]
+Name: {group}\Service Settings; Filename: {app}\bin\${app}w.exe; Parameters: //ES//${app}; IconIndex: 0
+Name: {userdesktop}\{#MyAppName}; Filename: {app}\bin\${app}w.exe; Tasks: desktopicon; Parameters: //ES//${app}; IconIndex: 0; Languages: 
+Name: {group}\Tray Monitor; Filename: {app}\bin\${app}w.exe; Parameters: //MS//${app}; IconIndex: 0
+Name: {group}\Test Service; Filename: {app}\bin\${app}.exe; IconIndex: 0
+Name: {group}\Admin; Filename: %JAVA_HOME%\bin\java.exe; Parameters: "-jar ""{app}\bin\triplesec-admin.jar"" ""{app}"""; IconFilename: {app}\admin-tool.ico; WorkingDir: "{app}"  
+
+[Run]
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Tasks: ; Languages: ; Parameters: "//IS//${app.displayname} --Description=""${app.description} Service ${app.version} - ${app.url}"" --DisplayName=${app.displayname} --Install=""{app}\bin\${app}.exe"" --StartMode=jvm --StopMode=jvm --StartClass=org.apache.directory.daemon.ProcrunBootstrapper --StartMethod prunsrvStart --StartParams=""{app}"" --StopClass=org.apache.directory.daemon.ProcrunBootstrapper --StopMethod prunsrvStop --StopParams=""{app}"" --Startup=manual --JvmOptions=""-D${app}.home={app}"" --Classpath=""{app}\bin\bootstrapper.jar;{app}\conf;{app}\bin\logger.jar;{app}\bin\daemon.jar"" --LogPath=""{app}\var\log"" --LogPrefix=${app}.log --LogLevel=debug --StdOutput=""{app}\var\log\${app}-stdout.log"" --StdError=""{app}\var\log\${app}-stderr.log"""; Flags: runhidden
+Filename: {app}\bin\${app}w.exe; Parameters: //ES//${app.displayname}; WorkingDir: {app}\bin; Flags: postinstall nowait; Description: Runs the configuration manager for the ${app} windows service
+
+[Registry]
+
+[UninstallRun]
+Filename: {app}\bin\${app}.exe; WorkingDir: {app}\bin; Parameters: //DS//${app.displayname}

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

Added: directory/trunks/triplesec/installers/src/main/installers/izpack-mac.xml
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/izpack-mac.xml?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/izpack-mac.xml (added)
+++ directory/trunks/triplesec/installers/src/main/installers/izpack-mac.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.
+  *
+  */
+-->
+
+<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="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="Binaries" required="yes">
+      <description>Binary Executables</description>
+      <fileset dir="${image.basedir}" targetdir="$INSTALL_PATH">
+        <include name="**/*" />
+      </fileset>
+    
+      <executable os="unix" targetfile="$INSTALL_PATH/bin/${app}" stage="never" keep="true" />
+      <singlefile os="unix" src="bin/${server.init}" target="/etc/init.d/${app}" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/${server.init}" type="shell" />
+      <parsable os="unix" targetfile="$INSTALL_PATH/bin/triplesec-tools.sh" type="shell" />
+      <parsable os="unix" targetfile="/etc/init.d/${app}" type="shell" />
+      <executable os="unix" targetfile="/etc/init.d/${app}" stage="never" keep="true" />
+      <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-triplesec-tools.sh
URL: http://svn.apache.org/viewvc/directory/trunks/triplesec/installers/src/main/installers/izpack-triplesec-tools.sh?view=auto&rev=486187
==============================================================================
--- directory/trunks/triplesec/installers/src/main/installers/izpack-triplesec-tools.sh (added)
+++ directory/trunks/triplesec/installers/src/main/installers/izpack-triplesec-tools.sh Tue Dec 12 07:23:31 2006
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+TRIPLESEC_HOME=%INSTALL_PATH
+$JAVA_HOME/bin/java -jar $TRIPLESEC_HOME/bin/triplesec-tools.jar $@