Author: matthieu
Date: Mon Oct 26 15:15:48 2015
New Revision: 1710623

URL: http://svn.apache.org/viewvc?rev=1710623&view=rev
Log:
JAMES-1628 Provide docker environment running James from build

           Contributed by Antoine Duprat and Raphael Ouazana

Added:
    james/project/trunk/dockerfiles/Dockerfile
    james/project/trunk/dockerfiles/destination/conf/
    james/project/trunk/dockerfiles/destination/conf/META-INF/
    
james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml
    
james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml
    james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml
    james/project/trunk/dockerfiles/destination/conf/cassandra.properties
    james/project/trunk/dockerfiles/destination/conf/dnsservice.xml
    james/project/trunk/dockerfiles/destination/conf/domainlist.xml
    james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties
    james/project/trunk/dockerfiles/destination/conf/fetchmail.xml
    james/project/trunk/dockerfiles/destination/conf/imapserver.xml
    james/project/trunk/dockerfiles/destination/conf/indexer.xml
    james/project/trunk/dockerfiles/destination/conf/james-database.properties
    james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml
    james/project/trunk/dockerfiles/destination/conf/jmx.properties
    james/project/trunk/dockerfiles/destination/conf/lib/
    james/project/trunk/dockerfiles/destination/conf/lib/README.txt
    james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml
    james/project/trunk/dockerfiles/destination/conf/log4j.properties
    james/project/trunk/dockerfiles/destination/conf/mailbox.xml
    james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml
    james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml
    james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt
    james/project/trunk/dockerfiles/destination/conf/pop3server.xml
    james/project/trunk/dockerfiles/destination/conf/quota.xml
    james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml
    james/project/trunk/dockerfiles/destination/conf/smtpserver.xml
    james/project/trunk/dockerfiles/destination/conf/sqlResources.xml
    james/project/trunk/dockerfiles/destination/conf/usersrepository.xml
    james/project/trunk/dockerfiles/destination/var/
    james/project/trunk/dockerfiles/destination/var/.gitignore
Modified:
    james/project/trunk/README.txt

Modified: james/project/trunk/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1710623&r1=1710622&r2=1710623&view=diff
==============================================================================
--- james/project/trunk/README.txt (original)
+++ james/project/trunk/README.txt Mon Oct 26 15:15:48 2015
@@ -84,3 +84,77 @@ as we don't want to download all depende
 as it is needed by the container that will run James.
 - SHA1 (optional): is the given git SHA1 of the james-project repository to 
build or trunk if none.
 - -s option: given tests will not be played while building. Not specifying 
means play tests.
+
+Howto run James in Docker
+=========================
+
+This feature is only available for Java 8 / Cassandra mailbox backend yet.
+
+
+* Requirements
+You should have the zip resulting of the build in the 
./dockerfiles/destination folder.
+
+
+* Howto ?
+You need a running cassandra in docker. To achieve this run :
+$ docker run -d --name=cassandra cassandra
+
+You need a running ElasticSearch in docker. To achieve this run :
+$ docker run -d --name=elasticsearch elasticsearch:1.5.2
+
+We need to provide the key we will use for TLS. For obvious reasons, this is 
not provided in this git.
+
+Copy your TSL keys to destination/conf/keystore or generate it using the 
following command. The password must be james72laBalle to match default 
configuration.
+$ keytool -genkey -alias james -keyalg RSA -keystore 
dockerfiles/destination/conf/keystore
+
+Then we need to build james container :
+$ docker build -t james_run dockerfiles
+
+To run this container :
+$ docker run --hostname HOSTNAME -p "25:25" -p "110:110" -p "143:143" -p 
"465:465" -p "587:587" -p "993:993" --link cassandra:cassandra --link 
elasticsearch:elasticsearch --name james_run -t james_run
+
+Where :
+- HOSTNAME: is the hostname you want to give to your James container. This DNS 
entry will be used to send mail to your James server.
+
+
+* Useful commands
+
+** How to add a domain ?
+# Add DOMAIN to 127.0.0.1 in your host /etc/hosts
+$ docker exec james_run 
/root/james-server-app-3.0.0-beta5-SNAPSHOT/bin/james-cli.sh -h 127.0.0.1 -p 
9999 adddomain DOMAIN
+
+Where :
+- DOMAIN: is the domain you want to add.
+
+** How to add a user ?
+$ docker exec james_run 
/root/james-server-app-3.0.0-beta5-SNAPSHOT/bin/james-cli.sh -h 127.0.0.1 -p 
9999 adduser USER_MAIL_ADDRESS PASSWORD
+
+Where :
+- USER_MAIL_ADDRESS: is the mail address that will be used by this user.
+- PASSWORD: is the password that will be used by this user.
+
+You can then just add DOMAIN to your /etc/hosts and you can connect to your 
james account with for instance Thunderbird.
+
+** How to manage SIEVE scripts ?
+Each user can manage his SIEVE scripts threw the manage SIEVE mailet.
+
+To use the manage SIEVE mailet :
+
+ - You need to create the user sievemanager@DOMAIN ( if you don't, the SMTP 
server will check the domain, recognize it, and look for an absent local user, 
and will generate an error ).
+ - You can send Manage Sieve commands by mail to sievemanager@DOMAIN. Your 
subject must contain the command. Scripts needs to be added as attachments and 
need the ".sieve" extension.
+
+To activate a script for a user, you need the following combinaison :
+
+ - PUTSCRIPT scriptname
+ - SETACTIVE scriptname
+
+** I want to retrieve users and password from my previous container
+Some james data ( those non related to mailbox, eg : mail queue, domains, 
users, rrt, SIEVE scripts, mail repositories ) are not yet supported by our 
Cassandra implementation.
+
+To keep these data when you run a new container, you can mount the following 
volume :
+ -v /root/james-server-app-3.0.0-beta5-SNAPSHOT/var:WORKDIR/destination/var
+
+Where :
+- WORKDIR: is the absolute path to your james-parent workdir.
+
+Beware : you will have concurrency issues if multiple containers are running 
on this single volume.

Added: james/project/trunk/dockerfiles/Dockerfile
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/Dockerfile?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/Dockerfile (added)
+++ james/project/trunk/dockerfiles/Dockerfile Mon Oct 26 15:15:48 2015
@@ -0,0 +1,35 @@
+# Run James
+#
+# VERSION      1.0
+
+FROM java:openjdk-8-jdk
+
+# Ports that are used
+#
+# 25  SMTP without authentication
+# 110 POP3
+# 143 IMAP with startTLS enabled
+# 465 SMTP with authentication and socketTLS enabled
+# 587 SMTP with authentication and startTLS enabled
+# 993 IMAP with socketTLS enabled
+
+EXPOSE 25 110 143 465 587 993
+
+WORKDIR /root
+
+# Get data we need to run James : build results and configuration
+ADD destination/james-server-app-3.0.0-beta5-SNAPSHOT-app.zip 
/root/james-server-app-3.0.0-beta5-SNAPSHOT-app.zip
+ADD destination/conf /root/conf
+
+# Unzip build result
+RUN unzip james-server-app-3.0.0-beta5-SNAPSHOT-app.zip
+
+# Copy configuration.
+# Warning : we want to use the wrapper.conf file we just compiled.
+RUN cp james-server-app-3.0.0-beta5-SNAPSHOT/conf/wrapper.conf .
+RUN rm -r james-server-app-3.0.0-beta5-SNAPSHOT/conf/*
+RUN cp -r conf/* james-server-app-3.0.0-beta5-SNAPSHOT/conf
+RUN cp wrapper.conf james-server-app-3.0.0-beta5-SNAPSHOT/conf
+
+WORKDIR /root/james-server-app-3.0.0-beta5-SNAPSHOT/bin
+ENTRYPOINT ["./wrapper-linux-x86-64","../conf/wrapper.conf", 
"wrapper.syslog.ident=james", "wrapper.pidfile=../var/james.pid", 
"wrapper.daemonize=FALSE"]

Added: 
james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml?rev=1710623&view=auto
==============================================================================
--- 
james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml
 (added)
+++ 
james/project/trunk/dockerfiles/destination/conf/META-INF/jpa-mappings-template.xml
 Mon Oct 26 15:15:48 2015
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.    
+-->
+
+<!-- Use this file to overwriting the annotations defined in the JPA domain 
classes -->
+
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm";
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+                 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
http://java.sun.com/xml/ns/persistence/orm_2_0.xsd";
+                 version="2.0">
+
+    <entity class="org.apache.james.mailbox.jpa.mail.model.JPAHeader">
+
+        <table name="JAMES_MAIL_HEADER"/>
+
+        <attributes>
+            <basic name="value">
+                <column name="HEADER_VALUE" length="8000" />
+            </basic>
+        </attributes>
+
+    </entity>
+
+</entity-mappings>

Added: 
james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml?rev=1710623&view=auto
==============================================================================
--- 
james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml
 (added)
+++ 
james/project/trunk/dockerfiles/destination/conf/META-INF/persistence-template.xml
 Mon Oct 26 15:15:48 2015
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.    
+-->
+
+<persistence xmlns="http://java.sun.com/xml/ns/persistence";
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";
+             version="2.0">
+
+    <persistence-unit name="James" transaction-type="RESOURCE_LOCAL">
+
+        <!-- Use the mappings to overwriting the annotations defined in the 
JPA domain classes -->
+        <mapping-file>META-INF/jpa-mappings-template.xml</mapping-file>
+
+        <!-- Mailbox stuff-->
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAMailbox</class>
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAUserFlag</class>
+        
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMessage</class>
+        <!--
+                
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAEncryptedMessage</class>
+        -->
+
+        <!-- This needs to get used when you want to use streaming. Remember 
to comment the following classes
+             org.apache.james.mailbox.jpa.mail.model.JPAMessage
+             If you don't do this the EntityManager will get confused!
+        
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAStreamingMessage</class>
+        -->
+        <!-- Comment if you want to use streaming -->
+        
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMessage</class>
+
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAProperty</class>
+        <class>org.apache.james.mailbox.jpa.user.model.JPASubscription</class>
+
+        <!-- DomainList -->
+        <class>org.apache.james.domainlist.jpa.model.JPADomain</class>
+
+        <!-- User-->
+        <class>org.apache.james.user.jpa.model.JPAUser</class>
+
+        <!-- RecipientRewrite -->
+        <class>org.apache.james.rrt.jpa.model.JPARecipientRewrite</class>
+
+        <properties>
+            <!--  Create tables on startup -->
+            <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)"/>
+            <!--  Create foreign keys on startup -->
+            <property name="openjpa.jdbc.MappingDefaults" 
value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade"/>
+            <!--  Reorder SQL statements to satisfy database foreign key 
constraints -->
+            <property name="openjpa.jdbc.SchemaFactory" 
value="native(ForeignKeys=true)"/>
+            <!--  Disable query cache for now. It seems to be buggy. -->
+            <!--  See 
http://www.mail-archive.com/server-dev@james.apache.org/msg28802.html -->
+            <!--  See https://issues.apache.org/jira/browse/OPENJPA-1827 -->
+            <property name="openjpa.jdbc.QuerySQLCache" value="false"/>
+            <!--  Uncomment this if you want to see the generated SQL in the 
console.
+            <property name="openjpa.Log" value="SQL=TRACE"/>
+            -->
+            <!--  Uncomment this if you want to get verbose OpenJPA log the 
console.
+            <property name="openjpa.Log" value="DefaultLevel=TRACE"/>
+            -->
+        </properties>
+
+    </persistence-unit>
+
+</persistence>

Added: james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/META-INF/persistence.xml 
Mon Oct 26 15:15:48 2015
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.    
+-->
+
+<persistence xmlns="http://java.sun.com/xml/ns/persistence";
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";
+             version="2.0">
+
+    <persistence-unit name="James" transaction-type="RESOURCE_LOCAL">
+        <!-- Mailbox stuff-->
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAMailbox</class>
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAUserFlag</class>
+        
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMessage</class>
+        
<class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMessage</class>
+        <class>org.apache.james.mailbox.jpa.mail.model.JPAProperty</class>
+        <class>org.apache.james.mailbox.jpa.user.model.JPASubscription</class>
+        <class>org.apache.james.domainlist.jpa.model.JPADomain</class>
+        <class>org.apache.james.user.jpa.model.JPAUser</class>
+        <class>org.apache.james.rrt.jpa.model.JPARecipientRewrite</class>
+
+        <properties>
+            <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)"/>
+            <property name="openjpa.jdbc.MappingDefaults" 
value="ForeignKeyDeleteAction=cascade, JoinForeignKeyDeleteAction=cascade"/>
+            <property name="openjpa.jdbc.SchemaFactory" 
value="native(ForeignKeys=true)"/>
+            <property name="openjpa.jdbc.QuerySQLCache" value="false"/>
+        </properties>
+
+    </persistence-unit>
+
+</persistence>

Added: james/project/trunk/dockerfiles/destination/conf/cassandra.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/cassandra.properties?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/cassandra.properties 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/cassandra.properties Mon 
Oct 26 15:15:48 2015
@@ -0,0 +1,6 @@
+# Configuration file for cassandra mailbox
+
+cassandra.ip=cassandra
+cassandra.port=9042
+cassandra.keyspace=apache_james
+cassandra.replication.factor=1
\ No newline at end of file

Added: james/project/trunk/dockerfiles/destination/conf/dnsservice.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/dnsservice.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/dnsservice.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/dnsservice.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<dnsservice>
+  <servers>
+    <server>8.8.8.8</server>
+    <server>62.210.16.6</server>
+  </servers>
+  <autodiscover>false</autodiscover>
+  <authoritative>false</authoritative>
+  <maxcachesize>50000</maxcachesize>
+</dnsservice>

Added: james/project/trunk/dockerfiles/destination/conf/domainlist.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/domainlist.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/domainlist.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/domainlist.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<domainlist class="org.apache.james.domainlist.jpa.JPADomainList">
+    <domainnames>
+        <domainname>james.linagora.com</domainname>
+    </domainnames>
+    <autodetect>true</autodetect>
+    <autodetectIP>true</autodetectIP>
+    <defaultDomain>localhost</defaultDomain>
+</domainlist>

Added: james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/elasticsearch.properties 
Mon Oct 26 15:15:48 2015
@@ -0,0 +1,24 @@
+#  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.
+
+#  This template file can be used as example for James Server configuration
+#  DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+
+# Configuration file for ElasticSearch
+
+elasticsearch.masterHost=elasticsearch
+elasticsearch.port=9300

Added: james/project/trunk/dockerfiles/destination/conf/fetchmail.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/fetchmail.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/fetchmail.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/fetchmail.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,288 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<!--
+   This template file can be used as example for James Server configuration
+   DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<!-- Fetch mail block, fetches mail from message servers and inserts it into 
the incoming spool -->
+<!-- Warning: It is important to prevent mail from looping by setting the  -->
+<!-- fetched domains in the<servernames>section of the<James>block      -->
+<!-- above. This block is disabled by default.                              -->
+
+<!-- See http://james.apache.org/server/2.3.0/fetchmail_configuration.html for 
detailed -->
+<!-- configuration instructions and examples.                                  
-->
+
+<!-- I M P O R T A N T -->
+<!-- Setting markseen="true" will have no effect on many POP3 servers as the 
POP3 -->
+<!-- protocol does not require the markSeen flag to be supported. When this is 
the -->
+<!-- case, the only way to ensure that messages are fetched just once is to 
delete -->
+<!-- fetched messages from the server with leaveonserver="false". -->
+
+<!-- If you want to perform mailet processing on messages fetched by 
fetchmail, -->
+<!-- use the HasMailAttribute matcher to detect messages with the 
MailAttribute -->
+<!-- org.apache.james.fetchmail.taskName. The attribute's value is that of the 
-->
+<!-- fetch task's name parameter described below. -->
+
+<fetchmail enabled="false">
+
+    <!-- The number of threads to use for the scheduled execution -->
+    <threads>5</threads>
+
+    <!-- The JMX Name to use -->
+    <jmxName>fetchmail</jmxName>
+
+    <!-- You can have as many fetch tasks as you want, but each must have a -->
+    <!-- unique name by which it is identified. -->
+    <!-- Each task runs at the specified<interval>, tasks may run 
concurrently. -->
+
+    <fetch name="mydomain.com">
+        <!-- There must be one<accounts>entry per fetch task. An accounts 
entry can have 0 to many -->
+        <!--<account>entries and 0 or 1<alllocal>entries.<alllocal>generates 
-->
+        <!--<accounts>for every user defined to James.<accounts>run 
consecutively within the -->
+        <!-- scope of their fetch task and inherit all the properties of the 
fetch task. -->
+
+        <!-- The advantage of running consecutively is that we can avoid 
conflicting fetch tasks -->
+        <!-- operating concurrently on the same mailboxes. -->
+
+        <!-- Fetchmail attempts to deduce the correct recipient of each 
message, but sometimes there is -->
+        <!-- insufficient information in the headers to do so. When the 
correct recipient cannot be deduced, -->
+        <!-- fetchmail can be configured to leave the mail on the server or 
deliver it to a default recipient. -->
+
+        <!-- When a message server delivers mail for a single user to a 
specific INBOX you can define -->
+        <!-- each user to James (via the console) and use<alllocal>with 
ignorercpt-header="true" to deliver mail -->
+        <!-- directly from each users INBOX onto James' spool. There is no 
need to update 'config.xml' -->
+        <!-- each time you add or remove users, fetchmail checks the list of 
users at the start of each fetch. -->
+
+        <!-- When a message server provides an account that gives access to 
all mail for a domain through a single -->
+        <!-- INBOX, you can use an<account>to fetch all the mail for that 
domain, using the filter facilities -->
+        <!-- described below to reject unwanted messages. -->
+
+        <!-- When a message server supports BOTH delivery for a single user to 
a specific INBOX and access to all mail -->
+        <!-- for a domain through a single INBOX, you can 
use<alllocal>and<account>together to guarantee that all -->
+        <!-- local mail gets delivered to the correct user and all unwanted 
mail is deleted from the message -->
+        <!-- server. See 
http://james.apache.org/server/2.3.0/fetchmail_configuration.html for details. 
-->
+
+        <!-- Limitations and Future Directions -->
+        <!-- 1)<alllocal>requires the password for all accounts for a domain 
on the message server be the same. True -->
+        <!-- in many cases, but not all. A future version might work out a way 
of associating James users with a set -->
+        <!-- of account properties. -->
+        <!-- 2)<alllocal>will try to access an INBOX on the message server for 
all local users. The instance of James used -->
+        <!-- for this purpose should not have extraneous users defined. This 
is inefficient, but not fatal. -->
+        <!-- Again, a future version might work out a way of associating James 
users with message account properties. -->
+        <!-- This would allow all local users with an account on a particular 
message server to be fetched. -->
+
+        <accounts>
+            <alllocal userprefix="" usersuffix="@myaccount" 
password="password" recipientprefix="" recipientsuffix="@mydomain.com" 
ignorercpt-header="true"/>
+            <account user="myglobalaccount" password="password" 
recipient="postmaster@localhost" ignorercpt-header="false"/>
+            <!-- Custom recipient header handling -->
+            <!-- this example search an header named X-Envelope-To and use the 
recipient found in that header -->
+            <!--
+            <account customrcpt-header="X-Envelope-To" user="myglobalaccount" 
password="password" recipient="postmaster@localhost" ignorercpt-header="false"/>
+             -->
+        </accounts>
+
+        <!-- The address of the server from which to fetch the mail -->
+        <host>pop.server.com</host>
+
+        <!-- How frequently this host is checked - in milliseconds. 600000 is 
every ten minutes -->
+        <interval>600000</interval>
+
+        <!-- name of the javamail provider you wish to use -->
+        <!-- (pop3, imap, etc. -->
+        <javaMailProviderName>pop3</javaMailProviderName>
+
+        <!-- name of the folder to open -->
+        <javaMailFolderName>INBOX</javaMailFolderName>
+
+        <!-- Properties to be applied to the JavaMail Session. -->
+        <!-- Properties are specific to the selected JavaMail provider. -->
+        <!-- Any number may be specified. -->
+        <javaMailProperties>
+            <!-- Set the connection timeout to 3 minutes -->
+            <property name="mail.pop3.connectiontimeout" value="180000"/>
+            <!-- Set the I/O timeout to 3 minutes -->
+            <property name="mail.pop3.timeout" value="180000"/>
+        </javaMailProperties>
+
+        <!-- Retrieve both old (seen) and new messages from mailserver.  The 
default -->
+        <!-- is to fetch only messages the server has not marked as seen -->
+        <fetchall>false</fetchall>
+
+        <!-- If the folder javaMailFolderName contains subfolders do you -->
+        <!-- want to recurse into the subfolders as well? true = yes, false = 
no -->
+        <recursesubfolders>false</recursesubfolders>
+
+        <!-- If the From: header of a fetched message has a valid user part -->
+        <!-- but no domain part the fetch task will correct this by appending 
-->
+        <!-- a default domain. eg: 'james' becomes 'james@defaultdomain' -->
+        <!-- The default behaviour is to append the canonical host name of the 
James server.  -->
+        <!-- You can override this behaviour here by specifying the name of 
the domain -->
+        <!-- you wish to append. The name you choose must be a local server or 
you can -->
+        <!-- use the name localhost -->
+        <!-- Example using a locally served domain -->
+        <!--
+        <defaultdomain>mydomain.com</defaultdomain>
+         -->
+        <!-- Example using localhost -->
+        <!--
+        <defaultdomain>localhost</defaultdomain>
+         -->
+
+        <!-- Specify what happens to messages succesfully fetched from the 
mailserver -->
+        <!-- leaveonserver -->
+        <!--     if true, messages will be left on the server -->
+        <!--     if false, messages will be deleted from the server -->
+        <!-- markseen -->
+        <!--     if true, messages left on the server will be marked as seen 
-->
+        <!--     if false, messages left on the server will not be marked as 
seen -->
+        <fetched leaveonserver="false" markseen="true"/>
+
+        <!-- Specify the index of the RECEIVED Header used to compute the 
remote address and remote host name -->
+        <!-- and what happens to messages that contain an invalid header at 
that index. -->
+        <!-- Matchers such as InSpammerBlacklist use the remote address and/or 
remote host name to identify illegitimate -->
+        <!-- remote MTAs. -->
+        <!-- This tag is optional. If omitted, the remote address will be set 
to 127.0.0.1 and the remote domain -->
+        <!-- will be set to 'localhost'. Both are almost always considered 
legitimate. -->
+        <!-- index -->
+        <!--     The zero based index of the RECEIVED Header used to compute 
the remote address and remote host name -->
+        <!--     of the MTA that delivered a fetched message. -->
+        <!--     Typically, the first (index = 0) RECEIVED Header is for the 
local MTA that delivers mail to the message store -->
+        <!--     and the second RECEIVED Header (index = 1) is the remote 
domain delivering mail to the MTA, so the second -->
+        <!--     RECEIVED Header is the one to use. -->
+        <!--     Some configurations will differ. Look at the RECEIVED Headers 
and set the index to point to the first remote MTA. -->
+        <!--     An index of -1 is is interpreted as use 127.0.0.1 for the 
remote address and use 'localhost' for the remote host name. -->
+        <!-- reject -->
+        <!--     if true, messages whose received header at the specified 
index is invalid will be rejected -->
+        <!--     if false, messages whose received header at the specified 
index is invalid will be accepted -->
+        <!--     and the Mail Attribute 
"org.apache.james.fetchmail.isInvalidReceivedHeader" -->
+        <!--     will be added to the message. Use the HasMailAttribute 
matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <remotereceivedheader index="1" reject="true" leaveonserver="true" 
markseen="false"/>
+
+        <!-- Specify what happens to messages whose size exceeds the specified 
limit. -->
+        <!-- This tag is optional. If omitted, there is no limit. -->
+        <!-- limit -->
+        <!--     The maximum message size in Kilobytes of messages injected 
into James. -->
+        <!--     A value of 0 means no limit. -->
+        <!-- reject -->
+        <!--     if true, messages whose size exceeds the limit will be 
rejected -->
+        <!--     if false, messages whose size exceeds the limit will be 
stripped of their message bodies -->
+        <!--     prior to injection into James and the MailAttribute 
"org.apache.james.fetchmail.isMaxMessageSizeExceeded" -->
+        <!--     will be added to the message with the value set to the 
original message size in bytes. -->
+        <!--     Use the HasMailAttribute matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <maxmessagesize limit="0" reject="false" leaveonserver="true" 
markseen="false"/>
+
+        <!-- Specify what happens to undeliverable messages -->
+        <!-- leaveonserver -->
+        <!--     if true, messages will be left on the server -->
+        <!--     if false, messages will be deleted from the server -->
+        <!-- markseen -->
+        <!--     if true, messages left on the server will be marked as seen 
-->
+        <!--     if false, messages left on the server will not be marked as 
seen -->
+        <undeliverable leaveonserver="true" markseen="false"/>
+
+        <!-- Specify what happens to messages for which a recipient cannot be 
determined. -->
+        <!-- defer -->
+        <!--     if true, processing of messages for which a recipient cannot 
be determined will deferred -->
+        <!--     until the next fetch of the Account. This gives an 
opportunity for other Accounts in the -->
+        <!--     fetch task to determine the recipient and process the mail. 
-->
+        <!--     if false, messages for which a recipient cannot be determined 
are processed immediately. -->
+        <!-- reject -->
+        <!--     if true, messages for which a recipient cannot be determined 
will be rejected -->
+        <!--     if false, messages for which a recipient cannot be determined 
will be accepted, -->
+        <!--     the account recipient will be used and the MailAttribute 
"org.apache.james.fetchmail.isRecipientNotFound" -->
+        <!--     will be added to the message. Use the HasMailAttribute 
matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <recipientnotfound defer="true" reject="true" leaveonserver="true" 
markseen="false"/>
+
+        <!-- Specify a list of recipients for whom messages will be rejected 
-->
+        <!-- and what happens to rejected messages. -->
+        <!-- The list can be comma, tab or space delimited. -->
+        <!-- reject -->
+        <!--     if true, messages for users on the blacklist will be rejected 
-->
+        <!--     if false, messages for users on the blacklist will be 
accepted -->
+        <!--     and the Mail Attribute 
"org.apache.james.fetchmail.isBlacklistedRecipient" -->
+        <!--     will be added to the message. Use the HasMailAttribute 
matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <blacklist reject="true" leaveonserver="true" 
markseen="false">wibble@localhost, flobble@localhost</blacklist>
+
+        <!-- Specify if messages for users who are not defined to James should 
-->
+        <!-- be rejected and what happens to rejected messages. -->
+        <!-- reject -->
+        <!--     if true, messages for users who are not defined to James will 
be rejected -->
+        <!--     if false, messages for users who are not defined to James 
will be accepted -->
+        <!--     and the Mail Attribute 
"org.apache.james.fetchmail.isUserUndefined" -->
+        <!--     will be added to the message. Use the HasMailAttribute 
matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <userundefined reject="true" leaveonserver="true" markseen="false" />
+
+        <!-- Specify if messages for recipients on remote hosts should -->
+        <!-- be rejected and what happens to rejected messages. -->
+        <!-- reject -->
+        <!--     if true, messages for remote recipients will be rejected -->
+        <!--     if false, messages for remote recipients will be accepted -->
+        <!--     and the Mail Attribute 
"org.apache.james.fetchmail.isRemoteRecipient" -->
+        <!--     will be added to the message. Use the HasMailAttribute 
matcher to detect them. -->
+        <!-- The following apply if reject="true" and a message is rejected... 
-->
+        <!--     leaveonserver -->
+        <!--         if true, messages will be left on the server -->
+        <!--         if false, messages will be deleted from the server -->
+        <!--     markseen -->
+        <!--         if true, messages left on the server will be marked as 
seen -->
+        <!--         if false, messages left on the server will not be marked 
as seen -->
+        <remoterecipient reject="true" leaveonserver="true" markseen="false" />
+    </fetch>
+
+</fetchmail>       

Added: james/project/trunk/dockerfiles/destination/conf/imapserver.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/imapserver.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/imapserver.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/imapserver.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+
+<!--
+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.
+-->
+
+
+<imapservers>
+       <imapserver enabled="true">
+               <jmxName>imapserver</jmxName>
+               <bind>0.0.0.0:143</bind>
+               <connectionBacklog>200</connectionBacklog>
+               <tls socketTLS="false" startTLS="true">
+                       <!-- To create a new keystore execute:
+            keytool -genkey -alias james -keyalg RSA -keystore 
/path/to/james/conf/keystore
+              -->
+                       <keystore>file://conf/keystore</keystore>
+                       <secret>james72laBalle</secret>
+                       
<provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
+               </tls>
+               <connectionLimit>0</connectionLimit>
+               <connectionLimitPerIP>0</connectionLimitPerIP>
+       </imapserver>
+       <imapserver enabled="true">
+               <jmxName>imapserver-ssl</jmxName>
+               <bind>0.0.0.0:993</bind>
+               <connectionBacklog>200</connectionBacklog>
+               <tls socketTLS="true" startTLS="false">
+                       <!-- To create a new keystore execute:
+              keytool -genkey -alias james -keyalg RSA -keystore 
/path/to/james/conf/keystore
+             -->
+                       <keystore>file://conf/keystore</keystore>
+                       <secret>james72laBalle</secret>
+                       
<provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
+               </tls>
+               <connectionLimit>0</connectionLimit>
+               <connectionLimitPerIP>0</connectionLimitPerIP>
+       </imapserver>
+</imapservers>

Added: james/project/trunk/dockerfiles/destination/conf/indexer.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/indexer.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/indexer.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/indexer.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<indexer>
+  <provider>elasticsearch</provider>
+</indexer>

Added: 
james/project/trunk/dockerfiles/destination/conf/james-database.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/james-database.properties?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/james-database.properties 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/james-database.properties 
Mon Oct 26 15:15:48 2015
@@ -0,0 +1,40 @@
+#  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.
+
+#  This template file can be used as example for James Server configuration
+#  DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+
+# See http://james.apache.org/server/3/config.html for usage
+
+# Use derby as default
+database.driverClassName=org.apache.derby.jdbc.EmbeddedDriver
+database.url=jdbc:derby:../var/store/derby;create=true
+database.username=app
+database.password=app
+
+# Supported adapters are:
+# DB2, DERBY, H2, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, 
SYBASE 
+vendorAdapter.database=DERBY
+
+# Use streaming for Blobs
+# This is only supported on a limited set of databases atm. You should check 
if its supported by your DB before enable
+# it. 
+# 
+# See:
+# 
http://openjpa.apache.org/builds/latest/docs/manual/ref_guide_mapping_jpa.html  
#7.11.  LOB Streaming 
+# 
+openjpa.streaming=false
\ No newline at end of file

Added: james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/jcr-repository.xml Mon Oct 
26 15:15:48 2015
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--
+   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.
+-->
+
+<!--
+   This template file can be used as example for James Server configuration
+   DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<!DOCTYPE Repository
+        PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
+        "http://jackrabbit.apache.org/dtd/repository-2.0.dtd";>
+
+<Repository>
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+        <param name="path" value="${rep.home}/repository"/>
+    </FileSystem>
+    <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
+    <Security appName="Jackrabbit">
+        <SecurityManager 
class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" 
workspaceName="security">
+        </SecurityManager>
+        <AccessManager 
class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager">
+        </AccessManager>
+        <LoginModule 
class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
+            <param name="anonymousId" value="anonymous"/>
+            <param name="adminId" value="admin"/>
+        </LoginModule>
+    </Security>
+    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="james"/>
+    <Workspace name="${wsp.name}">
+        <FileSystem 
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+            <param name="path" value="${wsp.home}"/>
+        </FileSystem>
+        <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager">
+            <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
+            <param name="schemaObjectPrefix" value="${wsp.name}_"/>
+        </PersistenceManager>
+        <SearchIndex 
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+            <param name="path" value="${wsp.home}/index"/>
+            <param name="supportHighlighting" value="true"/>
+        </SearchIndex>
+    </Workspace>
+    <Versioning rootPath="${rep.home}/version">
+        <FileSystem 
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+            <param name="path" value="${rep.home}/version" />
+        </FileSystem>
+        <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager">
+            <param name="url" 
value="jdbc:derby:${rep.home}/version/db;create=true"/>
+            <param name="schemaObjectPrefix" value="version_"/>
+        </PersistenceManager>
+    </Versioning>
+    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+        <param name="path" value="${rep.home}/repository/index"/>
+        <param name="supportHighlighting" value="true"/>
+    </SearchIndex>
+</Repository>

Added: james/project/trunk/dockerfiles/destination/conf/jmx.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/jmx.properties?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/jmx.properties (added)
+++ james/project/trunk/dockerfiles/destination/conf/jmx.properties Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,28 @@
+#  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.
+#
+
+#  This template file can be used as example for James Server configuration
+#  DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+
+#  This template file can be used as example for James Server configuration
+#  DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+
+# See http://james.apache.org/server/3/config.html for usage
+
+jmx.address=127.0.0.1
+jmx.port=9999

Added: james/project/trunk/dockerfiles/destination/conf/lib/README.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/lib/README.txt?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/lib/README.txt (added)
+++ james/project/trunk/dockerfiles/destination/conf/lib/README.txt Mon Oct 26 
15:15:48 2015
@@ -0,0 +1 @@
+# Put every jar you want to have included in the classpath in here
\ No newline at end of file

Added: james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/lmtpserver.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<lmtpservers>
+
+    <lmtpserver enabled="false">
+        <jmxName>lmtpserver</jmxName>
+        <!-- LMTP should not be reachable from outside your network so bind it 
to loopback-->
+        <bind>127.0.0.1:24</bind>
+        <connectionBacklog>200</connectionBacklog>
+        <connectiontimeout>1200</connectiontimeout>
+        <!-- Set the maximum simultaneous incoming connections for this 
service -->
+        <connectionLimit>0</connectionLimit>
+        <!-- Set the maximum simultaneous incoming connections per IP for this 
service -->
+        <connectionLimitPerIP>0</connectionLimitPerIP>
+        <!--  This sets the maximum allowed message size (in kilobytes) for 
this -->
+        <!--  LMTP service. If unspecified, the value defaults to 0, which 
means no limit. -->
+        <maxmessagesize>0</maxmessagesize>
+        <handlerchain>
+            <handler class="org.apache.james.lmtpserver.CoreCmdHandlerLoader"/>
+        </handlerchain>
+    </lmtpserver>
+
+</lmtpservers>

Added: james/project/trunk/dockerfiles/destination/conf/log4j.properties
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/log4j.properties?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/log4j.properties (added)
+++ james/project/trunk/dockerfiles/destination/conf/log4j.properties Mon Oct 
26 15:15:48 2015
@@ -0,0 +1,137 @@
+#  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.
+
+# See http://james.apache.org/server/3/config.html for usage
+
+log4j.rootLogger=DEBUG
+
+log4j.appender.CONS=org.apache.log4j.ConsoleAppender
+log4j.appender.CONS.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONS.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c | %m%n
+
+log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.FILE.File=../log/james-server.log
+log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.FILE.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c | %m%n
+
+log4j.appender.MAILBOXMANAGER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.MAILBOXMANAGER.File=../log/mailboxmanager.log
+log4j.appender.MAILBOXMANAGER.DatePattern='.'yyyy-MM-dd
+log4j.appender.MAILBOXMANAGER.layout=org.apache.log4j.PatternLayout
+log4j.appender.MAILBOXMANAGER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | 
%c | %m%n
+
+log4j.appender.IMAPSERVER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.IMAPSERVER.File=../log/imapserver.log
+log4j.appender.IMAPSERVER.DatePattern='.'yyyy-MM-dd
+log4j.appender.IMAPSERVER.layout=org.apache.log4j.PatternLayout
+log4j.appender.IMAPSERVER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.MAILETCONTAINER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.MAILETCONTAINER.File=../log/mailetcontainer.log
+log4j.appender.MAILETCONTAINER.DatePattern='.'yyyy-MM-dd
+log4j.appender.MAILETCONTAINER.layout=org.apache.log4j.PatternLayout
+log4j.appender.MAILETCONTAINER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} 
| %c | %m%n
+
+log4j.appender.DNSSERVICE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DNSSERVICE.File=../log/dnsservice.log
+log4j.appender.DNSSERVICE.DatePattern='.'yyyy-MM-dd
+log4j.appender.DNSSERVICE.layout=org.apache.log4j.PatternLayout
+log4j.appender.DNSSERVICE.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.POP3SERVER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.POP3SERVER.File=../log/pop3server.log
+log4j.appender.POP3SERVER.DatePattern='.'yyyy-MM-dd
+log4j.appender.POP3SERVER.layout=org.apache.log4j.PatternLayout
+log4j.appender.POP3SERVER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.SMTPSERVER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.SMTPSERVER.File=../log/smtpserver.log
+log4j.appender.SMTPSERVER.DatePattern='.'yyyy-MM-dd
+log4j.appender.SMTPSERVER.layout=org.apache.log4j.PatternLayout
+log4j.appender.SMTPSERVER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.LMTPSERVER=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.LMTPSERVER.File=../log/lmtpserver.log
+log4j.appender.LMTPSERVER.DatePattern='.'yyyy-MM-dd
+log4j.appender.LMTPSERVER.layout=org.apache.log4j.PatternLayout
+log4j.appender.LMTPSERVER.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.MAILREPOSITORYSTORE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.MAILREPOSITORYSTORE.File=../log/mailrepositorystore.log
+log4j.appender.MAILREPOSITORYSTORE.DatePattern='.'yyyy-MM-dd
+log4j.appender.MAILREPOSITORYSTORE.layout=org.apache.log4j.PatternLayout
+log4j.appender.MAILREPOSITORYSTORE.layout.ConversionPattern=%-5p 
%d{HH:mm:ss,SSS} | %c | %m%n
+
+log4j.appender.USERSREPOSITORY=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.USERSREPOSITORY.File=../log/usersrepository.log
+log4j.appender.USERSREPOSITORY.DatePattern='.'yyyy-MM-dd
+log4j.appender.USERSREPOSITORY.layout=org.apache.log4j.PatternLayout
+log4j.appender.USERSREPOSITORY.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} 
| %c | %m%n
+
+log4j.appender.FETCHMAIL=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.FETCHMAIL.File=../log/fetchmail.log
+log4j.appender.FETCHMAIL.DatePattern='.'yyyy-MM-dd
+log4j.appender.FETCHMAIL.layout=org.apache.log4j.PatternLayout
+log4j.appender.FETCHMAIL.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c | 
%m%n
+
+log4j.appender.DOMAINLIST=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DOMAINLIST.File=../log/domainlist.log
+log4j.appender.DOMAINLIST.DatePattern='.'yyyy-MM-dd
+log4j.appender.DOMAINLIST.layout=org.apache.log4j.PatternLayout
+log4j.appender.DOMAINLIST.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} | %c 
| %m%n
+
+log4j.appender.VIRTUALUSERTABLE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.VIRTUALUSERTABLE.File=../log/virtualusertable.log
+log4j.appender.VIRTUALUSERTABLE.DatePattern='.'yyyy-MM-dd
+log4j.appender.VIRTUALUSERTABLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.VIRTUALUSERTABLE.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} 
| %c | %m%n
+
+log4j.appender.MAILQUEUEFACTORY=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.MAILQUEUEFACTORY.File=../log/mailqueuefactory.log
+log4j.appender.MAILQUEUEFACTORY.DatePattern='.'yyyy-MM-dd
+log4j.appender.MAILQUEUEFACTORY.layout=org.apache.log4j.PatternLayout
+log4j.appender.MAILQUEUEFACTORY.layout.ConversionPattern=%-5p %d{HH:mm:ss,SSS} 
| %c | %m%n
+
+log4j.logger.org.apache.jackrabbit=ERROR, CONS, FILE
+
+log4j.logger.org.apache.xbean.spring=WARN, CONS, FILE
+log4j.logger.org.apache.activemq=WARN, CONS, FILE
+
+log4j.logger.org.apache.camel=WARN, CONS, FILE
+log4j.logger.org.springframework=WARN, CONS, FILE
+log4j.logger.org.apache.james=DEBUG, CONS, FILE
+
+log4j.logger.james=WARN, CONS, FILE
+log4j.logger=DEBUG, CONS, FILE
+
+log4j.logger.james.mailboxmanager=DEBUG, MAILBOXMANAGER
+log4j.logger.james.imapserver=DEBUG, IMAPSERVER
+log4j.logger.james.mailetcontainer=DEBUG, MAILETCONTAINER
+log4j.logger.james.mailetcontext=DEBUG, MAILETCONTAINER
+log4j.logger.james.mailspooler=DEBUG, MAILETCONTAINER
+log4j.logger.james.mailprocessor=DEBUG, MAILETCONTAINER
+log4j.logger.james.dnsservice=DEBUG, DNSSERVICE
+log4j.logger.james.pop3server=DEBUG, POP3SERVER
+log4j.logger.james.smtpserver=DEBUG, SMTPSERVER
+log4j.logger.james.lmtpserver=DEBUG, LMTPSERVER
+log4j.logger.james.mailrepositorystore=DEBUG, MAILREPOSITORYSTORE
+log4j.logger.james.usersrepository=DEBUG, USERSREPOSITORY
+log4j.logger.james.fetchmail=DEBUG, FETCHMAIL
+log4j.logger.james.domainlist=DEBUG, DOMAINLIST
+log4j.logger.james.virtualusertable=DEBUG, VIRTUALUSERTABLE
+log4j.logger.james.mailqueuefactory=DEBUG, MAILQUEUEFACTORY
+log4j.logger.etm.core.monitor.EtmMonitor= DEBUG, CONS, FILE

Added: james/project/trunk/dockerfiles/destination/conf/mailbox.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/mailbox.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/mailbox.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/mailbox.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<mailbox>
+  <provider>cassandra</provider>
+</mailbox>

Added: james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/mailetcontainer.xml Mon 
Oct 26 15:15:48 2015
@@ -0,0 +1,165 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+ -->
+
+<mailetcontainer enableJmx="true">
+
+    <context>
+        <postmaster>postmas...@james.minet.net</postmaster>
+    </context>
+
+    <spooler>
+        <threads>20</threads>
+    </spooler>
+
+    <processors>
+        <processor state="root" enableJmx="true">
+            <mailet match="All" class="PostmasterAlias"/>
+            <mailet match="RelayLimit=30" class="Null"/>
+            <!-- Hook on sievemana...@james.linagora.com
+                 Mail send to this address will get interpreted with SIEVE 
Manage -->
+            <mailet match="RecipientIs=sievemana...@james.linagora.com" 
class="ToProcessor">
+                <processor>sieve-manager-check</processor>
+            </mailet>
+            <mailet match="HasMailAttribute=spamChecked" class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+            <mailet match="All" class="SetMailAttribute">
+                <spamChecked>true</spamChecked>
+            </mailet>
+            <mailet match="SMTPAuthSuccessful" class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+            <mailet match="InSpammerBlacklist=query.bondedsender.org." 
class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+            <!-- Check for delivery from a known spam server -->
+            <!-- This set of matchers/mailets redirect all emails from known 
-->
+            <!-- black holes, open relays, and spam servers to the spam 
processor -->
+            <!-- For this set to function properly, the spam processor must be 
configured. -->
+            <mailet match="InSpammerBlacklist=dnsbl.njabl.org." 
class="ToProcessor">
+                <processor>spam</processor>
+                <notice>550 Requested action not taken: rejected - see 
http://njabl.org/</notice>
+            </mailet>
+            <mailet match="All" class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+        </processor>
+
+        <processor state="error" enableJmx="true">
+            <mailet match="All" class="Bounce"/>
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>file://var/mail/error/</repositoryPath>
+            </mailet>
+        </processor>
+
+
+        <processor state="transport" enableJmx="true">
+            <mailet match="SMTPAuthSuccessful" class="SetMimeHeader">
+                <name>X-UserIsAuth</name>
+                <value>true</value>
+            </mailet>
+            <mailet 
match="HasMailAttribute=org.apache.james.SMIMECheckSignature" 
class="SetMimeHeader">
+                <name>X-WasSigned</name>
+                <value>true</value>
+            </mailet>
+            <mailet match="All" class="RecipientRewriteTable" />
+            <mailet match="RecipientIsLocal" class="LocalDelivery"/>
+            <mailet match="HostIsLocal" class="ToProcessor">
+                <processor>local-address-error</processor>
+                <notice>550 - Requested action not taken: no such user 
here</notice>
+            </mailet>
+            <mailet match="SMTPAuthSuccessful" class="RemoteDelivery">
+                <outgoingQueue>outgoing</outgoingQueue>
+                <delayTime>5000, 100000, 500000</delayTime>
+                <maxRetries>25</maxRetries>
+                <maxDnsProblemRetries>0</maxDnsProblemRetries>
+                <deliveryThreads>10</deliveryThreads>
+                <sendpartial>true</sendpartial>
+                <bounceProcessor>bounces</bounceProcessor>
+            </mailet>
+            <mailet match="All" class="ToProcessor">
+                <processor>relay-denied</processor>
+            </mailet>
+        </processor>
+
+        <processor state="spam" enableJmx="true">
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>file://var/mail/spam/</repositoryPath>
+            </mailet>
+        </processor>
+
+        <processor state="local-address-error" enableJmx="true">
+            <mailet match="All" class="Bounce">
+                <attachment>none</attachment>
+            </mailet>
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>file://var/mail/address-error/</repositoryPath>
+            </mailet>
+        </processor>
+
+        <processor state="relay-denied" enableJmx="true">
+            <mailet match="All" class="Bounce">
+                <attachment>none</attachment>
+            </mailet>
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>file://var/mail/relay-denied/</repositoryPath>
+                <notice>Warning: You are sending an e-mail to a remote server. 
You must be authentified to perform such an operation</notice>
+            </mailet>
+        </processor>
+
+        <processor state="bounces" enableJmx="true">
+            <mailet match="All" class="DSNBounce">
+                <passThrough>false</passThrough>
+            </mailet>
+        </processor>
+
+        <processor state="sieve-manager-check" enableJmx="true">
+            <!-- Only local users can manage their scripts -->
+            <mailet match="RecipientIsLocal" class="ToProcessor">
+                <processor>sieve-manager</processor>
+            </mailet>
+            <!-- Notify other people about their failure -->
+            <mailet match="All" class="Bounce">
+                <inline>heads</inline>
+                <attachment>none</attachment>
+                <passThrough>false</passThrough>
+                <prefix>[REJECTED]</prefix>
+                <notice>
+                    You can't send messages to configure SIEVE on this serveur 
unless you are the official SIEVE manager.
+                </notice>
+            </mailet>
+            <mailet match="All" class="Null"/>
+        </processor>
+
+        <processor state="sieve-manager">
+            <mailet match="All" class="SetMailAttribute">
+                
<org.apache.james.SMTPAuthUser>true</org.apache.james.SMTPAuthUser>
+            </mailet>
+            <mailet match="All" 
class="org.apache.james.managesieve.mailet.ManageSieveMailet">
+                
<helpURL>file:/root/james-server-app-3.0.0-beta5-SNAPSHOT/conf/managesieve.help.txt</helpURL>
+            </mailet>
+            <mailet match="All" class="Null"/>
+        </processor>
+    </processors>
+
+</mailetcontainer>
+
+

Added: james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/mailrepositorystore.xml 
Mon Oct 26 15:15:48 2015
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+ -->
+
+<mailrepositorystore>
+    <mailrepositories>
+        <!-- File based repositories.  These repositories store all message 
data -->
+        <!-- in the file system. -->
+        <mailrepository 
class="org.apache.james.mailrepository.file.FileMailRepository">
+            <protocols>
+                <protocol>file</protocol>
+            </protocols>
+            <!-- Set if the messages should be listed sorted. False by default 
-->
+            <config FIFO="false" CACHEKEYS="true"/>
+        </mailrepository>
+    </mailrepositories>
+</mailrepositorystore>

Added: james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/managesieve.help.txt Mon 
Oct 26 15:15:48 2015
@@ -0,0 +1,112 @@
+managesieve implements the commands defined by RFC 5804 
((http://tools.ietf.org/html/rfc5804) to manage sieve scripts via mail 
messages. A mail is sent to the managesieve user with the command and 
parameters in the subject header. Sieve scripts are exchanged as mail 
attachments.
+
+Consult your mail administrator for the name of the managesieve user 
configured for your installation.
+
+Users MUST be SMTP authenticated to execute all except the CAPABILITY and HELP 
commands (see note (1) below).
+
+Commands are executed and answered within the namespace of the sending user as 
denoted by the sender header of the mail. Thus, a command such as LISTSCRIPTS 
lists the scripts within namespace of the user identified by the sender header.
+
+The supported commands are summarised in "Command Summary" below. Generally 
the responses are self describing. For full details see RFC 5804 - Commands 
(http://tools.ietf.org/html/rfc5804#section-2).
+
+In these descriptions the following keywords apply:
+
+- sieve-name
+    The name of a sieve script enclosed in parentheses, eg: "my script". An 
empty name is not allowed.
+- active-sieve-name
+    As sieve-name, except an empty name, eg: "", is allowed.
+- old-sieve-name
+    As sieve-name
+- new-sieve-name
+    As sieve-name    
+- sieve-script
+    A mail attachment recognised as a sieve script. This is the first 
attachment in a mail satisfying any of these characteristics:
+        - A MIME type of "application/sieve"
+        - A filename with the suffix ".sieve"
+        - A filename with the suffix ".siv"
+    Returned sieve-scripts always have the MIME type of "application/sieve"
+
+Command Summary
+---------------
+
+CAPABILITY
+    Subject:
+        CAPABILITY
+    Attachments: 
+        none
+Answers the capabilities of the underlying sieve inplementation.
+
+CHECKSCRIPT
+    Subject:
+        CHECKSCRIPT
+    Attachments: 
+        sieve-script
+Verifies the attached sieve-script without storing it on the server.
+
+DELETESCRIPT
+    Subject: 
+        DELETESCRIPT sieve-name
+    Attachments: 
+        none
+Deletes the named sieve script.
+
+GETACTIVE
+    Subject: 
+        GETACTIVE
+    Attachments: 
+        none
+Answers the active sieve script as an attachment.
+
+GETSCRIPT
+    Subject: 
+        GETSCRIPT sieve-name
+    Attachments: 
+        none
+Answers the named sieve script as an attachment.
+
+HAVESPACE
+    Subject: 
+        HAVESPACE sieve-name number
+    Attachments: 
+        none
+Answers OK if there is available space to store a script with the given name 
of the given size, else NO.
+
+HELP
+    Subject: 
+        HELP
+    Attachments: 
+        none
+Answers this text.
+
+LISTSCRIPTS
+    Subject: 
+        LISTSCRIPTS
+    Attachments: 
+        none
+Answers a list of the sieve scripts stored on the server, indicating which, if 
any, is the active script.
+
+PUTSCRIPT
+    Subject: 
+        PUTSCRIPT sieve-name
+    Attachments: 
+        sieve-script
+Verifies the attached sieve-script and if there are no errors stores it on the 
server using the given name.
+
+RENAMESCRIPT
+    Subject: 
+        RENAMESCRIPT old-sieve-name new-sieve-name
+    Attachments: 
+        none
+Renames the script stored on the server named old-sieve-name to new-sieve-name.
+
+SETACTIVE
+    Subject: 
+        SETACTIVE active-sieve-name
+    Attachments: 
+        none
+Sets the active script on the server to the given name. Use an empty string, 
"", to deactivate all scripts.
+
+Notes
+-----
+1) Some mail servers optionally allow configurations that enable local clients 
to post without SMTP authentication, such configurations will fail as 
managesieve requires SMTP authentication in all circumstances. To repeat, users 
MUST be SMTP authenticated to execute all except the CAPABILITY and HELP 
commands.
+
+

Added: james/project/trunk/dockerfiles/destination/conf/pop3server.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/pop3server.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/pop3server.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/pop3server.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+
+<pop3servers>
+    <pop3server enabled="false">
+        <jmxName>pop3server</jmxName>
+        <bind>0.0.0.0:110</bind>
+        <connectionBacklog>200</connectionBacklog>
+        <tls socketTLS="false" startTLS="false">
+            <!-- To create a new keystore execute:
+                  keytool -genkey -alias james -keyalg RSA -keystore 
/path/to/james/conf/keystore
+             -->
+            <keystore>file://conf/keystore</keystore>
+            <secret>james72laBalle</secret>
+            
<provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
+        </tls>
+        <connectiontimeout>1200</connectiontimeout>
+        <connectionLimit>0</connectionLimit>
+        <connectionLimitPerIP>0</connectionLimitPerIP>
+        <handlerchain>
+            <handler 
class="org.apache.james.pop3server.core.CoreCmdHandlerLoader"/>
+        </handlerchain>
+    </pop3server>
+</pop3servers>

Added: james/project/trunk/dockerfiles/destination/conf/quota.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/quota.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/quota.xml (added)
+++ james/project/trunk/dockerfiles/destination/conf/quota.xml Mon Oct 26 
15:15:48 2015
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!--
+  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.
+ -->
+
+<!--
+   This template file can be used as example for James Server configuration
+   DO NOT USE IT AS SUCH AND ADAPT IT TO YOUR NEEDS
+-->
+
+<!-- See http://james.apache.org/server/3/config.html for usage -->
+
+<!--
+        This configuration file allows you to customize the way quota are 
handled on this server.
+        You need to rename it in quota.xml so that it gets interpreted by 
James on startup.
+
+        The different configuration options are detailed here.
+
+        Read RFC-2087 for full details.
+-->
+
+<quota>
+    <quotaRootResolver>
+        <provider>default</provider>
+    </quotaRootResolver>
+    <currentQuotaManager>
+        <provider>cassandra</provider>
+    </currentQuotaManager>
+    <maxQuotaManager>
+        <provider>cassandra</provider>
+    </maxQuotaManager>
+    <quotaManager>
+        <provider>store</provider>
+    </quotaManager>
+    <updates>
+        <provider>event</provider>
+    </updates>
+</quota>

Added: 
james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml
URL: 
http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml?rev=1710623&view=auto
==============================================================================
--- james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml 
(added)
+++ james/project/trunk/dockerfiles/destination/conf/recipientrewritetable.xml 
Mon Oct 26 15:15:48 2015
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+  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.                                           
+ -->
+
+<!-- The default table for storing James' RecipientRewriteTable mappings. -->
+<recipientrewritetable 
class="org.apache.james.rrt.jpa.JPARecipientRewriteTable">
+  <recursiveMapping>true</recursiveMapping>
+  <mappingLimit>10</mappingLimit>
+</recipientrewritetable>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to