[GitHub] james-project pull request: James 1626
Github user aduprat commented on the pull request: https://github.com/apache/james-project/pull/16#issuecomment-153351488 :+1: --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[GitHub] james-project pull request: James 1626
Github user mbaechler closed the pull request at: https://github.com/apache/james-project/pull/10 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-1631) Can't start James 2.3.2.1 on Windows
[ https://issues.apache.org/jira/browse/JAMES-1631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14987042#comment-14987042 ] Vincent Kirsch commented on JAMES-1631: --- Hi, Any idea how to proceed with this? It's really a blocking point! Thanks, V. > Can't start James 2.3.2.1 on Windows > > > Key: JAMES-1631 > URL: https://issues.apache.org/jira/browse/JAMES-1631 > Project: James Server > Issue Type: Bug > Components: James Core >Affects Versions: 2.3.2.1 >Reporter: Vincent Kirsch >Priority: Blocker > > Hi, > I get the issue on 2 separate Windows machines: Windows 7 64-bit and Windows > 2012. > In each case, the Java version is the latest update of JDK 7 (jdk7u80). It > happens with both 32-bit and 64-bit versions of the JDK. > Procedre: > - Unzip James files on the disk > - Launch cmd.exe as Administrator > - Go in James' bin directory, and launch run.bat > James doesn't start, and the phoenix.log file contains this: > ERROR 2015-10-27 12:50:14.903 [Phoenix.] (): There was an error running > phase "startup" for Block named "users-store". (Reason: Component named > "users-store" failed to pass through the Starting stage. (Reason: > org.apache.avalon.framework.configuration.ConfigurationException: > destination>>URL).). > org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: > Component named "users-store" failed to pass through the Starting stage. > (Reason: org.apache.avalon.framework.configuration.ConfigurationException: > destination>>URL). > at > org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.fail(LifecycleHelper.java:354) > at > org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:226) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.runPhase(DefaultApplication.java:409) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.start(DefaultApplication.java:180) > at > org.apache.avalon.framework.container.ContainerUtil.start(ContainerUtil.java:260) > rethrown from > org.apache.avalon.framework.configuration.ConfigurationException: > destination>>URL > at > org.apache.james.userrepository.UsersFileRepository.configure(UsersFileRepository.java:134) > at > org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201) > at > org.apache.james.core.AvalonUsersStore.initialize(AvalonUsersStore.java:130) > at > org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244) > at > org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.startup(DefaultApplication.java:530) > at > org.apache.avalon.phoenix.components.application.DefaultApplication.doRunPhase(DefaultApplication.java:478) > rethrown from > java.io.IOException: The filename, directory name, or volume label syntax is > incorrect > at java.io.WinNTFileSystem.canonicalize0(Native Method) > at > java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:414) > at java.io.File.getCanonicalPath(File.java:618) > at java.io.File.getCanonicalFile(File.java:643) > at > org.apache.james.userrepository.UsersFileRepository.configure(UsersFileRepository.java:132) > at > org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201) > at > org.apache.james.core.AvalonUsersStore.initialize(AvalonUsersStore.java:130) > Upon exit, there's an additional warning because files in the work directory > cannot be deleted: > WARN2015-10-27 12:50:15.028 [Phoenix.] (): Error deleting Work Directory > "D:\James\work\james-1445946613419". (Reason: File > D:\James\work\james-1445946613419\SAR-INF\lib\mailet-api-2.3.jar unable to be > deleted.) > java.io.IOException: File > D:\James\work\james-1445946613419\SAR-INF\lib\mailet-api-2.3.jar unable to be > deleted. > at > org.apache.avalon.excalibur.io.FileUtil.forceDelete(FileUtil.java:743) > at > org.apache.avalon.excalibur.io.FileUtil.cleanDirectory(FileUtil.java:910) > at > org.apache.avalon.excalibur.io.FileUtil.deleteDirectory(FileUtil.java:866) > at >
[jira] [Created] (JAMES-1633) Tests on SMTPServer are randomly locked
Antoine Duprat created JAMES-1633: - Summary: Tests on SMTPServer are randomly locked Key: JAMES-1633 URL: https://issues.apache.org/jira/browse/JAMES-1633 Project: James Server Issue Type: Bug Reporter: Antoine Duprat Tests on SMTPServer are randomly locked, then the build never reach the end. Adding a timeout in surefire configuration. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[GitHub] james-project pull request: James 1626
GitHub user mbaechler opened a pull request: https://github.com/apache/james-project/pull/16 James 1626 update PR, now full-cassandra You can merge this pull request into a Git repository by running: $ git pull https://github.com/mbaechler/james-project JAMES-1626 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/james-project/pull/16.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #16 commit 4f62953ee568c874ec0a683f239336657ebb0d77 Author: benwaDate: 2015-08-17T15:09:09Z JAMES-1626 Add ElasticSearch support to cassandra-guice application commit d62e249476603af2b7bfdb59fc90e2ed3ce10f75 Author: benwa Date: 2015-08-18T08:33:14Z JAMES-1626 Add ActiveMQ support to cassandra-guice application commit 88c934741dd54b86ec949a60e51aca8f7ca1cf29 Author: benwa Date: 2015-08-24T10:12:25Z JAMES-1626 Use Onami for lifecycle management (JSR 250 @PreDestroy @PostConstruct) commit 8fd3700c14ae31704760a6ab7bd278ae80b5857a Author: benwa Date: 2015-08-25T15:17:51Z JAMES-1626 Add JMX support to cassandra-guice application commit 671bf2ac6a0a2372456e655c16df668bc97f1cf4 Author: benwa Date: 2015-08-27T13:43:32Z JAMES-1626 Implement an HierarchicalConfiguration reader for guice use commit dab20ac1f22117bd49e162f5ddb1fcb1cb85047b Author: benwa Date: 2015-08-27T13:53:16Z JAMES-1626 cassandra-guice project creation commit 8c55733c3ecdcb4b3b0174871a312aefe384ea1b Author: benwa Date: 2015-08-27T13:55:39Z JAMES-1626 bootstrap guice-based application with Cassandra IMAP server commit 4170732b3de5406272ce88a1eabdb6a72b94c514 Author: benwa Date: 2015-08-27T14:14:58Z JAMES-1626 Implement an InMemory MailRepository commit 57ddc660778d181201f2c602667fb8580be0830b Author: benwa Date: 2015-08-27T14:18:58Z JAMES-1626 Add mailet support in cassandra-guice module commit 91caf381fa160293e5ab8ba57f426d700e157348 Author: benwa Date: 2015-08-31T13:30:27Z JAMES-1626 Implement a guice MailboxManagerResolver commit fdfbb821105281212cff5c30826a019697e8cd77 Author: benwa Date: 2015-09-02T16:51:37Z JAMES-1626 Add DNSService support in cassandra-guice application commit cd54d8a92beb2cad877c9c6ea73f60a3de9b3993 Author: benwa Date: 2015-09-03T12:22:04Z JAMES-1626 All ProtocolHandler should be lifeCycle aware If fixes a longstanding error in SMTPServerTest that return code 554 on DNS blacklist test commit 0ad44534631ebbae433c1b758455b5fb331d8c57 Author: Antoine Duprat Date: 2015-09-09T13:55:22Z JAMES-1626 Fix a typo on the site in the server index file commit 6d2364f52b317dfff268677759c3215df87c0e1c Author: Antoine Duprat Date: 2015-09-10T12:48:33Z JAMES-1626 Add configuration documentation commit d04ba06b436bd1851ad41143f462c285d8ffa604 Author: Matthieu Baechler Date: 2015-09-11T13:46:03Z JAMES-1626 Add interface ConfigurationProvider to allow multiple implementations commit cc700567da351d74a6bc3bdde6b5f6b000af9546 Author: Matthieu Baechler Date: 2015-09-11T13:48:43Z JAMES-1626 Implement a packaging policy for the cassandra-guice application commit 16d820223de747de1cd10cf9e37799cb4f57f14f Author: Matthieu Baechler Date: 2015-09-11T13:51:04Z JAMES-1626 use Filesystem to resolve configuration properties files commit 7fe035ca5674a8ba9dc219469ea868cfe3a60247 Author: Matthieu Baechler Date: 2015-09-15T10:21:32Z JAMES-1626 sample configuration and readme commit 81279a6664fd485a699f667c62461fdda143b211 Author: Matthieu Baechler Date: 2015-10-21T12:13:22Z JAMES-1626 ConfigurationPerformer will take care of push configuration to class that need it commit 36018ed3c4349610a03be3607f7c9e997649fe5f Author: Matthieu Baechler Date: 2015-10-22T12:17:08Z JAMES-1626 Update maven-bundle-plugin to 2.4.0 commit 8b695088f89170aa99de69282f1896062fc7a98d Author: Matthieu Baechler Date: 2015-10-22T12:17:10Z JAMES-1626 Use javax.inject in Cassandra mailbox commit 95948fbc3ee2f5327ffe1b303588a0c7635b8805 Author: Matthieu Baechler Date: 2015-10-22T12:17:17Z JAMES-1626 Use javax.inject in ElasticSearch mailbox commit b8d7ec8c69535c515075af92bb79086291e6f58b Author: Matthieu Baechler Date: 2015-10-22T12:17:39Z
svn commit: r1712349 - /james/project/trunk/server/container/cli/pom.xml
Author: matthieu Date: Tue Nov 3 16:54:27 2015 New Revision: 1712349 URL: http://svn.apache.org/viewvc?rev=1712349=rev Log: JAMES-1626 bundle cli into a runnable jar Modified: james/project/trunk/server/container/cli/pom.xml Modified: james/project/trunk/server/container/cli/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cli/pom.xml?rev=1712349=1712348=1712349=diff == --- james/project/trunk/server/container/cli/pom.xml (original) +++ james/project/trunk/server/container/cli/pom.xml Tue Nov 3 16:54:27 2015 @@ -93,6 +93,36 @@ maven-bundle-plugin true + +org.apache.maven.plugins +maven-dependency-plugin + + +copy-dependencies +package + +copy-dependencies + + + ${project.build.directory}/${project.build.finalName}.lib + + + + + +org.apache.maven.plugins +maven-jar-plugin + + + +true + ${project.build.finalName}.lib/ + org.apache.james.cli.ServerCmd +false + + + + - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712350 [2/2] - in /james/project/trunk: ./ dockerfiles/compilation/java-8/ dockerfiles/run/guice/ dockerfiles/run/guice/destination/ dockerfiles/run/guice/destination/conf/ dockerfiles/r
Added: james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml URL: http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml?rev=1712350=auto == --- james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml (added) +++ james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml Tue Nov 3 16:54:41 2015 @@ -0,0 +1,105 @@ + + + + + + +smtpserver-global +0.0.0.0:25 +200 + +file://conf/keystore +james72laBalle + org.bouncycastle.jce.provider.BouncyCastleProvider +SunX509 + +360 +0 +0 +false +0.0.0.0/0 +true +0 +true +JAMES Linagora's SMTP awesome Server + + + + + + +smtpserver-TLS +0.0.0.0:465 +200 + +file://conf/keystore +james72laBalle + org.bouncycastle.jce.provider.BouncyCastleProvider +SunX509 + +360 +0 +0 + +true +0.0.0.0/0 + +false +0 +true +JAMES Linagora's SMTP awesome Server + + + + + + +smtpserver-authenticated +0.0.0.0:587 +200 + +file://conf/keystore +james72laBalle + org.bouncycastle.jce.provider.BouncyCastleProvider +SunX509 + +360 +0 +0 + +true +0.0.0.0/0 + +false +0 +true +JAMES Linagora's SMTP awesome Server + + + + + + + + Added: james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml URL: http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml?rev=1712350=auto == --- james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml (added) +++ james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml Tue Nov 3 16:54:41 2015 @@ -0,0 +1,931 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +${table} + + +SELECT username, pwdHash, pwdAlgorithm, useForwarding, +forwardDestination, useAlias, alias +FROM ${table} +ORDER BY username + + + + + +SELECT username, pwdHash, pwdAlgorithm, useForwarding, +forwardDestination, useAlias, alias +FROM ${table} +WHERE lower(username) = ? + + + +SELECT username, pwdHash, pwdAlgorithm, useForwarding, +forwardDestination, useAlias, alias +FROM ${table} +WHERE username = ? + + + +INSERT INTO ${table} +(username, pwdHash, pwdAlgorithm, useForwarding, forwardDestination, useAlias, alias) +VALUES (?,?,?,?,?,?,?) + + + +UPDATE ${table} SET +pwdHash = ?, pwdAlgorithm = ?, useForwarding = ?, forwardDestination = ?, useAlias = ?, alias = ? +WHERE username = ? + + + +DELETE FROM ${table} WHERE username = ? + + +CREATE CACHED TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding INTEGER, forwardDestination VARCHAR(255), useAlias INTEGER, alias VARCHAR(255), PRIMARY KEY(username)) +CREATE TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding SMALLINT, forwardDestination VARCHAR(255), useAlias SMALLINT, alias VARCHAR(255), PRIMARY KEY(username)) + + + + +${table} + + +SELECT username, pwdHash, pwdAlgorithm +FROM ${table} + + + +INSERT INTO ${table} +(username, pwdHash, pwdAlgorithm) +VALUES (?,?,?) + + + +UPDATE ${table} SET +pwdHash = ?, pwdAlgorithm = ? +WHERE username = ? + + + +DELETE FROM ${table} WHERE username = ? + + +CREATE CACHED TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY KEY(username)) +CREATE TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash
[GitHub] james-project pull request: James 1626
Github user mbaechler closed the pull request at: https://github.com/apache/james-project/pull/16 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-1626) build a guice application for james with cassandra + elasticsearch
[ https://issues.apache.org/jira/browse/JAMES-1626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Matthieu Baechler closed JAMES-1626. Resolution: Fixed merged > build a guice application for james with cassandra + elasticsearch > -- > > Key: JAMES-1626 > URL: https://issues.apache.org/jira/browse/JAMES-1626 > Project: James Server > Issue Type: New Feature >Reporter: Matthieu Baechler > > I'd like to run a specific combination of backends using a Guice application. > This application would use cassandra backends when available (file backends > for others) and elasticsearch for search. > The produced artifact is supposed to be a simple runnable jar and it's > dependencies in a subdirectory. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[GitHub] james-project pull request: James 1626
Github user mbaechler commented on the pull request: https://github.com/apache/james-project/pull/16#issuecomment-153415649 merged --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712350 [1/2] - in /james/project/trunk: ./ dockerfiles/compilation/java-8/ dockerfiles/run/guice/ dockerfiles/run/guice/destination/ dockerfiles/run/guice/destination/conf/ dockerfiles/r
Author: matthieu Date: Tue Nov 3 16:54:41 2015 New Revision: 1712350 URL: http://svn.apache.org/viewvc?rev=1712350=rev Log: JAMES-1626 cassandra-guice docker support Added: james/project/trunk/dockerfiles/run/guice/ james/project/trunk/dockerfiles/run/guice/Dockerfile james/project/trunk/dockerfiles/run/guice/destination/ james/project/trunk/dockerfiles/run/guice/destination/conf/ james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/ james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/jpa-mappings-template.xml james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/persistence-template.xml james/project/trunk/dockerfiles/run/guice/destination/conf/META-INF/persistence.xml james/project/trunk/dockerfiles/run/guice/destination/conf/cassandra.properties james/project/trunk/dockerfiles/run/guice/destination/conf/dnsservice.xml james/project/trunk/dockerfiles/run/guice/destination/conf/domainlist.xml james/project/trunk/dockerfiles/run/guice/destination/conf/elasticsearch.properties james/project/trunk/dockerfiles/run/guice/destination/conf/fetchmail.xml james/project/trunk/dockerfiles/run/guice/destination/conf/imapserver.xml james/project/trunk/dockerfiles/run/guice/destination/conf/indexer.xml james/project/trunk/dockerfiles/run/guice/destination/conf/james-database.properties james/project/trunk/dockerfiles/run/guice/destination/conf/jcr-repository.xml james/project/trunk/dockerfiles/run/guice/destination/conf/jmx.properties james/project/trunk/dockerfiles/run/guice/destination/conf/lib/ james/project/trunk/dockerfiles/run/guice/destination/conf/lib/README.txt james/project/trunk/dockerfiles/run/guice/destination/conf/lmtpserver.xml james/project/trunk/dockerfiles/run/guice/destination/conf/log4j.properties james/project/trunk/dockerfiles/run/guice/destination/conf/mailetcontainer.xml james/project/trunk/dockerfiles/run/guice/destination/conf/mailrepositorystore.xml james/project/trunk/dockerfiles/run/guice/destination/conf/managesieve.help.txt james/project/trunk/dockerfiles/run/guice/destination/conf/pop3server.xml james/project/trunk/dockerfiles/run/guice/destination/conf/quota.xml james/project/trunk/dockerfiles/run/guice/destination/conf/recipientrewritetable.xml james/project/trunk/dockerfiles/run/guice/destination/conf/smtpserver.xml james/project/trunk/dockerfiles/run/guice/destination/conf/sqlResources.xml james/project/trunk/dockerfiles/run/guice/destination/conf/usersrepository.xml Modified: james/project/trunk/README.txt james/project/trunk/dockerfiles/compilation/java-8/compile.sh Modified: james/project/trunk/README.txt URL: http://svn.apache.org/viewvc/james/project/trunk/README.txt?rev=1712350=1712349=1712350=diff == --- james/project/trunk/README.txt (original) +++ james/project/trunk/README.txt Tue Nov 3 16:54:41 2015 @@ -68,7 +68,6 @@ as it is needed by the container that wi - 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. - * Java 8 First step, you have to build the Docker image $ docker build -t james/project dockerfiles/compilation/java-8 @@ -160,6 +159,16 @@ Where : Beware : you will have concurrency issues if multiple containers are running on this single volume. +How to run James in Docker using guice container + + +You have to follow above documentation and replace spring by guice in paths. + +Once you run the container, you have to use the following command to launch the cli : + +$ docker exec james_run java -jar /root/james-cli.jar -h localhost + + Running deployement Tests = Modified: james/project/trunk/dockerfiles/compilation/java-8/compile.sh URL: http://svn.apache.org/viewvc/james/project/trunk/dockerfiles/compilation/java-8/compile.sh?rev=1712350=1712349=1712350=diff == --- james/project/trunk/dockerfiles/compilation/java-8/compile.sh (original) +++ james/project/trunk/dockerfiles/compilation/java-8/compile.sh Tue Nov 3 16:54:41 2015 @@ -53,4 +53,8 @@ fi if [ $? -eq 0 ]; then cp server/app/target/james-server-app-*-app.zip $DESTINATION + cp server/container/cassandra-guice/target/james-server-cassandra-guice-*-SNAPSHOT.jar $DESTINATION + cp -r server/container/cassandra-guice/target/james-server-cassandra-guice-*-SNAPSHOT.lib $DESTINATION + cp server/container/cli/target/james-server-cli-*.jar $DESTINATION + cp -r server/container/cli/target/james-server-cli-*.lib $DESTINATION fi Added: james/project/trunk/dockerfiles/run/guice/Dockerfile URL:
[jira] [Commented] (JAMES-1634) Slow Cassandra tests
[ https://issues.apache.org/jira/browse/JAMES-1634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14988509#comment-14988509 ] Tellier Benoit commented on JAMES-1634: --- Hi the team :-) With the solution you propose you habe a speed up of ~5. That's good but still slow ( ~ 10 min tests for all Cassandra tests). My suggestion (maybe quite crazy, but maybe you'll like it !) - us a ramdisk for cassandra-unit storage. This test does this : http://www.planetcassandra.org/blog/reduce-integration-test-time-by-94-by-using-ramdisk/ Ok, but creating a ram disk is complicated. Mount command can be used inside docker using –privileged option. So the idea is to mount the RAM disk in docker and expose an ENV variable. If the ENV variable is present, we use the yaml to configure cassandra-unit to use the RAM disk. If not we launch it normaly. Don't know if this is easily doable and if you'll have the time to do this, but this is worth mentionning ;-) > Slow Cassandra tests > > > Key: JAMES-1634 > URL: https://issues.apache.org/jira/browse/JAMES-1634 > Project: James Server > Issue Type: Bug >Reporter: Antoine Duprat > > Cassandra tests are slow, tables creation takes approximatively 25 seconds. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-1634) Slow Cassandra tests
[ https://issues.apache.org/jira/browse/JAMES-1634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14988509#comment-14988509 ] Tellier Benoit edited comment on JAMES-1634 at 11/4/15 12:15 AM: - Hi the team :-) With the solution you propose you habe a speed up of ~5. That's good but still slow ( ~ 10 min tests for all Cassandra tests). My suggestion (maybe quite crazy, but maybe you'll like it !) - us a ramdisk for cassandra-unit storage. This post does this : http://www.planetcassandra.org/blog/reduce-integration-test-time-by-94-by-using-ramdisk/ So the idea is to mount the RAM disk in docker and expose an ENV variable. Mount command can be used inside docker using –privileged option. If the ENV variable is present, we use the yaml to configure cassandra-unit to use the RAM disk. If not we launch it normaly. Don't know if this is easily doable and if you'll have the time to do this, but this is worth mentionning ;-) was (Author: btellier): Hi the team :-) With the solution you propose you habe a speed up of ~5. That's good but still slow ( ~ 10 min tests for all Cassandra tests). My suggestion (maybe quite crazy, but maybe you'll like it !) - us a ramdisk for cassandra-unit storage. This test does this : http://www.planetcassandra.org/blog/reduce-integration-test-time-by-94-by-using-ramdisk/ Ok, but creating a ram disk is complicated. Mount command can be used inside docker using –privileged option. So the idea is to mount the RAM disk in docker and expose an ENV variable. If the ENV variable is present, we use the yaml to configure cassandra-unit to use the RAM disk. If not we launch it normaly. Don't know if this is easily doable and if you'll have the time to do this, but this is worth mentionning ;-) > Slow Cassandra tests > > > Key: JAMES-1634 > URL: https://issues.apache.org/jira/browse/JAMES-1634 > Project: James Server > Issue Type: Bug >Reporter: Antoine Duprat > > Cassandra tests are slow, tables creation takes approximatively 25 seconds. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-1634) Slow Cassandra tests
Antoine Duprat created JAMES-1634: - Summary: Slow Cassandra tests Key: JAMES-1634 URL: https://issues.apache.org/jira/browse/JAMES-1634 Project: James Server Issue Type: Bug Reporter: Antoine Duprat Cassandra tests are slow, tables creation takes approximatively 25 seconds. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712322 - /james/project/trunk/pom.xml
Author: matthieu Date: Tue Nov 3 16:40:39 2015 New Revision: 1712322 URL: http://svn.apache.org/viewvc?rev=1712322=rev Log: JAMES-1626 Update maven-bundle-plugin to 2.4.0 Modified: james/project/trunk/pom.xml Modified: james/project/trunk/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/pom.xml?rev=1712322=1712321=1712322=diff == --- james/project/trunk/pom.xml (original) +++ james/project/trunk/pom.xml Tue Nov 3 16:40:39 2015 @@ -567,7 +567,7 @@ org.apache.felix maven-bundle-plugin -2.3.7 +2.4.0 true - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712324 - in /james/project/trunk/mailbox: cassandra/src/main/java/org/apache/james/mailbox/cassandra/ elasticsearch/ elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ e
Author: matthieu Date: Tue Nov 3 16:41:20 2015 New Revision: 1712324 URL: http://svn.apache.org/viewvc?rev=1712324=rev Log: JAMES-1626 Use javax.inject in ElasticSearch mailbox Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java james/project/trunk/mailbox/elasticsearch/pom.xml james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/QueryConverter.java james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java?rev=1712324=1712323=1712324=diff == --- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java (original) +++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java Tue Nov 3 16:41:20 2015 @@ -34,6 +34,7 @@ import org.apache.james.mailbox.store.St import org.apache.james.mailbox.store.StoreMessageManager; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox; +import org.apache.james.mailbox.store.search.MessageSearchIndex; /** * Cassandra implementation of {@link StoreMailboxManager} @@ -53,6 +54,12 @@ public class CassandraMailboxManager ext } @Override +@Inject +public void setMessageSearchIndex(MessageSearchIndex index) { +super.setMessageSearchIndex(index); +} + +@Override protected Mailbox doCreateMailbox(MailboxPath mailboxPath, MailboxSession session) throws MailboxException { SimpleMailbox cassandraMailbox = new SimpleMailbox<>(mailboxPath, randomUidValidity()); cassandraMailbox.setACL(SimpleMailboxACL.EMPTY); Modified: james/project/trunk/mailbox/elasticsearch/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/pom.xml?rev=1712324=1712323=1712324=diff == --- james/project/trunk/mailbox/elasticsearch/pom.xml (original) +++ james/project/trunk/mailbox/elasticsearch/pom.xml Tue Nov 3 16:41:20 2015 @@ -202,6 +202,10 @@ 1.6.3 +javax.inject +javax.inject + + ${javax.mail.groupId} ${javax.mail.artifactId} Modified: james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java?rev=1712324=1712323=1712324=diff == --- james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java (original) +++ james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java Tue Nov 3 16:41:20 2015 @@ -27,6 +27,8 @@ import org.elasticsearch.index.query.Que import com.google.common.base.Preconditions; +import javax.inject.Inject; + public class ElasticSearchIndexer { public static final String MAILBOX_INDEX = "mailbox"; @@ -34,6 +36,7 @@ public class ElasticSearchIndexer { private final ClientProvider clientProvider; +@Inject public ElasticSearchIndexer(ClientProvider clientProvider) { this.clientProvider = clientProvider; } Modified: james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java?rev=1712324=1712323=1712324=diff == ---
svn commit: r1712323 - in /james/project/trunk/mailbox: cassandra/ cassandra/src/main/java/org/apache/james/mailbox/cassandra/ cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/ store/ s
Author: matthieu Date: Tue Nov 3 16:41:05 2015 New Revision: 1712323 URL: http://svn.apache.org/viewvc?rev=1712323=rev Log: JAMES-1626 Use javax.inject in Cassandra mailbox Modified: james/project/trunk/mailbox/cassandra/pom.xml james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java james/project/trunk/mailbox/store/pom.xml james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java Modified: james/project/trunk/mailbox/cassandra/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/pom.xml?rev=1712323=1712322=1712323=diff == --- james/project/trunk/mailbox/cassandra/pom.xml (original) +++ james/project/trunk/mailbox/cassandra/pom.xml Tue Nov 3 16:41:05 2015 @@ -152,6 +152,10 @@ 16.0 +javax.inject +javax.inject + + ${javax.mail.groupId} ${javax.mail.artifactId} Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java?rev=1712323=1712322=1712323=diff == --- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java (original) +++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java Tue Nov 3 16:41:05 2015 @@ -19,6 +19,9 @@ package org.apache.james.mailbox.cassandra; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver; @@ -35,9 +38,11 @@ import org.apache.james.mailbox.store.ma /** * Cassandra implementation of {@link StoreMailboxManager} */ +@Singleton public class CassandraMailboxManager extends StoreMailboxManager { private MailboxPathLocker locker; +@Inject public CassandraMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, final MailboxPathLocker locker) { super(mapperFactory, authenticator, Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java?rev=1712323=1712322=1712323=diff == --- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java (original) +++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java Tue Nov 3 16:41:05 2015 @@ -20,6 +20,7 @@ package org.apache.james.mailbox.cassandra; import org.apache.james.backends.cassandra.init.CassandraTypesProvider; +import javax.inject.Inject; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper; import org.apache.james.mailbox.cassandra.mail.CassandraMessageMapper; @@ -45,6 +46,7 @@ public class CassandraMailboxSessionMapp private final CassandraTypesProvider typesProvider; private int maxRetry; +@Inject public CassandraMailboxSessionMapperFactory(UidProvider uidProvider, ModSeqProvider modSeqProvider, Session session, CassandraTypesProvider typesProvider) { this.uidProvider = uidProvider; this.modSeqProvider = modSeqProvider; Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManager.java?rev=1712323=1712322=1712323=diff
svn commit: r1712325 [2/2] - in /james/project/trunk: protocols/ protocols/api/ protocols/api/src/main/java/org/apache/james/protocols/api/handler/ protocols/imap/src/main/java/org/apache/james/protoc
Modified: james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java?rev=1712325=1712324=1712325=diff == --- james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java (original) +++ james/project/trunk/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java Tue Nov 3 16:42:48 2015 @@ -27,6 +27,8 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.net.smtp.SMTPClient; import org.apache.commons.net.smtp.SMTPReply; import org.apache.james.protocols.api.Protocol; @@ -442,6 +444,16 @@ public abstract class AbstractSMTPServer public void testHeloHookPermanentError() throws Exception { HeloHook hook = new HeloHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doHelo(SMTPSession session, String helo) { return new HookResult(HookReturnCode.DENY); } @@ -481,6 +493,16 @@ public abstract class AbstractSMTPServer public void testHeloHookTempraryError() throws Exception { HeloHook hook = new HeloHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doHelo(SMTPSession session, String helo) { return new HookResult(HookReturnCode.DENYSOFT); } @@ -519,6 +541,16 @@ public abstract class AbstractSMTPServer public void testMailHookPermanentError() throws Exception { MailHook hook = new MailHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doMail(SMTPSession session, MailAddress sender) { return new HookResult(HookReturnCode.DENY); } @@ -560,6 +592,16 @@ public abstract class AbstractSMTPServer public void testMailHookTemporaryError() throws Exception { MailHook hook = new MailHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doMail(SMTPSession session, MailAddress sender) { return new HookResult(HookReturnCode.DENYSOFT); } @@ -602,6 +644,16 @@ public abstract class AbstractSMTPServer public void testRcptHookPermanentError() throws Exception { RcptHook hook = new RcptHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) { if (RCPT1.equals(rcpt.toString())) { return new HookResult(HookReturnCode.DENY); @@ -657,6 +709,16 @@ public abstract class AbstractSMTPServer public void testRcptHookTemporaryError() throws Exception { RcptHook hook = new RcptHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) { if (RCPT1.equals(rcpt.toString())) { return new HookResult(HookReturnCode.DENYSOFT); @@ -749,6 +811,16 @@ public abstract class AbstractSMTPServer MessageHook hook = new MessageHook() { +@Override +public void init(Configuration config) throws ConfigurationException { + +} + +@Override +public void destroy() { + +} + public HookResult onMessage(SMTPSession session, MailEnvelope mail) { return new HookResult(HookReturnCode.DENY); } @@ -803,7 +875,16 @@ public abstract class AbstractSMTPServer MessageHook hook = new MessageHook() { - +@Override +
svn commit: r1712325 [1/2] - in /james/project/trunk: protocols/ protocols/api/ protocols/api/src/main/java/org/apache/james/protocols/api/handler/ protocols/imap/src/main/java/org/apache/james/protoc
Author: matthieu Date: Tue Nov 3 16:42:48 2015 New Revision: 1712325 URL: http://svn.apache.org/viewvc?rev=1712325=rev Log: JAMES-1626 All ProtocolHandler should be lifeCycle aware If fixes a longstanding error in SMTPServerTest that return code 554 on DNS blacklist test Removed: james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/LifecycleAwareProtocolHandler.java james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/lifecycle/InitializingLifecycleAwareProtocolHandler.java Modified: james/project/trunk/protocols/api/pom.xml james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java james/project/trunk/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandler.java james/project/trunk/protocols/imap/src/main/java/org/apache/james/protocols/imap/core/IMAPCommandDispatcher.java james/project/trunk/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java james/project/trunk/protocols/pom.xml james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/CapaCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UnknownCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java james/project/trunk/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ExpnCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HelpCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/NoopCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/QuitCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RsetCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/VrfyCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/WelcomeMessageHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java james/project/trunk/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
svn commit: r1712326 - in /james/project/trunk: mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ serv
Author: matthieu Date: Tue Nov 3 16:45:35 2015 New Revision: 1712326 URL: http://svn.apache.org/viewvc?rev=1712326=rev Log: JAMES-1626 cleanup injection annotations to conform to javax.inject usage Removed unneeded @Named annotations, @Resource that doesn't belong to javax.inject and fix some injection usages that only work with Spring Modified: james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagement.java james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml james/project/trunk/server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java james/project/trunk/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java james/project/trunk/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java james/project/trunk/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListManagement.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java james/project/trunk/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java james/project/trunk/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java james/project/trunk/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java james/project/trunk/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java james/project/trunk/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractProtocolAsyncServer.java james/project/trunk/server/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java james/project/trunk/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java james/project/trunk/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java
svn commit: r1712329 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james: CassandraJamesServer.java utils/ConfigurationPerformer.java utils/ConfigurationsPerforme
Author: matthieu Date: Tue Nov 3 16:47:19 2015 New Revision: 1712329 URL: http://svn.apache.org/viewvc?rev=1712329=rev Log: JAMES-1626 ConfigurationPerformer will take care of push configuration to class that need it Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java - copied, changed from r1712328, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java - copied, changed from r1712328, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java?rev=1712329=1712328=1712329=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java Tue Nov 3 16:47:19 2015 @@ -18,7 +18,10 @@ / package org.apache.james; +import org.apache.james.utils.ConfigurationsPerformer; + import com.google.inject.Guice; +import com.google.inject.Injector; import com.google.inject.Module; public class CassandraJamesServer { @@ -29,8 +32,9 @@ public class CassandraJamesServer { this.serverModule = serverModule; } -public void start() { -Guice.createInjector(serverModule); +public void start() throws Exception { +Injector injector = Guice.createInjector(serverModule); +injector.getInstance(ConfigurationsPerformer.class).initModules(); } public void stop() { Copied: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java (from r1712328, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java) URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java=1712328=1712329=1712329=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationPerformer.java Tue Nov 3 16:47:19 2015 @@ -16,24 +16,12 @@ * specific language governing permissions and limitations * * under the License. * / -package org.apache.james; -import com.google.inject.Guice; -import com.google.inject.Module; +package org.apache.james.utils; -public class CassandraJamesServer { -private final Module serverModule; +public interface ConfigurationPerformer { -public CassandraJamesServer(Module serverModule) { -this.serverModule = serverModule; -} - -public void start() { -Guice.createInjector(serverModule); -} - -public void stop() { -} +void initModule() throws Exception; } Copied: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java (from r1712328, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java) URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java=1712328=1712329=1712329=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java (original) +++
svn commit: r1712327 - in /james/project/trunk/server: container/cassandra-guice/ container/cassandra-guice/pom.xml pom.xml
Author: matthieu Date: Tue Nov 3 16:46:28 2015 New Revision: 1712327 URL: http://svn.apache.org/viewvc?rev=1712327=rev Log: JAMES-1626 cassandra-guice project creation Added: james/project/trunk/server/container/cassandra-guice/ james/project/trunk/server/container/cassandra-guice/pom.xml Modified: james/project/trunk/server/pom.xml Added: james/project/trunk/server/container/cassandra-guice/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712327=auto == --- james/project/trunk/server/container/cassandra-guice/pom.xml (added) +++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov 3 16:46:28 2015 @@ -0,0 +1,410 @@ + + +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd;> + +4.0.0 + + +org.apache.james +james-server +3.0.0-beta5-SNAPSHOT +../../pom.xml + + +james-server-cassandra-guice +bundle + +Apache James :: Server :: Cassandra - guice injection +An advanced email server - Cassandra backend with guice injection + + + + +org.apache.felix +maven-bundle-plugin +true + + + + + + + +disable-build-for-older-jdk + +(,1.8) + + + + +maven-jar-plugin + + +default-jar +none + + +jar +none + + +test-jar +none + + + + +maven-compiler-plugin + + +default-compile +none + + +default-testCompile +none + + + + +maven-surefire-plugin + + +default-test +none + + + + +maven-source-plugin + + +attach-sources +none + + + + +maven-install-plugin + + +default-install +none + + + + +maven-resources-plugin + + +default-resources +none + + +default-testResources +none + + + + +maven-site-plugin + + +attach-descriptor +none + + + + + + + +build-for-jdk-8 + +[1.8,) + + + + +maven-assembly-plugin + + + + fully.qualified.MainClass + + + + jar-with-dependencies + + + + +org.apache.maven.plugins +maven-compiler-plugin + +1.8 +
svn commit: r1712328 - in /james/project/trunk: backends-common/ backends-common/cassandra/ backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/ server/ server/container/c
Author: matthieu Date: Tue Nov 3 16:46:53 2015 New Revision: 1712328 URL: http://svn.apache.org/viewvc?rev=1712328=rev Log: JAMES-1626 bootstrap guice-based application with Cassandra IMAP server Added: james/project/trunk/server/container/cassandra-guice/src/ james/project/trunk/server/container/cassandra-guice/src/main/ james/project/trunk/server/container/cassandra-guice/src/main/java/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java - copied, changed from r1712327, james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java - copied, changed from r1712327, james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java - copied, changed from r1712327, james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SimpleMessageSearchModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/PropertiesReader.java james/project/trunk/server/container/cassandra-guice/src/test/ james/project/trunk/server/container/cassandra-guice/src/test/java/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/PropertiesReadTest.java james/project/trunk/server/container/cassandra-guice/src/test/resources/ james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties james/project/trunk/server/container/cassandra-guice/src/test/resources/test.properties Modified: james/project/trunk/backends-common/cassandra/pom.xml james/project/trunk/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java james/project/trunk/backends-common/pom.xml james/project/trunk/server/container/cassandra-guice/pom.xml james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java james/project/trunk/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java james/project/trunk/server/pom.xml Modified: james/project/trunk/backends-common/cassandra/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/pom.xml?rev=1712328=1712327=1712328=diff == ---
svn commit: r1712330 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/modules/server/ protocols/prot
Author: matthieu Date: Tue Nov 3 16:47:33 2015 New Revision: 1712330 URL: http://svn.apache.org/viewvc?rev=1712330=rev Log: JAMES-1626 Use Onami for lifecycle management (JSR 250 @PreDestroy @PostConstruct) Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java james/project/trunk/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java?rev=1712330=1712329=1712330=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServer.java Tue Nov 3 16:47:33 2015 @@ -19,25 +19,30 @@ package org.apache.james; import org.apache.james.utils.ConfigurationsPerformer; +import org.apache.onami.lifecycle.jsr250.PreDestroyModule; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Module; +import com.google.inject.util.Modules; public class CassandraJamesServer { private final Module serverModule; +private final PreDestroyModule preDestroyModule; public CassandraJamesServer(Module serverModule) { this.serverModule = serverModule; +this.preDestroyModule = new PreDestroyModule(); } public void start() throws Exception { -Injector injector = Guice.createInjector(serverModule); +Injector injector = Guice.createInjector(Modules.combine(serverModule, preDestroyModule)); injector.getInstance(ConfigurationsPerformer.class).initModules(); } public void stop() { +preDestroyModule.getStager().stage(); } } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712330=1712329=1712330=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:47:33 2015 @@ -24,6 +24,7 @@ import org.apache.james.modules.data.Cas import org.apache.james.modules.data.CassandraUsersRepositoryModule; import org.apache.james.modules.mailbox.CassandraMailboxModule; import org.apache.james.modules.mailbox.CassandraSessionModule; +import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.SimpleMessageSearchModule; @@ -32,13 +33,15 @@ import com.google.inject.util.Modules; public class CassandraJamesServerMain { -public static final Module defaultModule = Modules.combine(new CassandraMailboxModule(), -new CassandraSessionModule(), -new SimpleMessageSearchModule(), -new CassandraUsersRepositoryModule(), -new CassandraDomainListModule(), -new CassandraRecipientRewriteTableModule(), -new DNSServiceModule()); +public static final Module defaultModule = Modules.combine( +new CassandraMailboxModule(), +new ConfigurationPerformerModule(), +new CassandraSessionModule(), +new SimpleMessageSearchModule(), +new CassandraUsersRepositoryModule(), +new CassandraDomainListModule(), +new CassandraRecipientRewriteTableModule(), +new DNSServiceModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(defaultModule); Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationPerformerModule.java?rev=1712330=auto
svn commit: r1712332 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james: CassandraJamesServerMain.java modules/server/ActiveMQQueueModule.java modules/server/Emb
Author: matthieu Date: Tue Nov 3 16:48:15 2015 New Revision: 1712332 URL: http://svn.apache.org/viewvc?rev=1712332=rev Log: JAMES-1626 Add ActiveMQ support to cassandra-guice application Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/EmbeddedActiveMQ.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712332=1712331=1712332=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:48:15 2015 @@ -25,6 +25,7 @@ import org.apache.james.modules.data.Cas import org.apache.james.modules.mailbox.CassandraMailboxModule; import org.apache.james.modules.mailbox.CassandraSessionModule; import org.apache.james.modules.mailbox.ElasticSearchMailboxModule; +import org.apache.james.modules.server.ActiveMQQueueModule; import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; @@ -41,7 +42,8 @@ public class CassandraJamesServerMain { new CassandraUsersRepositoryModule(), new CassandraDomainListModule(), new CassandraRecipientRewriteTableModule(), -new DNSServiceModule()); +new DNSServiceModule(), +new ActiveMQQueueModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(defaultModule); Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java?rev=1712332=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java Tue Nov 3 16:48:15 2015 @@ -0,0 +1,57 @@ +/ + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information* + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the* + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the* + * specific language governing permissions and limitations * + * under the License. * + / + +package org.apache.james.modules.server; + +import com.google.inject.AbstractModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import org.apache.james.queue.activemq.ActiveMQMailQueueFactory; +import org.apache.james.queue.api.MailQueueFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.jms.ConnectionFactory; + +public class ActiveMQQueueModule extends AbstractModule { + +private static Logger LOGGER = LoggerFactory.getLogger(ActiveMQQueueModule.class); + +@Override +protected void configure() { + +} + +@Provides +@Singleton +ConnectionFactory provideEmbededActiveMQ(EmbeddedActiveMQ embeddedActiveMQ) { +return embeddedActiveMQ.getConnectionFactory(); +} + +@Provides +@Singleton +public MailQueueFactory createActiveMailQueueFactory(ConnectionFactory connectionFactory, ActiveMQMailQueueFactory
svn commit: r1712331 - in /james/project/trunk/server: ./ container/cassandra-guice/ container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/
Author: matthieu Date: Tue Nov 3 16:47:57 2015 New Revision: 1712331 URL: http://svn.apache.org/viewvc?rev=1712331=rev Log: JAMES-1626 Add ElasticSearch support to cassandra-guice application Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/TestElasticSearchModule.java james/project/trunk/server/container/cassandra-guice/src/test/resources/elasticsearch.properties Modified: james/project/trunk/server/container/cassandra-guice/pom.xml james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java james/project/trunk/server/pom.xml Modified: james/project/trunk/server/container/cassandra-guice/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712331=1712330=1712331=diff == --- james/project/trunk/server/container/cassandra-guice/pom.xml (original) +++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov 3 16:47:57 2015 @@ -188,6 +188,12 @@ ${project.groupId} +apache-james-mailbox-elasticsearch +test-jar +test + + +${project.groupId} apache-james-mailbox-tika Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712331=1712330=1712331=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:47:57 2015 @@ -24,9 +24,9 @@ import org.apache.james.modules.data.Cas import org.apache.james.modules.data.CassandraUsersRepositoryModule; import org.apache.james.modules.mailbox.CassandraMailboxModule; import org.apache.james.modules.mailbox.CassandraSessionModule; +import org.apache.james.modules.mailbox.ElasticSearchMailboxModule; import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; -import org.apache.james.modules.server.SimpleMessageSearchModule; import com.google.inject.Module; import com.google.inject.util.Modules; @@ -37,7 +37,7 @@ public class CassandraJamesServerMain { new CassandraMailboxModule(), new ConfigurationPerformerModule(), new CassandraSessionModule(), -new SimpleMessageSearchModule(), +new ElasticSearchMailboxModule(), new CassandraUsersRepositoryModule(), new CassandraDomainListModule(), new CassandraRecipientRewriteTableModule(), Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java?rev=1712331=1712330=1712331=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java Tue Nov 3 16:47:57 2015 @@ -31,12 +31,14 @@ import org.apache.james.mailbox.cassandr import org.apache.james.mailbox.cassandra.CassandraSubscriptionManager; import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider; import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider; +import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.NoMailboxPathLocker; import
svn commit: r1712333 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/utils/ClassPathConfigurationProvider.java test/java/org/apache/james/utils/ClassPathConf
Author: matthieu Date: Tue Nov 3 16:48:26 2015 New Revision: 1712333 URL: http://svn.apache.org/viewvc?rev=1712333=rev Log: JAMES-1626 Implement an HierarchicalConfiguration reader for guice use Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java james/project/trunk/server/container/cassandra-guice/src/test/resources/test.xml Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java?rev=1712333=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java Tue Nov 3 16:48:26 2015 @@ -0,0 +1,69 @@ +/ + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information* + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the* + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the* + * specific language governing permissions and limitations * + * under the License. * + / + +package org.apache.james.utils; + +import java.io.InputStream; +import java.util.List; +import java.util.Optional; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.configuration.XMLConfiguration; + +import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; +import com.google.common.base.Strings; +import com.google.common.collect.Iterables; + +public class ClassPathConfigurationProvider { + +private static final String CONFIGURATION_FILE_SUFFIX = ".xml"; + +public HierarchicalConfiguration getConfiguration(String component) throws ConfigurationException { +Preconditions.checkNotNull(component); +List configPathParts = Splitter.on(".").splitToList(component); +Preconditions.checkArgument(!configPathParts.isEmpty()); +HierarchicalConfiguration config = getConfig(retrieveConfigInputStream(configPathParts.get(0))); +return selectHierarchicalConfigPart(config, Iterables.skip(configPathParts, 1)); +} + +private InputStream retrieveConfigInputStream(String configurationFileWithoutExtension) throws ConfigurationException { + Preconditions.checkArgument(!Strings.isNullOrEmpty(configurationFileWithoutExtension), "The configuration file name should not be empty or null"); +return Optional.ofNullable(ClassLoader.getSystemResourceAsStream(configurationFileWithoutExtension + CONFIGURATION_FILE_SUFFIX)) +.orElseThrow(() -> new ConfigurationException("Unable to locate configuration file " + configurationFileWithoutExtension + CONFIGURATION_FILE_SUFFIX)); +} + +private XMLConfiguration getConfig(InputStream configStream) throws ConfigurationException { +XMLConfiguration config = new XMLConfiguration(); +config.setDelimiterParsingDisabled(true); +config.setAttributeSplittingDisabled(true); +config.load(configStream); +return config; +} + +private HierarchicalConfiguration selectHierarchicalConfigPart(HierarchicalConfiguration config, Iterable configsPathParts) { +HierarchicalConfiguration currentConfig = config; +for (String nextPathPart : configsPathParts) { +currentConfig = currentConfig.configurationAt(nextPathPart); +} +return currentConfig; +} + +} Added:
svn commit: r1712334 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/ cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ cassandra-guice/src/mai
Author: matthieu Date: Tue Nov 3 16:48:56 2015 New Revision: 1712334 URL: http://svn.apache.org/viewvc?rev=1712334=rev Log: JAMES-1626 support IMAP, SMTP, POP and LMTP protocols in cassandra-guice application Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/ProtocolHandlerModule.java - copied, changed from r1712333, james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java - copied, changed from r1712333, james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/QuotaModule.java - copied, changed from r1712333, james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java james/project/trunk/server/container/cassandra-guice/src/test/resources/imapserver.xml james/project/trunk/server/container/cassandra-guice/src/test/resources/lmtpserver.xml james/project/trunk/server/container/cassandra-guice/src/test/resources/pop3server.xml james/project/trunk/server/container/cassandra-guice/src/test/resources/smtpserver.xml Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712334=1712333=1712334=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:48:56 2015 @@ -25,9 +25,16 @@ import org.apache.james.modules.data.Cas import org.apache.james.modules.mailbox.CassandraMailboxModule; import org.apache.james.modules.mailbox.CassandraSessionModule; import org.apache.james.modules.mailbox.ElasticSearchMailboxModule; +import org.apache.james.modules.protocols.IMAPServerModule; +import org.apache.james.modules.protocols.LMTPServerModule; +import org.apache.james.modules.protocols.POP3ServerModule; +import org.apache.james.modules.protocols.ProtocolHandlerModule; +import org.apache.james.modules.protocols.SMTPServerModule; import org.apache.james.modules.server.ActiveMQQueueModule; import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; +import org.apache.james.modules.server.FileSystemModule; +import org.apache.james.modules.server.QuotaModule; import com.google.inject.Module; import com.google.inject.util.Modules; @@ -43,7 +50,14 @@ public class CassandraJamesServerMain { new CassandraDomainListModule(), new CassandraRecipientRewriteTableModule(), new DNSServiceModule(), -new ActiveMQQueueModule()); +new IMAPServerModule(), +new ProtocolHandlerModule(), +new POP3ServerModule(), +new SMTPServerModule(), +new LMTPServerModule(), +new ActiveMQQueueModule(), +new QuotaModule(), +new FileSystemModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(defaultModule); Modified:
svn commit: r1712335 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/utils/ mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/
Author: matthieu Date: Tue Nov 3 16:49:19 2015 New Revision: 1712335 URL: http://svn.apache.org/viewvc?rev=1712335=rev Log: JAMES-1626 Implement a guice MailboxManagerResolver Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java - copied, changed from r1712334, james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java Modified: james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java?rev=1712335=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java Tue Nov 3 16:49:19 2015 @@ -0,0 +1,59 @@ +/ + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information* + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the* + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the* + * specific language governing permissions and limitations * + * under the License. * + / + +package org.apache.james.utils; + +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import org.apache.james.adapter.mailbox.MailboxManagerResolver; +import org.apache.james.adapter.mailbox.MailboxManagerResolverException; +import org.apache.james.mailbox.MailboxManager; + +import com.google.common.collect.ImmutableMap; +import com.google.inject.Inject; + +public class GuiceMailboxManagerResolver implements MailboxManagerResolver { + +private ImmutableMapmanagers; + +@Inject +private GuiceMailboxManagerResolver(Set managers) { +this.managers = indexManagersByName(managers); +} + +private static ImmutableMap indexManagersByName(Set managers) { +return ImmutableMap.copyOf(managers.stream().collect( +Collectors.toMap(MailboxManagerDefinition::getName, MailboxManagerDefinition::getManager))); +} + +@Override +public Map getMailboxManagerBeans() { +return managers; +} + +@Override +public MailboxManager resolveMailboxManager(String mailboxManagerClassName) { +return Optional.ofNullable(managers.get(mailboxManagerClassName)).orElseThrow( +() -> new MailboxManagerResolverException("Unable to find a mailbox manager with name " + mailboxManagerClassName)); +} + +} Copied: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java (from r1712334, james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java) URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java=james/project/trunk/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java=1712334=1712335=1712335=diff == ---
svn commit: r1712338 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/ container/cassandra-guice/src/main/java/org/apache/james/modules/server/ container/cass
Author: matthieu Date: Tue Nov 3 16:50:17 2015 New Revision: 1712338 URL: http://svn.apache.org/viewvc?rev=1712338=rev Log: JAMES-1626 Add mailet support in cassandra-guice module Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/SieveModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceGenericLoader.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMailetLoader.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java james/project/trunk/server/container/cassandra-guice/src/test/resources/mailetcontainer.xml Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java james/project/trunk/server/data/data-hbase/src/main/java/org/apache/james/system/hbase/TablePool.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712338=1712337=1712338=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:50:17 2015 @@ -31,12 +31,14 @@ import org.apache.james.modules.protocol import org.apache.james.modules.protocols.ProtocolHandlerModule; import org.apache.james.modules.protocols.SMTPServerModule; import org.apache.james.modules.server.ActiveMQQueueModule; +import org.apache.james.modules.server.CamelMailetContainerModule; import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.FileSystemModule; import org.apache.james.modules.server.JMXServerModule; import org.apache.james.modules.server.MailStoreRepositoryModule; import org.apache.james.modules.server.QuotaModule; +import org.apache.james.modules.server.SieveModule; import com.google.inject.Module; import com.google.inject.util.Modules; @@ -58,9 +60,11 @@ public class CassandraJamesServerMain { new SMTPServerModule(), new LMTPServerModule(), new ActiveMQQueueModule(), -new QuotaModule(), new FileSystemModule(), -new MailStoreRepositoryModule()); +new SieveModule(), +new MailStoreRepositoryModule(), +new CamelMailetContainerModule(), +new QuotaModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(Modules.combine( Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java?rev=1712338=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java Tue Nov 3 16:50:17 2015 @@ -0,0 +1,107 @@ +/ + * 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,
svn commit: r1712337 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/ main/java/org/apache/james/modules/server/ main/java/org/apache/james/utils/ test/java/
Author: matthieu Date: Tue Nov 3 16:49:53 2015 New Revision: 1712337 URL: http://svn.apache.org/viewvc?rev=1712337=rev Log: JAMES-1626 Implement an InMemory MailRepository Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/MailRepositoryProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java james/project/trunk/server/container/cassandra-guice/src/test/resources/fakemailrepositorystore.xml james/project/trunk/server/container/cassandra-guice/src/test/resources/mailrepositorystore.xml Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712337=1712336=1712337=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:49:53 2015 @@ -35,6 +35,7 @@ import org.apache.james.modules.server.C import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.FileSystemModule; import org.apache.james.modules.server.JMXServerModule; +import org.apache.james.modules.server.MailStoreRepositoryModule; import org.apache.james.modules.server.QuotaModule; import com.google.inject.Module; @@ -58,7 +59,8 @@ public class CassandraJamesServerMain { new LMTPServerModule(), new ActiveMQQueueModule(), new QuotaModule(), -new FileSystemModule()); +new FileSystemModule(), +new MailStoreRepositoryModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(Modules.combine( Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java?rev=1712337=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java Tue Nov 3 16:49:53 2015 @@ -0,0 +1,87 @@ +/ + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information* + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the* + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the* + * specific language governing permissions and limitations * + * under the License. * + / + +package org.apache.james.modules.server; + +import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; +import org.apache.james.filesystem.api.FileSystem; +import org.apache.james.mailrepository.api.MailRepository; +import org.apache.james.mailrepository.api.MailRepositoryStore; +import org.apache.james.mailrepository.file.FileMailRepository; +import org.apache.james.utils.ClassPathConfigurationProvider; +import
svn commit: r1712336 - in /james/project/trunk/server/container: cassandra-guice/src/main/java/org/apache/james/ cassandra-guice/src/main/java/org/apache/james/modules/server/ cassandra-guice/src/test
Author: matthieu Date: Tue Nov 3 16:49:32 2015 New Revision: 1712336 URL: http://svn.apache.org/viewvc?rev=1712336=rev Log: JAMES-1626 Add JMX support to cassandra-guice application Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServerModule.java james/project/trunk/server/container/cassandra-guice/src/test/resources/jmx.properties Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxServerProbe.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712336=1712335=1712336=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:49:32 2015 @@ -34,6 +34,7 @@ import org.apache.james.modules.server.A import org.apache.james.modules.server.ConfigurationPerformerModule; import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.FileSystemModule; +import org.apache.james.modules.server.JMXServerModule; import org.apache.james.modules.server.QuotaModule; import com.google.inject.Module; @@ -60,7 +61,9 @@ public class CassandraJamesServerMain { new FileSystemModule()); public static void main(String[] args) throws Exception { -CassandraJamesServer server = new CassandraJamesServer(defaultModule); +CassandraJamesServer server = new CassandraJamesServer(Modules.combine( +defaultModule, +new JMXServerModule())); server.start(); } Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java?rev=1712336=auto == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java Tue Nov 3 16:49:32 2015 @@ -0,0 +1,118 @@ +/ + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information* + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the* + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the* + * specific language governing permissions and limitations * + * under the License. * + / + +package org.apache.james.modules.server; + +import com.google.common.base.Throwables; +import com.google.common.collect.ImmutableMap; +import org.apache.james.util.RestrictingRMISocketFactory; +import org.apache.james.utils.PropertiesReader; + +import javax.annotation.PreDestroy; +import javax.management.MBeanServer; +import javax.management.ObjectName; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.rmi.registry.LocateRegistry; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class JMXServer { + +private final Set registeredKeys; +private final Object lock; +private JMXConnectorServer jmxConnectorServer; +private boolean
svn commit: r1712339 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/modules/server/ container/cassandra-guice/src/test/resources/ dns-service/dnsservice-dns
Author: matthieu Date: Tue Nov 3 16:50:38 2015 New Revision: 1712339 URL: http://svn.apache.org/viewvc?rev=1712339=rev Log: JAMES-1626 Add DNSService support in cassandra-guice application Added: james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java?rev=1712339=1712338=1712339=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java Tue Nov 3 16:50:38 2015 @@ -18,23 +18,45 @@ / package org.apache.james.modules.server; -import com.google.inject.Provides; +import com.google.inject.Inject; import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; import org.apache.james.dnsservice.api.DNSService; import org.apache.james.dnsservice.dnsjava.DNSJavaService; import com.google.inject.AbstractModule; +import org.apache.james.utils.ClassPathConfigurationProvider; +import org.apache.james.utils.ConfigurationPerformer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DNSServiceModule extends AbstractModule { +private static final Logger LOGGER = LoggerFactory.getLogger(DNSServiceModule.class); + @Override protected void configure() { - +bind(DNSService.class).to(DNSJavaService.class); +Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(DNSServiceConfigurationPerformer.class); } -@Provides @Singleton -private DNSService provideDNSService() { -return new DNSJavaService(); +public static class DNSServiceConfigurationPerformer implements ConfigurationPerformer { + +private final ClassPathConfigurationProvider classPathConfigurationProvider; +private final DNSJavaService dnsService; + +@Inject +public DNSServiceConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, +DNSJavaService dnsService) { +this.classPathConfigurationProvider = classPathConfigurationProvider; +this.dnsService = dnsService; +} + +public void initModule() throws Exception { +dnsService.setLog(LOGGER); + dnsService.configure(classPathConfigurationProvider.getConfiguration("dnsservice")); +dnsService.init(); +} } } \ No newline at end of file Added: james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml?rev=1712339=auto == --- james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml (added) +++ james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml Tue Nov 3 16:50:38 2015 @@ -0,0 +1,29 @@ + + + + + +8.8.8.8 +62.210.16.6 + + false + false + 5 + Modified: james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml?rev=1712339=1712338=1712339=diff == --- james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml (original) +++ james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml Tue Nov 3 16:50:38 2015 @@ -60,6 +60,10 @@ dnsjava +javax.inject +javax.inject + + org.apache.geronimo.specs geronimo-annotation_1.1_spec Modified: james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java?rev=1712339=1712338=1712339=diff
svn commit: r1712340 - in /james/project/trunk/server/container/cassandra-guice/src: main/java/org/apache/james/ main/java/org/apache/james/modules/protocols/ main/java/org/apache/james/modules/server
Author: matthieu Date: Tue Nov 3 16:50:52 2015 New Revision: 1712340 URL: http://svn.apache.org/viewvc?rev=1712340=rev Log: JAMES-1626 Add interface ConfigurationProvider to allow multiple implementations Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java - copied, changed from r1712339, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java - copied, changed from r1712339, james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java Removed: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712340=1712339=1712340=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:50:52 2015 @@ -33,6 +33,7 @@ import org.apache.james.modules.protocol import org.apache.james.modules.server.ActiveMQQueueModule; import org.apache.james.modules.server.CamelMailetContainerModule; import org.apache.james.modules.server.ConfigurationPerformerModule; +import org.apache.james.modules.server.ConfigurationProviderModule; import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.FileSystemModule; import org.apache.james.modules.server.JMXServerModule; @@ -64,7 +65,8 @@ public class CassandraJamesServerMain { new SieveModule(), new MailStoreRepositoryModule(), new CamelMailetContainerModule(), -new QuotaModule()); +new QuotaModule(), +new ConfigurationProviderModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(Modules.combine( Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java?rev=1712340=1712339=1712340=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java Tue Nov 3 16:50:52 2015 @@ -18,11 +18,6 @@ / package org.apache.james.modules.protocols; -import com.google.inject.Inject;
svn commit: r1712341 - /james/project/trunk/server/container/cassandra-guice/pom.xml
Author: matthieu Date: Tue Nov 3 16:51:06 2015 New Revision: 1712341 URL: http://svn.apache.org/viewvc?rev=1712341=rev Log: JAMES-1626 Implement a packaging policy for the cassandra-guice application Modified: james/project/trunk/server/container/cassandra-guice/pom.xml Modified: james/project/trunk/server/container/cassandra-guice/pom.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/pom.xml?rev=1712341=1712340=1712341=diff == --- james/project/trunk/server/container/cassandra-guice/pom.xml (original) +++ james/project/trunk/server/container/cassandra-guice/pom.xml Tue Nov 3 16:51:06 2015 @@ -30,7 +30,7 @@ james-server-cassandra-guice -bundle +jar Apache James :: Server :: Cassandra - guice injection An advanced email server - Cassandra backend with guice injection @@ -45,7 +45,6 @@ - disable-build-for-older-jdk @@ -144,17 +143,34 @@ -maven-assembly-plugin - - - - fully.qualified.MainClass - - - - jar-with-dependencies - - + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + package + +copy-dependencies + + + ${project.build.directory}/${project.build.finalName}.lib + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + +true + ${project.build.finalName}.lib/ + org.apache.james.CassandraJamesServerMain +false + + + org.apache.maven.plugins - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712342 - in /james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox: CassandraSessionModule.java ElasticSearchMailboxModule.java
Author: matthieu Date: Tue Nov 3 16:51:16 2015 New Revision: 1712342 URL: http://svn.apache.org/viewvc?rev=1712342=rev Log: JAMES-1626 use Filesystem to resolve configuration properties files Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java?rev=1712342=1712341=1712342=diff == --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java Tue Nov 3 16:51:16 2015 @@ -18,35 +18,28 @@ / package org.apache.james.modules.mailbox; -import com.google.inject.Provides; -import com.google.inject.Singleton; - -import com.datastax.driver.core.Cluster; -import com.datastax.driver.core.Session; -import com.google.inject.AbstractModule; - +import java.io.FileNotFoundException; import java.util.Set; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.CassandraModuleComposite; import org.apache.james.backends.cassandra.init.ClusterFactory; import org.apache.james.backends.cassandra.init.ClusterWithKeyspaceCreatedFactory; import org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory; -import org.apache.james.utils.PropertiesReader; +import org.apache.james.filesystem.api.FileSystem; -public class CassandraSessionModule extends AbstractModule { - -private final PropertiesReader propertiesReader; -private final String keyspace; +import com.datastax.driver.core.Cluster; +import com.datastax.driver.core.Session; +import com.google.inject.AbstractModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; -public CassandraSessionModule() { -propertiesReader = new PropertiesReader("cassandra.properties"); -keyspace = propertiesReader.getProperty("cassandra.keyspace"); -} +public class CassandraSessionModule extends AbstractModule { @Override protected void configure() { - } @Provides @@ -57,19 +50,28 @@ public class CassandraSessionModule exte @Provides @Singleton -Session provideSession(Cluster cluster, CassandraModule cassandraModule) { +Session provideSession(FileSystem fileSystem, Cluster cluster, CassandraModule cassandraModule) +throws FileNotFoundException, ConfigurationException{ +PropertiesConfiguration configuration = getConfiguration(fileSystem); +String keyspace = configuration.getString("cassandra.keyspace"); return new SessionWithInitializedTablesFactory(cassandraModule).createSession(cluster, keyspace); } @Provides @Singleton -Cluster provideCluster() { +Cluster provideCluster(FileSystem fileSystem) throws FileNotFoundException, ConfigurationException { +PropertiesConfiguration configuration = getConfiguration(fileSystem); + return ClusterWithKeyspaceCreatedFactory.clusterWithInitializedKeyspace( ClusterFactory.createClusterForSingleServerWithoutPassWord( -propertiesReader.getProperty("cassandra.ip"), - Integer.parseInt(propertiesReader.getProperty("cassandra.port"))), -keyspace, - Integer.parseInt(propertiesReader.getProperty("cassandra.replication.factor"))); +configuration.getString("cassandra.ip"), +configuration.getInt("cassandra.port")), +configuration.getString("cassandra.keyspace"), +configuration.getInt("cassandra.replication.factor")); } +private PropertiesConfiguration getConfiguration(FileSystem fileSystem) throws FileNotFoundException, ConfigurationException { +return new PropertiesConfiguration(fileSystem.getFile("cassandra.properties")); +} + } \ No newline at end of file Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java URL:
svn commit: r1712343 - /james/project/trunk/server/src/site/xdoc/index.xml
Author: matthieu Date: Tue Nov 3 16:51:22 2015 New Revision: 1712343 URL: http://svn.apache.org/viewvc?rev=1712343=rev Log: JAMES-1626 Fix a typo on the site in the server index file Modified: james/project/trunk/server/src/site/xdoc/index.xml Modified: james/project/trunk/server/src/site/xdoc/index.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/index.xml?rev=1712343=1712342=1712343=diff == --- james/project/trunk/server/src/site/xdoc/index.xml (original) +++ james/project/trunk/server/src/site/xdoc/index.xml Tue Nov 3 16:51:22 2015 @@ -118,7 +118,7 @@ - + Configure the stores,... via the well-known Spring framework - read more. - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
svn commit: r1712345 - in /james/project/trunk/server/container/cassandra-guice: ./ sample-configuration/
Author: matthieu Date: Tue Nov 3 16:51:53 2015 New Revision: 1712345 URL: http://svn.apache.org/viewvc?rev=1712345=rev Log: JAMES-1626 sample configuration and readme Added: james/project/trunk/server/container/cassandra-guice/README.adoc james/project/trunk/server/container/cassandra-guice/sample-configuration/ james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/elasticsearch.properties james/project/trunk/server/container/cassandra-guice/sample-configuration/imapserver.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/jcr-repository.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/jmx.properties james/project/trunk/server/container/cassandra-guice/sample-configuration/lmtpserver.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/mailetcontainer.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/mailrepositorystore.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/pop3server.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/recipientrewritetable.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/smtpserver.xml james/project/trunk/server/container/cassandra-guice/sample-configuration/usersrepository.xml Added: james/project/trunk/server/container/cassandra-guice/README.adoc URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/README.adoc?rev=1712345=auto == --- james/project/trunk/server/container/cassandra-guice/README.adoc (added) +++ james/project/trunk/server/container/cassandra-guice/README.adoc Tue Nov 3 16:51:53 2015 @@ -0,0 +1,45 @@ += Guice-Cassandra Module How-to + +== Building + +=== Requirements + + * Java 8 SDK + * Docker + * Maven + +=== Building the artifacts + +An usual compilation using maven will produce two artifacts into target directory : + + * james-server-cassandra-guice-${version}.jar + * james-server-cassandra-guice-${version}.lib + +== Running + +=== Requirements + + * Cassandra + * ElasticSearch 1.5.2 + +=== James Launch + +To run james, you have to create a directory containing required configuration files. + +A sample directory (appropriately named sample-directory) is provided with some +default value you may need to replace. + +You also need to generate a keystore with the following command : +[source] + +$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore + + +You need to have a Cassandra and an ElasticSearch instance running. + +Once everything is set up, you just have to run the jar with : + +[source] + +$ java -Dworking.directory=sample-configuration -jar target/james-server-cassandra-guice-${version}.jar + Added: james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties?rev=1712345=auto == --- james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties (added) +++ james/project/trunk/server/container/cassandra-guice/sample-configuration/cassandra.properties Tue Nov 3 16:51:53 2015 @@ -0,0 +1,6 @@ +# Configuration file for cassandra mailbox + +cassandra.ip=172.17.0.2 +cassandra.port=9042 +cassandra.keyspace=apache_james +cassandra.replication.factor=1 \ No newline at end of file Added: james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml?rev=1712345=auto == --- james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml (added) +++ james/project/trunk/server/container/cassandra-guice/sample-configuration/dnsservice.xml Tue Nov 3 16:51:53 2015 @@ -0,0 +1,29 @@ + + + + + +8.8.8.8 +62.210.16.6 + + false + false + 5 + Added: james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/sample-configuration/domainlist.xml?rev=1712345=auto == ---
svn commit: r1712346 - in /james/project/trunk: backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/ server/container/cassandra-guice/src/main/java/org/apache/james/ server/con
Author: matthieu Date: Tue Nov 3 16:52:28 2015 New Revision: 1712346 URL: http://svn.apache.org/viewvc?rev=1712346=rev Log: JAMES-1626 use FileSystem to find configuration files Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/CommonServicesModule.java - copied, changed from r1712345, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/modules/TestFilesystemModule.java - copied, changed from r1712345, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java Removed: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/FileSystemModule.java james/project/trunk/server/container/cassandra-guice/src/test/resources/cassandra.properties james/project/trunk/server/container/cassandra-guice/src/test/resources/elasticsearch.properties james/project/trunk/server/container/cassandra-guice/src/test/resources/jmx.properties Modified: james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/ProtocolHandlerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/JMXServer.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java james/project/trunk/server/container/core/src/main/java/org/apache/james/core/JamesServerResourceLoader.java james/project/trunk/server/container/core/src/main/java/org/apache/james/core/filesystem/FileSystemImpl.java james/project/trunk/server/container/core/src/test/java/org/apache/james/core/filesystem/FileSystemImplTest.java james/project/trunk/server/container/spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java james/project/trunk/server/container/spring/src/test/java/org/apache/james/container/spring/filesystem/FileSystemImplTest.java Modified: james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java URL: http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java?rev=1712346=1712345=1712346=diff == --- james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java (original) +++ james/project/trunk/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java Tue Nov 3 16:52:28 2015 @@ -77,9 +77,8 @@ public final class CassandraCluster { private Optional tryInitializeSession() { try { -Cluster cluster = ClusterFactory.createClusterForSingleServerWithoutPassWord(CLUSTER_IP, CLUSTER_PORT_TEST); Cluster clusterWithInitializedKeyspace = ClusterWithKeyspaceCreatedFactory -.clusterWithInitializedKeyspace(cluster, KEYSPACE_NAME, REPLICATION_FACTOR); +.clusterWithInitializedKeyspace(getCluster(), KEYSPACE_NAME, REPLICATION_FACTOR); return Optional.of(new SessionWithInitializedTablesFactory(module).createSession(clusterWithInitializedKeyspace, KEYSPACE_NAME)); } catch (NoHostAvailableException exception) { sleep(SLEEP_BEFORE_RETRY); @@ -87,6 +86,10 @@ public final class CassandraCluster { } } +public Cluster getCluster() { +return ClusterFactory.createClusterForSingleServerWithoutPassWord(CLUSTER_IP, CLUSTER_PORT_TEST); +} + private void sleep(long sleepMs) { try { Thread.sleep(sleepMs); Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL:
svn commit: r1712344 - in /james/project/trunk/server/src/site/xdoc: config-cassandra.xml config-elasticsearch.xml config-guice.xml index.xml quick-start-cassandra.xml
Author: matthieu Date: Tue Nov 3 16:51:30 2015 New Revision: 1712344 URL: http://svn.apache.org/viewvc?rev=1712344=rev Log: JAMES-1626 Add configuration documentation Added: james/project/trunk/server/src/site/xdoc/config-cassandra.xml james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml james/project/trunk/server/src/site/xdoc/config-guice.xml james/project/trunk/server/src/site/xdoc/quick-start-cassandra.xml Modified: james/project/trunk/server/src/site/xdoc/index.xml Added: james/project/trunk/server/src/site/xdoc/config-cassandra.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-cassandra.xml?rev=1712344=auto == --- james/project/trunk/server/src/site/xdoc/config-cassandra.xml (added) +++ james/project/trunk/server/src/site/xdoc/config-cassandra.xml Tue Nov 3 16:51:30 2015 @@ -0,0 +1,49 @@ + + + + + + Apache James Server 3 - Cassandra Configuration + + + + + + +Consult http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/cassandra-template.properties;>cassandra-template.properties to get some examples and hints. + + +cassandra.ip +Is the IP (or host) of the Cassandra used. (cluster is not yet supported) +cassandra.port +Is the port used to connect to Cassandra. +cassandra.keyspace +Is the name of the keyspace used by James. +cassandra.replication.factor +Is the replication factor. (should be 1, as cluster is not yet supported) + + +If you want more explanation about Cassandra configuration, you should visit the dedicated http://docs.datastax.com/en/cassandra/2.1/cassandra/gettingStartedCassandraIntro.html;>documentation. + + + + + + Added: james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml?rev=1712344=auto == --- james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml (added) +++ james/project/trunk/server/src/site/xdoc/config-elasticsearch.xml Tue Nov 3 16:51:30 2015 @@ -0,0 +1,45 @@ + + + + + + Apache James Server 3 - ElasticSearch Configuration + + + + + + +Consult http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/elasticsearch-template.properties;>elasticsearch-template.properties to get some examples and hints. + + +elasticsearch.clusterName +Is the name of the cluster used by James. +elasticsearch.masterHost +Is the IP (or host) of the ElasticSearch master + + +If you want more explanation about ElasticSearch configuration, you should visit the dedicated https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html;>documentation. + + + + + + Added: james/project/trunk/server/src/site/xdoc/config-guice.xml URL: http://svn.apache.org/viewvc/james/project/trunk/server/src/site/xdoc/config-guice.xml?rev=1712344=auto == --- james/project/trunk/server/src/site/xdoc/config-guice.xml (added) +++ james/project/trunk/server/src/site/xdoc/config-guice.xml Tue Nov 3 16:51:30 2015 @@ -0,0 +1,99 @@ + + + + + + Apache James Server 3 - Guice configuration + + + + + + +Such configuration is only developed for Cassandra backend. +You are encouraged to contribute by developing a new backend guice module. + Have a look to the james-server-cassandra-guice artifact. + + +We provide a sample-configuration folder with needed files to run James. + You can start by copying it and modify these files according to your needs. + +You can/must configure James for the following: + + + + +Config File Sample +Config Area +Config Comment + + + +http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/cassandra-template.properties;>cassandra-template.properties +Cassandra Configuration + + + +http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/dnsservice-template.xml;>dnsservice.xml +DNS Service Configuration + + + +http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/elasticsearch-template.properties;>elasticsearch-template.properties +ElasticSearch Configuration + + + +http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/imapserver-template.xml;>imapserver.xml +IMAP4 Configuration + + + +http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/lmtpserver-template.xml;>lmtpserver.xml +LMTP Configuration + + + +