Skip to content

Commit

Permalink
Merge branch 'master' into guice
Browse files Browse the repository at this point in the history
  • Loading branch information
hoegertn committed Jan 22, 2024
2 parents 8189a1e + f7cee7a commit cf09377
Show file tree
Hide file tree
Showing 48 changed files with 656 additions and 797 deletions.
214 changes: 167 additions & 47 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,31 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.18</version>
<version>4.72</version>
<relativePath />
</parent>
<groupId>de.taimos</groupId>
<artifactId>pipeline-aws</artifactId>
<version>1.44-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Pipeline: AWS Steps</name>
<description>This plugins adds Jenkins pipeline steps to interact with the AWS API</description>
<scm>
<connection>scm:git:ssh://github.com/jenkinsci/pipeline-aws-plugin.git</connection>
<developerConnection>scm:git:ssh://git@github.com/jenkinsci/pipeline-aws-plugin.git</developerConnection>
<url>https://github.com/jenkinsci/pipeline-aws-plugin</url>
<tag>HEAD</tag>
</scm>
<connection>scm:git:https://github.com/${gitHubRepo}</connection>
<developerConnection>scm:git:git@github.com:${gitHubRepo}.git</developerConnection>
<tag>${scmTag}</tag>
<url>https://github.com/${gitHubRepo}</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.401.x</artifactId>
<version>2675.v1515e14da_7a_6</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
Expand Down Expand Up @@ -66,9 +76,10 @@
</pluginRepository>
</pluginRepositories>
<properties>
<jenkins.version>2.60.3</jenkins.version>
<java.level>8</java.level>
<powermock.version>1.6.5</powermock.version>
<jenkins.version>2.401.3</jenkins.version>
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
<awsSdk.version>1.12.610</awsSdk.version>
<awsSdkPlugin.version>1.12.610-428.v849169a_01b_a_5</awsSdkPlugin.version>
</properties>
<build>
<plugins>
Expand Down Expand Up @@ -102,7 +113,6 @@
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<goals>
<goal>check</goal>
Expand All @@ -116,48 +126,170 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>2.14</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>script-security</artifactId>
<version>1.41</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>structs</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.457</version>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-ec2</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>

<dependency>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-sns</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-elasticloadbalancingv2</artifactId>
<version>${awsSdk.version}</version>

<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-organizations</artifactId>
<version>${awsSdk.version}</version>

<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-cloudfront</artifactId>
<version>${awsSdk.version}</version>

<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-codedeploy</artifactId>
<version>${awsSdk.version}</version>
<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-lambda</artifactId>
<version>${awsSdk.version}</version>
<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-api-gateway</artifactId>
<version>${awsSdk.version}</version>
<exclusions>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</exclusion>

<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>jmespath-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-ecr</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>

<dependency>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-iam</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-elasticbeanstalk</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.aws-java-sdk</groupId>
<artifactId>aws-java-sdk-cloudformation</artifactId>
<version>${awsSdkPlugin.version}</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>credentials</artifactId>
<version>2.1.16</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plain-credentials</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>aws-credentials</artifactId>
<version>1.19</version>
<version>218.v1b_e9466ec5da_</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.26</version>
<groupId>io.jenkins.plugins</groupId>
<artifactId>snakeyaml-api</artifactId>
</dependency>
<dependency>
<groupId>xerces</groupId>
Expand All @@ -168,61 +300,41 @@
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-job</artifactId>
<version>2.11.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-cps</artifactId>
<version>2.45</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-basic-steps</artifactId>
<version>2.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-durable-task-step</artifactId>
<version>2.19</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-api</artifactId>
<version>2.26</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-support</artifactId>
<version>2.17</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>6.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -231,6 +343,14 @@
<version>3.9.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy -->
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.14.11</version>
<scope>test</scope>
</dependency>

</dependencies>

</project>
</project>
23 changes: 17 additions & 6 deletions src/main/java/de/taimos/pipeline/aws/AWSClientFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,16 @@
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.retry.RetryPolicy;

import hudson.EnvVars;
import hudson.FilePath;
import hudson.model.TaskListener;

import java.io.Serializable;
import java.io.IOException;

import org.apache.commons.lang.StringUtils;

import org.jenkinsci.plugins.workflow.steps.StepContext;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;

import java.io.IOException;
import java.io.Serializable;


public class AWSClientFactory implements Serializable {
Expand All @@ -56,13 +55,17 @@ public class AWSClientFactory implements Serializable {
static final String AWS_REGION = "AWS_REGION";
static final String AWS_ENDPOINT_URL = "AWS_ENDPOINT_URL";
static final String AWS_PIPELINE_STEPS_FROM_NODE = "AWS_PIPELINE_STEPS_FROM_NODE";
private static AWSClientFactoryDelegate factoryDelegate;


private AWSClientFactory() {
//
}

public static <B extends AwsSyncClientBuilder<?, T>, T> T create(B clientBuilder, StepContext context) {
if (factoryDelegate != null) {
return (T) factoryDelegate.create(clientBuilder);
}
try {
return configureBuilder(clientBuilder, context, context.get(EnvVars.class)).build();
} catch (Exception e) {
Expand All @@ -71,6 +74,9 @@ public static <B extends AwsSyncClientBuilder<?, T>, T> T create(B clientBuilder
}

public static <B extends AwsSyncClientBuilder<?, T>, T> T create(B clientBuilder, StepContext context, EnvVars vars) {
if (factoryDelegate != null) {
return (T) factoryDelegate.create(clientBuilder);
}
return configureBuilder(clientBuilder, context, vars).build();
}

Expand Down Expand Up @@ -175,4 +181,9 @@ private static Region getRegion(EnvVars vars) {
}

private static final long serialVersionUID = 1L;

@Restricted(NoExternalUse.class)
public static void setFactoryDelegate(AWSClientFactoryDelegate factoryDelegate) {
AWSClientFactory.factoryDelegate = factoryDelegate;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package de.taimos.pipeline.aws;

import com.amazonaws.client.builder.AwsSyncClientBuilder;

public interface AWSClientFactoryDelegate {
Object create(AwsSyncClientBuilder<?, ?> clientBuilder);
}

0 comments on commit cf09377

Please sign in to comment.