UNPKG

projen

Version:

CDK for software projects

92 lines 10 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AwsCdkJavaApp = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const path_1 = require("path"); const __1 = require(".."); const awscdk_deps_java_1 = require("./awscdk-deps-java"); const cdk_config_1 = require("./cdk-config"); const cdk_tasks_1 = require("./cdk-tasks"); const java_1 = require("../java"); /** * AWS CDK app in Java. * * @pjid awscdk-app-java */ class AwsCdkJavaApp extends java_1.JavaProject { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.103.12" }; /** * The `cdk.json` file. */ cdkConfig; /** * CDK dependency management helper class */ cdkDeps; /** * The full name of the main class of the java app (package.Class). */ mainClass; /** * CDK tasks. */ cdkTasks; /** * The name of the Java package that includes the main class. */ mainPackage; /** * The name of the Java class with the static `main()` method. */ mainClassName; constructor(options) { const mainClassComponents = options.mainClass.split("."); const mainPackage = mainClassComponents.slice(0, -1); const mainClassName = mainClassComponents[mainClassComponents.length - 1]; super({ ...options, sample: false, sampleJavaPackage: mainPackage.join("."), }); this.mainClass = options.mainClass; this.mainPackage = mainPackage.join("."); this.mainClassName = mainClassName; this.cdkDeps = new awscdk_deps_java_1.AwsCdkDepsJava(this, { dependencyType: __1.DependencyType.RUNTIME, ...options, }); this.cdkTasks = new cdk_tasks_1.CdkTasks(this); this.postCompileTask.spawn(this.cdkTasks.synth); this.cdkConfig = new cdk_config_1.CdkConfig(this, { app: `mvn exec:java --quiet -Dexec.mainClass=${this.mainClass}`, ...options, }); if (options.sample ?? true) { this.addSample(); } } addSample() { const pkg = this.mainPackage.split("."); const javaFile = `${this.mainClassName}.java`; new __1.SampleDir(this, (0, path_1.join)("src", "main", "java", ...pkg), { files: { [javaFile]: [ `package ${pkg.join(".")};`, "", "import software.amazon.awscdk.App;", "import software.amazon.awscdk.Stack;", "", `public class ${this.mainClassName} {`, " public static void main(final String[] args) {", " App app = new App();", ` new Stack(app, "${this.name}");`, " app.synth();", " }", "}", ].join("\n"), }, }); } } exports.AwsCdkJavaApp = AwsCdkJavaApp; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC1qYXZhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9hd3NjZGstYXBwLWphdmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtCQUE0QjtBQUM1QiwwQkFBK0M7QUFFL0MseURBQW9EO0FBRXBELDZDQUF5QztBQUN6QywyQ0FBdUM7QUFFdkMsa0NBQXNDO0FBYXRDOzs7O0dBSUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxrQkFBVzs7SUFDNUM7O09BRUc7SUFDYSxTQUFTLENBQVk7SUFFckM7O09BRUc7SUFDYSxPQUFPLENBQWE7SUFFcEM7O09BRUc7SUFDYSxTQUFTLENBQVM7SUFFbEM7O09BRUc7SUFDYSxRQUFRLENBQVc7SUFFbkM7O09BRUc7SUFDYSxXQUFXLENBQVM7SUFFcEM7O09BRUc7SUFDYSxhQUFhLENBQVM7SUFFdEMsWUFBWSxPQUE2QjtRQUN2QyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFMUUsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsTUFBTSxFQUFFLEtBQUs7WUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBRW5DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQ0FBYyxDQUFDLElBQUksRUFBRTtZQUN0QyxjQUFjLEVBQUUsa0JBQWMsQ0FBQyxPQUFPO1lBQ3RDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLEdBQUcsRUFBRSwwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMvRCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsT0FBTyxDQUFDO1FBQzlDLElBQUksYUFBUyxDQUFDLElBQUksRUFBRSxJQUFBLFdBQUksRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELEtBQUssRUFBRTtnQkFDTCxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNWLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDM0IsRUFBRTtvQkFDRixvQ0FBb0M7b0JBQ3BDLHNDQUFzQztvQkFDdEMsRUFBRTtvQkFDRixnQkFBZ0IsSUFBSSxDQUFDLGFBQWEsSUFBSTtvQkFDdEMsa0RBQWtEO29CQUNsRCwwQkFBMEI7b0JBQzFCLHVCQUF1QixJQUFJLENBQUMsSUFBSSxLQUFLO29CQUNyQyxrQkFBa0I7b0JBQ2xCLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBckZILHNDQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUsIFNhbXBsZURpciB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHR5cGUgeyBBd3NDZGtEZXBzLCBBd3NDZGtEZXBzQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2F3c2Nkay1kZXBzXCI7XG5pbXBvcnQgeyBBd3NDZGtEZXBzSmF2YSB9IGZyb20gXCIuL2F3c2Nkay1kZXBzLWphdmFcIjtcbmltcG9ydCB0eXBlIHsgQ2RrQ29uZmlnQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2Nkay1jb25maWdcIjtcbmltcG9ydCB7IENka0NvbmZpZyB9IGZyb20gXCIuL2Nkay1jb25maWdcIjtcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSBcIi4vY2RrLXRhc2tzXCI7XG5pbXBvcnQgdHlwZSB7IEphdmFQcm9qZWN0T3B0aW9ucyB9IGZyb20gXCIuLi9qYXZhXCI7XG5pbXBvcnQgeyBKYXZhUHJvamVjdCB9IGZyb20gXCIuLi9qYXZhXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrSmF2YUFwcE9wdGlvbnNcbiAgZXh0ZW5kcyBKYXZhUHJvamVjdE9wdGlvbnMsIENka0NvbmZpZ0NvbW1vbk9wdGlvbnMsIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhIGNsYXNzIHdpdGggdGhlIHN0YXRpYyBgbWFpbigpYCBtZXRob2QuIFRoaXMgbWV0aG9kXG4gICAqIHNob3VsZCBjYWxsIGBhcHAuc3ludGgoKWAgb24gdGhlIENESyBhcHAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwib3JnLmFjbWUuTXlBcHBcIlxuICAgKi9cbiAgcmVhZG9ubHkgbWFpbkNsYXNzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQVdTIENESyBhcHAgaW4gSmF2YS5cbiAqXG4gKiBAcGppZCBhd3NjZGstYXBwLWphdmFcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Nka0phdmFBcHAgZXh0ZW5kcyBKYXZhUHJvamVjdCB7XG4gIC8qKlxuICAgKiBUaGUgYGNkay5qc29uYCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka0NvbmZpZzogQ2RrQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDREsgZGVwZW5kZW5jeSBtYW5hZ2VtZW50IGhlbHBlciBjbGFzc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka0RlcHM6IEF3c0Nka0RlcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIG1haW4gY2xhc3Mgb2YgdGhlIGphdmEgYXBwIChwYWNrYWdlLkNsYXNzKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYWluQ2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogQ0RLIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka1Rhc2tzOiBDZGtUYXNrcztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEphdmEgcGFja2FnZSB0aGF0IGluY2x1ZGVzIHRoZSBtYWluIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1haW5QYWNrYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhIGNsYXNzIHdpdGggdGhlIHN0YXRpYyBgbWFpbigpYCBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWFpbkNsYXNzTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka0phdmFBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWFpbkNsYXNzQ29tcG9uZW50cyA9IG9wdGlvbnMubWFpbkNsYXNzLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCBtYWluUGFja2FnZSA9IG1haW5DbGFzc0NvbXBvbmVudHMuc2xpY2UoMCwgLTEpO1xuICAgIGNvbnN0IG1haW5DbGFzc05hbWUgPSBtYWluQ2xhc3NDb21wb25lbnRzW21haW5DbGFzc0NvbXBvbmVudHMubGVuZ3RoIC0gMV07XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc2FtcGxlOiBmYWxzZSxcbiAgICAgIHNhbXBsZUphdmFQYWNrYWdlOiBtYWluUGFja2FnZS5qb2luKFwiLlwiKSxcbiAgICB9KTtcblxuICAgIHRoaXMubWFpbkNsYXNzID0gb3B0aW9ucy5tYWluQ2xhc3M7XG4gICAgdGhpcy5tYWluUGFja2FnZSA9IG1haW5QYWNrYWdlLmpvaW4oXCIuXCIpO1xuICAgIHRoaXMubWFpbkNsYXNzTmFtZSA9IG1haW5DbGFzc05hbWU7XG5cbiAgICB0aGlzLmNka0RlcHMgPSBuZXcgQXdzQ2RrRGVwc0phdmEodGhpcywge1xuICAgICAgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlLlJVTlRJTUUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoKTtcblxuICAgIHRoaXMuY2RrQ29uZmlnID0gbmV3IENka0NvbmZpZyh0aGlzLCB7XG4gICAgICBhcHA6IGBtdm4gZXhlYzpqYXZhIC0tcXVpZXQgLURleGVjLm1haW5DbGFzcz0ke3RoaXMubWFpbkNsYXNzfWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlID8/IHRydWUpIHtcbiAgICAgIHRoaXMuYWRkU2FtcGxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTYW1wbGUoKSB7XG4gICAgY29uc3QgcGtnID0gdGhpcy5tYWluUGFja2FnZS5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgamF2YUZpbGUgPSBgJHt0aGlzLm1haW5DbGFzc05hbWV9LmphdmFgO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgam9pbihcInNyY1wiLCBcIm1haW5cIiwgXCJqYXZhXCIsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFtqYXZhRmlsZV06IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZy5qb2luKFwiLlwiKX07YCxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIFwiaW1wb3J0IHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsuQXBwO1wiLFxuICAgICAgICAgIFwiaW1wb3J0IHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsuU3RhY2s7XCIsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBgcHVibGljIGNsYXNzICR7dGhpcy5tYWluQ2xhc3NOYW1lfSB7YCxcbiAgICAgICAgICBcIiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oZmluYWwgU3RyaW5nW10gYXJncykge1wiLFxuICAgICAgICAgIFwiICAgIEFwcCBhcHAgPSBuZXcgQXBwKCk7XCIsXG4gICAgICAgICAgYCAgICBuZXcgU3RhY2soYXBwLCBcIiR7dGhpcy5uYW1lfVwiKTtgLFxuICAgICAgICAgIFwiICAgIGFwcC5zeW50aCgpO1wiLFxuICAgICAgICAgIFwiICB9XCIsXG4gICAgICAgICAgXCJ9XCIsXG4gICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==