Commit d040d826 authored by Martti Käärik's avatar Martti Käärik
Browse files

Use codegen configuration file if present (with magic name).

parent a99cab6d
Loading
Loading
Loading
Loading
+35 −19
Original line number Diff line number Diff line
@@ -72,6 +72,14 @@ public class GeneratorHandler extends AbstractHandler {
		
		if (file !=null && file.getName().endsWith("yaml")) {
			
			String selectedTarget = null;
			
			IFile javaConfig = file.getProject().getFile("openapi-codegen-config-impl.json");
			if (javaConfig.exists()) {
				selectedTarget = "java";
			}
			
			if (selectedTarget == null) {
				ElementListSelectionDialog dialog = new ElementListSelectionDialog(Display.getDefault().getActiveShell(), new LabelProvider());
				dialog.setTitle("OpenAPI Generator Target Selection");
				dialog.setMessage("Generating assets from "+file.getName()
@@ -79,8 +87,6 @@ public class GeneratorHandler extends AbstractHandler {
				dialog.setElements(targetFormats.keySet().toArray());
				
				dialog.setInitialElementSelections(Arrays.asList(new String[] {GeneratorHandler.translationTarget}));
			//TODO: add option to skip validation
			//TODO: add step to validate
				
				// user pressed cancel
				if (dialog.open() != Window.OK) {
@@ -91,9 +97,19 @@ public class GeneratorHandler extends AbstractHandler {
//					OpenAPIGeneratorLauncher.parse(file.getLocation().toFile().getAbsolutePath());
					
					Object[] result = dialog.getResult();
				String selected = (String)result[0];
				translationTarget = selected;
				OpenAPIGeneratorLauncher.launch(file.getLocation().toFile().getAbsolutePath(), selected);
					selectedTarget = (String)result[0];
				}
				
			}
			//TODO: add option to skip validation
			//TODO: add step to validate

			if (selectedTarget != null) {
				translationTarget = selectedTarget;
				if (javaConfig.exists())
					OpenAPIGeneratorLauncher.launch(file.getLocation().toFile(), javaConfig.getLocation().toFile(), selectedTarget);
				else
					OpenAPIGeneratorLauncher.launch(file.getLocation().toFile().getAbsolutePath(), selectedTarget);
			}
		}
		return null;
+23 −8
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package org.etsi.mts.tdl.openapi.generator.ui.handlers;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

@@ -40,18 +41,32 @@ public class OpenAPIGeneratorLauncher {
	}

	public static void launch(String input, String target) {
		launch(input, target, true);
		launch(input, null, target, null, true);
	}

	public static void launch(String input, String target, boolean skipValidation) {
	public static void launch(File input, File config, String target) {
		launch(input.getAbsolutePath(), config.getAbsolutePath(), target, null, true);
	}
	
	public static void launch(String input, String config, String target, String output, boolean skipValidation) {
		if (output == null) {
			String inputFolder = new File(input).getParentFile().getAbsolutePath();
		String output = inputFolder+"/generated/"+target+"/";
			output = inputFolder+"/generated/"+target+"/";
			new File(output).mkdirs();
		String skip = "";
		}

		List<String> args = new ArrayList<String>(
				Arrays.asList(new String[] { "generate", "-g", target, "-i", input, "-o", output }));
		
		if (config != null) {
			args.add("-c");
			args.add(config);
		}
		
		if (skipValidation) {
			skip = "--skip-validate-spec";
			args.add("--skip-validate-spec");
		}
		OpenAPIGenerator.main(new String[] {"generate", "-g", target, "-i", input, "-o", output, skip});
		OpenAPIGenerator.main(args.toArray(new String[args.size()]));
	}

	public static void validate(String input) {