JAMES-1810 Register ReIndexer in JMX server

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b57b4447
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b57b4447
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b57b4447

Branch: refs/heads/master
Commit: b57b4447484e16f45ce995de72bea1eaa6bf376b
Parents: 57fa9dc
Author: Antoine Duprat <[email protected]>
Authored: Tue Jul 26 11:20:12 2016 +0200
Committer: Antoine Duprat <[email protected]>
Committed: Tue Jul 26 14:15:03 2016 +0200

----------------------------------------------------------------------
 .../apache/james/mailbox/indexer/ReIndexerImpl.java    |  3 +++
 .../modules/mailbox/ElasticSearchMailboxModule.java    |  2 ++
 .../apache/james/modules/server/JMXServerModule.java   | 13 ++++++++++++-
 .../james/adapter/mailbox/ReIndexerManagement.java     |  8 ++++++--
 .../META-INF/org/apache/james/spring-server.xml        |  4 +---
 5 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b57b4447/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
----------------------------------------------------------------------
diff --git 
a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
 
b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
index 6f650fa..f6da016 100644
--- 
a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
+++ 
b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
@@ -23,6 +23,8 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
+import javax.inject.Inject;
+
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -65,6 +67,7 @@ public class ReIndexerImpl implements ReIndexer {
     private final ListeningMessageSearchIndex messageSearchIndex;
     private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
 
+    @Inject
     public ReIndexerImpl(MailboxManager mailboxManager,
                          ListeningMessageSearchIndex messageSearchIndex,
                          MailboxSessionMapperFactory 
mailboxSessionMapperFactory) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b57b4447/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
index 2d6fd07..6151a9a 100644
--- 
a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
+++ 
b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
@@ -33,6 +33,7 @@ import 
org.apache.james.mailbox.elasticsearch.IndexCreationFactory;
 import org.apache.james.mailbox.elasticsearch.NodeMappingFactory;
 import 
org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.extractor.TextExtractor;
+import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 import org.apache.james.mailbox.tika.extractor.TikaTextExtractor;
 import org.elasticsearch.client.Client;
@@ -52,6 +53,7 @@ public class ElasticSearchMailboxModule extends 
AbstractModule {
     protected void configure() {
         
bind(ElasticSearchListeningMessageSearchIndex.class).in(Scopes.SINGLETON);
         
bind(MessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
+        
bind(ListeningMessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
 
         bind(TikaTextExtractor.class).in(Scopes.SINGLETON);
         bind(TextExtractor.class).to(TikaTextExtractor.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/b57b4447/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
 
b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
index cefbb8e..9d66b8a 100644
--- 
a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
+++ 
b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
@@ -26,11 +26,15 @@ import 
org.apache.james.adapter.mailbox.MailboxCopierManagementMBean;
 import org.apache.james.adapter.mailbox.MailboxManagerManagement;
 import org.apache.james.adapter.mailbox.MailboxManagerManagementMBean;
 import org.apache.james.adapter.mailbox.MailboxManagerResolver;
+import org.apache.james.adapter.mailbox.ReIndexerManagement;
+import org.apache.james.adapter.mailbox.ReIndexerManagementMBean;
 import org.apache.james.domainlist.api.DomainListManagementMBean;
 import org.apache.james.domainlist.lib.DomainListManagement;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.mailbox.copier.MailboxCopier;
 import org.apache.james.mailbox.copier.MailboxCopierImpl;
+import org.apache.james.mailbox.indexer.ReIndexer;
+import org.apache.james.mailbox.indexer.ReIndexerImpl;
 import org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean;
 import org.apache.james.mailetcontainer.impl.JamesMailSpooler;
 import org.apache.james.rrt.api.RecipientRewriteTableManagementMBean;
@@ -55,6 +59,7 @@ public class JMXServerModule extends AbstractModule {
     private static final String JMX_COMPONENT_RECIPIENTREWRITETABLE = 
"org.apache.james:type=component,name=recipientrewritetable";
     private static final String JMX_COMPONENT_NAME_MAILBOXMANAGERBEAN = 
"org.apache.james:type=component,name=mailboxmanagerbean";
     private static final String JMX_COMPONENT_MAILBOXCOPIER = 
"org.apache.james:type=component,name=mailboxcopier";
+    private static final String JMX_COMPONENT_REINDEXER = 
"org.apache.james:type=component,name=reindexerbean";
 
     @Override
     protected void configure() {
@@ -66,6 +71,8 @@ public class JMXServerModule extends AbstractModule {
         
bind(MailboxManagerManagementMBean.class).to(MailboxManagerManagement.class);
         
bind(RecipientRewriteTableManagementMBean.class).to(RecipientRewriteTableManagement.class);
         bind(MailSpoolerMBean.class).to(JamesMailSpooler.class);
+        
bind(ReIndexer.class).annotatedWith(Names.named("reindexer")).to(ReIndexerImpl.class);
+        bind(ReIndexerManagementMBean.class).to(ReIndexerManagement.class);
         Multibinder.newSetBinder(binder(), 
ConfigurationPerformer.class).addBinding().to(JMXModuleConfigurationPerformer.class);
     }
 
@@ -78,6 +85,7 @@ public class JMXServerModule extends AbstractModule {
         private final RecipientRewriteTableManagementMBean 
recipientRewriteTableManagementMBean;
         private final MailboxManagerManagementMBean 
mailboxManagerManagementMBean;
         private final MailboxCopierManagementMBean 
mailboxCopierManagementMBean;
+        private final ReIndexerManagementMBean reIndexerManagementMBean;
 
         @Inject
         public JMXModuleConfigurationPerformer(JMXServer jmxServer,
@@ -85,13 +93,15 @@ public class JMXServerModule extends AbstractModule {
                                                UsersRepositoryManagementMBean 
usersRepositoryManagementMBean,
                                                
RecipientRewriteTableManagementMBean recipientRewriteTableManagementMBean,
                                                MailboxManagerManagementMBean 
mailboxManagerManagementMBean,
-                                               MailboxCopierManagementMBean 
mailboxCopierManagementMBean) {
+                                               MailboxCopierManagementMBean 
mailboxCopierManagementMBean,
+                                               ReIndexerManagementMBean 
reIndexerManagementMBean) {
             this.jmxServer = jmxServer;
             this.domainListManagementMBean = domainListManagementMBean;
             this.usersRepositoryManagementMBean = 
usersRepositoryManagementMBean;
             this.recipientRewriteTableManagementMBean = 
recipientRewriteTableManagementMBean;
             this.mailboxManagerManagementMBean = mailboxManagerManagementMBean;
             this.mailboxCopierManagementMBean = mailboxCopierManagementMBean;
+            this.reIndexerManagementMBean = reIndexerManagementMBean;
         }
 
         @Override
@@ -103,6 +113,7 @@ public class JMXServerModule extends AbstractModule {
                 jmxServer.register(JMX_COMPONENT_RECIPIENTREWRITETABLE, 
recipientRewriteTableManagementMBean);
                 jmxServer.register(JMX_COMPONENT_NAME_MAILBOXMANAGERBEAN, 
mailboxManagerManagementMBean);
                 jmxServer.register(JMX_COMPONENT_MAILBOXCOPIER, 
mailboxCopierManagementMBean);
+                jmxServer.register(JMX_COMPONENT_REINDEXER, 
reIndexerManagementMBean);
             } catch (Exception e) {
                 Throwables.propagate(e);
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b57b4447/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
----------------------------------------------------------------------
diff --git 
a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
 
b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
index 882f301..6ca3e0a 100644
--- 
a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ 
b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
@@ -19,15 +19,19 @@
 
 package org.apache.james.adapter.mailbox;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.indexer.ReIndexer;
 import org.apache.james.mailbox.model.MailboxPath;
 
 public class ReIndexerManagement implements ReIndexerManagementMBean {
 
-    private final ReIndexer reIndexer;
+    private ReIndexer reIndexer;
 
-    public ReIndexerManagement(ReIndexer reIndexer) {
+    @Inject
+    public void setReIndexer(@Named("reindexer") ReIndexer reIndexer) {
         this.reIndexer = reIndexer;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/b57b4447/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
----------------------------------------------------------------------
diff --git 
a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
 
b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
index be39003..2175f47 100644
--- 
a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
+++ 
b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
@@ -274,9 +274,7 @@
         <property name="quotaRootResolver" ref="quotaRootResolver"/>
         <property name="quotaManager" ref="quotaManager"/>
     </bean>
-    <bean id="reindexermanagement" 
class="org.apache.james.adapter.mailbox.ReIndexerManagement">
-        <constructor-arg index="0" ref="reindexer"/>
-    </bean>
+    <bean id="reindexermanagement" 
class="org.apache.james.adapter.mailbox.ReIndexerManagement"/>
     <bean id="sievemanagerbean" 
class="org.apache.james.sieverepository.lib.SieveRepositoryManagement"/>
     <!--
         <bean id="james23importermanagement" 
class="org.apache.james.container.spring.tool.James23ImporterManagement" />


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to