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 rc...@apache.org on 2019/12/06 09:06:25 UTC

[james-project] branch master updated (86ca492 -> e9e97e0)

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from 86ca492  JAMES-2991 Add tests for hasAttachment compute property
     new 2397b99  [refactoring] clean up array copy
     new e9e97e0  JAMES-3000 bump scala version to 2.13.1

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../eventstore/memory/InMemoryEventStore.scala             |  6 +++---
 .../src/main/scala/org/apache/james/event/json/DTOs.scala  |  2 +-
 .../org/apache/james/event/json/EventSerializer.scala      | 14 +++++++-------
 pom.xml                                                    |  4 ++--
 .../netty/AbstractSSLAwareChannelPipelineFactory.java      | 11 +++--------
 .../CassandraTaskExecutionDetailsProjection.scala          |  2 +-
 .../task/eventsourcing/EventSourcingTaskManager.scala      |  2 +-
 .../task/eventsourcing/ScalaEventSourcingSystem.scala      |  2 +-
 .../apache/james/task/eventsourcing/TaskAggregate.scala    |  3 ++-
 .../eventsourcing/TaskExecutionDetailsProjection.scala     |  2 +-
 .../TaskExecutionDetailsProjectionContract.java            |  8 ++++----
 11 files changed, 26 insertions(+), 30 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 01/02: [refactoring] clean up array copy

Posted by rc...@apache.org.
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

commit 2397b99a0f71aecce23ee557a76e41e1b78718c5
Author: Rémi KOWALSKI <rk...@linagora.com>
AuthorDate: Thu Dec 5 15:54:02 2019 +0100

    [refactoring] clean up array copy
---
 .../netty/AbstractSSLAwareChannelPipelineFactory.java         | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java
index 5dee691..4631f28 100644
--- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java
+++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java
@@ -21,6 +21,7 @@ package org.apache.james.protocols.netty;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
 
+import org.apache.commons.lang3.ArrayUtils;
 import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.group.ChannelGroup;
 import org.jboss.netty.handler.execution.ExecutionHandler;
@@ -46,17 +47,11 @@ public abstract class AbstractSSLAwareChannelPipelineFactory extends AbstractCha
             ChannelHandlerFactory frameHandlerFactory, HashedWheelTimer hashedWheelTimer) {
         this(timeout, maxConnections, maxConnectsPerIp, group, eHandler, frameHandlerFactory, hashedWheelTimer);
         
-        // We need to copy the String array becuase of possible security issues.
+        // We need to copy the String array because of possible security issues.
         // See https://issues.apache.org/jira/browse/PROTOCOLS-18
-        if (enabledCipherSuites != null) {
-            this.enabledCipherSuites = new String[enabledCipherSuites.length];
-            for (int i = 0; i < enabledCipherSuites.length; i++) {
-                this.enabledCipherSuites[i] = new String(enabledCipherSuites[i]);
-            }
-        }
+        this.enabledCipherSuites = ArrayUtils.clone(enabledCipherSuites);
     }
 
-    
     @Override
     public ChannelPipeline getPipeline() throws Exception {
         ChannelPipeline pipeline =  super.getPipeline();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 02/02: JAMES-3000 bump scala version to 2.13.1

Posted by rc...@apache.org.
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

commit e9e97e07dafdcd4c7bbbb6972999766bcfb33fd1
Author: Rémi KOWALSKI <rk...@linagora.com>
AuthorDate: Thu Dec 5 12:01:33 2019 +0100

    JAMES-3000 bump scala version to 2.13.1
---
 .../eventstore/memory/InMemoryEventStore.scala             |  6 +++---
 .../src/main/scala/org/apache/james/event/json/DTOs.scala  |  2 +-
 .../org/apache/james/event/json/EventSerializer.scala      | 14 +++++++-------
 pom.xml                                                    |  4 ++--
 .../CassandraTaskExecutionDetailsProjection.scala          |  2 +-
 .../task/eventsourcing/EventSourcingTaskManager.scala      |  2 +-
 .../task/eventsourcing/ScalaEventSourcingSystem.scala      |  2 +-
 .../apache/james/task/eventsourcing/TaskAggregate.scala    |  3 ++-
 .../eventsourcing/TaskExecutionDetailsProjection.scala     |  2 +-
 .../TaskExecutionDetailsProjectionContract.java            |  8 ++++----
 10 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/event-sourcing/event-store-memory/src/main/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStore.scala b/event-sourcing/event-store-memory/src/main/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStore.scala
index d7bf451..155d90b 100644
--- a/event-sourcing/event-store-memory/src/main/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStore.scala
+++ b/event-sourcing/event-store-memory/src/main/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStore.scala
@@ -25,12 +25,12 @@ import com.google.common.base.Preconditions
 import org.apache.james.eventsourcing.eventstore.{EventStore, History}
 import org.apache.james.eventsourcing.{AggregateId, Event}
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
 
 class InMemoryEventStore() extends EventStore {
   private val storeRef: AtomicReference[Map[AggregateId, History]] = new AtomicReference(Map().withDefault(_ => History.empty()))
 
-  override def appendAll(events: util.List[Event]): Unit = if (!events.isEmpty) appendAll(events.asScala)
+  override def appendAll(events: util.List[Event]): Unit = if (!events.isEmpty) appendAll(events.asScala.toSeq)
 
   override def getEventsOfAggregate(aggregateId: AggregateId): History = {
     Preconditions.checkNotNull(aggregateId)
@@ -40,7 +40,7 @@ class InMemoryEventStore() extends EventStore {
   def appendAll(events: Seq[Event]): Unit = {
     val aggregateId: AggregateId = getAggregateId(events)
     storeRef.updateAndGet(store => {
-      val updatedHistory = History.of((store(aggregateId).getEvents.asScala ++ events).asJava)
+      val updatedHistory = History.of((store(aggregateId).getEvents.asScala.toSeq ++ events).asJava)
       store.updated(aggregateId, updatedHistory)
     })
   }
diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
index f18690a..97318f8 100644
--- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
+++ b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
@@ -31,7 +31,7 @@ import org.apache.james.mailbox.acl.{ACLDiff => JavaACLDiff}
 import org.apache.james.mailbox.model.{MailboxACL, MessageId, MailboxPath => JavaMailboxPath, MessageMetaData => JavaMessageMetaData, Quota => JavaQuota, UpdatedFlags => JavaUpdatedFlags}
 import org.apache.james.mailbox.{FlagsBuilder, MessageUid, ModSeq}
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
 
 object DTOs {
 
diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala
index e2001dc..062b6c3 100644
--- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala
+++ b/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala
@@ -37,7 +37,7 @@ import org.apache.james.mailbox.quota.QuotaRootDeserializer
 import org.apache.james.mailbox.{MessageUid, ModSeq}
 import play.api.libs.json._
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
 
 private sealed trait Event {
   def toJava: JavaEvent
@@ -162,7 +162,7 @@ private object ScalaConverter {
     user = event.getUsername,
     path = MailboxPath.fromJava(event.getMailboxPath),
     mailboxId = event.getMailboxId,
-    added = event.getAdded.asScala.mapValues(DTOs.MessageMetaData.fromJava).toMap)
+    added = event.getAdded.asScala.view.mapValues(DTOs.MessageMetaData.fromJava).toMap)
 
   private def toScala(event: JavaExpunged): DTO.Expunged = DTO.Expunged(
     eventId = event.getEventId,
@@ -170,14 +170,14 @@ private object ScalaConverter {
     user = event.getUsername,
     path = MailboxPath.fromJava(event.getMailboxPath),
     mailboxId = event.getMailboxId,
-    expunged = event.getExpunged.asScala.mapValues(DTOs.MessageMetaData.fromJava).toMap)
+    expunged = event.getExpunged.asScala.view.mapValues(DTOs.MessageMetaData.fromJava).toMap)
 
   private def toScala(event: JavaMessageMoveEvent): DTO.MessageMoveEvent = DTO.MessageMoveEvent(
     eventId = event.getEventId,
     user = event.getUsername,
-    previousMailboxIds = event.getMessageMoves.getPreviousMailboxIds.asScala,
-    targetMailboxIds = event.getMessageMoves.getTargetMailboxIds.asScala,
-    messageIds = event.getMessageIds.asScala)
+    previousMailboxIds = event.getMessageMoves.getPreviousMailboxIds.asScala.toSet,
+    targetMailboxIds = event.getMessageMoves.getTargetMailboxIds.asScala.toSet,
+    messageIds = event.getMessageIds.asScala.toSet)
 
   private def toScala(event: JavaFlagsUpdated): DTO.FlagsUpdated = DTO.FlagsUpdated(
     eventId = event.getEventId,
@@ -185,7 +185,7 @@ private object ScalaConverter {
     user = event.getUsername,
     path = DTOs.MailboxPath.fromJava(event.getMailboxPath),
     mailboxId = event.getMailboxId,
-    updatedFlags = event.getUpdatedFlags.asScala.map(DTOs.UpdatedFlags.toUpdatedFlags).toList)
+    updatedFlags = event.getUpdatedFlags.asScala.toList.map(DTOs.UpdatedFlags.toUpdatedFlags))
 
   def toScala(javaEvent: JavaEvent): Event = javaEvent match {
     case e: JavaAdded => toScala(e)
diff --git a/pom.xml b/pom.xml
index 1f02df5..e674629 100644
--- a/pom.xml
+++ b/pom.xml
@@ -648,8 +648,8 @@
 
         <bouncycastle.version>1.62</bouncycastle.version>
 
-        <scala.base>2.12</scala.base>
-        <scala.version>${scala.base}.8</scala.version>
+        <scala.base>2.13</scala.base>
+        <scala.version>${scala.base}.1</scala.version>
 
         <doclint>none</doclint>
     </properties>
diff --git a/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjection.scala b/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjection.scala
index dfbb71c..51ae992 100644
--- a/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjection.scala
+++ b/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjection.scala
@@ -23,8 +23,8 @@ import javax.inject.Inject
 import org.apache.james.task.eventsourcing.TaskExecutionDetailsProjection
 import org.apache.james.task.{TaskExecutionDetails, TaskId}
 
-import scala.collection.JavaConverters._
 import scala.compat.java8.OptionConverters._
+import scala.jdk.CollectionConverters._
 
 class CassandraTaskExecutionDetailsProjection  @Inject()(cassandraTaskExecutionDetailsProjectionDAO: CassandraTaskExecutionDetailsProjectionDAO) extends TaskExecutionDetailsProjection {
 
diff --git a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/EventSourcingTaskManager.scala b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/EventSourcingTaskManager.scala
index fe2d869..41eeb88 100644
--- a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/EventSourcingTaskManager.scala
+++ b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/EventSourcingTaskManager.scala
@@ -50,7 +50,7 @@ class EventSourcingTaskManager @Inject @VisibleForTesting private[eventsourcing]
     case _ =>
   }
 
-  import scala.collection.JavaConverters._
+  import scala.jdk.CollectionConverters._
 
   private val loadHistory: AggregateId => History = eventStore.getEventsOfAggregate _
   private val eventSourcingSystem = ScalaEventSourcingSystem(
diff --git a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/ScalaEventSourcingSystem.scala b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/ScalaEventSourcingSystem.scala
index 16178b3..2271854 100644
--- a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/ScalaEventSourcingSystem.scala
+++ b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/ScalaEventSourcingSystem.scala
@@ -22,7 +22,7 @@ import org.apache.james.eventsourcing.eventstore.EventStore
 import org.apache.james.eventsourcing.{CommandHandler, EventSourcingSystem, Subscriber}
 
 object ScalaEventSourcingSystem {
-  import scala.collection.JavaConverters._
+  import scala.jdk.CollectionConverters._
   def apply(handlers: Set[CommandHandler[_]], subscribers: Set[Subscriber], eventStore: EventStore): EventSourcingSystem =
     new EventSourcingSystem(handlers.asJava, subscribers.asJava, eventStore)
 }
diff --git a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregate.scala b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregate.scala
index d73cf65..9ea48fe 100644
--- a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregate.scala
+++ b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregate.scala
@@ -27,7 +27,7 @@ import org.apache.james.task.TaskExecutionDetails.AdditionalInformation
 import org.apache.james.task.TaskManager.Status
 import org.apache.james.task.{Hostname, Task}
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
 
 class TaskAggregate private(val aggregateId: TaskAggregateId, private val history: History) {
 
@@ -39,6 +39,7 @@ class TaskAggregate private(val aggregateId: TaskAggregateId, private val histor
   private val currentDecisionProjection: DecisionProjection = history
     .getEvents
     .asScala
+    .toSeq
     .tail
     .foldLeft(DecisionProjection.initial(initialEvent))((decision, event) => decision.update(event))
 
diff --git a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjection.scala b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjection.scala
index df28da4..2986410 100644
--- a/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjection.scala
+++ b/server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjection.scala
@@ -24,7 +24,7 @@ import org.apache.james.eventsourcing.Subscriber
 import org.apache.james.task.{Hostname, TaskExecutionDetails, TaskId}
 import scala.compat.java8.OptionConverters._
 
-import scala.collection.JavaConverters._
+import scala.jdk.CollectionConverters._
 
 trait TaskExecutionDetailsProjection {
   def asSubscriber(hostname: Hostname): Subscriber = {
diff --git a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjectionContract.java b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjectionContract.java
index 0d0fefb..6cfd024 100644
--- a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjectionContract.java
+++ b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjectionContract.java
@@ -26,6 +26,7 @@ import static org.apache.james.task.TaskExecutionDetailsFixture.TASK_EXECUTION_D
 import static org.apache.james.task.TaskExecutionDetailsFixture.TASK_EXECUTION_DETAILS_WITH_ADDITIONAL_INFORMATION;
 import static org.apache.james.task.TaskExecutionDetailsFixture.TASK_ID;
 import static org.assertj.core.api.Assertions.assertThat;
+import static scala.jdk.javaapi.CollectionConverters.asJava;
 
 import java.util.List;
 import java.util.Optional;
@@ -33,7 +34,6 @@ import java.util.Optional;
 import org.apache.james.task.TaskExecutionDetails;
 import org.junit.jupiter.api.Test;
 
-import scala.collection.JavaConverters;
 import scala.compat.java8.OptionConverters;
 
 public interface TaskExecutionDetailsProjectionContract {
@@ -79,7 +79,7 @@ public interface TaskExecutionDetailsProjectionContract {
     @Test
     default void listShouldReturnEmptyWhenNone() {
         TaskExecutionDetailsProjection testee = testee();
-        List<TaskExecutionDetails> taskExecutionDetails = JavaConverters.seqAsJavaList(testee.list());
+        List<TaskExecutionDetails> taskExecutionDetails = asJava(testee.list());
         assertThat(taskExecutionDetails).isEmpty();
     }
 
@@ -89,7 +89,7 @@ public interface TaskExecutionDetailsProjectionContract {
         testee.update(TASK_EXECUTION_DETAILS());
         testee.update(TASK_EXECUTION_DETAILS_2());
 
-        List<TaskExecutionDetails> taskExecutionDetails = JavaConverters.seqAsJavaList(testee.list());
+        List<TaskExecutionDetails> taskExecutionDetails = asJava(testee.list());
         assertThat(taskExecutionDetails).containsOnly(TASK_EXECUTION_DETAILS(), TASK_EXECUTION_DETAILS_2());
     }
 
@@ -99,7 +99,7 @@ public interface TaskExecutionDetailsProjectionContract {
         testee.update(TASK_EXECUTION_DETAILS());
         testee.update(TASK_EXECUTION_DETAILS_UPDATED());
 
-        List<TaskExecutionDetails> taskExecutionDetails = JavaConverters.seqAsJavaList(testee.list());
+        List<TaskExecutionDetails> taskExecutionDetails = asJava(testee.list());
         assertThat(taskExecutionDetails).containsOnly(TASK_EXECUTION_DETAILS_UPDATED());
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org