This is an automated email from the ASF dual-hosted git repository. sjaranowski pushed a commit to branch MNG-7889 in repository https://gitbox.apache.org/repos/asf/maven.git
commit 4c334beb069baecfa3fab1425031da5b4267417b Author: Slawomir Jaranowski <[email protected]> AuthorDate: Sat Sep 16 21:58:38 2023 +0200 [MNG-7889] Preserve MetadataXpp3Reader/Writer for Maven 3 compatible --- maven-repository-metadata/pom.xml | 2 + .../metadata/io/xpp3/MetadataXpp3Reader.java | 157 +++++++++++++++++++++ .../metadata/io/xpp3/MetadataXpp3Writer.java | 73 ++++++++++ 3 files changed, 232 insertions(+) diff --git a/maven-repository-metadata/pom.xml b/maven-repository-metadata/pom.xml index 7fe3083823..2baeebbc5f 100644 --- a/maven-repository-metadata/pom.xml +++ b/maven-repository-metadata/pom.xml @@ -99,6 +99,8 @@ under the License. </models> <templates> <template>model-v3.vm</template> + <template>reader.vm</template> + <template>writer.vm</template> </templates> </configuration> </execution> diff --git a/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Reader.java b/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Reader.java new file mode 100644 index 0000000000..e4e061d1e1 --- /dev/null +++ b/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Reader.java @@ -0,0 +1,157 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.artifact.repository.metadata.io.xpp3; + +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; + +import org.apache.maven.artifact.repository.metadata.Metadata; + +/** + * Provide public methods from {@link org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Reader} + * + * @deprecated Maven 3 compatability + */ +@Deprecated +public class MetadataXpp3Reader { + + private final org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Reader delegate; + + /** + * Default constructor + */ + public MetadataXpp3Reader() { + delegate = new org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Reader(); + } + + /** + * Constructor with ContentTransformer + * + * @param contentTransformer a transformer + */ + public MetadataXpp3Reader(ContentTransformer contentTransformer) { + delegate = + new org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Reader(contentTransformer::transform); + } + + /** + * Returns the state of the "add default entities" flag. + * + * @return boolean a field value + */ + public boolean getAddDefaultEntities() { + return delegate.getAddDefaultEntities(); + } + + /** + * Sets the state of the "add default entities" flag. + * + * @param addDefaultEntities a addDefaultEntities object. + */ + public void setAddDefaultEntities(boolean addDefaultEntities) { + delegate.setAddDefaultEntities(addDefaultEntities); + } + + /** + * Method read. + * + * @param reader a reader object. + * @param strict a strict object. + * @return Metadata + * @throws IOException IOException if any. + * @throws XMLStreamException XmlPullParserException if + * any. + */ + public Metadata read(Reader reader, boolean strict) throws IOException, XMLStreamException { + return new Metadata(delegate.read(reader, strict)); + } + + /** + * Method read. + * + * @param reader a reader object. + * @return Metadata + * @throws IOException IOException if any. + * @throws XMLStreamException XmlPullParserException if + * any. + */ + public Metadata read(Reader reader) throws IOException, XMLStreamException { + return new Metadata(delegate.read(reader)); + } + + /** + * Method read. + * + * @param in a in object. + * @param strict a strict object. + * @return Metadata + * @throws IOException IOException if any. + * @throws XMLStreamException XmlPullParserException if + * any. + */ + public Metadata read(InputStream in, boolean strict) throws IOException, XMLStreamException { + return new Metadata(delegate.read(in, strict)); + } + + /** + * Method read. + * + * @param in a in object. + * @return Metadata + * @throws IOException IOException if any. + * @throws XMLStreamException XmlPullParserException if + * any. + */ + public Metadata read(InputStream in) throws IOException, XMLStreamException { + return new Metadata(delegate.read(in)); + } + + /** + * Method read. + * + * @param parser a parser object. + * @param strict a strict object. + * @return Metadata + * @throws IOException IOException if any. + * @throws XMLStreamException XmlPullParserException if + * any. + */ + public Metadata read(XMLStreamReader parser, boolean strict) throws IOException, XMLStreamException { + return new Metadata(delegate.read(parser, strict)); + } + + /** + * {@link org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Reader.ContentTransformer} + */ + public interface ContentTransformer { + /** + * Interpolate the value read from the xpp3 document + * + * @param source The source value + * @param fieldName A description of the field being interpolated. The implementation may use this to + * log stuff. + * @return The interpolated value. + */ + String transform(String source, String fieldName); + } +} diff --git a/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Writer.java b/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Writer.java new file mode 100644 index 0000000000..a1658a046c --- /dev/null +++ b/maven-repository-metadata/src/main/java/org/apache/maven/artifact/repository/metadata/io/xpp3/MetadataXpp3Writer.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.artifact.repository.metadata.io.xpp3; + +import java.io.OutputStream; +import java.io.Writer; + +import org.apache.maven.artifact.repository.metadata.Metadata; + +/** + * Provide public methods from {@link org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Writer} + * + * @deprecated Maven 3 compatability + */ +@Deprecated +public class MetadataXpp3Writer { + + private final org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Writer delegate; + + /** + * Default constructor + */ + public MetadataXpp3Writer() { + delegate = new org.apache.maven.artifact.repository.metadata.io.MetadataXpp3Writer(); + } + + /** + * Method setFileComment. + * + * @param fileComment a fileComment object. + */ + public void setFileComment(String fileComment) { + delegate.setFileComment(fileComment); + } + + /** + * Method write. + * + * @param writer a writer object + * @param metadata a Metadata object + * @throws java.io.IOException java.io.IOException if any + */ + public void write(Writer writer, Metadata metadata) throws java.io.IOException { + delegate.write(writer, metadata.getDelegate()); + } + + /** + * Method write. + * + * @param stream a stream object + * @param metadata a Metadata object + * @throws java.io.IOException java.io.IOException if any + */ + public void write(OutputStream stream, Metadata metadata) throws java.io.IOException { + delegate.write(stream, metadata.getDelegate()); + } +}
