1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package br.com.ingenieux.mojo.beanstalk.bundle;
18
19 import com.amazonaws.AmazonClientException;
20 import com.amazonaws.AmazonServiceException;
21
22 import org.apache.maven.plugin.MojoExecutionException;
23 import org.apache.maven.plugin.MojoFailureException;
24 import org.apache.maven.plugins.annotations.Mojo;
25 import org.apache.maven.plugins.annotations.Parameter;
26
27 import java.util.Calendar;
28 import java.util.Date;
29
30 import br.com.ingenieux.mojo.aws.util.BeanstalkerS3Client;
31 import br.com.ingenieux.mojo.beanstalk.AbstractBeanstalkMojo;
32
33
34
35
36
37
38 @Mojo(name = "delete-multiparts")
39 public class DeleteMultipartsMojo extends AbstractBeanstalkMojo {
40
41
42
43
44 @Parameter(property = "beanstalk.s3Bucket", defaultValue = "${project.artifactId}", required = true)
45 String s3Bucket;
46
47
48
49
50 @Parameter(property = "beanstalk.daysToDelete", defaultValue = "365")
51 Integer daysToDelete;
52
53 protected Object executeInternal() throws MojoExecutionException, MojoFailureException, AmazonServiceException, AmazonClientException, InterruptedException {
54 BeanstalkerS3Client client = new BeanstalkerS3Client(getAWSCredentials(), getClientConfiguration(), getRegion());
55
56 Calendar c = Calendar.getInstance();
57
58 c.add(Calendar.DAY_OF_YEAR, -daysToDelete);
59
60 Date since = c.getTime();
61
62 client.deleteMultiparts(s3Bucket, since);
63
64 return null;
65 }
66 }