Bug 1411-6: MDSAL Binding2 Maven API Gen Plugin 84/41284/36
authorMartin Ciglan <mciglan@cisco.com>
Mon, 4 Jul 2016 14:39:19 +0000 (16:39 +0200)
committerMartin Ciglan <mciglan@cisco.com>
Wed, 25 Jan 2017 14:06:53 +0000 (14:06 +0000)
- 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 <mciglan@cisco.com>
binding2/mdsal-binding2-maven-api-gen-plugin/src/main/java/org/opendaylight/mdsal/binding/javav2/maven/api/gen/plugin/CodeGeneratorImpl.java [new file with mode: 0644]
binding2/mdsal-model-binding2-parent/pom.xml

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 (file)
index 0000000..a881b82
--- /dev/null
@@ -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<String, String> 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<File> generateSources(SchemaContext context, File outputBaseDir, Set<Module> currentModules) throws IOException {
+
+        List<File> result = new ArrayList<>();
+        return result;
+    }
+
+    @Override
+    public void setAdditionalConfig(Map<String, String> 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();
+    }
+}
index 7eb7854556f54bc32ad1215bd7d6eab4e74362ae..c3fc12266709ca7c80fc6e40a7161310d52419a9 100644 (file)
                                     <configuration>
                                         <codeGenerators>
                                             <generator>
-                                                <codeGeneratorClass>org.opendaylight.mdsal.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                                                <codeGeneratorClass>org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
                                                 <outputBaseDir>${salGeneratorPath}</outputBaseDir>
                                             </generator>
                                         </codeGenerators>