This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new 20b9173068 JAMES-4077 - Introduce james-server-guice-lucene module &
replace it to JPAJamesServerMain (#2436)
20b9173068 is described below
commit 20b91730681f50b5d1b7f35e6c93c79229076845
Author: vttran <[email protected]>
AuthorDate: Tue Oct 8 15:20:44 2024 +0700
JAMES-4077 - Introduce james-server-guice-lucene module & replace it to
JPAJamesServerMain (#2436)
---
server/apps/jpa-app/pom.xml | 4 ++
.../java/org/apache/james/JPAJamesServerMain.java | 2 +
server/container/guice/lucene/pom.xml | 45 ++++++++++++++++++++++
.../mailbox/LuceneMemorySearchMailboxModule.java} | 28 ++------------
.../modules/mailbox/LuceneSearchMailboxModule.java | 4 +-
server/container/guice/pom.xml | 6 +++
6 files changed, 62 insertions(+), 27 deletions(-)
diff --git a/server/apps/jpa-app/pom.xml b/server/apps/jpa-app/pom.xml
index 971b98572f..ef8b3025a9 100644
--- a/server/apps/jpa-app/pom.xml
+++ b/server/apps/jpa-app/pom.xml
@@ -108,6 +108,10 @@
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-lmtp</artifactId>
</dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>james-server-guice-lucene</artifactId>
+ </dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-mailbox</artifactId>
diff --git
a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
index ff4a03b09b..aa0b291252 100644
--- a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -31,6 +31,7 @@ import org.apache.james.modules.mailbox.DefaultEventModule;
import org.apache.james.modules.mailbox.JPAMailboxModule;
import org.apache.james.modules.mailbox.LuceneSearchMailboxModule;
import org.apache.james.modules.mailbox.MemoryDeadLetterModule;
+import org.apache.james.modules.mailbox.ReIndexingTaskSerializationModule;
import org.apache.james.modules.protocols.IMAPServerModule;
import org.apache.james.modules.protocols.LMTPServerModule;
import org.apache.james.modules.protocols.ManageSieveServerModule;
@@ -88,6 +89,7 @@ public class JPAJamesServerMain implements JamesServerMain {
new JPADataModule(),
new JPAMailboxModule(),
new MailboxModule(),
+ new ReIndexingTaskSerializationModule(),
new LuceneSearchMailboxModule(),
new NoJwtModule(),
new RawPostDequeueDecoratorModule(),
diff --git a/server/container/guice/lucene/pom.xml
b/server/container/guice/lucene/pom.xml
new file mode 100644
index 0000000000..5770032079
--- /dev/null
+++ b/server/container/guice/lucene/pom.xml
@@ -0,0 +1,45 @@
+<?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>
+ <groupId>org.apache.james</groupId>
+ <artifactId>james-server-guice</artifactId>
+ <version>3.9.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>james-server-guice-lucene</artifactId>
+ <packaging>jar</packaging>
+ <name>Apache James :: Server :: Lucene - guice modules</name>
+ <description>Guice injections for the Lucene engine</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>apache-james-mailbox-lucene</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>james-server-guice-common</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git
a/server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
b/server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneMemorySearchMailboxModule.java
similarity index 55%
copy from
server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
copy to
server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneMemorySearchMailboxModule.java
index 4fab80c3a4..6b503a4aab 100644
---
a/server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
+++
b/server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneMemorySearchMailboxModule.java
@@ -21,38 +21,18 @@ package org.apache.james.modules.mailbox;
import java.io.IOException;
-import org.apache.james.events.EventListener;
-import org.apache.james.filesystem.api.FileSystem;
-import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex;
-import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
-import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.lucene.store.ByteBuffersDirectory;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
-import com.google.inject.Scopes;
import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
-public class LuceneSearchMailboxModule extends AbstractModule {
-
- @Override
- protected void configure() {
- install(new ReIndexingTaskSerializationModule());
-
- bind(LuceneMessageSearchIndex.class).in(Scopes.SINGLETON);
- bind(MessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
-
bind(ListeningMessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
-
- Multibinder.newSetBinder(binder(),
EventListener.ReactiveGroupEventListener.class)
- .addBinding()
- .to(LuceneMessageSearchIndex.class);
- }
+public class LuceneMemorySearchMailboxModule extends AbstractModule {
@Provides
@Singleton
- Directory provideDirectory(FileSystem fileSystem) throws IOException {
- return FSDirectory.open(fileSystem.getBasedir().toPath());
+ Directory provideDirectory() throws IOException {
+ return new ByteBuffersDirectory();
}
}
diff --git
a/server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
b/server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
similarity index 97%
rename from
server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
rename to
server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
index 4fab80c3a4..6f6d162647 100644
---
a/server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
+++
b/server/container/guice/lucene/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
@@ -39,8 +39,6 @@ public class LuceneSearchMailboxModule extends AbstractModule
{
@Override
protected void configure() {
- install(new ReIndexingTaskSerializationModule());
-
bind(LuceneMessageSearchIndex.class).in(Scopes.SINGLETON);
bind(MessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
bind(ListeningMessageSearchIndex.class).to(LuceneMessageSearchIndex.class);
@@ -55,4 +53,4 @@ public class LuceneSearchMailboxModule extends AbstractModule
{
Directory provideDirectory(FileSystem fileSystem) throws IOException {
return FSDirectory.open(fileSystem.getBasedir().toPath());
}
-}
+}
\ No newline at end of file
diff --git a/server/container/guice/pom.xml b/server/container/guice/pom.xml
index 82a57ef589..9cca7cd195 100644
--- a/server/container/guice/pom.xml
+++ b/server/container/guice/pom.xml
@@ -46,6 +46,7 @@
<module>distributed</module>
<module>jmx</module>
<module>jpa-common</module>
+ <module>lucene</module>
<module>mailbox</module>
<module>mailbox-jpa</module>
<module>mailbox-plugin-deleted-messages-vault</module>
@@ -140,6 +141,11 @@
<artifactId>james-server-guice-lmtp</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>james-server-guice-lucene</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-guice-mailbox</artifactId>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]