From 3f4f7256d3661fb9f0ff6fbe299a75461afb91b9 Mon Sep 17 00:00:00 2001 From: Martin Ciglan Date: Mon, 4 Jul 2016 16:39:19 +0200 Subject: [PATCH] Bug 1411-6: MDSAL Binding2 Maven API Gen Plugin - initial skeleton to be able to build Binding v2 with models and features - basic placeholder class to bind the means together (TODO) - re-organized package name Change-Id: Ide90ea7eb8b1fa5d549c3dc5110ebeae3a32bd0c Signed-off-by: Martin Ciglan --- .../api/gen/plugin/CodeGeneratorImpl.java | 82 +++++++++++++++++++ binding2/mdsal-model-binding2-parent/pom.xml | 2 +- 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 binding2/mdsal-binding2-maven-api-gen-plugin/src/main/java/org/opendaylight/mdsal/binding/javav2/maven/api/gen/plugin/CodeGeneratorImpl.java diff --git a/binding2/mdsal-binding2-maven-api-gen-plugin/src/main/java/org/opendaylight/mdsal/binding/javav2/maven/api/gen/plugin/CodeGeneratorImpl.java b/binding2/mdsal-binding2-maven-api-gen-plugin/src/main/java/org/opendaylight/mdsal/binding/javav2/maven/api/gen/plugin/CodeGeneratorImpl.java new file mode 100644 index 0000000000..a881b82fec --- /dev/null +++ b/binding2/mdsal-binding2-maven-api-gen-plugin/src/main/java/org/opendaylight/mdsal/binding/javav2/maven/api/gen/plugin/CodeGeneratorImpl.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin; + +import com.google.common.annotations.Beta; +import com.google.common.base.Preconditions; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.apache.maven.project.MavenProject; +import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator; +import org.opendaylight.yangtools.yang2sources.spi.BuildContextAware; +import org.opendaylight.yangtools.yang2sources.spi.MavenProjectAware; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.sonatype.plexus.build.incremental.BuildContext; + +@Beta +public final class CodeGeneratorImpl implements BasicCodeGenerator, BuildContextAware, MavenProjectAware { + + private static final Logger LOG = LoggerFactory.getLogger(CodeGeneratorImpl.class); + private BuildContext buildContext; + private File projectBaseDir; + private Map additionalConfig; + private MavenProject mavenProject; + private File resourceBaseDir; + + //TODO: bind this all together with BindingGeneratorImpl and GeneratorJavaFile + + /** + * This method is called from mojo (maven goal) + * + * @param context + * parsed from YANG files + * @param outputBaseDir + * expected output directory for generated sources configured by + * user + * @param currentModules + * YANG modules parsed from yangFilesRootDir + * @return + * @throws IOException + */ + @Override + public Collection generateSources(SchemaContext context, File outputBaseDir, Set currentModules) throws IOException { + + List result = new ArrayList<>(); + return result; + } + + @Override + public void setAdditionalConfig(Map additionalConfiguration) { + this.additionalConfig = additionalConfiguration; + } + + @Override + public void setResourceBaseDir(File resourceBaseDir) { + this.resourceBaseDir = resourceBaseDir; + } + + @Override + public void setBuildContext(BuildContext buildContext) { + this.buildContext = Preconditions.checkNotNull(buildContext); + } + + @Override + public void setMavenProject(MavenProject project) { + this.mavenProject = project; + this.projectBaseDir = project.getBasedir(); + } +} diff --git a/binding2/mdsal-model-binding2-parent/pom.xml b/binding2/mdsal-model-binding2-parent/pom.xml index 7eb7854556..c3fc122667 100644 --- a/binding2/mdsal-model-binding2-parent/pom.xml +++ b/binding2/mdsal-model-binding2-parent/pom.xml @@ -108,7 +108,7 @@ - org.opendaylight.mdsal.maven.api.gen.plugin.CodeGeneratorImpl + org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl ${salGeneratorPath} -- 2.36.6