All files / src pdk-pipeline-java-project.ts

100% Statements 12/12
50% Branches 1/2
100% Functions 1/1
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77      3x 3x 3x                       3x   3x                   3x   3x 3x 3x   3x         3x                                 3x                                      
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
 
import * as path from "path";
import { SampleDir } from "projen";
import { AwsCdkJavaApp, AwsCdkJavaAppOptions } from "projen/lib/awscdk";
 
/**
 * Configuration options for the PDKPipelineJavaProject.
 */
export interface PDKPipelineJavaProjectOptions extends AwsCdkJavaAppOptions {}
 
/**
 * Synthesizes a Java Project with a CI/CD pipeline.
 *
 * @pjid pdk-pipeline-java
 */
export class PDKPipelineJavaProject extends AwsCdkJavaApp {
  constructor(options: PDKPipelineJavaProjectOptions) {
    super({
      sample: false,
      junit: false,
      ...options,
      mainClass:
        options.mainClass !== "org.acme.MyApp"
          ? options.mainClass
          : 'software.aws.Pipeline -Dexec.classpathScope="test"',
    });
 
    this.addDependency("software.aws.awsprototypingsdk/aws-prototyping-sdk@^0");
 
    this.testTask.exec("mvn test");
    this.addTestDependency("org.junit.jupiter/junit-jupiter-api@5.7.0");
    this.addTestDependency("org.junit.jupiter/junit-jupiter-engine@5.7.0");
 
    const mainPackage = this.mainClass
      .split(" ")[0]
      .split(".")
      .slice(0, -1)
      .join(".");
    new SampleDir(
      this,
      path.join("src", "main", "java", ...mainPackage.split(".")),
      {
        sourceDir: path.join(
          __dirname,
          "..",
          "samples",
          "java",
          "src",
          "main",
          "java",
          "software",
          "aws"
        ),
      }
    );
    new SampleDir(
      this,
      path.join("src", "test", "java", ...mainPackage.split(".")),
      {
        sourceDir: path.join(
          __dirname,
          "..",
          "samples",
          "java",
          "src",
          "test",
          "java",
          "software",
          "aws"
        ),
      }
    );
  }
}