diff --git a/README.md b/README.md index 4a31deee..b50f95af 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ val s3obj: Option[S3Object] = bucket.getObject("sample.txt") s3obj.foreach { obj => obj.publicUrl // http://unique-name-xxx.s3.amazonaws.com/sample.txt - obj.generatePresignedUrl(DateTime.now.plusMinutes(10)) // ?Expires=.... + obj.generatePresignedUrl(DateTime.now().plusMinutes(10)) // ?Expires=.... bucket.delete(obj) // or obj.destroy() } ``` diff --git a/build.sbt b/build.sbt index 14c6c950..e4548a41 100644 --- a/build.sbt +++ b/build.sbt @@ -72,8 +72,6 @@ lazy val core = project moduleName := "awscala-core", libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-core" % awsJavaSdkVersion, - "joda-time" % "joda-time" % "2.10.10", - "org.joda" % "joda-convert" % "2.2.1", "org.scala-lang.modules" %% "scala-collection-compat" % "2.4.3", "org.bouncycastle" % "bcprov-jdk16" % "1.46" % "provided", "ch.qos.logback" % "logback-classic" % "1.2.3" % "test", diff --git a/core/src/main/scala/awscala/DateTime.scala b/core/src/main/scala/awscala/DateTime.scala index 4b83eecf..633197c1 100644 --- a/core/src/main/scala/awscala/DateTime.scala +++ b/core/src/main/scala/awscala/DateTime.scala @@ -1,16 +1,25 @@ package awscala -import org.joda.time.format.DateTimeFormatter +import java.time.chrono.Chronology +import java.time.format.DateTimeFormatter object DateTime { - import org.joda.time.{ DateTime => Joda, _ } + import java.time._ - def now() = Joda.now() - def now(zone: DateTimeZone) = Joda.now(zone) - def now(chronology: Chronology) = Joda.now(chronology) + private[this] val UTC = ZoneId.of("UTC") - def parse(str: String) = Joda.parse(str) - def parse(str: String, formatter: DateTimeFormatter) = Joda.parse(str, formatter) + def apply(date: java.util.Date): ZonedDateTime = + ZonedDateTime.ofInstant(date.toInstant, UTC) + def toDate(dateTime: ZonedDateTime): java.util.Date = + java.util.Date.from(dateTime.toInstant) + + def now(): ZonedDateTime = ZonedDateTime.now() + def now(zone: ZoneId): ZonedDateTime = ZonedDateTime.now(zone) + def now(chronology: Chronology): ZonedDateTime = + ZonedDateTime.ofInstant(chronology.zonedDateTime(Instant.now()).toInstant, UTC) + + def parse(str: String): ZonedDateTime = ZonedDateTime.parse(str) + def parse(str: String, formatter: DateTimeFormatter): ZonedDateTime = ZonedDateTime.parse(str, formatter) } diff --git a/core/src/main/scala/awscala/package.scala b/core/src/main/scala/awscala/package.scala index d883d6f5..bcbe121b 100644 --- a/core/src/main/scala/awscala/package.scala +++ b/core/src/main/scala/awscala/package.scala @@ -2,7 +2,7 @@ package object awscala { // Workaround for https://issues.scala-lang.org/browse/SI-7139 val Region: Region0.type = Region0 type Region = com.amazonaws.regions.Region - type DateTime = org.joda.time.DateTime + type DateTime = java.time.ZonedDateTime type ByteBuffer = java.nio.ByteBuffer type File = java.io.File diff --git a/dynamodb/src/main/scala/awscala/dynamodbv2/TableMeta.scala b/dynamodb/src/main/scala/awscala/dynamodbv2/TableMeta.scala index 8ea7dd1d..b71ea4f9 100644 --- a/dynamodb/src/main/scala/awscala/dynamodbv2/TableMeta.scala +++ b/dynamodb/src/main/scala/awscala/dynamodbv2/TableMeta.scala @@ -1,5 +1,6 @@ package awscala.dynamodbv2 +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ dynamodbv2 => aws } @@ -22,7 +23,7 @@ object TableMeta { indexes.asScala.map(i => LocalSecondaryIndexMeta(i)) }.getOrElse(Nil).toSeq, provisionedThroughput = ProvisionedThroughputMeta(t.getProvisionedThroughput), - createdAt = new DateTime(t.getCreationDateTime), + createdAt = DateTime(t.getCreationDateTime), billingModeSummary = Option(t.getBillingModeSummary).map(BillingModeSummary.apply)) } @@ -50,7 +51,7 @@ case class TableMeta( billingMode = billingModeSummary.map(_.billingMode).map(aws.model.BillingMode.fromValue)) setAttributeDefinitions(attributes.map(_.asInstanceOf[aws.model.AttributeDefinition]).asJava) - setCreationDateTime(createdAt.toDate) + setCreationDateTime(toDate(createdAt)) setItemCount(itemCount) setKeySchema(keySchema.map(_.asInstanceOf[aws.model.KeySchemaElement]).asJava) setGlobalSecondaryIndexes(globalSecondaryIndexes.asJava) @@ -89,8 +90,8 @@ object ProvisionedThroughputMeta { numberOfDecreasesToday = p.getNumberOfDecreasesToday, readCapacityUnits = p.getReadCapacityUnits, writeCapacityUnits = p.getWriteCapacityUnits, - lastDecreasedAt = new DateTime(p.getLastDecreaseDateTime), - lastIncreasedAt = new DateTime(p.getLastIncreaseDateTime)) + lastDecreasedAt = DateTime(p.getLastDecreaseDateTime), + lastIncreasedAt = DateTime(p.getLastIncreaseDateTime)) } case class ProvisionedThroughputMeta( numberOfDecreasesToday: Long, @@ -99,8 +100,8 @@ case class ProvisionedThroughputMeta( lastDecreasedAt: DateTime, lastIncreasedAt: DateTime) extends aws.model.ProvisionedThroughputDescription { - setLastDecreaseDateTime(lastDecreasedAt.toDate) - setLastIncreaseDateTime(lastIncreasedAt.toDate) + setLastDecreaseDateTime(toDate(lastDecreasedAt)) + setLastIncreaseDateTime(toDate(lastIncreasedAt)) setNumberOfDecreasesToday(numberOfDecreasesToday) setReadCapacityUnits(readCapacityUnits) setWriteCapacityUnits(writeCapacityUnits) @@ -109,12 +110,12 @@ case class ProvisionedThroughputMeta( object BillingModeSummary { def apply(p: aws.model.BillingModeSummary): BillingModeSummary = new BillingModeSummary( billingMode = p.getBillingMode, - lastUpdateToPayPerRequestDateTime = new DateTime(p.getLastUpdateToPayPerRequestDateTime)) + lastUpdateToPayPerRequestDateTime = DateTime(p.getLastUpdateToPayPerRequestDateTime)) } case class BillingModeSummary( billingMode: String, lastUpdateToPayPerRequestDateTime: DateTime) extends aws.model.BillingModeSummary { setBillingMode(billingMode) - setLastUpdateToPayPerRequestDateTime(lastUpdateToPayPerRequestDateTime.toDate) + setLastUpdateToPayPerRequestDateTime(toDate(lastUpdateToPayPerRequestDateTime)) } diff --git a/emr/src/main/scala/awscala/emr/EMR.scala b/emr/src/main/scala/awscala/emr/EMR.scala index 315975cf..784a1c2d 100644 --- a/emr/src/main/scala/awscala/emr/EMR.scala +++ b/emr/src/main/scala/awscala/emr/EMR.scala @@ -1,12 +1,16 @@ package awscala.emr import awscala._ + import scala.jdk.CollectionConverters._ import scala.concurrent.duration._ import scala.language.postfixOps import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.services.{ elasticmapreduce => aws } import aws.model._ +import awscala.DateTime.toDate + +import java.time.temporal.ChronoUnit object EMR { def apply(credentials: Credentials)(implicit region: Region): EMR = new EMRClient(BasicCredentialsProvider(credentials.getAWSAccessKeyId, credentials.getAWSSecretKey)).at(region) @@ -215,7 +219,7 @@ trait EMR extends aws.AmazonElasticMapReduce { def runningClusters() = clusters(Seq("RUNNING")) def recentClusters(duration: Duration = 1 hour) = - clusterSummaries(Nil, None, Some(new DateTime().minusMillis(duration.toMillis.toInt).toDate())).toList.sortBy(x => x.getStatus().getTimeline().getCreationDateTime()) map { x => toCluster(x) } + clusterSummaries(Nil, None, Some(toDate(DateTime.now().minus(duration.toMillis, ChronoUnit.MILLIS)))).toList.sortBy(x => x.getStatus().getTimeline().getCreationDateTime()) map { x => toCluster(x) } def clusterSummaries(clusterStates: Seq[String] = Nil, createdBefore: Option[java.util.Date] = None, createdAfter: Option[java.util.Date] = None): Seq[ClusterSummary] = { import aws.model.ListClustersResult diff --git a/iam/src/main/scala/awscala/iam/Group.scala b/iam/src/main/scala/awscala/iam/Group.scala index 9cc0c891..662116b8 100644 --- a/iam/src/main/scala/awscala/iam/Group.scala +++ b/iam/src/main/scala/awscala/iam/Group.scala @@ -1,5 +1,6 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ identitymanagement => aws } @@ -10,11 +11,11 @@ object Group { name = g.getGroupName, arn = g.getArn, path = g.getPath, - createdAt = new DateTime(g.getCreateDate)) + createdAt = DateTime(g.getCreateDate)) } case class Group(id: String, name: String, arn: String, path: String, createdAt: DateTime) - extends aws.model.Group(path, name, id, arn, createdAt.toDate) { + extends aws.model.Group(path, name, id, arn, toDate(createdAt)) { def updateName(newName: String)(implicit iam: IAM) = iam.updateGroupName(this, newName) def updatePath(newPath: String)(implicit iam: IAM) = iam.updateGroupPath(this, newPath) diff --git a/iam/src/main/scala/awscala/iam/InstanceProfile.scala b/iam/src/main/scala/awscala/iam/InstanceProfile.scala index 642c1d2b..1577d422 100644 --- a/iam/src/main/scala/awscala/iam/InstanceProfile.scala +++ b/iam/src/main/scala/awscala/iam/InstanceProfile.scala @@ -1,6 +1,8 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ + import scala.jdk.CollectionConverters._ import com.amazonaws.services.{ identitymanagement => aws } @@ -12,14 +14,14 @@ object InstanceProfile { arn = g.getArn, path = g.getPath, roles = g.getRoles.asScala.map(r => Role(r)).toSeq, - createdAt = new DateTime(g.getCreateDate)) + createdAt = DateTime(g.getCreateDate)) } case class InstanceProfile(id: String, name: String, arn: String, path: String, roles: Seq[Role], createdAt: DateTime) extends aws.model.InstanceProfile { setArn(arn) - setCreateDate(createdAt.toDate) + setCreateDate(toDate(createdAt)) setInstanceProfileId(id) setInstanceProfileName(name) setPath(path) diff --git a/iam/src/main/scala/awscala/iam/LoginProfile.scala b/iam/src/main/scala/awscala/iam/LoginProfile.scala index 0b21923d..abb14e4b 100644 --- a/iam/src/main/scala/awscala/iam/LoginProfile.scala +++ b/iam/src/main/scala/awscala/iam/LoginProfile.scala @@ -1,21 +1,22 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ -import scala.jdk.CollectionConverters._ + import com.amazonaws.services.{ identitymanagement => aws } object LoginProfile { def apply(user: User, g: aws.model.LoginProfile): LoginProfile = new LoginProfile( user = user, - createdAt = new DateTime(g.getCreateDate)) + createdAt = DateTime(g.getCreateDate)) } case class LoginProfile(user: User, createdAt: DateTime) extends aws.model.LoginProfile { setUserName(user.name) - setCreateDate(createdAt.toDate) + setCreateDate(toDate(createdAt)) def changePassword(newPassword: String)(implicit iam: IAM) = iam.changeUserPassword(this, newPassword) def destroy()(implicit iam: IAM) = iam.delete(this) diff --git a/iam/src/main/scala/awscala/iam/Role.scala b/iam/src/main/scala/awscala/iam/Role.scala index 5829bad2..858d21bf 100644 --- a/iam/src/main/scala/awscala/iam/Role.scala +++ b/iam/src/main/scala/awscala/iam/Role.scala @@ -1,5 +1,6 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ identitymanagement => aws } @@ -11,7 +12,7 @@ object Role { arn = g.getArn, path = g.getPath, assumeRolePolicyDocument = g.getAssumeRolePolicyDocument, - createdAt = new DateTime(g.getCreateDate)) + createdAt = DateTime(g.getCreateDate)) } case class Role(id: String, name: String, arn: String, path: String, assumeRolePolicyDocument: String, createdAt: DateTime) @@ -19,7 +20,7 @@ case class Role(id: String, name: String, arn: String, path: String, assumeRoleP setArn(arn) setAssumeRolePolicyDocument(assumeRolePolicyDocument) - setCreateDate(createdAt.toDate) + setCreateDate(toDate(createdAt)) setPath(path) setRoleId(id) setRoleName(name) diff --git a/iam/src/main/scala/awscala/iam/User.scala b/iam/src/main/scala/awscala/iam/User.scala index f19ddb8b..c91e4232 100644 --- a/iam/src/main/scala/awscala/iam/User.scala +++ b/iam/src/main/scala/awscala/iam/User.scala @@ -1,5 +1,6 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ identitymanagement => aws } @@ -10,11 +11,11 @@ object User { name = g.getUserName, arn = g.getArn, path = g.getPath, - createdAt = new DateTime(g.getCreateDate)) + createdAt = DateTime(g.getCreateDate)) } case class User(id: String, name: String, arn: String, path: String, createdAt: DateTime) - extends aws.model.User(path, name, id, arn, createdAt.toDate) { + extends aws.model.User(path, name, id, arn, toDate(createdAt)) { def updateName(name: String)(implicit iam: IAM) = iam.updateUserName(this, name) def updatePath(path: String)(implicit iam: IAM) = iam.updateUserPath(this, path) diff --git a/iam/src/main/scala/awscala/iam/VirtualMFADevice.scala b/iam/src/main/scala/awscala/iam/VirtualMFADevice.scala index edf866d3..bc5079e1 100644 --- a/iam/src/main/scala/awscala/iam/VirtualMFADevice.scala +++ b/iam/src/main/scala/awscala/iam/VirtualMFADevice.scala @@ -1,5 +1,6 @@ package awscala.iam +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ identitymanagement => aws } @@ -7,13 +8,13 @@ object VirtualMFADevice { def apply(user: User, g: aws.model.MFADevice): VirtualMFADevice = new VirtualMFADevice( base32StringSeed = None, - enabledAt = new DateTime(g.getEnableDate), + enabledAt = DateTime(g.getEnableDate), qrCodePng = None, serialNumber = g.getSerialNumber, user = user) def apply(g: aws.model.VirtualMFADevice): VirtualMFADevice = new VirtualMFADevice( base32StringSeed = Some(g.getBase32StringSeed), - enabledAt = new DateTime(g.getEnableDate), + enabledAt = DateTime(g.getEnableDate), qrCodePng = Some(g.getQRCodePNG), serialNumber = g.getSerialNumber, user = User(g.getUser)) @@ -25,7 +26,7 @@ case class VirtualMFADevice( extends aws.model.VirtualMFADevice { setBase32StringSeed(base32StringSeed.orNull[java.nio.ByteBuffer]) - setEnableDate(enabledAt.toDate) + setEnableDate(toDate(enabledAt)) setQRCodePNG(qrCodePng.orNull[java.nio.ByteBuffer]) setSerialNumber(serialNumber) setUser(user) diff --git a/redshift/src/main/scala/awscala/redshift/Cluster.scala b/redshift/src/main/scala/awscala/redshift/Cluster.scala index c4864432..97a8d40f 100644 --- a/redshift/src/main/scala/awscala/redshift/Cluster.scala +++ b/redshift/src/main/scala/awscala/redshift/Cluster.scala @@ -1,6 +1,8 @@ package awscala.redshift +import awscala.DateTime.toDate import awscala._ + import scala.jdk.CollectionConverters._ import com.amazonaws.services.{ redshift => aws } @@ -28,7 +30,7 @@ object Cluster { securityGroupMemberships = c.getClusterSecurityGroups.asScala.map(m => ClusterSecurityGroupMembership(m)).toSeq, vpcId = c.getVpcId, vpcSecurityGroupMemberships = c.getVpcSecurityGroups.asScala.map(m => VpcSecurityGroupMembership(m)).toSeq, - createdAt = new DateTime(c.getClusterCreateTime)) + createdAt = DateTime(c.getClusterCreateTime)) } class Cluster( @@ -59,7 +61,7 @@ class Cluster( setAllowVersionUpgrade(allowVersionUpgrade) setAutomatedSnapshotRetentionPeriod(automatedSnapshotRetentionPeriod) setAvailabilityZone(availabilityZone.name) - setClusterCreateTime(createdAt.toDate) + setClusterCreateTime(toDate(createdAt)) setClusterIdentifier(identifier) setClusterParameterGroups(parameterGroupStatuses.map(_.asInstanceOf[aws.model.ClusterParameterGroupStatus]).asJava) setClusterSecurityGroups(securityGroupMemberships.map(_.asInstanceOf[aws.model.ClusterSecurityGroupMembership]).asJava) diff --git a/redshift/src/main/scala/awscala/redshift/Event.scala b/redshift/src/main/scala/awscala/redshift/Event.scala index 44fd2e94..120bfcd5 100644 --- a/redshift/src/main/scala/awscala/redshift/Event.scala +++ b/redshift/src/main/scala/awscala/redshift/Event.scala @@ -1,5 +1,6 @@ package awscala.redshift +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ redshift => aws } @@ -9,7 +10,7 @@ object Event { sourceIdentifier = e.getSourceIdentifier, sourceType = aws.model.SourceType.fromValue(e.getSourceType), message = e.getMessage, - createdAt = new DateTime(e.getDate)) + createdAt = DateTime(e.getDate)) } case class Event( @@ -18,7 +19,7 @@ case class Event( message: String, createdAt: DateTime) extends aws.model.Event { - setDate(createdAt.toDate) + setDate(toDate(createdAt)) setMessage(message) setSourceIdentifier(sourceIdentifier) setSourceType(sourceType) diff --git a/redshift/src/main/scala/awscala/redshift/Redshift.scala b/redshift/src/main/scala/awscala/redshift/Redshift.scala index cd8f4738..ef275e45 100644 --- a/redshift/src/main/scala/awscala/redshift/Redshift.scala +++ b/redshift/src/main/scala/awscala/redshift/Redshift.scala @@ -1,6 +1,8 @@ package awscala.redshift +import awscala.DateTime.toDate import awscala._ + import scala.jdk.CollectionConverters._ import com.amazonaws.auth.AWSCredentialsProvider import com.amazonaws.services.{ redshift => aws } @@ -123,7 +125,7 @@ trait Redshift extends aws.AmazonRedshift { val req = new aws.model.DescribeClusterSnapshotsRequest() .withSnapshotIdentifier(snapshotIdentifier) - .withStartTime(from.toDate) + .withStartTime(toDate(from)) .withMarker(marker) .withMaxRecords(maxRecords) .withOwnerAccount(ownerAccount) @@ -133,10 +135,10 @@ trait Redshift extends aws.AmazonRedshift { req.setClusterIdentifier(clusterIdentifier) } if (from != null) { - req.setStartTime(from.toDate) + req.setStartTime(toDate(from)) } if (to != null) { - req.setEndTime(to.toDate) + req.setEndTime(toDate(to)) } if (marker != null) { req.setMarker(marker) diff --git a/redshift/src/main/scala/awscala/redshift/ReservedNode.scala b/redshift/src/main/scala/awscala/redshift/ReservedNode.scala index a9c1fd70..99946774 100644 --- a/redshift/src/main/scala/awscala/redshift/ReservedNode.scala +++ b/redshift/src/main/scala/awscala/redshift/ReservedNode.scala @@ -1,6 +1,8 @@ package awscala.redshift +import awscala.DateTime.toDate import awscala._ + import scala.jdk.CollectionConverters._ import com.amazonaws.services.{ redshift => aws } @@ -20,7 +22,7 @@ object ReservedNode { recurringCharges = n.getRecurringCharges.asScala.map(c => RecurringCharge( amount = c.getRecurringChargeAmount, frequency = c.getRecurringChargeFrequency)).toSeq, - startedAt = new DateTime(n.getStartTime)) + startedAt = DateTime(n.getStartTime)) } class ReservedNode( @@ -47,7 +49,7 @@ class ReservedNode( setRecurringCharges(recurringCharges.map(_.asInstanceOf[aws.model.RecurringCharge]).asJava) setReservedNodeId(id) setReservedNodeOfferingId(offeringId) - setStartTime(startedAt.toDate) + setStartTime(toDate(startedAt)) setState(state) setUsagePrice(usagePrice) } diff --git a/redshift/src/main/scala/awscala/redshift/Snapshot.scala b/redshift/src/main/scala/awscala/redshift/Snapshot.scala index eca168d0..db54a8f6 100644 --- a/redshift/src/main/scala/awscala/redshift/Snapshot.scala +++ b/redshift/src/main/scala/awscala/redshift/Snapshot.scala @@ -1,6 +1,8 @@ package awscala.redshift +import awscala.DateTime.toDate import awscala._ + import scala.jdk.CollectionConverters._ import com.amazonaws.services.{ redshift => aws } @@ -28,8 +30,8 @@ object Snapshot { totalBackupSizeInMegaBytes = s.getTotalBackupSizeInMegaBytes, vpcId = s.getVpcId, accountsWithRestoreAccess = s.getAccountsWithRestoreAccess.asScala.map(a => AccountWithRestoreAccess(a.getAccountId)).toSeq, - clusterCreatedAt = new DateTime(s.getClusterCreateTime), - snapshotCreatedAt = new DateTime(s.getSnapshotCreateTime)) + clusterCreatedAt = DateTime(s.getClusterCreateTime), + snapshotCreatedAt = DateTime(s.getSnapshotCreateTime)) } class Snapshot( @@ -61,7 +63,7 @@ class Snapshot( setActualIncrementalBackupSizeInMegaBytes(actualIncrementalBackupSizeInMegaBytes) setAvailabilityZone(availabilityZone.name) setBackupProgressInMegaBytes(backupProgressInMegaBytes) - setClusterCreateTime(clusterCreatedAt.toDate) + setClusterCreateTime(toDate(clusterCreatedAt)) setClusterIdentifier(clusterIdentifier) setClusterVersion(clusterVersion.version) setCurrentBackupRateInMegaBytesPerSecond(currentBackupRateInMegaBytesPerSecond) @@ -74,7 +76,7 @@ class Snapshot( setNumberOfNodes(numOfNodes) setOwnerAccount(ownerAccount) setPort(port) - setSnapshotCreateTime(snapshotCreatedAt.toDate) + setSnapshotCreateTime(toDate(snapshotCreatedAt)) setSnapshotIdentifier(snapshotIdentifier) setSnapshotType(snapshotType.value) setStatus(status.value) diff --git a/s3/src/main/scala/awscala/s3/PutObjectResult.scala b/s3/src/main/scala/awscala/s3/PutObjectResult.scala index 1378259e..120829ef 100644 --- a/s3/src/main/scala/awscala/s3/PutObjectResult.scala +++ b/s3/src/main/scala/awscala/s3/PutObjectResult.scala @@ -1,5 +1,6 @@ package awscala.s3 +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ s3 => aws } @@ -11,7 +12,7 @@ object PutObjectResult { versionId = obj.getVersionId, eTag = obj.getETag, contentMd5 = null, - expirationTime = new DateTime(obj.getExpirationTime), + expirationTime = DateTime(obj.getExpirationTime), expirationTimeRuleId = obj.getExpirationTimeRuleId, sseAlgorithm = obj.getSSEAlgorithm) @@ -21,7 +22,7 @@ object PutObjectResult { versionId = obj.getVersionId, eTag = obj.getETag, contentMd5 = obj.getContentMd5, - expirationTime = new DateTime(obj.getExpirationTime), + expirationTime = DateTime(obj.getExpirationTime), expirationTimeRuleId = obj.getExpirationTimeRuleId, sseAlgorithm = obj.getSSEAlgorithm) } @@ -36,7 +37,7 @@ case class PutObjectResult(bucket: Bucket, key: String, versionId: String, setVersionId(versionId) setETag(eTag) setContentMd5(contentMd5) - setExpirationTime(expirationTime.toDate) + setExpirationTime(toDate(expirationTime)) setExpirationTimeRuleId(expirationTimeRuleId) setSSEAlgorithm(sseAlgorithm) } diff --git a/s3/src/main/scala/awscala/s3/S3.scala b/s3/src/main/scala/awscala/s3/S3.scala index 6d5c92a5..4501843e 100644 --- a/s3/src/main/scala/awscala/s3/S3.scala +++ b/s3/src/main/scala/awscala/s3/S3.scala @@ -1,7 +1,8 @@ package awscala.s3 -import java.io.{ ByteArrayInputStream, File, InputStream } +import awscala.DateTime.toDate +import java.io.{ ByteArrayInputStream, File, InputStream } import awscala._ import com.amazonaws.ClientConfiguration import com.amazonaws.auth.AWSCredentialsProvider @@ -324,7 +325,7 @@ trait S3 extends aws.AmazonS3 { // presignedUrl def generatePresignedUrl(obj: S3Object, expiration: DateTime): java.net.URL = { - generatePresignedUrl(obj.bucket.name, obj.key, expiration.toDate) + generatePresignedUrl(obj.bucket.name, obj.key, toDate(expiration)) } } diff --git a/s3/src/main/scala/awscala/s3/S3ObjectSummary.scala b/s3/src/main/scala/awscala/s3/S3ObjectSummary.scala index 20c6b508..53cc0629 100644 --- a/s3/src/main/scala/awscala/s3/S3ObjectSummary.scala +++ b/s3/src/main/scala/awscala/s3/S3ObjectSummary.scala @@ -1,5 +1,6 @@ package awscala.s3 +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ s3 => aws } @@ -11,7 +12,7 @@ object S3ObjectSummary { size = obj.getSize, storageClass = obj.getStorageClass, eTag = obj.getETag, - lastModified = new DateTime(obj.getLastModified), + lastModified = DateTime(obj.getLastModified), owner = obj.getOwner) } @@ -24,7 +25,7 @@ class S3ObjectSummary(val bucket: Bucket, key: String, size: Long, setSize(size) setStorageClass(storageClass) setETag(eTag) - setLastModified(lastModified.toDate) + setLastModified(toDate(lastModified)) setOwner(owner) } diff --git a/stepfunctions/src/main/scala/awscala/stepfunctions/Execution.scala b/stepfunctions/src/main/scala/awscala/stepfunctions/Execution.scala index 9a200762..48186253 100644 --- a/stepfunctions/src/main/scala/awscala/stepfunctions/Execution.scala +++ b/stepfunctions/src/main/scala/awscala/stepfunctions/Execution.scala @@ -18,7 +18,7 @@ case class Execution(arn: String, startTime: DateTime) { ExecutionDetails( arn, startTime, - Option(details.getStopDate).map(new DateTime(_)), + Option(details.getStopDate).map(DateTime(_)), ExecutionStatus.fromString(details.getStatus), details.getInput, Option(details.getOutput)) @@ -83,7 +83,7 @@ case class Execution(arn: String, startTime: DateTime) { } HistorySequencer.sequence.flatMap { rawEvent => ExecutionEventDetails.fromEvent(rawEvent).map { event => - ExecutionEvent(rawEvent.getId, rawEvent.getPreviousEventId, new DateTime(rawEvent.getTimestamp), event) + ExecutionEvent(rawEvent.getId, rawEvent.getPreviousEventId, DateTime(rawEvent.getTimestamp), event) } } } diff --git a/stepfunctions/src/main/scala/awscala/stepfunctions/StateMachine.scala b/stepfunctions/src/main/scala/awscala/stepfunctions/StateMachine.scala index 1127092e..996f9ac0 100644 --- a/stepfunctions/src/main/scala/awscala/stepfunctions/StateMachine.scala +++ b/stepfunctions/src/main/scala/awscala/stepfunctions/StateMachine.scala @@ -19,7 +19,7 @@ case class StateMachine(arn: String) { .withInput(input) .withName(name) } - Execution(exec.getExecutionArn, new DateTime(exec.getStartDate)) + Execution(exec.getExecutionArn, DateTime(exec.getStartDate)) } def execution(name: String)(implicit steps: StepFunctions): Option[Execution] = executions().find(_.name == name) @@ -35,7 +35,7 @@ case class StateMachine(arn: String) { def getList(r: ListExecutionsResult): util.List[ExecutionListItem] = r.getExecutions } - ExecutionsSequencer.sequence.map(e => Execution(e.getExecutionArn, new DateTime(e.getStartDate))) + ExecutionsSequencer.sequence.map(e => Execution(e.getExecutionArn, DateTime(e.getStartDate))) } def definition()(implicit steps: StepFunctions): String = diff --git a/sts/src/main/scala/awscala/sts/TemporaryCredentials.scala b/sts/src/main/scala/awscala/sts/TemporaryCredentials.scala index 2a2fc194..ddba56e8 100644 --- a/sts/src/main/scala/awscala/sts/TemporaryCredentials.scala +++ b/sts/src/main/scala/awscala/sts/TemporaryCredentials.scala @@ -1,5 +1,6 @@ package awscala.sts +import awscala.DateTime.toDate import awscala._ import com.amazonaws.services.{ securitytoken => aws } import com.amazonaws.auth.{ AWSSessionCredentials, BasicSessionCredentials } @@ -9,7 +10,7 @@ object TemporaryCredentials { accessKeyId = c.getAccessKeyId, secretAccessKey = c.getSecretAccessKey, sessionToken = c.getSessionToken, - expiration = new DateTime(c.getExpiration)) + expiration = DateTime(c.getExpiration)) } case class TemporaryCredentials( @@ -19,7 +20,7 @@ case class TemporaryCredentials( expiration: DateTime) extends aws.model.Credentials { setAccessKeyId(accessKeyId) - setExpiration(expiration.toDate) + setExpiration(toDate(expiration)) setSecretAccessKey(secretAccessKey) setSessionToken(sessionToken)