You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/08/29 03:14:32 UTC
[04/34] james-project git commit: JAMES-2521 Limit CLI mailbox
dependencies
JAMES-2521 Limit CLI mailbox dependencies
mailbox-adapter is mixing:
- adapters between mailbox and server concepts
- JMX apis
This mix was harmfull, as we ended up binding server and mailbox implementation in the CLI
Splitting both concepts in different modules solves the issue.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1be65de5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1be65de5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1be65de5
Branch: refs/heads/master
Commit: 1be65de590cb9a991a54cd94ae4436c5ed2b427c
Parents: eabfa17
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Aug 14 11:44:04 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Aug 29 10:11:46 2018 +0700
----------------------------------------------------------------------
dockerfiles/run/guice/jpa/Dockerfile | 2 +-
.../apache/james/mailbox/indexer/ReIndexer.java | 31 ++
.../james/mailbox/model/SerializableQuota.java | 83 +++++
.../mailbox/model/SerializableQuotaValue.java | 91 ++++++
.../store/mail/model/SerializableQuota.java | 84 -----
.../mail/model/SerializableQuotaValue.java | 91 ------
.../james/mailbox/store/probe/QuotaProbe.java | 4 +-
.../apache/james/mailbox/indexer/ReIndexer.java | 31 --
pom.xml | 5 +
server/container/cli/pom.xml | 6 +-
.../java/org/apache/james/cli/ServerCmd.java | 16 +-
.../james/cli/probe/impl/JmxMailboxProbe.java | 8 +-
.../james/cli/probe/impl/JmxQuotaProbe.java | 4 +-
.../org/apache/james/cli/ServerCmdTest.java | 4 +-
server/container/guice/jmx/pom.xml | 2 +-
.../org/apache/james/JPAJamesServerTest.java | 2 +-
server/container/guice/mailbox/pom.xml | 4 +
.../apache/james/modules/QuotaProbesImpl.java | 4 +-
.../mailbox/MailboxCopierManagement.java | 83 -----
.../mailbox/MailboxCopierManagementMBean.java | 47 ---
.../mailbox/MailboxManagerManagement.java | 221 -------------
.../mailbox/MailboxManagerManagementMBean.java | 76 -----
.../adapter/mailbox/MailboxManagerResolver.java | 31 --
.../MailboxManagerResolverException.java | 35 ---
.../james/adapter/mailbox/QuotaManagement.java | 207 -------------
.../adapter/mailbox/QuotaManagementMBean.java | 50 ---
.../adapter/mailbox/ReIndexerManagement.java | 67 ----
.../mailbox/ReIndexerManagementMBean.java | 30 --
.../adapter/mailbox/MailboxManagementTest.java | 308 -------------------
.../src/test/resources/eml/frnog.eml | 17 -
server/container/mailbox-jmx/pom.xml | 93 ++++++
.../mailbox/MailboxCopierManagement.java | 83 +++++
.../mailbox/MailboxCopierManagementMBean.java | 47 +++
.../mailbox/MailboxManagerManagement.java | 221 +++++++++++++
.../mailbox/MailboxManagerManagementMBean.java | 76 +++++
.../adapter/mailbox/MailboxManagerResolver.java | 31 ++
.../MailboxManagerResolverException.java | 35 +++
.../james/adapter/mailbox/QuotaManagement.java | 207 +++++++++++++
.../adapter/mailbox/QuotaManagementMBean.java | 50 +++
.../adapter/mailbox/ReIndexerManagement.java | 67 ++++
.../mailbox/ReIndexerManagementMBean.java | 30 ++
.../adapter/mailbox/MailboxManagementTest.java | 308 +++++++++++++++++++
.../src/test/resources/eml/frnog.eml | 17 +
server/container/spring/pom.xml | 4 +
server/pom.xml | 1 +
.../integration/GetMailboxesMethodTest.java | 3 +-
.../methods/integration/QuotaMailingTest.java | 3 +-
.../methods/integration/SendMDNMethodTest.java | 3 +-
.../integration/SetMessagesMethodTest.java | 2 +-
49 files changed, 1518 insertions(+), 1407 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/dockerfiles/run/guice/jpa/Dockerfile
----------------------------------------------------------------------
diff --git a/dockerfiles/run/guice/jpa/Dockerfile b/dockerfiles/run/guice/jpa/Dockerfile
index 913cfa9..b1dae96 100644
--- a/dockerfiles/run/guice/jpa/Dockerfile
+++ b/dockerfiles/run/guice/jpa/Dockerfile
@@ -27,4 +27,4 @@ ADD destination/conf /root/conf
VOLUME /logs
-ENTRYPOINT java -classpath '/root/james-server.jar:/root/james-server-jpa-guice.lib/*' -javaagent:/root/james-server-cli.lib/openjpa-3.0.0.jar -Dlogback.configurationFile=/root/conf/logback.xml -Dworking.directory=/root/ org.apache.james.JPAJamesServerMain
+ENTRYPOINT java -classpath '/root/james-server.jar:/root/james-server-jpa-guice.lib/*' -javaagent:/root/james-server-jpa-guice.lib/openjpa-3.0.0.jar -Dlogback.configurationFile=/root/conf/logback.xml -Dworking.directory=/root/ org.apache.james.JPAJamesServerMain
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
new file mode 100644
index 0000000..302e01c
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
@@ -0,0 +1,31 @@
+/****************************************************************
+ * 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.mailbox.indexer;
+
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxPath;
+
+public interface ReIndexer {
+
+ void reIndex(MailboxPath path) throws MailboxException;
+
+ void reIndex() throws MailboxException;
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuota.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuota.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuota.java
new file mode 100644
index 0000000..4e1ff1d
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuota.java
@@ -0,0 +1,83 @@
+/****************************************************************
+ * 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.mailbox.model;
+
+import java.io.Serializable;
+import java.util.Objects;
+import java.util.Optional;
+
+import org.apache.james.core.quota.QuotaValue;
+
+import com.google.common.base.MoreObjects;
+
+public class SerializableQuota<T extends QuotaValue<T>> implements Serializable {
+
+ public static final long UNLIMITED = -1;
+
+ public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(Quota<U> quota) {
+ return newInstance(quota.getUsed(), quota.getLimit());
+ }
+
+ public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(U used, U max) {
+ return new SerializableQuota<>(
+ new SerializableQuotaValue<>(used),
+ new SerializableQuotaValue<>(max)
+ );
+ }
+
+ private final SerializableQuotaValue<T> max;
+ private final SerializableQuotaValue<T> used;
+
+ private SerializableQuota(SerializableQuotaValue<T> used, SerializableQuotaValue<T> max) {
+ this.max = max;
+ this.used = used;
+ }
+
+ public Long encodeAsLong() {
+ return max.encodeAsLong();
+ }
+
+ public Long getUsed() {
+ return Optional.ofNullable(used).map(SerializableQuotaValue::encodeAsLong).orElse(null);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof SerializableQuota<?>) {
+ SerializableQuota<?> that = (SerializableQuota<?>) o;
+ return Objects.equals(max, that.max) &&
+ Objects.equals(used, that.used);
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(max, used);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("max", max)
+ .add("used", used)
+ .toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaValue.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaValue.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaValue.java
new file mode 100644
index 0000000..20689f9
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaValue.java
@@ -0,0 +1,91 @@
+/****************************************************************
+ * 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.mailbox.model;
+
+import java.io.Serializable;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Function;
+
+import org.apache.james.core.quota.QuotaValue;
+
+import com.google.common.base.MoreObjects;
+
+public class SerializableQuotaValue<T extends QuotaValue<T>> implements Serializable {
+
+ public static <U extends QuotaValue<U>> SerializableQuotaValue<U> valueOf(Optional<U> input) {
+ return new SerializableQuotaValue<>(input.orElse(null));
+ }
+
+ public static final long UNLIMITED = -1;
+
+ private final Long value;
+
+ public SerializableQuotaValue(T value) {
+ this(encodeAsLong(value));
+ }
+
+ SerializableQuotaValue(Long value) {
+ this.value = value;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof SerializableQuotaValue<?>) {
+ SerializableQuotaValue<?> that = (SerializableQuotaValue<?>) o;
+ return Objects.equals(value, that.value);
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("value", value)
+ .toString();
+ }
+
+ private static <U extends QuotaValue<U>> Long encodeAsLong(U quota) {
+ if (quota.isLimited()) {
+ return quota.asLong();
+ }
+ return UNLIMITED;
+ }
+
+ public Long encodeAsLong() {
+ return value;
+ }
+
+ public Optional<T> toValue(Function<Long, T> factory, T unlimited) {
+ Long longValue = encodeAsLong();
+ if (longValue == null) {
+ return Optional.empty();
+ }
+ if (longValue == UNLIMITED) {
+ return Optional.of(unlimited);
+ }
+ return Optional.of(factory.apply(longValue));
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
deleted file mode 100644
index 486aef3..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
+++ /dev/null
@@ -1,84 +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.mailbox.store.mail.model;
-
-import java.io.Serializable;
-import java.util.Objects;
-import java.util.Optional;
-
-import org.apache.james.core.quota.QuotaValue;
-import org.apache.james.mailbox.model.Quota;
-
-import com.google.common.base.MoreObjects;
-
-public class SerializableQuota<T extends QuotaValue<T>> implements Serializable {
-
- public static final long UNLIMITED = -1;
-
- public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(Quota<U> quota) {
- return newInstance(quota.getUsed(), quota.getLimit());
- }
-
- public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(U used, U max) {
- return new SerializableQuota<>(
- new SerializableQuotaValue<>(used),
- new SerializableQuotaValue<>(max)
- );
- }
-
- private final SerializableQuotaValue<T> max;
- private final SerializableQuotaValue<T> used;
-
- private SerializableQuota(SerializableQuotaValue<T> used, SerializableQuotaValue<T> max) {
- this.max = max;
- this.used = used;
- }
-
- public Long encodeAsLong() {
- return max.encodeAsLong();
- }
-
- public Long getUsed() {
- return Optional.ofNullable(used).map(SerializableQuotaValue::encodeAsLong).orElse(null);
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof SerializableQuota<?>) {
- SerializableQuota<?> that = (SerializableQuota<?>) o;
- return Objects.equals(max, that.max) &&
- Objects.equals(used, that.used);
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(max, used);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("max", max)
- .add("used", used)
- .toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuotaValue.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuotaValue.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuotaValue.java
deleted file mode 100644
index bec5271..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuotaValue.java
+++ /dev/null
@@ -1,91 +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.mailbox.store.mail.model;
-
-import java.io.Serializable;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Function;
-
-import org.apache.james.core.quota.QuotaValue;
-
-import com.google.common.base.MoreObjects;
-
-public class SerializableQuotaValue<T extends QuotaValue<T>> implements Serializable {
-
- public static <U extends QuotaValue<U>> SerializableQuotaValue<U> valueOf(Optional<U> input) {
- return new SerializableQuotaValue<>(input.orElse(null));
- }
-
- public static final long UNLIMITED = -1;
-
- private final Long value;
-
- public SerializableQuotaValue(T value) {
- this(encodeAsLong(value));
- }
-
- SerializableQuotaValue(Long value) {
- this.value = value;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof SerializableQuotaValue<?>) {
- SerializableQuotaValue<?> that = (SerializableQuotaValue<?>) o;
- return Objects.equals(value, that.value);
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(value);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("value", value)
- .toString();
- }
-
- private static <U extends QuotaValue<U>> Long encodeAsLong(U quota) {
- if (quota.isLimited()) {
- return quota.asLong();
- }
- return UNLIMITED;
- }
-
- public Long encodeAsLong() {
- return value;
- }
-
- public Optional<T> toValue(Function<Long, T> factory, T unlimited) {
- Long longValue = encodeAsLong();
- if (longValue == null) {
- return Optional.empty();
- }
- if (longValue == UNLIMITED) {
- return Optional.of(unlimited);
- }
- return Optional.of(factory.apply(longValue));
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java
index 451ee0e..36cdcf2 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java
@@ -22,8 +22,8 @@ package org.apache.james.mailbox.store.probe;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.mailbox.model.SerializableQuota;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
public interface QuotaProbe {
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
deleted file mode 100644
index 302e01c..0000000
--- a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
+++ /dev/null
@@ -1,31 +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.mailbox.indexer;
-
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxPath;
-
-public interface ReIndexer {
-
- void reIndex(MailboxPath path) throws MailboxException;
-
- void reIndex() throws MailboxException;
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 87575e5..6672d97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1349,6 +1349,11 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-server-mailbox-jmx</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>james-server-mailetcontainer-api</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/cli/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/cli/pom.xml b/server/container/cli/pom.xml
index b5ba568..2b18274 100644
--- a/server/container/cli/pom.xml
+++ b/server/container/cli/pom.xml
@@ -39,7 +39,11 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>james-server-mailbox-adapter</artifactId>
+ <artifactId>james-server-mailbox-jmx</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>apache-james-mailbox-store</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
index bd9526a..d757ea6 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
@@ -25,6 +25,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
+import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import org.apache.commons.cli.CommandLine;
@@ -33,7 +34,6 @@ import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.apache.commons.lang.time.StopWatch;
import org.apache.james.cli.exceptions.InvalidArgumentNumberException;
import org.apache.james.cli.exceptions.JamesCliException;
import org.apache.james.cli.exceptions.MissingCommandException;
@@ -47,8 +47,8 @@ import org.apache.james.cli.type.CmdType;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.core.quota.QuotaValue;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.mailbox.model.SerializableQuota;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
import org.apache.james.mailbox.store.probe.MailboxProbe;
import org.apache.james.mailbox.store.probe.QuotaProbe;
import org.apache.james.probe.DataProbe;
@@ -62,6 +62,7 @@ import org.slf4j.LoggerFactory;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
+import com.google.common.base.Stopwatch;
import com.google.common.base.Strings;
/**
@@ -110,20 +111,17 @@ public class ServerCmd {
}
public static void executeAndOutputToStream(String[] args, PrintStream printStream) throws Exception {
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
+ Stopwatch stopWatch = Stopwatch.createStarted();
CommandLine cmd = parseCommandLine(args);
JmxConnection jmxConnection = new JmxConnection(getHost(cmd), getPort(cmd));
CmdType cmdType = new ServerCmd(
new JmxDataProbe().connect(jmxConnection),
new JmxMailboxProbe().connect(jmxConnection),
new JmxQuotaProbe().connect(jmxConnection),
- new JmxSieveProbe().connect(jmxConnection)
- )
+ new JmxSieveProbe().connect(jmxConnection))
.executeCommandLine(cmd, printStream);
- stopWatch.split();
print(new String[] { Joiner.on(' ')
- .join(cmdType.getCommand(), "command executed sucessfully in", stopWatch.getSplitTime(), "ms.")},
+ .join(cmdType.getCommand(), "command executed sucessfully in", stopWatch.elapsed(TimeUnit.MILLISECONDS), "ms.")},
printStream);
stopWatch.stop();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
index 5003645..9e0d11f 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
@@ -27,7 +27,7 @@ import java.util.Date;
import javax.mail.Flags;
import javax.management.MalformedObjectNameException;
-import org.apache.commons.lang.NotImplementedException;
+import org.apache.commons.lang3.NotImplementedException;
import org.apache.james.adapter.mailbox.MailboxCopierManagementMBean;
import org.apache.james.adapter.mailbox.MailboxManagerManagementMBean;
import org.apache.james.adapter.mailbox.ReIndexerManagementMBean;
@@ -103,18 +103,18 @@ public class JmxMailboxProbe implements MailboxProbe, JmxProbe {
@Override
public Mailbox getMailbox(String namespace, String user, String name) {
- throw new NotImplementedException();
+ throw new NotImplementedException("Not implemented");
}
@Override
public ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, InputStream message,
Date internalDate, boolean isRecent, Flags flags) throws MailboxException {
- throw new NotImplementedException();
+ throw new NotImplementedException("Not implemented");
}
@Override
public Collection<String> listSubscriptions(String user) throws Exception {
- throw new NotImplementedException();
+ throw new NotImplementedException("Not implemented");
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java
index fd82f8c..5bcb8e9 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java
@@ -27,8 +27,8 @@ import org.apache.james.adapter.mailbox.QuotaManagementMBean;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.mailbox.model.SerializableQuota;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
import org.apache.james.mailbox.store.probe.QuotaProbe;
public class JmxQuotaProbe implements QuotaProbe, JmxProbe {
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
index 49119a0..b806e3b 100644
--- a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
+++ b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
@@ -37,8 +37,8 @@ import org.apache.james.cli.type.CmdType;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.mailbox.model.SerializableQuota;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
import org.apache.james.mailbox.store.probe.MailboxProbe;
import org.apache.james.mailbox.store.probe.QuotaProbe;
import org.apache.james.probe.DataProbe;
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/guice/jmx/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jmx/pom.xml b/server/container/guice/jmx/pom.xml
index 5dd7791..5487e34 100644
--- a/server/container/guice/jmx/pom.xml
+++ b/server/container/guice/jmx/pom.xml
@@ -50,7 +50,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>james-server-mailbox-adapter</artifactId>
+ <artifactId>james-server-mailbox-jmx</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java b/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
index 40c48c6..f428c51 100644
--- a/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
+++ b/server/container/guice/jpa-guice/src/test/java/org/apache/james/JPAJamesServerTest.java
@@ -24,7 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import org.apache.james.core.quota.QuotaSize;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
import org.apache.james.modules.QuotaProbesImpl;
import org.apache.james.modules.protocols.ImapGuiceProbe;
import org.apache.james.modules.protocols.SmtpGuiceProbe;
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/guice/mailbox/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/mailbox/pom.xml b/server/container/guice/mailbox/pom.xml
index b340af6..86a49aa 100644
--- a/server/container/guice/mailbox/pom.xml
+++ b/server/container/guice/mailbox/pom.xml
@@ -49,6 +49,10 @@
<artifactId>james-server-guice-utils</artifactId>
</dependency>
<dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>james-server-mailbox-adapter</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
index 18d1cfb..0ac0d9e 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
@@ -25,11 +25,11 @@ import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.SerializableQuota;
+import org.apache.james.mailbox.model.SerializableQuotaValue;
import org.apache.james.mailbox.quota.MaxQuotaManager;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
import org.apache.james.mailbox.store.probe.QuotaProbe;
import org.apache.james.utils.GuiceProbe;
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java
deleted file mode 100644
index 7769bc3..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java
+++ /dev/null
@@ -1,83 +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.adapter.mailbox;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.copier.MailboxCopier;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * {@link MailboxCopier} support via JMX
- */
-public class MailboxCopierManagement implements MailboxCopierManagementMBean {
-
- /**
- * The Logger.
- */
- private static final Logger log = LoggerFactory.getLogger(MailboxCopierManagement.class.getName());
-
- private MailboxCopier copier;
- private MailboxManagerResolver resolver;
-
- @Inject
- public void setMailboxCopier(@Named("mailboxcopier") MailboxCopier copier) {
- this.copier = copier;
- }
-
- @Inject
- public void setMailboxManagerResolver(MailboxManagerResolver resolver) {
- this.resolver = resolver;
- }
-
- @Override
- public Map<String, String> getMailboxManagerBeans() {
- Map<String, String> bMap = new HashMap<>();
- Map<String, MailboxManager> beans = resolver.getMailboxManagerBeans();
-
- for (Map.Entry<String, MailboxManager> entry : beans.entrySet()) {
- String name = entry.getValue().getClass().getName();
- bMap.put(entry.getKey(), name);
- }
-
- return bMap;
- }
-
- @Override
- public void copy(String srcBean, String dstBean) throws Exception {
- if (srcBean.equals(dstBean)) {
- throw new IllegalArgumentException("srcBean and dstBean can not have the same name!");
- }
- try {
- copier.copyMailboxes(resolver.resolveMailboxManager(srcBean), resolver.resolveMailboxManager(dstBean));
- } catch (MailboxManagerResolverException | MailboxException | IOException e) {
- log.error("An exception occured during the copy process", e);
- throw new Exception(e.getMessage());
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagementMBean.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagementMBean.java
deleted file mode 100644
index e60e78d..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagementMBean.java
+++ /dev/null
@@ -1,47 +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.adapter.mailbox;
-
-import java.util.Map;
-
-/**
- * Allow to copy {@link MailboxManager} contents from one to the other via JMX
- */
-public interface MailboxCopierManagementMBean {
-
- /**
- * Return a {@link Map} which contains the bean name of the registered
- * {@link MailboxManager} instances as keys and the classname of them as
- * values
- *
- * @return managers
- */
- Map<String, String> getMailboxManagerBeans();
-
- /**
- * Copy from srcBean to dstBean all messages
- *
- * @param srcBean
- * @param dstBean
- * @throws Exception
- * if copying failed
- */
- void copy(String srcBean, String dstBean) throws Exception;
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
deleted file mode 100644
index 79d68db..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ /dev/null
@@ -1,221 +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.adapter.mailbox;
-
-import java.io.Closeable;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.management.NotCompliantMBeanException;
-import javax.management.StandardMBean;
-
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MailboxMetaData;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.search.MailboxQuery;
-import org.apache.james.util.MDCBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Preconditions;
-
-/**
- * JMX managmenent for Mailboxes
- */
-public class MailboxManagerManagement extends StandardMBean implements MailboxManagerManagementMBean {
- private static final Logger LOGGER = LoggerFactory.getLogger(MailboxManagerManagement.class);
-
- private MailboxManager mailboxManager;
-
- @Inject
- public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) {
- this.mailboxManager = mailboxManager;
- }
-
- public MailboxManagerManagement() throws NotCompliantMBeanException {
- super(MailboxManagerManagementMBean.class);
- }
-
- @Override
- public boolean deleteMailboxes(String username) {
- checkString(username, "Username");
- MailboxSession session = null;
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "deleteMailboxes")
- .addContext("concernedUser", username)
- .build()) {
- session = mailboxManager.createSystemSession(username);
- mailboxManager.startProcessingRequest(session);
- List<MailboxMetaData> mList = retrieveAllUserMailboxes(session);
- for (MailboxMetaData aMList : mList) {
- mailboxManager.deleteMailbox(aMList.getPath(), session);
- }
- return true;
- } catch (MailboxException e) {
- LOGGER.error("Error while remove mailboxes for user {}", username, e);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- closeSession(session);
- }
- return false;
- }
-
- @Override
- public List<String> listMailboxes(String username) {
- checkString(username, "Username");
- List<String> boxes = new ArrayList<>();
- MailboxSession session = null;
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "listMailboxes")
- .addContext("concernedUser", username)
- .build()) {
- session = mailboxManager.createSystemSession(username);
- mailboxManager.startProcessingRequest(session);
- List<MailboxMetaData> mList = retrieveAllUserMailboxes(session);
- boxes = mList.stream()
- .map(aMList -> aMList.getPath().getName())
- .sorted()
- .collect(Guavate.toImmutableList());
- } catch (MailboxException e) {
- LOGGER.error("Error list mailboxes for user {}", username, e);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- closeSession(session);
- }
- return boxes;
- }
-
- @Override
- public MailboxId createMailbox(String namespace, String user, String name) {
- checkMailboxArguments(namespace, user, name);
- MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "createMailbox")
- .addContext("mailboxPath", mailboxPath.asString())
- .build()) {
- session = mailboxManager.createSystemSession(user);
- mailboxManager.startProcessingRequest(session);
- return mailboxManager.createMailbox(mailboxPath, session)
- .orElseThrow(() -> new MailboxException("mailbox name is probably empty"));
- } catch (Exception e) {
- LOGGER.error("Unable to create mailbox", e);
- throw new RuntimeException(e);
- } finally {
- closeSession(session);
- }
- }
-
- @Override
- public void deleteMailbox(String namespace, String user, String name) {
- checkMailboxArguments(namespace, user, name);
- MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "deleteMailbox")
- .addContext("mailboxPath", mailboxPath.asString())
- .build()) {
- session = mailboxManager.createSystemSession(user);
- mailboxManager.startProcessingRequest(session);
- mailboxManager.deleteMailbox(mailboxPath, session);
- } catch (Exception e) {
- LOGGER.error("Unable to create mailbox", e);
- } finally {
- closeSession(session);
- }
- }
-
- @Override
- public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) {
- checkMailboxArguments(namespace, user, name);
- checkString(emlPath, "email file path name");
-
- MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "importEmlFileToMailbox")
- .addContext("mailboxPath", mailboxPath.asString())
- .addContext("emlPath", emlPath)
- .build()) {
- session = mailboxManager.createSystemSession(user);
- mailboxManager.startProcessingRequest(session);
- MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, session);
- InputStream emlFileAsStream = new FileInputStream(emlPath);
- messageManager.appendMessage(MessageManager.AppendCommand.builder()
- .recent()
- .build(emlFileAsStream), session);
- } catch (Exception e) {
- LOGGER.error("Unable to create mailbox", e);
- } finally {
- closeSession(session);
- }
- }
-
- private void closeSession(MailboxSession session) {
- if (session != null) {
- mailboxManager.endProcessingRequest(session);
- try {
- mailboxManager.logout(session, true);
- } catch (MailboxException e) {
- LOGGER.error("Can not log session out", e);
- }
- }
- }
-
- private List<MailboxMetaData> retrieveAllUserMailboxes(MailboxSession session) throws MailboxException {
- return mailboxManager.search(
- MailboxQuery.privateMailboxesBuilder(session)
- .matchesAllMailboxNames()
- .build(),
- session);
- }
-
- private void checkMailboxArguments(String namespace, String user, String name) {
- checkString(namespace, "mailbox path namespace");
- checkString(user, "mailbox path user");
- checkString(name, "mailbox name");
- }
-
- private void checkString(String argument, String role) {
- Preconditions.checkNotNull(argument, "Provided " + role + " should not be null.");
- Preconditions.checkArgument(!argument.equals(""), "Provided " + role + " should not be empty.");
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
deleted file mode 100644
index ca96dca..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
+++ /dev/null
@@ -1,76 +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.adapter.mailbox;
-
-import java.util.List;
-
-import org.apache.james.mailbox.model.MailboxId;
-
-/**
- * JMX MBean for Mailbox management
- */
-public interface MailboxManagerManagementMBean {
-
- /**
- * Delete all Mailboxes which belong to the user
- *
- * @param username
- * @return successful
- */
- boolean deleteMailboxes(String username);
-
- /**
- * List all mailboxes for a user
- *
- * @param username
- * @return mailboxes
- */
- List<String> listMailboxes(String username);
-
- /**
- * Create a mailbox
- * @param namespace Namespace of the created mailbox
- * @param user User of the created mailbox
- * @param name Name of the created mailbox
- */
- MailboxId createMailbox(String namespace, String user, String name);
-
- /**
- * Delete the given mailbox
- *
- * @param namespace Namespace of the mailbox to delete
- * @param user User the mailbox to delete belongs to
- * @param name Name of the mailbox to delete
- */
- void deleteMailbox(String namespace, String user, String name);
-
- /**
- * Import Eml File to the given mailbox
- *
- * @param namespace
- * Namespace of the mailbox to import email file
- * @param user
- * User the mailbox to import email file belongs to
- * @param name
- * Name of the mailbox to import email file
- * @param emlpath
- * Name of the email file of this URL
- */
- void importEmlFileToMailbox(String namespace, String user, String name, String emlpath);
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolver.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolver.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolver.java
deleted file mode 100644
index 46c2088..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolver.java
+++ /dev/null
@@ -1,31 +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.adapter.mailbox;
-
-import java.util.Map;
-
-import org.apache.james.mailbox.MailboxManager;
-
-public interface MailboxManagerResolver {
-
- MailboxManager resolveMailboxManager(String mailboxManagerClassName);
-
- Map<String, MailboxManager> getMailboxManagerBeans();
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java
deleted file mode 100644
index d80f3ca..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java
+++ /dev/null
@@ -1,35 +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.adapter.mailbox;
-
-public class MailboxManagerResolverException extends RuntimeException {
-
- public MailboxManagerResolverException() {
- super();
- }
-
- public MailboxManagerResolverException(Throwable cause) {
- super(cause);
- }
-
- public MailboxManagerResolverException(String message) {
- super(message);
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
deleted file mode 100644
index 25fef15..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
+++ /dev/null
@@ -1,207 +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.adapter.mailbox;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-import javax.inject.Inject;
-
-import org.apache.james.core.quota.QuotaCount;
-import org.apache.james.core.quota.QuotaSize;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.quota.MaxQuotaManager;
-import org.apache.james.mailbox.quota.QuotaManager;
-import org.apache.james.mailbox.quota.QuotaRootResolver;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
-import org.apache.james.util.MDCBuilder;
-
-import com.github.fge.lambdas.Throwing;
-
-public class QuotaManagement implements QuotaManagementMBean {
-
- private final QuotaManager quotaManager;
- private final MaxQuotaManager maxQuotaManager;
- private final QuotaRootResolver quotaRootResolver;
-
- @Inject
- public QuotaManagement(QuotaManager quotaManager, MaxQuotaManager maxQuotaManager, QuotaRootResolver quotaRootResolver) {
- this.quotaManager = quotaManager;
- this.maxQuotaManager = maxQuotaManager;
- this.quotaRootResolver = quotaRootResolver;
- }
-
- @Override
- public String getQuotaRoot(String namespace, String user, String name) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getQuotaRoot")
- .build()) {
- return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuotaValue<QuotaCount> getMaxMessageCount(String quotaRoot) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getMaxMessageCount")
- .build()) {
- return SerializableQuotaValue.valueOf(maxQuotaManager.getMaxMessage(quotaRootResolver.fromString(quotaRoot)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuotaValue<QuotaSize> getMaxStorage(String quotaRoot) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getMaxStorage")
- .build()) {
- return SerializableQuotaValue.valueOf(maxQuotaManager.getMaxStorage(quotaRootResolver.fromString(quotaRoot)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuotaValue<QuotaCount> getGlobalMaxMessageCount() throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getGlobalMaxMessageCount")
- .build()) {
- return SerializableQuotaValue.valueOf(maxQuotaManager.getGlobalMaxMessage());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuotaValue<QuotaSize> getGlobalMaxStorage() throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getGlobalMaxStorage")
- .build()) {
- return SerializableQuotaValue.valueOf(maxQuotaManager.getGlobalMaxStorage());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void setMaxMessageCount(String quotaRoot, SerializableQuotaValue<QuotaCount> maxMessageCount) {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "setMaxMessageCount")
- .build()) {
- maxMessageCount.toValue(QuotaCount::count, QuotaCount.unlimited())
- .ifPresent(
- Throwing.consumer((QuotaCount value) ->
- maxQuotaManager.setMaxMessage(quotaRootResolver.fromString(quotaRoot), value))
- .sneakyThrow());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void setMaxStorage(String quotaRoot, SerializableQuotaValue<QuotaSize> maxSize) {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "setMaxStorage")
- .build()) {
- maxSize.toValue(QuotaSize::size, QuotaSize.unlimited())
- .ifPresent(
- Throwing.consumer((QuotaSize value) ->
- maxQuotaManager.setMaxStorage(quotaRootResolver.fromString(quotaRoot), value))
- .sneakyThrow());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void setGlobalMaxMessageCount(SerializableQuotaValue<QuotaCount> maxGlobalMessageCount) {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "setGlobalMaxMessageCount")
- .build()) {
- maxGlobalMessageCount
- .toValue(QuotaCount::count, QuotaCount.unlimited())
- .ifPresent(Throwing.consumer(maxQuotaManager::setGlobalMaxMessage).sneakyThrow());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void setGlobalMaxStorage(SerializableQuotaValue<QuotaSize> maxGlobalSize) {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "setGlobalMaxStorage")
- .build()) {
- maxGlobalSize
- .toValue(QuotaSize::size, QuotaSize.unlimited())
- .ifPresent(Throwing.consumer(maxQuotaManager::setGlobalMaxStorage).sneakyThrow());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuota<QuotaCount> getMessageCountQuota(String quotaRoot) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getMessageCountQuota")
- .build()) {
- return SerializableQuota.newInstance(quotaManager.getMessageQuota(quotaRootResolver.fromString(quotaRoot)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public SerializableQuota<QuotaSize> getStorageQuota(String quotaRoot) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "getStorageQuota")
- .build()) {
- return SerializableQuota.newInstance(quotaManager.getStorageQuota(quotaRootResolver.fromString(quotaRoot)));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagementMBean.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagementMBean.java
deleted file mode 100644
index 5263988..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagementMBean.java
+++ /dev/null
@@ -1,50 +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.adapter.mailbox;
-
-import org.apache.james.core.quota.QuotaCount;
-import org.apache.james.core.quota.QuotaSize;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.SerializableQuota;
-import org.apache.james.mailbox.store.mail.model.SerializableQuotaValue;
-
-public interface QuotaManagementMBean {
- String getQuotaRoot(String namespace, String user, String name) throws MailboxException;
-
- SerializableQuota<QuotaCount> getMessageCountQuota(String quotaRoot) throws MailboxException;
-
- SerializableQuota<QuotaSize> getStorageQuota(String quotaRoot) throws MailboxException;
-
- SerializableQuotaValue<QuotaCount> getMaxMessageCount(String quotaRoot) throws MailboxException;
-
- SerializableQuotaValue<QuotaSize> getMaxStorage(String quotaRoot) throws MailboxException;
-
- SerializableQuotaValue<QuotaCount> getGlobalMaxMessageCount() throws MailboxException;
-
- SerializableQuotaValue<QuotaSize> getGlobalMaxStorage() throws MailboxException;
-
- void setMaxMessageCount(String quotaRoot, SerializableQuotaValue<QuotaCount> maxMessageCount) throws MailboxException;
-
- void setMaxStorage(String quotaRoot, SerializableQuotaValue<QuotaSize> maxSize) throws MailboxException;
-
- void setGlobalMaxMessageCount(SerializableQuotaValue<QuotaCount> maxGlobalMessageCount) throws MailboxException;
-
- void setGlobalMaxStorage(SerializableQuotaValue<QuotaSize> maxGlobalSize) throws MailboxException;
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/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
deleted file mode 100644
index c5110a8..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ /dev/null
@@ -1,67 +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.adapter.mailbox;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-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;
-import org.apache.james.util.MDCBuilder;
-
-public class ReIndexerManagement implements ReIndexerManagementMBean {
-
- private ReIndexer reIndexer;
-
- @Inject
- public void setReIndexer(@Named("reindexer") ReIndexer reIndexer) {
- this.reIndexer = reIndexer;
- }
-
- @Override
- public void reIndex(String namespace, String user, String name) throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "reIndex")
- .build()) {
- reIndexer.reIndex(new MailboxPath(namespace, user, name));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void reIndex() throws MailboxException {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, "CLI")
- .addContext(MDCBuilder.ACTION, "reIndex")
- .build()) {
- reIndexer.reIndex();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/1be65de5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagementMBean.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagementMBean.java
deleted file mode 100644
index ec923ae..0000000
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagementMBean.java
+++ /dev/null
@@ -1,30 +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.adapter.mailbox;
-
-import org.apache.james.mailbox.exception.MailboxException;
-
-public interface ReIndexerManagementMBean {
-
- void reIndex(String namespace, String user, String name) throws MailboxException;
-
- void reIndex() throws MailboxException;
-
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org