From 734338792ce702c496c1a9898ae42d76d679778d Mon Sep 17 00:00:00 2001 From: Christos KK Loverdos Date: Thu, 10 May 2012 13:15:29 +0300 Subject: [PATCH] Event refactoring --- .../actor/message/event/ProcessIMEvent.scala | 2 +- .../actor/message/event/ProcessResourceEvent.scala | 2 +- .../aquarium/actor/service/user/UserActor.scala | 2 +- .../gr/grnet/aquarium/computation/UserState.scala | 10 +-- .../computation/UserStateComputations.scala | 13 ++-- .../aquarium/computation/UserStateWorker.scala | 2 +- .../computation/data/IMStateSnapshot.scala | 2 +- .../data/IgnoredFirstResourceEventsSnapshot.scala | 2 +- .../data/IgnoredFirstResourceEventsWorker.scala | 4 +- .../ImplicitlyIssuedResourceEventsSnapshot.scala | 4 +- .../ImplicitlyIssuedResourceEventsWorker.scala | 4 +- .../data/LatestResourceEventsSnapshot.scala | 2 +- .../data/LatestResourceEventsWorker.scala | 4 +- .../computation/reason/UserStateChangeReason.scala | 12 ++-- .../grnet/aquarium/converter/JsonConversions.scala | 5 +- .../aquarium/event/ExternalEventSkeleton.scala | 65 -------------------- .../aquarium/event/{ => model}/EventModel.scala | 7 +-- .../event/{ => model}/ExternalEventModel.scala | 4 +- .../event/{ => model}/NewWalletEntry.scala | 10 ++- .../aquarium/event/{ => model}/PolicyEntry.scala | 26 ++++---- .../aquarium/event/{ => model}/WalletEntry.scala | 40 ++++++------ .../event/{ => model}/im/IMEventModel.scala | 5 +- .../aquarium/event/{ => model}/im/StdIMEvent.scala | 3 +- .../{ => model}/resource/ResourceEventModel.scala | 3 +- .../{ => model}/resource/StdResourceEvent.scala | 2 +- .../aquarium/logic/accounting/Accounting.scala | 4 +- .../logic/accounting/dsl/DSLCostPolicy.scala | 6 +- .../aquarium/logic/accounting/dsl/DSLPolicy.scala | 2 +- .../aquarium/service/EventProcessorService.scala | 3 +- .../aquarium/service/IMEventProcessorService.scala | 2 +- .../service/ResourceEventProcessorService.scala | 2 +- .../aquarium/simulation/ResourceInstanceSim.scala | 2 +- .../aquarium/simulation/StdVMTimeInstanceSim.scala | 3 +- .../gr/grnet/aquarium/simulation/UserSim.scala | 3 +- .../gr/grnet/aquarium/store/IMEventStore.scala | 4 +- .../grnet/aquarium/store/LocalFSEventStore.scala | 4 +- .../gr/grnet/aquarium/store/PolicyStore.scala | 4 +- .../grnet/aquarium/store/ResourceEventStore.scala | 3 +- .../gr/grnet/aquarium/store/WalletEntryStore.scala | 2 +- .../gr/grnet/aquarium/store/memory/MemStore.scala | 6 +- .../gr/grnet/aquarium/store/memory/package.scala | 4 +- .../aquarium/store/mongodb/MongoDBEventModel.scala | 3 +- .../aquarium/store/mongodb/MongoDBIMEvent.scala | 4 +- .../store/mongodb/MongoDBResourceEvent.scala | 6 +- .../aquarium/store/mongodb/MongoDBStore.scala | 24 ++++---- .../grnet/aquarium/util/RandomEventGenerator.scala | 4 +- .../grnet/aquarium/logic/test/AccountingTest.scala | 4 +- .../aquarium/store/mongodb/EventStoreTest.scala | 4 +- 48 files changed, 133 insertions(+), 205 deletions(-) delete mode 100644 src/main/scala/gr/grnet/aquarium/event/ExternalEventSkeleton.scala rename src/main/scala/gr/grnet/aquarium/event/{ => model}/EventModel.scala (96%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/ExternalEventModel.scala (98%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/NewWalletEntry.scala (97%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/PolicyEntry.scala (76%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/WalletEntry.scala (74%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/im/IMEventModel.scala (96%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/im/StdIMEvent.scala (98%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/resource/ResourceEventModel.scala (98%) rename src/main/scala/gr/grnet/aquarium/event/{ => model}/resource/StdResourceEvent.scala (98%) diff --git a/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessIMEvent.scala b/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessIMEvent.scala index 4d7fabe..7dc3dc0 100644 --- a/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessIMEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessIMEvent.scala @@ -35,8 +35,8 @@ package gr.grnet.aquarium.actor.message.event -import gr.grnet.aquarium.event.im.IMEventModel import gr.grnet.aquarium.actor.message.{UserActorRequestMessage, ActorMessage} +import gr.grnet.aquarium.event.model.im.IMEventModel /** * [[gr.grnet.aquarium.actor.service.router.RouterActor]] message diff --git a/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessResourceEvent.scala b/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessResourceEvent.scala index f9ce93d..fae5cad 100644 --- a/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessResourceEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/actor/message/event/ProcessResourceEvent.scala @@ -35,8 +35,8 @@ package gr.grnet.aquarium.actor.message.event -import gr.grnet.aquarium.event.resource.ResourceEventModel import gr.grnet.aquarium.actor.message.{UserActorRequestMessage, ActorMessage} +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * [[gr.grnet.aquarium.actor.service.router.RouterActor]] message diff --git a/src/main/scala/gr/grnet/aquarium/actor/service/user/UserActor.scala b/src/main/scala/gr/grnet/aquarium/actor/service/user/UserActor.scala index 96c4d61..77ebfb9 100644 --- a/src/main/scala/gr/grnet/aquarium/actor/service/user/UserActor.scala +++ b/src/main/scala/gr/grnet/aquarium/actor/service/user/UserActor.scala @@ -41,7 +41,6 @@ import gr.grnet.aquarium.actor._ import gr.grnet.aquarium.util.shortClassNameOf import message.config.{ActorProviderConfigured, AquariumPropertiesLoaded} -import gr.grnet.aquarium.event.im.IMEventModel import akka.config.Supervision.Temporary import gr.grnet.aquarium.Configurator import gr.grnet.aquarium.util.date.{TimeHelpers, MutableDateCalc} @@ -49,6 +48,7 @@ import gr.grnet.aquarium.actor.message.event.{ProcessResourceEvent, ProcessIMEve import gr.grnet.aquarium.actor.message.{GetUserStateResponse, GetUserBalanceResponse, GetUserStateRequest, GetUserBalanceRequest} import gr.grnet.aquarium.computation.data.IMStateSnapshot import gr.grnet.aquarium.computation.UserState +import gr.grnet.aquarium.event.model.im.IMEventModel /** * diff --git a/src/main/scala/gr/grnet/aquarium/computation/UserState.scala b/src/main/scala/gr/grnet/aquarium/computation/UserState.scala index 74ade1c..57318e7 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/UserState.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/UserState.scala @@ -35,16 +35,16 @@ package gr.grnet.aquarium.computation -import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} -import gr.grnet.aquarium.event.{NewWalletEntry, WalletEntry} import org.bson.types.ObjectId + +import gr.grnet.aquarium.AquariumInternalError +import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} +import gr.grnet.aquarium.event.model.{WalletEntry, NewWalletEntry} import gr.grnet.aquarium.util.json.JsonSupport import gr.grnet.aquarium.logic.accounting.dsl.DSLAgreement -import com.ckkloverdos.maybe.Maybe import gr.grnet.aquarium.computation.reason.{NoSpecificChangeReason, UserStateChangeReason, InitialUserStateSetup, IMEventArrival} -import gr.grnet.aquarium.AquariumInternalError import gr.grnet.aquarium.computation.data.{AgreementSnapshot, ResourceInstanceSnapshot, OwnedResourcesSnapshot, AgreementsSnapshot, CreditSnapshot, LatestResourceEventsSnapshot, ImplicitlyIssuedResourceEventsSnapshot, IMStateSnapshot} -import gr.grnet.aquarium.event.im.{StdIMEvent, IMEventModel} +import gr.grnet.aquarium.event.model.im.{StdIMEvent, IMEventModel} /** * A comprehensive representation of the User's state. diff --git a/src/main/scala/gr/grnet/aquarium/computation/UserStateComputations.scala b/src/main/scala/gr/grnet/aquarium/computation/UserStateComputations.scala index 09b1773..7f0a5bf 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/UserStateComputations.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/UserStateComputations.scala @@ -36,18 +36,17 @@ package gr.grnet.aquarium.computation import scala.collection.mutable +import gr.grnet.aquarium.{AquariumInternalError, AquariumException} import gr.grnet.aquarium.util.{ContextualLogger, Loggable} import gr.grnet.aquarium.util.date.{TimeHelpers, MutableDateCalc} -import gr.grnet.aquarium.logic.accounting.dsl.{DSLAgreement, DSLResourcesMap} -import gr.grnet.aquarium.store.{StoreProvider, PolicyStore} +import gr.grnet.aquarium.logic.accounting.dsl.DSLResourcesMap import gr.grnet.aquarium.logic.accounting.Accounting import gr.grnet.aquarium.logic.accounting.algorithm.CostPolicyAlgorithmCompiler -import gr.grnet.aquarium.event.NewWalletEntry -import gr.grnet.aquarium.event.resource.ResourceEventModel -import gr.grnet.aquarium.event.im.{IMEventModel, StdIMEvent} -import gr.grnet.aquarium.{AquariumInternalError, AquariumException} +import gr.grnet.aquarium.store.{StoreProvider, PolicyStore} import gr.grnet.aquarium.computation.data._ -import gr.grnet.aquarium.computation.reason.{NoSpecificChangeReason, UserStateChangeReason, InitialUserStateSetup} +import gr.grnet.aquarium.computation.reason.{NoSpecificChangeReason, UserStateChangeReason} +import gr.grnet.aquarium.event.model.NewWalletEntry +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * diff --git a/src/main/scala/gr/grnet/aquarium/computation/UserStateWorker.scala b/src/main/scala/gr/grnet/aquarium/computation/UserStateWorker.scala index ab5abb3..6c0fb30 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/UserStateWorker.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/UserStateWorker.scala @@ -38,9 +38,9 @@ package gr.grnet.aquarium.computation import scala.collection.mutable import gr.grnet.aquarium.logic.accounting.dsl.DSLResourcesMap import gr.grnet.aquarium.logic.accounting.Accounting -import gr.grnet.aquarium.event.resource.ResourceEventModel import gr.grnet.aquarium.computation.data.{LatestResourceEventsWorker, ImplicitlyIssuedResourceEventsWorker, IgnoredFirstResourceEventsWorker} import gr.grnet.aquarium.util.ContextualLogger +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * A helper object holding intermediate state/results during resource event processing. diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/IMStateSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/IMStateSnapshot.scala index 37efd53..4954c83 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/IMStateSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/IMStateSnapshot.scala @@ -35,7 +35,7 @@ package gr.grnet.aquarium.computation.data -import gr.grnet.aquarium.event.im.IMEventModel +import gr.grnet.aquarium.event.model.im.IMEventModel /** * diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsSnapshot.scala index f82c855..00c9f0f 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsSnapshot.scala @@ -35,7 +35,7 @@ package gr.grnet.aquarium.computation.data -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsWorker.scala b/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsWorker.scala index 7936784..ee640b9 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsWorker.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/IgnoredFirstResourceEventsWorker.scala @@ -36,8 +36,8 @@ package gr.grnet.aquarium.computation.data import gr.grnet.aquarium.util.findAndRemoveFromMap -import gr.grnet.aquarium.event.resource.ResourceEventModel -import gr.grnet.aquarium.event.resource.ResourceEventModel.FullMutableResourceTypeMap +import gr.grnet.aquarium.event.model.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel.FullMutableResourceTypeMap /** * diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsSnapshot.scala index 52b94fc..7921053 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsSnapshot.scala @@ -35,11 +35,11 @@ package gr.grnet.aquarium.computation.data -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * Keeps the implicit OFF events when a billing period ends. - * This is normally recorded in the [[gr.grnet.aquarium.user.UserState]]. + * This is normally recorded in the [[gr.grnet.aquarium.computation.UserState]]. * * @author Christos KK Loverdos */ diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsWorker.scala b/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsWorker.scala index 0aec78d..e05c9a3 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsWorker.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/ImplicitlyIssuedResourceEventsWorker.scala @@ -36,8 +36,8 @@ package gr.grnet.aquarium.computation.data import gr.grnet.aquarium.util.findAndRemoveFromMap -import gr.grnet.aquarium.event.resource.ResourceEventModel -import gr.grnet.aquarium.event.resource.ResourceEventModel.FullMutableResourceTypeMap +import gr.grnet.aquarium.event.model.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel.FullMutableResourceTypeMap /** diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsSnapshot.scala b/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsSnapshot.scala index 6c86f7f..8c66c8c 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsSnapshot.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsSnapshot.scala @@ -35,7 +35,7 @@ package gr.grnet.aquarium.computation.data -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * Keeps the latest resource event per resource instance. diff --git a/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsWorker.scala b/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsWorker.scala index 9690050..95d62a1 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsWorker.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/data/LatestResourceEventsWorker.scala @@ -36,8 +36,8 @@ package gr.grnet.aquarium.computation.data import gr.grnet.aquarium.util.findAndRemoveFromMap -import gr.grnet.aquarium.event.resource.ResourceEventModel -import gr.grnet.aquarium.event.resource.ResourceEventModel.FullMutableResourceTypeMap +import gr.grnet.aquarium.event.model.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel.FullMutableResourceTypeMap /** * This is the mutable cousin of [[gr.grnet.aquarium.computation.data.LatestResourceEventsSnapshot]]. diff --git a/src/main/scala/gr/grnet/aquarium/computation/reason/UserStateChangeReason.scala b/src/main/scala/gr/grnet/aquarium/computation/reason/UserStateChangeReason.scala index 556df83..52a8fa3 100644 --- a/src/main/scala/gr/grnet/aquarium/computation/reason/UserStateChangeReason.scala +++ b/src/main/scala/gr/grnet/aquarium/computation/reason/UserStateChangeReason.scala @@ -36,15 +36,15 @@ package gr.grnet.aquarium.computation.reason import gr.grnet.aquarium.computation.BillingMonthInfo -import gr.grnet.aquarium.event.im.IMEventModel +import gr.grnet.aquarium.event.model.im.IMEventModel sealed trait UserStateChangeReason { /** - * Return `true` if the result of the calculation should be stored back to the - * [[gr.grnet.aquarium.store.UserStateStore]]. - * - */ - def shouldStoreUserState: Boolean + * Return `true` if the result of the calculation should be stored back to the + * [[gr.grnet.aquarium.store.UserStateStore]]. + * + */ + def shouldStoreUserState: Boolean def shouldStoreCalculatedWalletEntries: Boolean diff --git a/src/main/scala/gr/grnet/aquarium/converter/JsonConversions.scala b/src/main/scala/gr/grnet/aquarium/converter/JsonConversions.scala index 3a5cc8b..0dc4e0f 100644 --- a/src/main/scala/gr/grnet/aquarium/converter/JsonConversions.scala +++ b/src/main/scala/gr/grnet/aquarium/converter/JsonConversions.scala @@ -38,8 +38,6 @@ package gr.grnet.aquarium.converter import net.liftweb.json.JsonAST.JValue import net.liftweb.json._ import ext.JodaTimeSerializers -import gr.grnet.aquarium.event.ExternalEventSkeleton - /** * Provides conversion methods from and to JSON. @@ -53,8 +51,7 @@ object JsonConversions { /** * The application-wide JSON formats used from the underlying lift-json library. */ - implicit val Formats = (DefaultFormats ++ JodaTimeSerializers.all) + - FieldSerializer[ExternalEventSkeleton]() + implicit val Formats = (DefaultFormats ++ JodaTimeSerializers.all) /** * Converts a value to JSON AST (Abstract Syntax Tree) by acting a bit intelligently, depending on the actual type diff --git a/src/main/scala/gr/grnet/aquarium/event/ExternalEventSkeleton.scala b/src/main/scala/gr/grnet/aquarium/event/ExternalEventSkeleton.scala deleted file mode 100644 index d276aa7..0000000 --- a/src/main/scala/gr/grnet/aquarium/event/ExternalEventSkeleton.scala +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2011-2012 GRNET S.A. All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * 1. Redistributions of source code must retain the above - * copyright notice, this list of conditions and the following - * disclaimer. - * - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and - * documentation are those of the authors and should not be - * interpreted as representing official policies, either expressed - * or implied, of GRNET S.A. - */ - -package gr.grnet.aquarium -package event - - -import util.xml.XmlSupport -import util.Loggable - -/** - * Generic base class for all Aquarium events - * - * @author Georgios Gousios - * @author Christos KK Loverdos - */ -abstract class ExternalEventSkeleton( - _id: String, // The id at the client side (the sender) TODO: Rename to remoteId or something... - _occurredMillis: Long, // When it occurred at client side (the sender) - _receivedMillis: Long, // When it was received by Aquarium - _eventVersion: String -) - extends ExternalEventModel - with XmlSupport - with Loggable { - - def id = _id - def occurredMillis = _occurredMillis - def receivedMillis = _receivedMillis - def eventVersion = _eventVersion - - def details: Map[String, String] = Map() -} diff --git a/src/main/scala/gr/grnet/aquarium/event/EventModel.scala b/src/main/scala/gr/grnet/aquarium/event/model/EventModel.scala similarity index 96% rename from src/main/scala/gr/grnet/aquarium/event/EventModel.scala rename to src/main/scala/gr/grnet/aquarium/event/model/EventModel.scala index dfd30f5..bf2b66e 100644 --- a/src/main/scala/gr/grnet/aquarium/event/EventModel.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/EventModel.scala @@ -33,13 +33,13 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event +package gr.grnet.aquarium.event.model /** * Basic properties for all events. * An event represents some state change, where state is specific to the use-case. * - *@author Christos KK Loverdos + * @author Christos KK Loverdos */ trait EventModel { @@ -69,7 +69,6 @@ trait EventModel { def withDetails(newDetails: Map[String, String], newOccurredMillis: Long): EventModel } - object EventModel { trait NamesT { final val id = "id" @@ -80,4 +79,4 @@ object EventModel { } object Names extends NamesT -} \ No newline at end of file +} diff --git a/src/main/scala/gr/grnet/aquarium/event/ExternalEventModel.scala b/src/main/scala/gr/grnet/aquarium/event/model/ExternalEventModel.scala similarity index 98% rename from src/main/scala/gr/grnet/aquarium/event/ExternalEventModel.scala rename to src/main/scala/gr/grnet/aquarium/event/model/ExternalEventModel.scala index a71e255..fff46b9 100644 --- a/src/main/scala/gr/grnet/aquarium/event/ExternalEventModel.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/ExternalEventModel.scala @@ -33,10 +33,10 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event +package gr.grnet.aquarium.event.model -import gr.grnet.aquarium.util.json.JsonSupport import gr.grnet.aquarium.util.makeBytes +import gr.grnet.aquarium.util.json.JsonSupport import gr.grnet.aquarium.util.xml.XmlSupport /** diff --git a/src/main/scala/gr/grnet/aquarium/event/NewWalletEntry.scala b/src/main/scala/gr/grnet/aquarium/event/model/NewWalletEntry.scala similarity index 97% rename from src/main/scala/gr/grnet/aquarium/event/NewWalletEntry.scala rename to src/main/scala/gr/grnet/aquarium/event/model/NewWalletEntry.scala index fbf69c5..0c85532 100644 --- a/src/main/scala/gr/grnet/aquarium/event/NewWalletEntry.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/NewWalletEntry.scala @@ -33,14 +33,13 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium -package event +package gr.grnet.aquarium.event.model import gr.grnet.aquarium.logic.accounting.Chargeslot import gr.grnet.aquarium.util.date.MutableDateCalc import gr.grnet.aquarium.logic.accounting.dsl.{Timeslot, DSLResource} -import converter.{JsonTextFormat, StdConverters} import resource.ResourceEventModel +import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} /** * The following equation must hold: `newTotalCredits = oldTotalCredits + entryCredits`. @@ -72,9 +71,13 @@ case class NewWalletEntry(userId: String, isSynthetic: Boolean) { def currentResourceEvent = resourceEvents.head + def resource = currentResourceEvent.resource + def instanceId = currentResourceEvent.instanceID + def chargslotCount = chargeslots.length + def isOutOfSync = currentResourceEvent.isOutOfSyncForBillingMonth(yearOfBillingMonth, billingMonth) def toDebugString = "%s%s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)".format( @@ -113,4 +116,5 @@ object NewWalletEntry { final val chargeslots = "chargeslots" final val resourceDef = "resourceDef" } + } diff --git a/src/main/scala/gr/grnet/aquarium/event/PolicyEntry.scala b/src/main/scala/gr/grnet/aquarium/event/model/PolicyEntry.scala similarity index 76% rename from src/main/scala/gr/grnet/aquarium/event/PolicyEntry.scala rename to src/main/scala/gr/grnet/aquarium/event/model/PolicyEntry.scala index 1059483..3a62163 100644 --- a/src/main/scala/gr/grnet/aquarium/event/PolicyEntry.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/PolicyEntry.scala @@ -33,12 +33,11 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium -package event +package gr.grnet.aquarium.event.model import gr.grnet.aquarium.logic.accounting.dsl.Timeslot import java.util.Date -import converter.{JsonTextFormat, StdConverters} +import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} /** * Store entry for serialized policy data. @@ -46,16 +45,16 @@ import converter.{JsonTextFormat, StdConverters} * @author Georgios Gousios */ case class PolicyEntry( - id: String, //SHA-1 of the provided policyYaml string - occurredMillis: Long, //Time this event was stored - receivedMillis: Long, //Does not make sense for local events -> not used - policyYAML: String, //The serialized policy - validFrom: Long, //The timestamp since when the policy is valid - validTo: Long, //The timestamp until when the policy is valid - eventVersion: String = "1.0", - userID: String = "", - details: Map[String, String] = Map() - ) extends ExternalEventModel { + id: String, //SHA-1 of the provided policyYaml string + occurredMillis: Long, //Time this event was stored + receivedMillis: Long, //Does not make sense for local events -> not used + policyYAML: String, //The serialized policy + validFrom: Long, //The timestamp since when the policy is valid + validTo: Long, //The timestamp until when the policy is valid + eventVersion: String = "1.0", + userID: String = "", + details: Map[String, String] = Map() + ) extends ExternalEventModel { assert(if(validTo != -1) validTo > validFrom else validFrom > 0) @@ -84,4 +83,5 @@ object PolicyEntry { final val validFrom = "validFrom" final val validTo = "validTo" } + } \ No newline at end of file diff --git a/src/main/scala/gr/grnet/aquarium/event/WalletEntry.scala b/src/main/scala/gr/grnet/aquarium/event/model/WalletEntry.scala similarity index 74% rename from src/main/scala/gr/grnet/aquarium/event/WalletEntry.scala rename to src/main/scala/gr/grnet/aquarium/event/model/WalletEntry.scala index a478772..9316d0b 100644 --- a/src/main/scala/gr/grnet/aquarium/event/WalletEntry.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/WalletEntry.scala @@ -33,12 +33,10 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium -package event +package gr.grnet.aquarium.event.model import java.util.Date -import converter.{JsonTextFormat, StdConverters} -import util.json.JsonSupport +import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} /** * A WalletEntry is a derived entity. Its data represent money/credits and are calculated based on @@ -50,20 +48,20 @@ import util.json.JsonSupport * @author Christos KK Loverdos */ case class WalletEntry( - id: String, // The id at the client side (the sender) TODO: Rename to remoteId or something... - occurredMillis: Long, // The time of oldest matching resource event - receivedMillis: Long, // The time the cost calculation was done - sourceEventIDs: List[String], // The events that triggered this WalletEntry - value: Double, - reason: String, - userId: String, - resource: String, - instanceId: String, - finalized: Boolean, - eventVersion: String = "1.0", - userID: String = "", - details: Map[String, String] = Map() -) extends ExternalEventModel { + id: String, // The id at the client side (the sender) TODO: Rename to remoteId or something... + occurredMillis: Long, // The time of oldest matching resource event + receivedMillis: Long, // The time the cost calculation was done + sourceEventIDs: List[String], // The events that triggered this WalletEntry + value: Double, + reason: String, + userId: String, + resource: String, + instanceId: String, + finalized: Boolean, + eventVersion: String = "1.0", + userID: String = "", + details: Map[String, String] = Map() + ) extends ExternalEventModel { assert(occurredMillis > 0) @@ -71,7 +69,7 @@ case class WalletEntry( assert(!userId.isEmpty) def validate = true - + def fromResourceEvent(rceId: String): Boolean = { sourceEventIDs contains rceId } @@ -82,6 +80,7 @@ case class WalletEntry( this.copy(details = newDetails, occurredMillis = newOccurredMillis) def occurredDate = new Date(occurredMillis) + def receivedDate = new Date(receivedMillis) } @@ -90,7 +89,7 @@ object WalletEntry { StdConverters.AllConverters.convertEx[WalletEntry](JsonTextFormat(json)) } - def zero = WalletEntry("", 1L, 1L, Nil,1,"","foo", "bar", "0", false) + def zero = WalletEntry("", 1L, 1L, Nil, 1, "", "foo", "bar", "0", false) object JsonNames { final val _id = "_id" @@ -105,4 +104,5 @@ object WalletEntry { final val instanceId = "instanceId" final val finalized = "finalized" } + } \ No newline at end of file diff --git a/src/main/scala/gr/grnet/aquarium/event/im/IMEventModel.scala b/src/main/scala/gr/grnet/aquarium/event/model/im/IMEventModel.scala similarity index 96% rename from src/main/scala/gr/grnet/aquarium/event/im/IMEventModel.scala rename to src/main/scala/gr/grnet/aquarium/event/model/im/IMEventModel.scala index 56fbe25..32af911 100644 --- a/src/main/scala/gr/grnet/aquarium/event/im/IMEventModel.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/im/IMEventModel.scala @@ -33,9 +33,8 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event.im - -import gr.grnet.aquarium.event.ExternalEventModel +package gr.grnet.aquarium.event.model +package im /** * The model of any event sent from the `Identity Management` (IM) external system. diff --git a/src/main/scala/gr/grnet/aquarium/event/im/StdIMEvent.scala b/src/main/scala/gr/grnet/aquarium/event/model/im/StdIMEvent.scala similarity index 98% rename from src/main/scala/gr/grnet/aquarium/event/im/StdIMEvent.scala rename to src/main/scala/gr/grnet/aquarium/event/model/im/StdIMEvent.scala index 27ad155..4525fcb 100644 --- a/src/main/scala/gr/grnet/aquarium/event/im/StdIMEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/im/StdIMEvent.scala @@ -33,7 +33,8 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event.im +package gr.grnet.aquarium.event.model +package im import gr.grnet.aquarium.util.makeString import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} diff --git a/src/main/scala/gr/grnet/aquarium/event/resource/ResourceEventModel.scala b/src/main/scala/gr/grnet/aquarium/event/model/resource/ResourceEventModel.scala similarity index 98% rename from src/main/scala/gr/grnet/aquarium/event/resource/ResourceEventModel.scala rename to src/main/scala/gr/grnet/aquarium/event/model/resource/ResourceEventModel.scala index 3ad3784..fb11aa7 100644 --- a/src/main/scala/gr/grnet/aquarium/event/resource/ResourceEventModel.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/resource/ResourceEventModel.scala @@ -33,11 +33,12 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event +package gr.grnet.aquarium.event.model package resource import java.util.Date import gr.grnet.aquarium.util.date.MutableDateCalc +import gr.grnet.aquarium.event.model.ExternalEventModel /** * The model of any resource event. diff --git a/src/main/scala/gr/grnet/aquarium/event/resource/StdResourceEvent.scala b/src/main/scala/gr/grnet/aquarium/event/model/resource/StdResourceEvent.scala similarity index 98% rename from src/main/scala/gr/grnet/aquarium/event/resource/StdResourceEvent.scala rename to src/main/scala/gr/grnet/aquarium/event/model/resource/StdResourceEvent.scala index a350724..2d06062 100644 --- a/src/main/scala/gr/grnet/aquarium/event/resource/StdResourceEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/event/model/resource/StdResourceEvent.scala @@ -33,7 +33,7 @@ * or implied, of GRNET S.A. */ -package gr.grnet.aquarium.event +package gr.grnet.aquarium.event.model package resource import gr.grnet.aquarium.util.makeString diff --git a/src/main/scala/gr/grnet/aquarium/logic/accounting/Accounting.scala b/src/main/scala/gr/grnet/aquarium/logic/accounting/Accounting.scala index 60726a8..38af280 100644 --- a/src/main/scala/gr/grnet/aquarium/logic/accounting/Accounting.scala +++ b/src/main/scala/gr/grnet/aquarium/logic/accounting/Accounting.scala @@ -43,10 +43,10 @@ import java.util.Date import com.ckkloverdos.maybe.{NoVal, Maybe, Failed, Just} import gr.grnet.aquarium.util.{ContextualLogger, CryptoUtils, Loggable} import gr.grnet.aquarium.store.PolicyStore -import gr.grnet.aquarium.event.{WalletEntry} +import gr.grnet.aquarium.event.model.WalletEntry import gr.grnet.aquarium.util.date.{TimeHelpers, MutableDateCalc} -import gr.grnet.aquarium.event.resource.ResourceEventModel import gr.grnet.aquarium.{AquariumInternalError, AquariumException} +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * A timeslot together with the algorithm and unit price that apply for this particular timeslot. diff --git a/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCostPolicy.scala b/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCostPolicy.scala index 7a0b78a..9624cb3 100644 --- a/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCostPolicy.scala +++ b/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLCostPolicy.scala @@ -37,7 +37,7 @@ package gr.grnet.aquarium.logic.accounting.dsl import com.ckkloverdos.maybe.{NoVal, Failed, Just, Maybe} import gr.grnet.aquarium.AquariumException -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * A cost policy indicates how charging for a resource will be done @@ -105,14 +105,14 @@ abstract class DSLCostPolicy(val name: String, val vars: Set[DSLCostPolicyVar]) } /** - * Given the old amount of a resource instance (see [[gr.grnet.aquarium.user.ResourceInstanceSnapshot]]) and the + * Given the old amount of a resource instance (see [[gr.grnet.aquarium.computation.data.ResourceInstanceSnapshot]]) and the * value arriving in a new resource event, compute the new instance amount. * * Note that the `oldAmount` does not make sense for all types of [[gr.grnet.aquarium.logic.accounting.dsl.DSLCostPolicy]], * in which case it is ignored. * * @param oldAmount the old accumulating amount - * @param newEventValue the value contained in a newly arrived [[gr.grnet.aquarium.event.resource.ResourceEventModel]] + * @param newEventValue the value contained in a newly arrived [[gr.grnet.aquarium.event.model.resource.ResourceEventModel]] * @return */ def computeNewAccumulatingAmount(oldAmount: Double, newEventValue: Double): Double diff --git a/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLPolicy.scala b/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLPolicy.scala index 2ae73f6..a7b48e9 100644 --- a/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLPolicy.scala +++ b/src/main/scala/gr/grnet/aquarium/logic/accounting/dsl/DSLPolicy.scala @@ -37,7 +37,7 @@ package gr.grnet.aquarium.logic.accounting.dsl import gr.grnet.aquarium.util.CryptoUtils import gr.grnet.aquarium.util.date.TimeHelpers -import gr.grnet.aquarium.event.PolicyEntry +import gr.grnet.aquarium.event.model.PolicyEntry /** * Root object for the Aquarium policy configuration tree. diff --git a/src/main/scala/gr/grnet/aquarium/service/EventProcessorService.scala b/src/main/scala/gr/grnet/aquarium/service/EventProcessorService.scala index 4c4eafc..3f81aee 100644 --- a/src/main/scala/gr/grnet/aquarium/service/EventProcessorService.scala +++ b/src/main/scala/gr/grnet/aquarium/service/EventProcessorService.scala @@ -48,11 +48,10 @@ import akka.config.Supervision.OneForOneStrategy import gr.grnet.aquarium.messaging.AkkaAMQP import akka.amqp._ import java.util.concurrent.{ConcurrentHashMap, ConcurrentSkipListSet} -import com.ckkloverdos.maybe._ import gr.grnet.aquarium.util.date.TimeHelpers import gr.grnet.aquarium.{AquariumException, Configurator} -import gr.grnet.aquarium.event.ExternalEventModel import gr.grnet.aquarium.actor.ReflectiveActor +import gr.grnet.aquarium.event.model.ExternalEventModel /** * An abstract service that retrieves Aquarium events from a queue, diff --git a/src/main/scala/gr/grnet/aquarium/service/IMEventProcessorService.scala b/src/main/scala/gr/grnet/aquarium/service/IMEventProcessorService.scala index a103d1d..b3f8426 100644 --- a/src/main/scala/gr/grnet/aquarium/service/IMEventProcessorService.scala +++ b/src/main/scala/gr/grnet/aquarium/service/IMEventProcessorService.scala @@ -42,8 +42,8 @@ import gr.grnet.aquarium.store.LocalFSEventStore import gr.grnet.aquarium.util.date.TimeHelpers import gr.grnet.aquarium.util.makeString import com.ckkloverdos.maybe._ -import gr.grnet.aquarium.event.im.{StdIMEvent, IMEventModel} import gr.grnet.aquarium.actor.message.event.ProcessIMEvent +import gr.grnet.aquarium.event.model.im.{StdIMEvent, IMEventModel} /** * An event processor service for user events coming from the IM system diff --git a/src/main/scala/gr/grnet/aquarium/service/ResourceEventProcessorService.scala b/src/main/scala/gr/grnet/aquarium/service/ResourceEventProcessorService.scala index 89d597b..c029ce6 100644 --- a/src/main/scala/gr/grnet/aquarium/service/ResourceEventProcessorService.scala +++ b/src/main/scala/gr/grnet/aquarium/service/ResourceEventProcessorService.scala @@ -40,7 +40,7 @@ import gr.grnet.aquarium.Configurator.Keys import gr.grnet.aquarium.store.LocalFSEventStore import com.ckkloverdos.maybe.Maybe import gr.grnet.aquarium.util.date.TimeHelpers -import gr.grnet.aquarium.event.resource.{StdResourceEvent, ResourceEventModel} +import gr.grnet.aquarium.event.model.resource.{StdResourceEvent, ResourceEventModel} import gr.grnet.aquarium.actor.message.event.ProcessResourceEvent diff --git a/src/main/scala/gr/grnet/aquarium/simulation/ResourceInstanceSim.scala b/src/main/scala/gr/grnet/aquarium/simulation/ResourceInstanceSim.scala index 18a8e35..bbad767 100644 --- a/src/main/scala/gr/grnet/aquarium/simulation/ResourceInstanceSim.scala +++ b/src/main/scala/gr/grnet/aquarium/simulation/ResourceInstanceSim.scala @@ -35,7 +35,7 @@ package gr.grnet.aquarium.simulation -import gr.grnet.aquarium.event.resource.StdResourceEvent +import gr.grnet.aquarium.event.model.resource.StdResourceEvent /** diff --git a/src/main/scala/gr/grnet/aquarium/simulation/StdVMTimeInstanceSim.scala b/src/main/scala/gr/grnet/aquarium/simulation/StdVMTimeInstanceSim.scala index 75e234e..f309eaa 100644 --- a/src/main/scala/gr/grnet/aquarium/simulation/StdVMTimeInstanceSim.scala +++ b/src/main/scala/gr/grnet/aquarium/simulation/StdVMTimeInstanceSim.scala @@ -36,10 +36,9 @@ package gr.grnet.aquarium.simulation import gr.grnet.aquarium.logic.accounting.dsl.OnOffCostPolicyValues -import gr.grnet.aquarium.store.RecordID import java.util.Date import gr.grnet.aquarium.util.date.MutableDateCalc -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * A simulator for an instance of the standard `vmtime` resource. diff --git a/src/main/scala/gr/grnet/aquarium/simulation/UserSim.scala b/src/main/scala/gr/grnet/aquarium/simulation/UserSim.scala index 6355e74..dd5cd0b 100644 --- a/src/main/scala/gr/grnet/aquarium/simulation/UserSim.scala +++ b/src/main/scala/gr/grnet/aquarium/simulation/UserSim.scala @@ -35,9 +35,8 @@ package gr.grnet.aquarium.simulation import java.util.Date -import gr.grnet.aquarium.store.RecordID import math.Ordering -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * A simulator for a user. diff --git a/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala b/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala index 8dd4e80..811e34b 100644 --- a/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/IMEventStore.scala @@ -35,9 +35,9 @@ package gr.grnet.aquarium.store -import gr.grnet.aquarium.event.im.IMEventModel import gr.grnet.aquarium.util.makeString -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.im.IMEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * Store for external user events diff --git a/src/main/scala/gr/grnet/aquarium/store/LocalFSEventStore.scala b/src/main/scala/gr/grnet/aquarium/store/LocalFSEventStore.scala index aa196d5..06dbaa8 100644 --- a/src/main/scala/gr/grnet/aquarium/store/LocalFSEventStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/LocalFSEventStore.scala @@ -39,8 +39,8 @@ import gr.grnet.aquarium.Configurator import java.io.{FileOutputStream, File} import gr.grnet.aquarium.util.{Loggable, stringOfStackTrace} import gr.grnet.aquarium.util.date.{TimeHelpers, MutableDateCalc} -import gr.grnet.aquarium.event.im.IMEventModel -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.im.IMEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * This is used whenever the property `events.store.folder` is setup in aquarium configuration. diff --git a/src/main/scala/gr/grnet/aquarium/store/PolicyStore.scala b/src/main/scala/gr/grnet/aquarium/store/PolicyStore.scala index a9a58c4..f587271 100644 --- a/src/main/scala/gr/grnet/aquarium/store/PolicyStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/PolicyStore.scala @@ -38,8 +38,8 @@ package gr.grnet.aquarium.store import scala.collection.immutable import collection.immutable.SortedMap import gr.grnet.aquarium.logic.accounting.dsl.{DSL, DSLPolicy, Timeslot} -import com.ckkloverdos.maybe.{NoVal, Just, Maybe} -import gr.grnet.aquarium.event.PolicyEntry +import com.ckkloverdos.maybe.Maybe +import gr.grnet.aquarium.event.model.PolicyEntry /** * A store for serialized policy entries. diff --git a/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala b/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala index 4eb6016..cbc9380 100644 --- a/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/ResourceEventStore.scala @@ -35,9 +35,8 @@ package gr.grnet.aquarium.store -import com.ckkloverdos.maybe.Maybe import gr.grnet.aquarium.AquariumException -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * An abstraction for Aquarium `ResourceEvent` stores. diff --git a/src/main/scala/gr/grnet/aquarium/store/WalletEntryStore.scala b/src/main/scala/gr/grnet/aquarium/store/WalletEntryStore.scala index 65aa74d..0053cc7 100644 --- a/src/main/scala/gr/grnet/aquarium/store/WalletEntryStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/WalletEntryStore.scala @@ -37,7 +37,7 @@ package gr.grnet.aquarium.store import java.util.Date import com.ckkloverdos.maybe.Maybe -import gr.grnet.aquarium.event.WalletEntry +import gr.grnet.aquarium.event.model.WalletEntry /** * A store for Wallet entries. diff --git a/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala b/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala index 8adb68c..871594e 100644 --- a/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/memory/MemStore.scala @@ -44,10 +44,10 @@ import collection.mutable.ConcurrentMap import java.util.concurrent.ConcurrentHashMap import gr.grnet.aquarium.uid.ConcurrentVMLocalUIDGenerator import gr.grnet.aquarium.Configurable -import gr.grnet.aquarium.event.{WalletEntry, PolicyEntry} -import gr.grnet.aquarium.event.im.{StdIMEvent, IMEventModel} +import gr.grnet.aquarium.event.model.{WalletEntry, PolicyEntry} +import gr.grnet.aquarium.event.model.im.{StdIMEvent, IMEventModel} import org.bson.types.ObjectId -import gr.grnet.aquarium.event.resource.{StdResourceEvent, ResourceEventModel} +import gr.grnet.aquarium.event.model.resource.{StdResourceEvent, ResourceEventModel} import gr.grnet.aquarium.computation.UserState /** diff --git a/src/main/scala/gr/grnet/aquarium/store/memory/package.scala b/src/main/scala/gr/grnet/aquarium/store/memory/package.scala index 65aeaf4..b29af44 100644 --- a/src/main/scala/gr/grnet/aquarium/store/memory/package.scala +++ b/src/main/scala/gr/grnet/aquarium/store/memory/package.scala @@ -35,8 +35,8 @@ package gr.grnet.aquarium.store -import gr.grnet.aquarium.event.im.StdIMEvent -import gr.grnet.aquarium.event.resource.StdResourceEvent +import gr.grnet.aquarium.event.model.im.StdIMEvent +import gr.grnet.aquarium.event.model.resource.StdResourceEvent package object memory { type MemIMEvent = StdIMEvent diff --git a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBEventModel.scala b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBEventModel.scala index 3193d23..05382ad 100644 --- a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBEventModel.scala +++ b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBEventModel.scala @@ -35,8 +35,7 @@ package gr.grnet.aquarium.store.mongodb -import org.bson.types.ObjectId -import gr.grnet.aquarium.event.ExternalEventModel +import gr.grnet.aquarium.event.model.ExternalEventModel /** * diff --git a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBIMEvent.scala b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBIMEvent.scala index a407d49..bd2713c 100644 --- a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBIMEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBIMEvent.scala @@ -35,13 +35,11 @@ package gr.grnet.aquarium.store.mongodb -import org.bson.types.ObjectId import gr.grnet.aquarium.converter.{JsonTextFormat, StdConverters} import gr.grnet.aquarium.util._ -import gr.grnet.aquarium.event.im.{IMEventModel, StdIMEvent} -import gr.grnet.aquarium.event.ExternalEventModel import com.mongodb.DBObject import com.mongodb.util.JSON +import gr.grnet.aquarium.event.model.im.IMEventModel /** diff --git a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBResourceEvent.scala b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBResourceEvent.scala index a31d3a9..39b6711 100644 --- a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBResourceEvent.scala +++ b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBResourceEvent.scala @@ -35,16 +35,15 @@ package gr.grnet.aquarium.store.mongodb -import org.bson.types.ObjectId import com.mongodb.DBObject import gr.grnet.aquarium.util.makeString -import gr.grnet.aquarium.event.resource.ResourceEventModel import gr.grnet.aquarium.converter.{StdConverters, JsonTextFormat} import com.mongodb.util.JSON +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** - * A [[gr.grnet.aquarium.event.resource.ResourceEventModel]] as represented for MongoDB. + * A [[gr.grnet.aquarium.event.model.resource.ResourceEventModel]] as represented for MongoDB. * * @author Christos KK Loverdos */ @@ -89,6 +88,7 @@ object MongoDBResourceEvent { final def fromOther(rcEvent: ResourceEventModel, _id: String): MongoDBResourceEvent = { import rcEvent._ + MongoDBResourceEvent( id, occurredMillis, diff --git a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala index 870fd13..dd4e359 100644 --- a/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala +++ b/src/main/scala/gr/grnet/aquarium/store/mongodb/MongoDBStore.scala @@ -39,14 +39,13 @@ import com.mongodb.util.JSON import gr.grnet.aquarium.computation.UserState.{JsonNames ⇒ UserStateJsonNames} import gr.grnet.aquarium.util.json.JsonSupport import collection.mutable.ListBuffer -import gr.grnet.aquarium.event._ -import gr.grnet.aquarium.event.im.IMEventModel -import gr.grnet.aquarium.event.im.IMEventModel.{Names ⇒ IMEventNames} -import gr.grnet.aquarium.event.resource.ResourceEventModel -import gr.grnet.aquarium.event.resource.ResourceEventModel.{Names ⇒ ResourceEventNames} +import gr.grnet.aquarium.event.model.im.IMEventModel +import gr.grnet.aquarium.event.model.im.IMEventModel.{Names ⇒ IMEventNames} +import gr.grnet.aquarium.event.model.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel.{Names ⇒ ResourceEventNames} import gr.grnet.aquarium.store._ -import gr.grnet.aquarium.event.WalletEntry.{JsonNames ⇒ WalletJsonNames} -import gr.grnet.aquarium.event.PolicyEntry.{JsonNames ⇒ PolicyJsonNames} +import gr.grnet.aquarium.event.model.WalletEntry.{JsonNames ⇒ WalletJsonNames} +import gr.grnet.aquarium.event.model.PolicyEntry.{JsonNames ⇒ PolicyJsonNames} import java.util.Date import gr.grnet.aquarium.logic.accounting.Policy import com.mongodb._ @@ -55,6 +54,7 @@ import com.ckkloverdos.maybe.Maybe import gr.grnet.aquarium.util._ import gr.grnet.aquarium.converter.Conversions import gr.grnet.aquarium.computation.UserState +import gr.grnet.aquarium.event.model.{ExternalEventModel, WalletEntry, PolicyEntry} /** * Mongodb implementation of the various aquarium stores. @@ -371,7 +371,7 @@ object MongoDBStore { } /** - * Collection holding the [[gr.grnet.aquarium.event.resource.ResourceEventModel]]s. + * Collection holding the [[gr.grnet.aquarium.event.model.resource.ResourceEventModel]]s. * * Resource events are coming from all systems handling billable resources. */ @@ -385,14 +385,14 @@ object MongoDBStore { final val USER_STATES_COLLECTION = "userstates" /** - * Collection holding [[gr.grnet.aquarium.event.im.IMEventModel]]s. + * Collection holding [[gr.grnet.aquarium.event.model.im.IMEventModel]]s. * * User events are coming from the IM module (external). */ final val IM_EVENTS_COLLECTION = "imevents" /** - * Collection holding [[gr.grnet.aquarium.event.im.IMEventModel]]s that could not be parsed to normal objects. + * Collection holding [[gr.grnet.aquarium.event.model.im.IMEventModel]]s that could not be parsed to normal objects. * * We of course assume at least a valid JSON representation. * @@ -401,7 +401,7 @@ object MongoDBStore { final val UNPARSED_IM_EVENTS_COLLECTION = "unparsed_imevents" /** - * Collection holding [[gr.grnet.aquarium.event.WalletEntry]]. + * Collection holding [[gr.grnet.aquarium.event.model.WalletEntry]]. * * Wallet entries are generated internally in Aquarium. */ @@ -413,7 +413,7 @@ object MongoDBStore { // final val POLICIES_COLLECTION = "policies" /** - * Collection holding [[gr.grnet.aquarium.event.PolicyEntry]]. + * Collection holding [[gr.grnet.aquarium.event.model.PolicyEntry]]. */ final val POLICY_ENTRIES_COLLECTION = "policyEntries" diff --git a/src/main/scala/gr/grnet/aquarium/util/RandomEventGenerator.scala b/src/main/scala/gr/grnet/aquarium/util/RandomEventGenerator.scala index 91d3b35..592f5fd 100644 --- a/src/main/scala/gr/grnet/aquarium/util/RandomEventGenerator.scala +++ b/src/main/scala/gr/grnet/aquarium/util/RandomEventGenerator.scala @@ -41,8 +41,8 @@ import scopt.OptionParser import gr.grnet.aquarium.messaging.AkkaAMQP import java.lang.StringBuffer import gr.grnet.aquarium.logic.accounting.Policy -import gr.grnet.aquarium.event.im.{StdIMEvent, IMEventModel} -import gr.grnet.aquarium.event.resource.{StdResourceEvent, ResourceEventModel} +import gr.grnet.aquarium.event.model.im.{StdIMEvent, IMEventModel} +import gr.grnet.aquarium.event.model.resource.{StdResourceEvent, ResourceEventModel} /** * Generates random resource events to use as input for testing and diff --git a/src/test/scala/gr/grnet/aquarium/logic/test/AccountingTest.scala b/src/test/scala/gr/grnet/aquarium/logic/test/AccountingTest.scala index 0ad26ab..8847f04 100644 --- a/src/test/scala/gr/grnet/aquarium/logic/test/AccountingTest.scala +++ b/src/test/scala/gr/grnet/aquarium/logic/test/AccountingTest.scala @@ -41,9 +41,9 @@ import gr.grnet.aquarium.logic.accounting.dsl.Timeslot import java.util.Date import junit.framework.Assert._ import gr.grnet.aquarium.logic.accounting.{Accounting} -import gr.grnet.aquarium.event.{WalletEntry} +import gr.grnet.aquarium.event.model.WalletEntry import com.ckkloverdos.maybe.Just -import gr.grnet.aquarium.event.resource.StdResourceEvent +import gr.grnet.aquarium.event.model.resource.StdResourceEvent /** * Tests for the methods that do accounting diff --git a/src/test/scala/gr/grnet/aquarium/store/mongodb/EventStoreTest.scala b/src/test/scala/gr/grnet/aquarium/store/mongodb/EventStoreTest.scala index 5c5366c..c62bfa2 100644 --- a/src/test/scala/gr/grnet/aquarium/store/mongodb/EventStoreTest.scala +++ b/src/test/scala/gr/grnet/aquarium/store/mongodb/EventStoreTest.scala @@ -40,10 +40,10 @@ import org.junit.Assume._ import gr.grnet.aquarium.Configurator._ import gr.grnet.aquarium.util.{RandomEventGenerator, TestMethods} import collection.mutable.ArrayBuffer -import org.junit.{After, Test, Before} +import org.junit.{After, Test} import gr.grnet.aquarium.{StoreConfigurator, LogicTestsAssumptions} import gr.grnet.aquarium.store.memory.MemStore -import gr.grnet.aquarium.event.resource.ResourceEventModel +import gr.grnet.aquarium.event.model.resource.ResourceEventModel /** * @author Georgios Gousios -- 1.7.10.4