blob: cad22ef7877bae5d44072ef9950a089ebf9d65a7 [file] [log] [blame]
<?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.
-->
<plexus>
<components>
<component>
<role>org.codehaus.plexus.registry.Registry</role>
<implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
<role-hint>commons-configuration</role-hint>
<configuration>
<properties>
<system/>
<jndi prefix="java:comp/env" config-optional="true"/>
<xml fileName="${appserver.base}/conf/shared.xml" config-optional="true"
config-name="org.apache.maven.shared.app.user" config-at="org.apache.maven.shared.app"
config-forceCreate="true"/>
<properties fileName="${appserver.base}/conf/security.properties" config-optional="true"
config-at="org.codehaus.plexus.redback"/>
<!-- Defaults -->
<properties fileName="org/apache/maven/continuum/security.properties" config-at="org.codehaus.plexus.redback"/>
</properties>
</configuration>
</component>
<!--
| The mail notifier
|-->
<component>
<role>org.apache.maven.continuum.notification.Notifier</role>
<role-hint>mail</role-hint>
<implementation>org.apache.maven.continuum.notification.mail.MailContinuumNotifier</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.velocity.VelocityComponent</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.ProjectDao</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.BuildResultDao</role>
</requirement>
<requirement>
<role>mailSender</role>
<role-hint>continuum</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
<requirement>
<role>org.apache.maven.continuum.Continuum</role>
</requirement>
<requirement>
<role>org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator</role>
<field-name>reportTestSuiteGenerator</field-name>
<role-hint>default</role-hint>
</requirement>
</requirements>
<configuration>
<from-mailbox></from-mailbox>
<from-name></from-name>
<timestamp-format>EEE d MMM yyyy HH:mm:ss Z</timestamp-format>
<!-- Customizable mail subject. Use any combination of literal text, or state, project, or build attributes.
Examples:
"[continuum] BUILD ${state}: ${project.groupId} ${project.name}"
results in "[continuum] BUILD SUCCESSFUL: foo.bar Hello World"
"[continuum] BUILD ${state}: ${project.name} ${project.scmTag}"
results in "[continuum] BUILD SUCCESSFULL: Hello World Branch001"
"[continuum] BUILD ${state}: ${project.name} ${project.version}"
results in "[continuum] BUILD SUCCESSFUL: Hello World 2.1-SNAPSHOT"
"[continuum] BUILD ${state}: ${project.name} ${build.durationTime}"
results in "[continuum] BUILD SUCCESSFUL: Hello World 2 sec"
"[continuum] BUILD ${state}: ${project.name}, Build Def - ${build.buildDefinition.description}"
results in "[continuum] BUILD SUCCESSFUL: Hello World, Build Def - Nightly Test Build"
-->
<subject-format>[continuum] BUILD ${state}: ${project.projectGroup.name} - ${project.name} - ${build.buildDefinition.description}</subject-format>
<includeBuildResult>true</includeBuildResult>
<includeBuildSummary>true</includeBuildSummary>
<includeTestSummary>true</includeTestSummary>
<includeOutput>false</includeOutput>
<alwaysSend>false</alwaysSend>
<!--
Setting this propery will make Continuum send all emails to
this address instead the address specified in the project
configuration
-->
<toOverride></toOverride>
</configuration>
</component>
<!-- TODO remove when redback will not use anymore plexus-mail -->
<component>
<role>org.codehaus.plexus.mailsender.MailSender</role>
<implementation>org.codehaus.plexus.mailsender.javamail.JndiJavamailMailSender</implementation>
<configuration>
<jndiSessionName>java:comp/env/mail/Session</jndiSessionName>
</configuration>
</component>
<!--
| The jabber notifier
|-->
<component>
<role>org.apache.maven.continuum.notification.Notifier</role>
<role-hint>jabber</role-hint>
<implementation>org.apache.maven.continuum.notification.jabber.JabberContinuumNotifier</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.jabber.JabberClient</role>
</requirement>
<requirement>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.ProjectDao</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.BuildResultDao</role>
</requirement>
</requirements>
<configuration>
<alwaysSend>false</alwaysSend>
<!-- from-address/>
<from-password/>
<host/>
<port/>
<sslConnection>true</sslConnection -->
</configuration>
</component>
<component>
<role>org.codehaus.plexus.jabber.JabberClient</role>
<implementation>org.codehaus.plexus.jabber.DefaultJabberClient</implementation>
</component>
<!--
| The MSN notifier
|-->
<component>
<role>org.apache.maven.continuum.notification.Notifier</role>
<role-hint>msn</role-hint>
<implementation>org.apache.maven.continuum.notification.msn.MsnContinuumNotifier</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.msn.MsnClient</role>
</requirement>
<requirement>
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.ProjectDao</role>
</requirement>
<requirement>
<role>org.apache.continuum.dao.BuildResultDao</role>
</requirement>
</requirements>
<configuration>
<alwaysSend>false</alwaysSend>
<!-- from-address/>
<from-password/ -->
</configuration>
</component>
<component>
<role>org.codehaus.plexus.msn.MsnClient</role>
<implementation>org.codehaus.plexus.msn.DefaultMsnClient</implementation>
</component>
<!--
| Velocity component used by the mail notifier
|-->
<component>
<role>org.codehaus.plexus.velocity.VelocityComponent</role>
<implementation>org.codehaus.plexus.velocity.DefaultVelocityComponent</implementation>
<configuration>
<properties>
<property>
<name>resource.loader</name>
<value>threadContext</value>
</property>
<property>
<name>threadContext.resource.loader.class</name>
<value>org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader</value>
</property>
<property>
<name>velocimacro.library</name>
<value>org/apache/maven/continuum/notification/mail/templates/common.vm</value>
</property>
</properties>
</configuration>
</component>
<component>
<role>org.apache.maven.continuum.web.util.WorkingCopyContentGenerator</role>
<implementation>org.apache.maven.continuum.web.util.WorkingCopyContentGenerator</implementation>
</component>
<component>
<role>org.apache.maven.continuum.utils.ContinuumUrlValidator</role>
<role-hint>continuumUrl</role-hint>
<implementation>org.apache.maven.continuum.utils.ContinuumUrlValidator</implementation>
<configuration>
<allowedSchemes>
<allowedScheme>http</allowedScheme>
<allowedScheme>https</allowedScheme>
<allowedScheme>ftp</allowedScheme>
<!-- <allowedScheme>file</allowedScheme> -->
</allowedSchemes>
</configuration>
</component>
<component>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<role-hint>users</role-hint>
<implementation>org.codehaus.plexus.jdo.DataSourceConfigurableJdoFactory</implementation>
<configuration>
<connectionFactoryName>java:comp/env/jdbc/users</connectionFactoryName>
<shutdownConnectionFactoryName>java:comp/env/jdbc/usersShutdown</shutdownConnectionFactoryName>
<!-- JPOX and JDO configuration -->
<persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass>
<otherProperties>
<property>
<name>org.jpox.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateTables</name>
<value>false</value>
</property>
<property>
<name>org.jpox.validateConstraints</name>
<value>false</value>
</property>
<property>
<name>org.jpox.validateColumns</name>
<value>false</value>
</property>
<property>
<name>org.jpox.autoStartMechanism</name>
<value>None</value>
</property>
<property>
<name>org.jpox.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.poid.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.rdbms.dateTimezone</name>
<value>JDK_DEFAULT_TIMEZONE</value>
</property>
<!--
<property>
<name>org.jpox.identifier.case</name>
<value>PreserveCase</value>
</property>
-->
</otherProperties>
</configuration>
</component>
<component>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<implementation>org.codehaus.plexus.jdo.DataSourceConfigurableJdoFactory</implementation>
<role-hint>continuum</role-hint>
<configuration>
<connectionFactoryName>java:comp/env/jdbc/continuum</connectionFactoryName>
<shutdownConnectionFactoryName>java:comp/env/jdbc/continuum_shutdown</shutdownConnectionFactoryName>
<persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass>
<otherProperties>
<!-- uncomment this property for mssql support - CONTINUUM-697 -->
<!-- property>
<name>javax.jdo.option.Mapping</name>
<value>mssql</value>
</property -->
<property>
<name>org.jpox.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateTables</name>
<value>false</value>
</property>
<property>
<name>org.jpox.validateColumns</name>
<value>false</value>
</property>
<property>
<name>org.jpox.validateConstraints</name>
<value>false</value>
</property>
<property>
<name>org.jpox.autoStartMechanism</name>
<value>None</value>
</property>
<property>
<name>org.jpox.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.poid.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<!-- this is required for some MySQL versions and configurations, see CONTINUUM-1113 -->
<property>
<name>org.jpox.rdbms.stringDefaultLength</name>
<value>255</value>
</property>
<property>
<name>org.jpox.autoCreateColumns</name>
<value>true</value>
</property>
<!--
<property>
<name>org.jpox.identifier.case</name>
<value>PreserveCase</value>
</property>
-->
</otherProperties>
</configuration>
</component>
<component>
<role>org.codehaus.plexus.scheduler.Scheduler</role>
<implementation>org.codehaus.plexus.scheduler.DefaultScheduler</implementation>
<role-hint>default</role-hint>
<configuration>
<properties>
<property>
<name>org.quartz.scheduler.instanceName</name>
<value>continuumScheduler</value>
</property>
<property>
<name>org.quartz.threadPool.class</name>
<value>org.quartz.simpl.SimpleThreadPool</value>
</property>
<property>
<name>org.quartz.threadPool.threadCount</name>
<value>7</value>
</property>
<property>
<name>org.quartz.threadPool.threadPriority</name>
<value>4</value>
</property>
<property>
<name>org.quartz.jobStore.class</name>
<value>org.quartz.simpl.RAMJobStore</value>
</property>
</properties>
</configuration>
</component>
<!--
| Logger manager
-->
<component>
<role>org.codehaus.plexus.logging.LoggerManager</role>
<implementation>org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager</implementation>
<lifecycle-handler>basic</lifecycle-handler>
</component>
<!-- START SNIPPET: ldap -->
<!--
Ldap Authentication can be enabled by setting enabling these components and setting the following configuration options in your security.properties file
============================================================
user.manager.impl=ldap
ldap.bind.authenticator.enabled=true
redback.default.admin=admin
redback.default.guest=guest
security.policy.password.expiration.enabled=false
ldap.config.hostname=ldap.hostname
ldap.config.port=389
ldap.config.base.dn=o=com
ldap.config.context.factory=com.sun.jndi.ldap.LdapCtxFactory
ldap.config.bind.dn=uid=myusername,o=com
ldap.config.password=s3cr3t
#ldap.config.authentication.method=
============================================================
* ldap.config.hostname - The hostname of the ldap server
* ldap.config.port - The port of the ldap server
* ldap.config.base.dn - The baseDn of the ldap system
* ldap.config.context.factory - context factory for ldap connections
* ldap.config.bind.dn - the core user used for authentication the ldap server, must be able to perform the necessary searches, etc.
* ldap.config.password - password for the bindDn for the root ldap connection
until this process is better documented, the following is the document for configuration ldap with redback
http://redback.codehaus.org/integration/ldap.html
-->
<!--
this component manages the connection to the ldap server
-->
<!-- component>
<role>org.codehaus.plexus.redback.common.ldap.connection.LdapConnectionFactory</role>
<role-hint>configurable</role-hint>
<implementation>org.codehaus.plexus.redback.common.ldap.connection.ConfigurableLdapConnectionFactory</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
</requirement>
</requirements>
</component-->
<!--
this component manages the mapping of attributes in ldap to user information in redback. To configure the mapping, you can add the following properties in your security.properties
============================================================
ldap.config.mapper.attribute.email=mail
ldap.config.mapper.attribute.fullname=givenName
ldap.config.mapper.attribute.password=userPassword
ldap.config.mapper.attribute.user.id=cn
ldap.config.mapper.attribute.user.base.dn=
ldap.config.mapper.attribute.user.object.class=inetOrgPerson
ldap.config.mapper.attribute.user.filter=(attributeName=value)
============================================================
* email-attribute - The name of the attribute on a user that contains the email address
* full-name-attribute - The name of the attribute on a user that contains the users fullName
* password-attribute - The name of the attribute containing the users password, used for the authentiction using the user manager and not the ldap bind authenticator
* user-id-attribute - The name of the attribute containing the users userId, most commonly cn or sn.
* user-base-dn - The base dn that will be subtree searched for users.
* user-object-class - the objectClass used in the ldap server for indentifying users, most commonly inetOrgPerson.
-->
<!-- component>
<role>org.codehaus.plexus.redback.common.ldap.UserMapper</role>
<role-hint>ldap</role-hint>
<implementation>org.codehaus.plexus.redback.common.ldap.LdapUserMapper</implementation>
<configuration>
<email-attribute>email</email-attribute>
<full-name-attribute>givenName</full-name-attribute>
<password-attribute>userPassword</password-attribute>
<user-id-attribute>cn</user-id-attribute>
<user-base-dn>o=com</user-base-dn>
<user-object-class>inetOrgPerson</user-object-class>
</configuration>
<requirements>
<requirement>
<role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
</requirement>
</requirements>
</component-->
<!--
If caching is desired to improve performance then make uncomment this and make sure the following configuration parameter is in the security.properties
user.manager.impl=cached
-->
<!-- component>
<role>org.codehaus.plexus.redback.users.UserManager</role>
<role-hint>cached</role-hint>
<implementation>org.codehaus.plexus.redback.users.cached.CachedUserManager</implementation>
<description>CachedUserManager</description>
<requirements>
<requirement>
<role>org.codehaus.plexus.redback.users.UserManager</role>
<role-hint>ldap</role-hint>
<field-name>userImpl</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.ehcache.EhcacheComponent</role>
<role-hint>users</role-hint>
<field-name>usersCache</field-name>
</requirement>
</requirements>
</component-->
<!--
if using the user manager authenticator to authenticate the user and not the ldap bind authenticator make sure
this definition has the correct password encoder
Note: you should probably just use the ldap bind authenticator which is enabled by putting
ldap.bind.authenticator.enabled=true
in the security.properties
-->
<!-- component>
<role>org.codehaus.plexus.redback.policy.UserSecurityPolicy</role>
<role-hint>default</role-hint>
<implementation>org.codehaus.plexus.redback.policy.DefaultUserSecurityPolicy</implementation>
<description>User Security Policy.</description>
<requirements>
<requirement>
<role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
<field-name>config</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.redback.policy.PasswordEncoder</role>
<role-hint>sha1</role-hint>
<field-name>passwordEncoder</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.redback.policy.UserValidationSettings</role>
<field-name>userValidationSettings</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.redback.policy.CookieSettings</role>
<role-hint>rememberMe</role-hint>
<field-name>rememberMeCookieSettings</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.redback.policy.CookieSettings</role>
<role-hint>signon</role-hint>
<field-name>signonCookieSettings</field-name>
</requirement>
<requirement>
<role>org.codehaus.plexus.redback.policy.PasswordRule</role>
<field-name>rules</field-name>
</requirement>
</requirements>
</component-->
<!-- END SNIPPET: ldap -->
</components>
<lifecycle-handler-manager implementation="org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager">
<default-lifecycle-handler-id>plexus</default-lifecycle-handler-id>
<lifecycle-handlers>
<lifecycle-handler implementation="org.codehaus.plexus.personality.plexus.PlexusLifecycleHandler">
<id>plexus</id>
<name>Plexus Lifecycle Handler</name>
<begin-segment>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.LogEnablePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.ContextualizePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.AutoConfigurePhase"/>
<phase implementation="org.codehaus.plexus.registry.RegistryConfigurePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.ServiceablePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.StartPhase"/>
</begin-segment>
<suspend-segment>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.SuspendPhase"/>
</suspend-segment>
<resume-segment>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.ResumePhase"/>
</resume-segment>
<end-segment>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.StopPhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.DisposePhase"/>
<phase implementation="org.codehaus.plexus.personality.plexus.lifecycle.phase.LogDisablePhase"/>
</end-segment>
</lifecycle-handler>
</lifecycle-handlers>
</lifecycle-handler-manager>
</plexus>