2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.blueprintgenerator.core;
23 import org.onap.blueprintgenerator.models.blueprint.Blueprint;
24 import org.onap.blueprintgenerator.models.componentspec.ComponentSpec;
25 import picocli.CommandLine.Command;
26 import picocli.CommandLine.Option;
28 @Command(name = "blueprint", description = "Command used to generate blueprints from component spec")
29 public class BlueprintCommand implements Runnable {
30 private static final char STANDARD_BLUEPRINT = 'o';
31 private static final char DMAAP_BLUEPRINT = 'd';
33 @Option(names = {"-i", "--component-spec"}, description = "Path to component spec file", required = true)
34 private String componentSpecPath;
36 @Option(names = {"-p", "--blueprint-path"}, description = "Path to directory that blueprints are output to", required = true)
37 private String blueprintOutputPath;
39 @Option(names = {"-n", "--blueprint-name"}, description = "Name of the blueprint", defaultValue = "")
40 private String blueprintName;
42 @Option(names = {"-t", "--imports"}, description = "Path to the import file", defaultValue = "")
43 private String importsPath;
45 @Option(names={"-o", "--service-name-override"}, description="Value used to override the service name", defaultValue = "")
46 private String serviceNameOverride;
48 @Option(names={"-d", "--dmaap-plugin"}, description = "Flag used to indicate blueprint uses the DMaaP plugin.")
49 private boolean dmaapPlugin;
53 ComponentSpec inboundComponentSpec = new ComponentSpec();
54 inboundComponentSpec.createComponentSpecFromFile(componentSpecPath);
55 System.out.println(dmaapPlugin ? DMAAP_BLUEPRINT : STANDARD_BLUEPRINT);
56 Blueprint generatedBlueprint = new Blueprint().createBlueprint(inboundComponentSpec, this.blueprintName,
57 dmaapPlugin ? DMAAP_BLUEPRINT : STANDARD_BLUEPRINT, importsPath, serviceNameOverride);
58 generatedBlueprint.blueprintToYaml(blueprintOutputPath, this.blueprintName, inboundComponentSpec);