Skip to content

Commit 3140beb

Browse files
author
vac
committed
Clean up and recommit
0 parents  commit 3140beb

File tree

71 files changed

+3890
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3890
-0
lines changed

.gitignore

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Compiled class file
2+
*.class
3+
4+
# Build
5+
**/build/*
6+
7+
# Log file
8+
*.log
9+
**/logs/archived/*
10+
11+
# BlueJ files
12+
*.ctxt
13+
14+
# Mobile Tools for Java (J2ME)
15+
.mtj.tmp/
16+
17+
# Package Files #
18+
*.war
19+
*.nar
20+
*.ear
21+
*.zip
22+
*.tar.gz
23+
*.rar
24+
25+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
26+
hs_err_pid*
27+
28+
# gradle
29+
**/.gradle/*
30+
gradlew
31+
gradlew.bat
32+
33+
# idea
34+
.idea/*
35+
36+
/common/.gradle/

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# webmethods-api-control-plane-agent-aws

application/Dockerfile

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM openjdk:17-jdk-slim as builder
2+
WORKDIR /opt/softwareag/
3+
4+
ARG JAR_FILE=build/libs/application-0.0.1-SNAPSHOT.jar
5+
COPY ${JAR_FILE} app.jar
6+
RUN java -Djarmode=layertools -jar app.jar extract
7+
8+
FROM openjdk:17-jdk-slim
9+
WORKDIR /opt/softwareag/
10+
11+
USER root
12+
13+
COPY --from=builder /opt/softwareag/dependencies/ ./
14+
COPY --from=builder /opt/softwareag/spring-boot-loader/ ./
15+
COPY --from=builder /opt/softwareag/snapshot-dependencies/ ./
16+
COPY --from=builder /opt/softwareag/application/ ./
17+
18+
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

application/build.gradle

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
plugins {
2+
id 'java'
3+
id 'org.springframework.boot' version '3.1.6'
4+
id 'io.spring.dependency-management' version '1.1.4'
5+
id "io.freefair.lombok" version "6.4.3"
6+
}
7+
8+
group 'com.softwareag.controlplane.agentaws'
9+
version '0.0.1-SNAPSHOT'
10+
11+
java {
12+
sourceCompatibility = '17'
13+
}
14+
15+
repositories {
16+
mavenCentral()
17+
}
18+
19+
configurations {
20+
all {
21+
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
22+
}
23+
}
24+
25+
dependencies {
26+
implementation fileTree(dir: '../libs', include: '*.jar')
27+
implementation rootProject.agentSdkDependencies
28+
29+
implementation 'com.softwareag.controlplane.agentaws:heartbeat-handler'
30+
implementation 'com.softwareag.controlplane.agentaws:metrics-handler'
31+
implementation 'com.softwareag.controlplane.agentaws:assets-handler'
32+
implementation 'org.json:json:20231013'
33+
implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.1'
34+
implementation 'org.apache.commons:commons-lang3:3.12.0'
35+
implementation 'software.amazon.awssdk:apigateway:2.23.18'
36+
implementation 'software.amazon.awssdk:cloudwatch:2.23.18'
37+
implementation 'software.amazon.awssdk:cloudtrail:2.23.18'
38+
implementation 'software.amazon.awssdk:sts:2.23.18'
39+
implementation 'software.amazon.awssdk:s3:2.23.18'
40+
implementation 'jakarta.validation:jakarta.validation-api:3.0.2'
41+
implementation 'org.springframework.boot:spring-boot-starter-validation:3.2.2'
42+
implementation 'jakarta.el:jakarta.el-api:5.0.1'
43+
implementation 'javax.el:javax.el-api:2.2.4'
44+
implementation 'org.glassfish.web:javax.el:2.2.4'
45+
46+
testImplementation 'org.springframework.boot:spring-boot-starter-test'
47+
48+
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
49+
}
50+
51+
tasks.named('bootJar') {
52+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
53+
}
54+
55+
bootRun {
56+
57+
}
58+
59+
test {
60+
useJUnitPlatform()
61+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.softwareag.controlplane.agent.aws;
2+
3+
import com.softwareag.controlplane.agent.aws.configuration.AWSProperties;
4+
import com.softwareag.controlplane.agent.aws.configuration.AgentProperties;
5+
import com.softwareag.controlplane.agent.aws.configuration.ControlPlaneProperties;
6+
import com.softwareag.controlplane.agent.aws.configuration.RuntimeProperties;
7+
import com.softwareag.controlplane.agentsdk.api.AgentSdkContext;
8+
import com.softwareag.controlplane.agentsdk.core.AgentSdk;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.boot.CommandLineRunner;
11+
import org.springframework.boot.SpringApplication;
12+
import org.springframework.boot.autoconfigure.SpringBootApplication;
13+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
14+
15+
@SpringBootApplication
16+
@EnableConfigurationProperties({AgentProperties.class, AWSProperties.class,
17+
ControlPlaneProperties.class, RuntimeProperties.class})
18+
public class ControlplaneAgentAwsApplication implements CommandLineRunner {
19+
20+
@Autowired
21+
private AgentSdkContext agentSdkContext;
22+
23+
public static void main(String[] args) {
24+
SpringApplication.run(ControlplaneAgentAwsApplication.class, args);
25+
}
26+
27+
/**
28+
* Entry point for the AWS Agent application.
29+
*
30+
* @param args Command-line arguments.
31+
* @throws Exception If an error occurs during application startup.
32+
*/
33+
@Override
34+
public void run(String... args) throws Exception {
35+
AgentSdk.initialize(agentSdkContext);
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.softwareag.controlplane.agent.aws.configuration;
2+
3+
import com.softwareag.controlplane.agentaws.auth.AWSCredentialsProvider;
4+
import com.softwareag.controlplane.agentaws.heartbeat.manager.impl.HeartbeatManagerImpl;
5+
import com.softwareag.controlplane.agentaws.assets.manager.impl.AssetsManagerImpl;
6+
import com.softwareag.controlplane.agentaws.metrics.manager.impl.MetricsManagerImpl;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.context.annotation.Bean;
9+
import org.springframework.context.annotation.Configuration;
10+
import software.amazon.awssdk.regions.Region;
11+
import software.amazon.awssdk.services.sts.StsClient;
12+
13+
/**
14+
* Configuration class responsible for managing AWS agent specific beans and configurations.
15+
*/
16+
@Configuration
17+
public class AWSAgentConfigManager {
18+
19+
@Autowired
20+
private AWSProperties awsProperties;
21+
22+
/**
23+
* Creates and provides an instance of HeartbeatManagerImpl, configured with AWS credentials and region.
24+
*
25+
* @return The configured HeartbeatManagerImpl instance.
26+
*/
27+
@Bean
28+
public HeartbeatManagerImpl heartbeatManager() {
29+
return HeartbeatManagerImpl.getInstance(awsProperties.getRegion());
30+
}
31+
32+
/**
33+
* Creates and provides an instance of MetricsManagerImpl, configured with AWS credentials, region, stage, and metrics preferences.
34+
*
35+
* @return The configured MetricsManagerImpl instance.
36+
*/
37+
@Bean
38+
public MetricsManagerImpl metricsManager() {
39+
return MetricsManagerImpl.getInstance(awsProperties.getRegion(), awsProperties.getStage(), awsProperties.getMetricsByDataOrStatistics());
40+
}
41+
42+
/**
43+
* Creates and provides an instance of AssetsManagerImpl, configured with AWS credentials and region.
44+
*
45+
* @return The configured AssetsManagerImpl instance.
46+
*/
47+
@Bean
48+
public AssetsManagerImpl assetsManager() {
49+
return AssetsManagerImpl.getInstance(awsProperties.getRegion());
50+
}
51+
52+
/**
53+
* Creates and configures an AWS Security Token Service (STS) client for accessing AWS resources.
54+
*
55+
* @return The configured STS client.
56+
*/
57+
@Bean
58+
public StsClient stsClient() {
59+
return StsClient.builder()
60+
.region(Region.of(awsProperties.getRegion()))
61+
.credentialsProvider(AWSCredentialsProvider.getCredentialsProvider())
62+
.build();
63+
}
64+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.softwareag.controlplane.agent.aws.configuration;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.springframework.boot.context.properties.ConfigurationProperties;
6+
import org.springframework.validation.annotation.Validated;
7+
import software.amazon.awssdk.annotations.NotNull;
8+
9+
/**
10+
* AWS properties read from application.properties or from environment variables
11+
*/
12+
@ConfigurationProperties(prefix = "aws")
13+
@Validated
14+
@Getter
15+
@Setter
16+
public class AWSProperties {
17+
@NotNull
18+
private String region;
19+
@NotNull
20+
private String stage;
21+
@NotNull
22+
private String metricsByDataOrStatistics;
23+
private int metricsSyncBufferIntervalSeconds;
24+
private int assetsSyncBufferIntervalSeconds;
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.softwareag.controlplane.agent.aws.configuration;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.springframework.boot.context.properties.ConfigurationProperties;
6+
7+
/**
8+
* Agent properties read from application.properties or from environment variables
9+
*/
10+
@ConfigurationProperties(prefix = "apicp")
11+
@Getter
12+
@Setter
13+
public class AgentProperties {
14+
15+
private boolean publishAssets;
16+
private boolean syncAssets;
17+
private boolean sendMetrics;
18+
private int heartbeatSendIntervalSeconds;
19+
private int metricsSendIntervalSeconds;
20+
private int assetsSyncIntervalSeconds;
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.softwareag.controlplane.agent.aws.configuration;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.springframework.boot.context.properties.ConfigurationProperties;
6+
import software.amazon.awssdk.annotations.NotNull;
7+
8+
/**
9+
* ControlPlane properties read from application.properties or from environment variables
10+
*/
11+
@ConfigurationProperties(prefix = "apicp.control-plane")
12+
@Getter
13+
@Setter
14+
public class ControlPlaneProperties {
15+
@NotNull
16+
private String url;
17+
@NotNull
18+
private String username;
19+
@NotNull
20+
private String password;
21+
private boolean sslEnabled;
22+
private String trustStorePath;
23+
private String trustStorePassword;
24+
private String trustStoreType;
25+
private String keyStorePath;
26+
private String keyStorePassword;
27+
private String keyStoreType;
28+
private String keyAlias;
29+
private String keyPassword;
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.softwareag.controlplane.agent.aws.configuration;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.springframework.boot.context.properties.ConfigurationProperties;
6+
7+
import java.util.Set;
8+
9+
/**
10+
* Runtime properties read from application.properties or from environment variables
11+
*/
12+
@ConfigurationProperties(prefix = "apicp.runtime")
13+
@Getter
14+
@Setter
15+
public class RuntimeProperties {
16+
private String name;
17+
private String description;
18+
private String region;
19+
private String location;
20+
private Set<String> tags;
21+
private long capacityValue;
22+
private String capacityUnit;
23+
private String typeId;
24+
}

0 commit comments

Comments
 (0)