Extract snakeyaml to an API plugin (#1332)
This commit is contained in:
parent
97b02b4a08
commit
62aff29072
|
|
@ -8,8 +8,6 @@ import io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator;
|
|||
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
|
||||
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
|
||||
import io.jenkins.plugins.casc.model.CNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.error.YAMLException;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.util.Collections;
|
||||
|
|
@ -19,6 +17,8 @@ import org.jenkinsci.plugins.plaincredentials.StringCredentials;
|
|||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.jvnet.hudson.test.Issue;
|
||||
import org.yaml.snakeyaml.error.YAMLException;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
|
|
|
|||
|
|
@ -52,15 +52,9 @@
|
|||
<version>20190722</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.jenkins.configuration-as-code</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<groupId>io.jenkins.plugins</groupId>
|
||||
<artifactId>snakeyaml-api</artifactId>
|
||||
<version>1.26.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -22,17 +22,6 @@ import io.jenkins.plugins.casc.model.Scalar;
|
|||
import io.jenkins.plugins.casc.model.Scalar.Format;
|
||||
import io.jenkins.plugins.casc.model.Sequence;
|
||||
import io.jenkins.plugins.casc.model.Source;
|
||||
import io.jenkins.plugins.casc.snakeyaml.DumperOptions;
|
||||
import io.jenkins.plugins.casc.snakeyaml.emitter.Emitter;
|
||||
import io.jenkins.plugins.casc.snakeyaml.error.YAMLException;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.MappingNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.NodeTuple;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.ScalarNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.SequenceNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Tag;
|
||||
import io.jenkins.plugins.casc.snakeyaml.resolver.Resolver;
|
||||
import io.jenkins.plugins.casc.snakeyaml.serializer.Serializer;
|
||||
import io.jenkins.plugins.casc.yaml.YamlSource;
|
||||
import io.jenkins.plugins.casc.yaml.YamlUtils;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
|
@ -85,14 +74,25 @@ import org.kohsuke.stapler.StaplerResponse;
|
|||
import org.kohsuke.stapler.interceptor.RequirePOST;
|
||||
import org.kohsuke.stapler.lang.Klass;
|
||||
import org.kohsuke.stapler.verb.POST;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
import org.yaml.snakeyaml.emitter.Emitter;
|
||||
import org.yaml.snakeyaml.error.YAMLException;
|
||||
import org.yaml.snakeyaml.nodes.MappingNode;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
import org.yaml.snakeyaml.nodes.NodeTuple;
|
||||
import org.yaml.snakeyaml.nodes.ScalarNode;
|
||||
import org.yaml.snakeyaml.nodes.SequenceNode;
|
||||
import org.yaml.snakeyaml.nodes.Tag;
|
||||
import org.yaml.snakeyaml.resolver.Resolver;
|
||||
import org.yaml.snakeyaml.serializer.Serializer;
|
||||
|
||||
import static io.jenkins.plugins.casc.SchemaGeneration.writeJSONSchema;
|
||||
import static io.jenkins.plugins.casc.snakeyaml.DumperOptions.FlowStyle.BLOCK;
|
||||
import static io.jenkins.plugins.casc.snakeyaml.DumperOptions.ScalarStyle.DOUBLE_QUOTED;
|
||||
import static io.jenkins.plugins.casc.snakeyaml.DumperOptions.ScalarStyle.LITERAL;
|
||||
import static io.jenkins.plugins.casc.snakeyaml.DumperOptions.ScalarStyle.PLAIN;
|
||||
import static java.lang.String.format;
|
||||
import static java.util.stream.Collectors.toList;
|
||||
import static org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK;
|
||||
import static org.yaml.snakeyaml.DumperOptions.ScalarStyle.DOUBLE_QUOTED;
|
||||
import static org.yaml.snakeyaml.DumperOptions.ScalarStyle.LITERAL;
|
||||
import static org.yaml.snakeyaml.DumperOptions.ScalarStyle.PLAIN;
|
||||
|
||||
/**
|
||||
* {@linkplain #configure() Main entry point of the logic}.
|
||||
|
|
|
|||
|
|
@ -4,21 +4,20 @@ import io.jenkins.plugins.casc.model.Mapping;
|
|||
import io.jenkins.plugins.casc.model.Scalar;
|
||||
import io.jenkins.plugins.casc.model.Sequence;
|
||||
import io.jenkins.plugins.casc.model.Source;
|
||||
import io.jenkins.plugins.casc.snakeyaml.constructor.AbstractConstruct;
|
||||
import io.jenkins.plugins.casc.snakeyaml.constructor.Construct;
|
||||
import io.jenkins.plugins.casc.snakeyaml.constructor.Constructor;
|
||||
import io.jenkins.plugins.casc.snakeyaml.error.Mark;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.MappingNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.ScalarNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.SequenceNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Tag;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.commons.collections.map.AbstractMapDecorator;
|
||||
import org.apache.commons.lang.ObjectUtils;
|
||||
|
||||
import org.yaml.snakeyaml.constructor.AbstractConstruct;
|
||||
import org.yaml.snakeyaml.constructor.Construct;
|
||||
import org.yaml.snakeyaml.constructor.Constructor;
|
||||
import org.yaml.snakeyaml.error.Mark;
|
||||
import org.yaml.snakeyaml.nodes.MappingNode;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
import org.yaml.snakeyaml.nodes.ScalarNode;
|
||||
import org.yaml.snakeyaml.nodes.SequenceNode;
|
||||
import org.yaml.snakeyaml.nodes.Tag;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.jenkins.plugins.casc.yaml;
|
||||
|
||||
import io.jenkins.plugins.casc.snakeyaml.reader.StreamReader;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import org.yaml.snakeyaml.reader.StreamReader;
|
||||
|
||||
/**
|
||||
* Hack StreamReader to track the source file/url configuration node have been parsed from
|
||||
|
|
|
|||
|
|
@ -3,20 +3,20 @@ package io.jenkins.plugins.casc.yaml;
|
|||
import io.jenkins.plugins.casc.ConfigurationAsCode;
|
||||
import io.jenkins.plugins.casc.ConfiguratorException;
|
||||
import io.jenkins.plugins.casc.model.Mapping;
|
||||
import io.jenkins.plugins.casc.snakeyaml.composer.Composer;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.MappingNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.NodeId;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.NodeTuple;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.ScalarNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.SequenceNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.parser.ParserImpl;
|
||||
import io.jenkins.plugins.casc.snakeyaml.resolver.Resolver;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
import org.yaml.snakeyaml.composer.Composer;
|
||||
import org.yaml.snakeyaml.nodes.MappingNode;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
import org.yaml.snakeyaml.nodes.NodeId;
|
||||
import org.yaml.snakeyaml.nodes.NodeTuple;
|
||||
import org.yaml.snakeyaml.nodes.ScalarNode;
|
||||
import org.yaml.snakeyaml.nodes.SequenceNode;
|
||||
import org.yaml.snakeyaml.parser.ParserImpl;
|
||||
import org.yaml.snakeyaml.resolver.Resolver;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ import io.jenkins.plugins.casc.ConfigurationContext;
|
|||
import io.jenkins.plugins.casc.ConfiguratorRegistry;
|
||||
import io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator;
|
||||
import io.jenkins.plugins.casc.model.CNode;
|
||||
import io.jenkins.plugins.casc.snakeyaml.error.YAMLException;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import org.junit.Rule;
|
||||
|
|
@ -16,6 +14,8 @@ import org.junit.Test;
|
|||
import org.jvnet.hudson.test.Issue;
|
||||
import org.jvnet.hudson.test.JenkinsRule;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
import org.yaml.snakeyaml.error.YAMLException;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
|
|
|
|||
1
pom.xml
1
pom.xml
|
|
@ -13,7 +13,6 @@
|
|||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
<module>snakeyaml</module>
|
||||
<module>plugin</module>
|
||||
<module>test-harness</module>
|
||||
<module>integrations</module>
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
This is a shaded version of snakeyaml library.
|
||||
|
||||
To upgrade, change `snakeyaml.version` and run `mvn package`
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>parent</artifactId>
|
||||
<groupId>io.jenkins.configuration-as-code</groupId>
|
||||
<version>${revision}${changelist}</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<description>Snakeyaml shaded for configuration-as-code plugin</description>
|
||||
|
||||
<properties>
|
||||
<checkstyle.skip>true</checkstyle.skip>
|
||||
<spotbugs.skip>true</spotbugs.skip>
|
||||
<maven.javadoc.skip>true</maven.javadoc.skip>
|
||||
<snakeyaml.version>1.25</snakeyaml.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<version>${snakeyaml.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>shade</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<createSourcesJar>true</createSourcesJar>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>org.yaml*:*</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.yaml.snakeyaml</pattern>
|
||||
<shadedPattern>io.jenkins.plugins.casc.snakeyaml</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compile</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>attach-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifacts>
|
||||
<artifact>
|
||||
<file>${basedir}/target/snakeyaml.jar</file>
|
||||
<type>jar</type>
|
||||
<classifier>optional</classifier>
|
||||
</artifact>
|
||||
</artifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -56,6 +56,12 @@
|
|||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-yaml</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.vladsch.flexmark</groupId>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import io.jenkins.plugins.casc.core.JenkinsConfigurator;
|
|||
import io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator;
|
||||
import io.jenkins.plugins.casc.model.CNode;
|
||||
import io.jenkins.plugins.casc.model.Mapping;
|
||||
import io.jenkins.plugins.casc.snakeyaml.nodes.Node;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
|
|
@ -32,6 +31,7 @@ import org.everit.json.schema.loader.SchemaLoader;
|
|||
import org.json.JSONObject;
|
||||
import org.json.JSONTokener;
|
||||
import org.jvnet.hudson.test.LoggerRule;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
|
||||
import static io.jenkins.plugins.casc.ConfigurationAsCode.serializeYamlNode;
|
||||
import static io.jenkins.plugins.casc.SchemaGeneration.generateSchema;
|
||||
|
|
|
|||
Loading…
Reference in New Issue