http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileNoopTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileNoopTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileNoopTest.java new file mode 100644 index 0000000..1dc4571 --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileNoopTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.NoopTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FileNoopTest extends NoopTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +}
http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FilePutScriptTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FilePutScriptTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FilePutScriptTest.java new file mode 100644 index 0000000..50a72bc --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FilePutScriptTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.PutScriptTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FilePutScriptTest extends PutScriptTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileRenameScriptTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileRenameScriptTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileRenameScriptTest.java new file mode 100644 index 0000000..35bf256 --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileRenameScriptTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.RenameScriptTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FileRenameScriptTest extends RenameScriptTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileSetActiveTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileSetActiveTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileSetActiveTest.java new file mode 100644 index 0000000..3ec799a --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileSetActiveTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.SetActiveTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FileSetActiveTest extends SetActiveTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileStartTlsTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileStartTlsTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileStartTlsTest.java new file mode 100644 index 0000000..d37365f --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileStartTlsTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.StartTlsTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FileStartTlsTest extends StartTlsTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileUnauthenticatedTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileUnauthenticatedTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileUnauthenticatedTest.java new file mode 100644 index 0000000..1f6eeab --- /dev/null +++ b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileUnauthenticatedTest.java @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.mpt.managesieve.file; + +import org.apache.james.mpt.host.ManageSieveHostSystem; +import org.apache.james.mpt.testsuite.UnauthenticatedTest; +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class FileUnauthenticatedTest extends UnauthenticatedTest { + + private ManageSieveHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new FileModule()); + system = injector.getInstance(ManageSieveHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected ManageSieveHostSystem createManageSieveHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java b/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java deleted file mode 100644 index 9b98838..0000000 --- a/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.managesieve.file; - -import org.apache.james.mpt.onami.test.OnamiSuite; -import org.apache.james.mpt.onami.test.annotation.GuiceModules; -import org.apache.james.mpt.testsuite.AuthenticateTest; -import org.apache.james.mpt.testsuite.CapabilityTest; -import org.apache.james.mpt.testsuite.CheckScriptTest; -import org.apache.james.mpt.testsuite.DeleteScriptTest; -import org.apache.james.mpt.testsuite.GetScriptTest; -import org.apache.james.mpt.testsuite.HaveSpaceTest; -import org.apache.james.mpt.testsuite.ListScriptsTest; -import org.apache.james.mpt.testsuite.LogoutTest; -import org.apache.james.mpt.testsuite.NoopTest; -import org.apache.james.mpt.testsuite.PutScriptTest; -import org.apache.james.mpt.testsuite.RenameScriptTest; -import org.apache.james.mpt.testsuite.SetActiveTest; -import org.apache.james.mpt.testsuite.StartTlsTest; -import org.apache.james.mpt.testsuite.UnauthenticatedTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@GuiceModules({ FileModule.class }) -@RunWith(OnamiSuite.class) -@Suite.SuiteClasses({ - NoopTest.class, - UnauthenticatedTest.class, - LogoutTest.class, - AuthenticateTest.class, - StartTlsTest.class, - CapabilityTest.class, - HaveSpaceTest.class, - PutScriptTest.class, - SetActiveTest.class, - GetScriptTest.class, - DeleteScriptTest.class, - RenameScriptTest.class, - CheckScriptTest.class, - ListScriptsTest.class -}) -public class ManageSieveFileTest { -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/pom.xml ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/pom.xml b/mpt/impl/smtp/cassandra/pom.xml index 48b9cb1..caa3fd2 100644 --- a/mpt/impl/smtp/cassandra/pom.xml +++ b/mpt/impl/smtp/cassandra/pom.xml @@ -177,10 +177,6 @@ </dependency> <dependency> <groupId>org.apache.james</groupId> - <artifactId>apache-james-mpt-onami-test</artifactId> - </dependency> - <dependency> - <groupId>org.apache.james</groupId> <artifactId>james-server-cassandra-guice</artifactId> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraForwardSmtpTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraForwardSmtpTest.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraForwardSmtpTest.java new file mode 100644 index 0000000..0cda129 --- /dev/null +++ b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraForwardSmtpTest.java @@ -0,0 +1,49 @@ +/**************************************************************** + * 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.mpt.smtp; + +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class CassandraForwardSmtpTest extends ForwardSmtpTest { + + private SmtpHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new SmtpTestModule(SmtpTestModule.Port.SMTP)); + system = injector.getInstance(SmtpHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected SmtpHostSystem createSmtpHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpStarttlsCommandTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpStarttlsCommandTest.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpStarttlsCommandTest.java new file mode 100644 index 0000000..d807faf --- /dev/null +++ b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpStarttlsCommandTest.java @@ -0,0 +1,49 @@ +/**************************************************************** + * 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.mpt.smtp; + +import org.junit.After; +import org.junit.Before; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class CassandraSmtpStarttlsCommandTest extends SmtpStarttlsCommandTest { + + private SmtpHostSystem system; + + @Before + public void setUp() throws Exception { + Injector injector = Guice.createInjector(new SmtpTestModule(SmtpTestModule.Port.SMTP_START_TTLS)); + system = injector.getInstance(SmtpHostSystem.class); + system.beforeTest(); + super.setUp(); + } + + @Override + protected SmtpHostSystem createSmtpHostSystem() { + return system; + } + + @After + public void tearDown() throws Exception { + system.afterTest(); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTest.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTest.java deleted file mode 100644 index 5a7beea..0000000 --- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ -package org.apache.james.mpt.smtp; - -import org.apache.james.mpt.onami.test.OnamiSuite; -import org.apache.james.mpt.onami.test.annotation.GuiceModules; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@RunWith(OnamiSuite.class) -@Suite.SuiteClasses({ - ForwardSmtpTest.class -}) -@GuiceModules({ SmtpTestModule.class }) -public class SmtpTest { - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTestModule.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTestModule.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTestModule.java index 923c854..e86db9d 100644 --- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTestModule.java +++ b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/SmtpTestModule.java @@ -24,9 +24,26 @@ import com.google.inject.AbstractModule; public class SmtpTestModule extends AbstractModule { + enum Port { + SMTP(1025), + SMTP_START_TTLS(1587); + + private int port; + + Port(int port) { + this.port = port; + } + } + + private Port smtpPort; + + public SmtpTestModule(Port smtpPort) { + this.smtpPort = smtpPort; + } + @Override protected void configure() { - bind(SmtpHostSystem.class).toInstance(new CassandraJamesSmtpHostSystem(1025)); + bind(SmtpHostSystem.class).toInstance(new CassandraJamesSmtpHostSystem(smtpPort.port)); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTest.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTest.java deleted file mode 100644 index 376579f..0000000 --- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ -package org.apache.james.mpt.smtp; - -import org.apache.james.mpt.onami.test.OnamiSuite; -import org.apache.james.mpt.onami.test.annotation.GuiceModules; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@RunWith(OnamiSuite.class) -@Suite.SuiteClasses({ - SmtpStarttlsCommandTest.class -}) -@GuiceModules({ StarttlsSmtpTestModule.class }) -public class StarttlsSmtpTest { - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTestModule.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTestModule.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTestModule.java deleted file mode 100644 index 88b44d5..0000000 --- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/StarttlsSmtpTestModule.java +++ /dev/null @@ -1,32 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ -package org.apache.james.mpt.smtp; - -import org.apache.james.mpt.smtp.host.CassandraJamesSmtpHostSystem; - -import com.google.inject.AbstractModule; - -public class StarttlsSmtpTestModule extends AbstractModule { - - @Override - protected void configure() { - bind(SmtpHostSystem.class).toInstance(new CassandraJamesSmtpHostSystem(1587)); - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java index c6e8814..fdc47e7 100644 --- a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java +++ b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java @@ -26,8 +26,6 @@ import static org.hamcrest.Matchers.equalTo; import java.net.InetAddress; import java.util.Locale; -import javax.inject.Inject; - import org.apache.james.mpt.script.SimpleScriptedTestProtocol; import org.apache.james.util.streams.SwarmGenericContainer; import org.junit.Before; @@ -42,7 +40,7 @@ import com.jayway.restassured.RestAssured; import com.jayway.restassured.builder.RequestSpecBuilder; import com.jayway.restassured.http.ContentType; -public class ForwardSmtpTest { +public abstract class ForwardSmtpTest { public static final String USER = "bob"; public static final String DOMAIN = "mydomain.tld"; @@ -56,20 +54,21 @@ public class ForwardSmtpTest { @Rule public final RuleChain chain = RuleChain.outerRule(folder).around(fakeSmtp); - @Inject - private static SmtpHostSystem hostSystem; - - private SimpleScriptedTestProtocol scriptedTest; + protected abstract SmtpHostSystem createSmtpHostSystem(); - public ForwardSmtpTest() throws Exception { + private SmtpHostSystem hostSystem; + private SimpleScriptedTestProtocol scriptedTest; + + @Before + public void setUp() throws Exception { + hostSystem = createSmtpHostSystem(); + scriptedTest = new SimpleScriptedTestProtocol("/org/apache/james/smtp/scripts/", hostSystem) .withLocale(Locale.US) .withUser(USER_AT_DOMAIN, PASSWORD); - } - @Before - public void setUp() throws Exception { InetAddress containerIp = InetAddresses.forString(fakeSmtp.getIp()); + hostSystem.getInMemoryDnsService() .registerRecord("yopmail.com", containerIp, "yopmail.com"); hostSystem.addAddressMapping(USER, DOMAIN, "r...@yopmail.com"); http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java index e667886..efc3a28 100644 --- a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java +++ b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java @@ -20,15 +20,14 @@ package org.apache.james.mpt.smtp; import java.util.Locale; -import javax.inject.Inject; - import org.apache.james.mpt.script.SimpleScriptedTestProtocol; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; -public class SmtpStarttlsCommandTest { +public abstract class SmtpStarttlsCommandTest { public static final String USER = "bob"; public static final String DOMAIN = "mydomain.tld"; @@ -40,12 +39,14 @@ public class SmtpStarttlsCommandTest { @Rule public final RuleChain chain = RuleChain.outerRule(folder); - @Inject - private static SmtpHostSystem hostSystem; + protected abstract SmtpHostSystem createSmtpHostSystem(); + private SmtpHostSystem hostSystem; private SimpleScriptedTestProtocol scriptedTest; - public SmtpStarttlsCommandTest() throws Exception { + @Before + public void setUp() throws Exception { + hostSystem = createSmtpHostSystem(); String scriptDir = "/org/apache/james/smtp/scripts/"; scriptedTest = new SimpleScriptedTestProtocol(scriptDir, hostSystem) .withLocale(Locale.US) http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/pom.xml ---------------------------------------------------------------------- diff --git a/mpt/onami-test/pom.xml b/mpt/onami-test/pom.xml deleted file mode 100644 index 46a2856..0000000 --- a/mpt/onami-test/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<project xmlns="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/xsd/maven-4.0.0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <parent> - <artifactId>apache-james-mpt</artifactId> - <groupId>org.apache.james</groupId> - <version>3.1.0-SNAPSHOT</version> - </parent> - - <artifactId>apache-james-mpt-onami-test</artifactId> - <packaging>jar</packaging> - - <name>Apache James :: MPT :: Onami-test</name> - <description>MPT tooling from Onami project</description> - - <dependencies> - <dependency> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.easymock</groupId> - <artifactId>easymock</artifactId> - <version>3.2</version> - <scope>provided</scope> - <optional>true</optional> - </dependency> - - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>16.0.1</version> - </dependency> - - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <version>1.9.5</version> - <scope>provided</scope> - <optional>true</optional> - </dependency> - - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/GuiceMockModule.java ---------------------------------------------------------------------- diff --git a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/GuiceMockModule.java b/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/GuiceMockModule.java deleted file mode 100644 index b88aa67..0000000 --- a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/GuiceMockModule.java +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.onami.test; - -import static com.google.common.base.Preconditions.checkState; - -import java.lang.reflect.Field; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.james.mpt.onami.test.annotation.Mock; - -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import com.google.inject.AbstractModule; -import com.google.inject.TypeLiteral; -import com.google.inject.name.Names; - -/** - * <p> - * This class creates the binding for all mock objects found. - * </p> - * <p> - * Method {@link GuiceMockModule#configure()} creates a binding for each {@link Mock} annotation found. The binding will - * be created <b>if and only if</b> there is no types conflict between {@link Mock} caught. - * <p> - * <p> - * <b>A type conflict</b> is detected if two or more field are annotated with the same {@link Mock} and no different - * {@link Mock#annotatedWith} parameter are specified, or two o more equals {@link Mock#annotatedWith} parameter are - * specified for the same type field. - * </p> - * <p> - * If a conflict is detected the binding will not create for the conflicted type, moreover the field will be injected - * into the test class. - * </p> - */ -public class GuiceMockModule extends AbstractModule { - - private static final Logger LOGGER = Logger.getLogger(GuiceMockModule.class.getName()); - - final Map<Field, Object> mockedFields; - - /** - * Costructor. - * - * @param mockedFields the map of mock fileds. - */ - - public GuiceMockModule(final Map<Field, Object> mockedFields) { - this.mockedFields = mockedFields; - } - - @SuppressWarnings("unchecked") - @Override - protected void configure() { - final Multimap<Type, Field> fieldsByType = HashMultimap.create(); - - for (final Entry<Field, Object> entry : this.mockedFields.entrySet()) { - fieldsByType.put(entry.getKey().getGenericType(), entry.getKey()); - } - - for (final Type type : fieldsByType.keySet()) { - final Collection<Field> fields = fieldsByType.get(type); - - boolean isTypeConflicts = false; - if (fields.size() != 1) { - isTypeConflicts = checkTypeConflict(fields); - } - - checkState(!isTypeConflicts, " Found multiple annotation @%s for type: %s; binding skipped!.", - Mock.class.getSimpleName(), type); - for (final Field field : fields) { - @SuppressWarnings("rawtypes") - final TypeLiteral literal = TypeLiteral.get(type); - final Mock annoBy = field.getAnnotation(Mock.class); - final Object mock = this.mockedFields.get(field); - if (annoBy.annotatedWith() != Mock.NoAnnotation.class) { - bind(literal).annotatedWith(annoBy.annotatedWith()).toInstance(mock); - } else if (!"".equals(annoBy.namedWith())) { - bind(literal).annotatedWith(Names.named(annoBy.namedWith())).toInstance(mock); - } else { - bind(literal).toInstance(mock); - } - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" Created binding for: " + type + " " + annoBy); - } - } - } - } - - /** - * @param fields - * @return - */ - private boolean checkTypeConflict(Collection<Field> fields) { - final List<Class<?>> listAnnotatedType = new ArrayList<Class<?>>(); - final List<String> listNamedType = new ArrayList<String>(); - int numOfSimpleType = 0; - - for (Field field : fields) { - final Mock annoBy = field.getAnnotation(Mock.class); - - if (annoBy.annotatedWith() == Mock.NoAnnotation.class && "".equals(annoBy.namedWith())) { - numOfSimpleType++; - } - if (numOfSimpleType > 1) { - LOGGER.finer("Found multiple simple type"); - return true; - } - - if (annoBy.annotatedWith() != Mock.NoAnnotation.class) { - if (!listAnnotatedType.contains(annoBy.annotatedWith())) { - listAnnotatedType.add(annoBy.annotatedWith()); - } else { - // found two fields with same annotation - LOGGER.finer("Found multiple annotatedBy type"); - return true; - } - } - - if (!"".equals(annoBy.namedWith())) { - if (!listNamedType.contains(annoBy.namedWith())) { - listNamedType.add(annoBy.namedWith()); - } else { - // found two fields with same named annotation - LOGGER.finer("Found multiple namedWith type"); - return true; - } - } - } - return false; - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/MockEngineFactory.java ---------------------------------------------------------------------- diff --git a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/MockEngineFactory.java b/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/MockEngineFactory.java deleted file mode 100644 index 37d64ca..0000000 --- a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/MockEngineFactory.java +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.onami.test; - -import org.apache.james.mpt.onami.test.annotation.MockType; -import org.apache.james.mpt.onami.test.mock.MockEngine; -import org.apache.james.mpt.onami.test.mock.framework.EasyMockFramework; -import org.apache.james.mpt.onami.test.mock.framework.MockitoFramework; - -/** - * Factory class to create the mock framework. - * - * @see org.apache.onami.test.annotation.MockFramework - */ -final class MockEngineFactory { - - /** - * Hidden constructor, this class must not be instantiated directly. - */ - private MockEngineFactory() { - // do nothing - } - - /** - * Mock factory constructor. <br> - * Supported framewors: <li> {@link MockType}.EASY_MOCK <li> {@link MockType}.MOCKITO <br> - * - * @param type of mock framework to create. - * @return An instance of mock framework. - * @see MockType - */ - public static MockEngine getMockEngine(MockType type) { - switch (type) { - case EASY_MOCK: - return new EasyMockFramework(); - - case MOCKITO: - return new MockitoFramework(); - - default: - throw new IllegalArgumentException("Unrecognized MockType '" + type.name() + "'"); - } - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiRunner.java ---------------------------------------------------------------------- diff --git a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiRunner.java b/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiRunner.java deleted file mode 100644 index 78ae0a5..0000000 --- a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiRunner.java +++ /dev/null @@ -1,451 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.onami.test; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.james.mpt.onami.test.annotation.GuiceModules; -import org.apache.james.mpt.onami.test.annotation.GuiceProvidedModules; -import org.apache.james.mpt.onami.test.annotation.Mock; -import org.apache.james.mpt.onami.test.annotation.MockFramework; -import org.apache.james.mpt.onami.test.annotation.MockType; -import org.apache.james.mpt.onami.test.guice.MockTypeListener; -import org.apache.james.mpt.onami.test.handler.GuiceInjectableClassHandler; -import org.apache.james.mpt.onami.test.handler.GuiceModuleHandler; -import org.apache.james.mpt.onami.test.handler.GuiceProvidedModuleHandler; -import org.apache.james.mpt.onami.test.handler.MockFrameworkHandler; -import org.apache.james.mpt.onami.test.handler.MockHandler; -import org.apache.james.mpt.onami.test.mock.MockEngine; -import org.apache.james.mpt.onami.test.reflection.ClassVisitor; -import org.apache.james.mpt.onami.test.reflection.HandleException; -import org.junit.runner.notification.RunNotifier; -import org.junit.runners.BlockJUnit4ClassRunner; -import org.junit.runners.model.FrameworkMethod; -import org.junit.runners.model.InitializationError; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Module; -import com.google.inject.matcher.Matchers; -import com.google.inject.util.Modules; - -/** - * <p> - * It's a {@link BlockJUnit4ClassRunner} runner. - * </p> - * <p> - * This class creates a Google Guice {@link Injector} configured by {@link GuiceModules} annotation (only fr modules - * with default constructor) and {@link GuiceProvidedModules} annotation and {@link Mock}. - * </p> - * <p> - * <b>Example #1:</b> <br> - * <p> - * <pre> - * - * @org.junit.runner.RunWith( OnamiRunner.class ) - * @GuiceModules( SimpleModule.class ) - * public class AcmeTestCase - * { - * - * @GuiceProvidedModules - * static public Module getProperties() - * { - * ... - * return Modules.combine(new ComplexModule( loadProperies() ), ... ); - * } - * - * </pre> - * <p> - * </p> - * <p> - * <b>Example #2:</b> <br> - * <p> - * <pre> - * - * @org.junit.runner.RunWith( OnamiRunner.class ) - * public class AcmeTestCase - * extends com.google.inject.AbstractModule - * { - * - * public void configure() - * { - * // Configure your proper modules - * ... - * bind( Service.class ).annotatedWith( TestAnnotation.class ).to( ServiceTestImpl.class ); - * ... - * } - * - * @Mock - * private AnotherService serviceMock; - * - * @Inject - * private Service serviceTest; - * - * @org.junit.Test - * public void test() - * { - * assertNotNull( serviceMock ); - * assertNotNull( serviceTest ); - * } - * </pre> - * <p> - * </p> - * - * @see GuiceMockModule - */ -public class OnamiRunner extends BlockJUnit4ClassRunner { - - private static final Logger LOGGER = Logger.getLogger(OnamiRunner.class.getName()); - - private Injector injector; - - private final List<Module> allModules; - - private final Map<Field, Object> mocked = new HashMap<Field, Object>(1); - - private MockType mockFramework = MockType.EASY_MOCK; - - /** - * OnamiRunner constructor to create the core JUnice class. - * - * @param klass The test case class to run. - * @throws org.junit.runners.model.InitializationError if any error occurs. - * @see org.junit.runner.RunWith - */ - public OnamiRunner(Class<?> klass) - throws InitializationError { - super(klass); - - try { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("Inizializing injector for test class: " + klass.getName()); - } - - this.allModules = inizializeInjector(klass); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("done..."); - } - } catch (Exception e) { - final List<Throwable> throwables = new LinkedList<Throwable>(); - throwables.add(e); - throw new InitializationError(throwables); - } - } - - /** - * OnamiRunner constructor to create the runner needed - * by the OnamiSuite class. - * - * @param suite The suite test case class to run. - * @param test The test case class to run. - * @throws org.junit.runners.model.InitializationError if any error occurs. - * @see org.junit.runner.RunWith - */ - public OnamiRunner(Class<?> suite, Class<?> test) - throws InitializationError { - super(test); - - try { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("Inizializing injector for test class: " + test.getName()); - } - - this.allModules = inizializeInjector(suite, test); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("done..."); - } - } catch (Exception e) { - final List<Throwable> throwables = new LinkedList<Throwable>(); - throwables.add(e); - throw new InitializationError(throwables); - } - } - - /** - * {@inheritDoc} - */ - @Override - public void run(final RunNotifier notifier) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ### Run test case: " + getTestClass().getJavaClass() + " ### "); - LOGGER.finer(" #### Creating injector ####"); - } - - this.injector = createInjector(allModules); - super.run(notifier); - this.flush(); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ### End test case: " + getTestClass().getJavaClass().getName() + " ### "); - } - } - - /** - * {@inheritDoc} - */ - private void flush() { - this.injector = null; - this.allModules.clear(); - this.mocked.clear(); - } - - @Override - protected void runChild(FrameworkMethod method, RunNotifier notifier) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" +++ invoke test method: " + method.getName() + " +++ "); - } - - super.runChild(method, notifier); - resetAllResetAfterMocks(); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" --- end test method: " + method.getName() + " --- "); - } - } - - /** - * Creates test instance via Google-Guice to inject all not-static dependencies. - * - * @return The instance of the test case. - * @throws Exception when an error occurs. - */ - @Override - protected Object createTest() - throws Exception { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" Create and inject test class: " + getTestClass().getJavaClass()); - } - return this.injector.getInstance(getTestClass().getJavaClass()); - } - - /** - * Shortcut to create the Injector given a list of Modules. - * - * @param modules the list of modules have to be load - * @return an Injector instance built using the input Module list - */ - protected Injector createInjector(List<Module> modules) { - return Guice.createInjector(modules); - } - - /** - * This method collects modules from {@link GuiceModules}, {@link GuiceProvidedModules}, {@link Mock} - * and {@ OnamiSuite}. - * - * @param <T> whatever input type is accepted - * @param suite the input suite to be analyzed - * @param test the input class has to be analyzed - * @return a List of Guice Modules built after input class analysis. - * @throws IllegalAccessException when a n error occurs. - * @throws InstantiationException when a n error occurs. - * @throws HandleException when a n error occurs. - */ - protected <T> List<Module> inizializeInjector(Class<?> suite, Class<T> test) - throws HandleException, InstantiationException, IllegalAccessException { - final List<Module> modules = inizializeInjector(test); - Module m = visitClass(suite); - if (m != null) { - modules.add(m); - } - return modules; - } - - /** - * This method collects modules from {@link GuiceModules}, {@link GuiceProvidedModules}, {@link Mock}. - * - * @param <T> whatever input type is accepted - * @param clazz the input class has to be analyzed - * @return a List of Guice Modules built after input class analysis. - * @throws IllegalAccessException when a n error occurs. - * @throws InstantiationException when a n error occurs. - * @throws HandleException when a n error occurs. - */ - protected <T> List<Module> inizializeInjector(Class<T> clazz) - throws HandleException, InstantiationException, IllegalAccessException { - final List<Module> modules = new ArrayList<Module>(); - Module m = visitClass(clazz); - if (m != null) { - modules.add(m); - } - return modules; - } - - private void resetAllResetAfterMocks() { - for (Entry<Field, Object> entry : mocked.entrySet()) { - final Mock mockAnnotation = entry.getKey().getAnnotation(Mock.class); - if (mockAnnotation.resetAfter()) { - MockEngine mockEngine = MockEngineFactory.getMockEngine(mockFramework); - mockEngine.resetMock(entry.getValue()); - } - } - } - - /** - * @throws HandleException - * @throws IllegalAccessException - * @throws InstantiationException - */ - private <T> Module visitClass(final Class<T> clazz) - throws HandleException, InstantiationException, IllegalAccessException { - try { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" Start introspecting class: " + clazz.getName()); - } - final List<Module> allModules = new ArrayList<Module>(); - - // Setup the handlers - final GuiceProvidedModuleHandler guiceProvidedModuleHandler = new GuiceProvidedModuleHandler(); - final GuiceModuleHandler guiceModuleHandler = new GuiceModuleHandler(); - final GuiceInjectableClassHandler<Inject> guiceInjectableClassHandler = new GuiceInjectableClassHandler<com.google.inject.Inject>(); - final GuiceInjectableClassHandler<javax.inject.Inject> jsr330InjectableClassHandler = new GuiceInjectableClassHandler<javax.inject.Inject>(); - - final MockHandler mockHandler = new MockHandler(); - final MockFrameworkHandler mockFrameworkHandler = new MockFrameworkHandler(); - - // Visit class and super-classes - new ClassVisitor() - .registerHandler(GuiceProvidedModules.class, guiceProvidedModuleHandler) - .registerHandler(GuiceModules.class, guiceModuleHandler) - .registerHandler(Mock.class, mockHandler) - .registerHandler(MockFramework.class, mockFrameworkHandler) - .registerHandler(com.google.inject.Inject.class, guiceInjectableClassHandler) - .registerHandler(javax.inject.Inject.class, jsr330InjectableClassHandler) - .visit(clazz); - - // Retrieve mock framework - if (mockFrameworkHandler.getMockType() != null) { - this.mockFramework = mockFrameworkHandler.getMockType(); - } - - // retrieve the modules founded - allModules.addAll(guiceProvidedModuleHandler.getModules()); - allModules.addAll(guiceModuleHandler.getModules()); - MockEngine engine = MockEngineFactory.getMockEngine(this.mockFramework); - this.mocked.putAll(mockHandler.getMockedObject(engine)); - if (!this.mocked.isEmpty()) { - // Replace all real module binding with Mocked moduled. - Module m = Modules.override(allModules).with(new GuiceMockModule(this.mocked)); - allModules.clear(); - allModules.add(m); - } - - // Add only clasess that have got the Inject annotation - final Class<?>[] guiceInjectableClasses = guiceInjectableClassHandler.getClasses(); - final Class<?>[] jsr330InjectableClasses = jsr330InjectableClassHandler.getClasses(); - - final AbstractModule statcInjector = new AbstractModule() { - @Override - protected void configure() { - // inject all STATIC dependencies - if (guiceInjectableClasses.length != 0) { - requestStaticInjection(guiceInjectableClasses); - } - - if (jsr330InjectableClasses.length != 0) { - requestStaticInjection(jsr330InjectableClasses); - } - - - } - }; - if (guiceInjectableClasses.length != 0 || jsr330InjectableClasses.length != 0) { - allModules.add(statcInjector); - } - - // Check if the class is itself a Google Module. - if (Module.class.isAssignableFrom(getTestClass().getJavaClass())) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" creating module from test class " + getTestClass().getJavaClass()); - } - final Module classModule = (Module) getTestClass().getJavaClass().newInstance(); - allModules.add(classModule); - } - - // create MockTypeListenerModule - if (this.mocked.size() != 0) { - final AbstractModule mockTypeListenerModule = new AbstractModule() { - @Override - protected void configure() { - bindListener(Matchers.any(), new MockTypeListener(mocked)); - } - }; - - // BEGIN patch for issue: google-guice: #452 - for (Entry<Field, Object> entry : mocked.entrySet()) { - final Field field = entry.getKey(); - final Object mock = entry.getValue(); - if (Modifier.isStatic(field.getModifiers())) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" inject static mock field: " + field.getName()); - } - - AccessController.doPrivileged(new PrivilegedAction<Void>() { - - public Void run() { - field.setAccessible(true); - return null; - } - - }); - field.set(field.getDeclaringClass(), mock); - } - } - // END patch for issue: google-guice: #452 - - allModules.add(mockTypeListenerModule); - } - - if (allModules.size() != 0) { - if (LOGGER.isLoggable(Level.FINER)) { - StringBuilder builder = new StringBuilder(); - builder.append(" Collected modules: "); - builder.append("\n"); - for (Module module : allModules) { - builder.append(" ").append(module); - builder.append("\n"); - } - LOGGER.finer(builder.toString()); - } - return Modules.combine(allModules); - } - return null; - } finally { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ...done"); - } - } - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiSuite.java ---------------------------------------------------------------------- diff --git a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiSuite.java b/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiSuite.java deleted file mode 100644 index 977f8ff..0000000 --- a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/OnamiSuite.java +++ /dev/null @@ -1,409 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.onami.test; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.james.mpt.onami.test.annotation.GuiceModules; -import org.apache.james.mpt.onami.test.annotation.GuiceProvidedModules; -import org.apache.james.mpt.onami.test.annotation.Mock; -import org.apache.james.mpt.onami.test.annotation.MockFramework; -import org.apache.james.mpt.onami.test.annotation.MockType; -import org.apache.james.mpt.onami.test.guice.MockTypeListener; -import org.apache.james.mpt.onami.test.handler.GuiceInjectableClassHandler; -import org.apache.james.mpt.onami.test.handler.GuiceModuleHandler; -import org.apache.james.mpt.onami.test.handler.GuiceProvidedModuleHandler; -import org.apache.james.mpt.onami.test.handler.MockFrameworkHandler; -import org.apache.james.mpt.onami.test.handler.MockHandler; -import org.apache.james.mpt.onami.test.mock.MockEngine; -import org.apache.james.mpt.onami.test.reflection.ClassVisitor; -import org.apache.james.mpt.onami.test.reflection.HandleException; -import org.junit.runner.Runner; -import org.junit.runner.notification.RunNotifier; -import org.junit.runners.Suite; -import org.junit.runners.model.InitializationError; -import org.junit.runners.model.RunnerBuilder; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Module; -import com.google.inject.matcher.Matchers; -import com.google.inject.util.Modules; - -/** - * <p> - * It's a {@link Suite} runner. - * </p> - * <p> - * This class creates a Google Guice {@link Injector} configured by {@link GuiceModules} annotation (only fr modules - * with default constructor) and {@link GuiceProvidedModules} annotation and {@link Mock}. - * </p> - * <p> - * <b>Example #1:</b> <br> - * <p> - * <pre> - * - * @org.junit.runner.RunWith( OnamiSuite.class ) - * @GuiceModules( SimpleModule.class ) - * @SuiteClasses({ .class }) - * public class AcmeTestCase - * { - * - * @GuiceProvidedModules - * static public Module getProperties() - * { - * ... - * return Modules.combine(new ComplexModule( loadProperies() ), ... ); - * } - * - * </pre> - * <p> - * </p> - * <p> - * <b>Example #2:</b> <br> - * <p> - * <pre> - * - * @org.junit.runner.RunWith( OnamiSuite.class ) - * public class AcmeTestCase - * extends com.google.inject.AbstractModule - * { - * - * public void configure() - * { - * // Configure your proper modules - * ... - * bind( Service.class ).annotatedWith( TestAnnotation.class ).to( ServiceTestImpl.class ); - * ... - * } - * - * @Mock - * private AnotherService serviceMock; - * - * @Inject - * private Service serviceTest; - * - * @org.junit.Test - * public void test() - * { - * assertNotNull( serviceMock ); - * assertNotNull( serviceTest ); - * } - * </pre> - * <p> - * </p> - * - * @see GuiceMockModule - */ -public class OnamiSuite extends Suite { - - private static final Logger LOGGER = Logger.getLogger(OnamiSuite.class.getName()); - - private final List<Module> allModules; - - private final Map<Field, Object> mocked = new HashMap<Field, Object>(1); - - private MockType mockFramework = MockType.EASY_MOCK; - - private static Class<?>[] getAnnotatedClasses(Class<?> klass) throws InitializationError { - SuiteClasses annotation = klass.getAnnotation(SuiteClasses.class); - if (annotation == null) - throw new InitializationError(String.format("class '%s' must have a SuiteClasses annotation", klass.getName())); - return annotation.value(); - } - - /** - * OnamiRunner constructor to create the core JUnice class. - * - * @param klass The test case class to run. - * @throws org.junit.runners.model.InitializationError if any error occurs. - * @see org.junit.runner.RunWith - */ - public OnamiSuite(Class<?> klass, RunnerBuilder builder) - throws InitializationError { - this(builder, klass, getAnnotatedClasses(klass)); - - } - - /** - * Called by this class and subclasses once the classes making up the suite have been determined - * - * @param builder builds runners for classes in the suite - * @param klass the root of the suite - * @param suiteClasses the classes in the suite - * @throws InitializationError - */ - protected OnamiSuite(RunnerBuilder builder, Class<?> suite, Class<?>[] suiteClasses) - throws InitializationError { - super(suite, runners(suite, suiteClasses)); - try { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("Inizializing injector for siote class: " + suite.getName()); - } - - this.allModules = inizializeInjector(suite); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("done..."); - } - } catch (Exception e) { - final List<Throwable> throwables = new LinkedList<Throwable>(); - throwables.add(e); - throw new InitializationError(throwables); - } - } - - /** - * {@inheritDoc} - */ - @Override - public void run(final RunNotifier notifier) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ### Run test case: " + getTestClass().getJavaClass() + " ### "); - LOGGER.finer(" #### Creating injector ####"); - } - - createInjector(allModules); - super.run(notifier); - this.flush(); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ### End test case: " + getTestClass().getJavaClass().getName() + " ### "); - } - } - - private static List<Runner> runners(Class<?> suite, Class<?>[] children) throws InitializationError { - ArrayList<Runner> runners = new ArrayList<Runner>(); - for (Class<?> each : children) { - Runner childRunner = new OnamiRunner(suite, each); - if (childRunner != null) - runners.add(childRunner); - } - return runners; - } - - /** - * {@inheritDoc} - */ - private void flush() { - this.allModules.clear(); - this.mocked.clear(); - } - - @Override - protected void runChild(Runner runner, RunNotifier notifier) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" +++ invoke runner: " + runner + " +++ "); - } - - super.runChild(runner, notifier); - resetAllResetAfterMocks(); - - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" --- end runner: " + runner + " --- "); - } - } - - /** - * Shortcut to create the Injector given a list of Modules. - * - * @param modules the list of modules have to be load - * @return an Injector instance built using the input Module list - */ - protected Injector createInjector(List<Module> modules) { - return Guice.createInjector(modules); - } - - /** - * This method collects modules from {@link GuiceModules}, {@link GuiceProvidedModules}, {@link Mock}. - * - * @param <T> whatever input type is accepted - * @param clazz the input class has to be analyzed - * @return a List of Guice Modules built after input class analysis. - * @throws IllegalAccessException when a n error occurs. - * @throws InstantiationException when a n error occurs. - * @throws HandleException when a n error occurs. - */ - protected <T> List<Module> inizializeInjector(Class<T> clazz) - throws HandleException, InstantiationException, IllegalAccessException { - final List<Module> modules = new ArrayList<Module>(); - Module m = visitClass(clazz); - if (m != null) { - modules.add(m); - } - return modules; - } - - private void resetAllResetAfterMocks() { - for (Entry<Field, Object> entry : mocked.entrySet()) { - final Mock mockAnnotation = entry.getKey().getAnnotation(Mock.class); - if (mockAnnotation.resetAfter()) { - MockEngine mockEngine = MockEngineFactory.getMockEngine(mockFramework); - mockEngine.resetMock(entry.getValue()); - } - } - } - - /** - * @throws HandleException - * @throws IllegalAccessException - * @throws InstantiationException - */ - private <T> Module visitClass(final Class<T> clazz) - throws HandleException, InstantiationException, IllegalAccessException { - try { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" Start introspecting class: " + clazz.getName()); - } - final List<Module> allModules = new ArrayList<Module>(); - - // Setup the handlers - final GuiceProvidedModuleHandler guiceProvidedModuleHandler = new GuiceProvidedModuleHandler(); - final GuiceModuleHandler guiceModuleHandler = new GuiceModuleHandler(); - final GuiceInjectableClassHandler<Inject> guiceInjectableClassHandler = new GuiceInjectableClassHandler<Inject>(); - final GuiceInjectableClassHandler<javax.inject.Inject> jsr330InjectableClassHandler = new GuiceInjectableClassHandler<javax.inject.Inject>(); - - final MockHandler mockHandler = new MockHandler(); - final MockFrameworkHandler mockFrameworkHandler = new MockFrameworkHandler(); - - // Visit class and super-classes - new ClassVisitor() - .registerHandler(GuiceProvidedModules.class, guiceProvidedModuleHandler) - .registerHandler(GuiceModules.class, guiceModuleHandler) - .registerHandler(Mock.class, mockHandler) - .registerHandler(MockFramework.class, mockFrameworkHandler) - .registerHandler(Inject.class, guiceInjectableClassHandler) - .registerHandler(javax.inject.Inject.class, jsr330InjectableClassHandler) - .visit(clazz); - - // Retrieve mock framework - if (mockFrameworkHandler.getMockType() != null) { - this.mockFramework = mockFrameworkHandler.getMockType(); - } - - // retrieve the modules founded - allModules.addAll(guiceProvidedModuleHandler.getModules()); - allModules.addAll(guiceModuleHandler.getModules()); - MockEngine engine = MockEngineFactory.getMockEngine(this.mockFramework); - this.mocked.putAll(mockHandler.getMockedObject(engine)); - if (!this.mocked.isEmpty()) { - // Replace all real module binding with Mocked moduled. - Module m = Modules.override(allModules).with(new GuiceMockModule(this.mocked)); - allModules.clear(); - allModules.add(m); - } - - // Add only clasess that have got the Inject annotation - final Class<?>[] guiceInjectableClasses = guiceInjectableClassHandler.getClasses(); - final Class<?>[] jsr330InjectableClasses = jsr330InjectableClassHandler.getClasses(); - - final AbstractModule statcInjector = new AbstractModule() { - @Override - protected void configure() { - // inject all STATIC dependencies - if (guiceInjectableClasses.length != 0) { - requestStaticInjection(guiceInjectableClasses); - } - - if (jsr330InjectableClasses.length != 0) { - requestStaticInjection(jsr330InjectableClasses); - } - } - }; - if (guiceInjectableClasses.length != 0 || jsr330InjectableClasses.length != 0) { - allModules.add(statcInjector); - } - - // Check if the class is itself a Google Module. - if (Module.class.isAssignableFrom(getTestClass().getJavaClass())) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" creating module from test class " + getTestClass().getJavaClass()); - } - final Module classModule = (Module) getTestClass().getJavaClass().newInstance(); - allModules.add(classModule); - } - - // create MockTypeListenerModule - if (this.mocked.size() != 0) { - final AbstractModule mockTypeListenerModule = new AbstractModule() { - @Override - protected void configure() { - bindListener(Matchers.any(), new MockTypeListener(mocked)); - } - }; - - // BEGIN patch for issue: google-guice: #452 - for (Entry<Field, Object> entry : mocked.entrySet()) { - final Field field = entry.getKey(); - final Object mock = entry.getValue(); - if (Modifier.isStatic(field.getModifiers())) { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" inject static mock field: " + field.getName()); - } - AccessController.doPrivileged(new PrivilegedAction<Void>() { - - public Void run() { - field.setAccessible(true); - return null; - } - - }); - field.set(field.getDeclaringClass(), mock); - } - } - // END patch for issue: google-guice: #452 - allModules.add(mockTypeListenerModule); - } - - if (allModules.size() != 0) { - if (LOGGER.isLoggable(Level.FINER)) { - StringBuilder builder = new StringBuilder(); - builder.append(" Collected modules: "); - builder.append("\n"); - for (Module module : allModules) { - builder.append(" ").append(module); - builder.append("\n"); - } - LOGGER.finer(builder.toString()); - } - return Modules.combine(allModules); - } - return null; - } finally { - if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer(" ...done"); - } - } - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/78cf06ab/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/annotation/GuiceModules.java ---------------------------------------------------------------------- diff --git a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/annotation/GuiceModules.java b/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/annotation/GuiceModules.java deleted file mode 100644 index 075f552..0000000 --- a/mpt/onami-test/src/main/java/org/apache/james/mpt/onami/test/annotation/GuiceModules.java +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mpt.onami.test.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import com.google.inject.Module; - -/** - * Annotate your class to define a list of Google Guice {@link Module} whit default constructor. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface GuiceModules { - - /** - * List of Google Guice {@link Module}. - */ - Class<? extends Module>[] value(); - -} --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org