This is an automated email from the ASF dual-hosted git repository. cziegeler pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push: new 34bf502cf9 FELIX-6679 Update parent and dependencies (#289) 34bf502cf9 is described below commit 34bf502cf9eca11ffcd1f01ec1182889d07ef1bd Author: Konrad Windszus <k...@apache.org> AuthorDate: Mon Jan 8 07:13:48 2024 +0100 FELIX-6679 Update parent and dependencies (#289) --- tools/osgicheck-maven-plugin/pom.xml | 57 ++-- .../maven/osgicheck/impl/checks/SCRCheck.java | 321 +++++++++++---------- .../impl/mddocgen/AbstractMarkdownMojo.java | 7 +- .../osgicheck/impl/mddocgen/MavenScrLogger.java | 51 ++-- .../mddocgen/MetatypeMarkdownGeneratorMojo.java | 20 +- .../mddocgen/ServicesMarkdownGeneratorMojo.java | 25 +- 6 files changed, 228 insertions(+), 253 deletions(-) diff --git a/tools/osgicheck-maven-plugin/pom.xml b/tools/osgicheck-maven-plugin/pom.xml index 3c1add7f47..d8705f2d91 100644 --- a/tools/osgicheck-maven-plugin/pom.xml +++ b/tools/osgicheck-maven-plugin/pom.xml @@ -18,7 +18,7 @@ <parent> <groupId>org.apache.felix</groupId> <artifactId>felix-parent</artifactId> - <version>6</version> + <version>8</version> <relativePath /> </parent> @@ -33,7 +33,7 @@ <properties> <maven.version>3.5.0</maven.version> - <felix.java.version>7</felix.java.version> + <felix.java.version>8</felix.java.version> </properties> <scm> @@ -48,19 +48,6 @@ <build> <plugins> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-metadata</artifactId> - <version>1.7.1</version> - <executions> - <execution> - <id>generate-metadata</id> - <goals> - <goal>generate-metadata</goal> - </goals> - </execution> - </executions> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> @@ -96,62 +83,49 @@ <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <version>${maven.version}</version> + <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>${maven.version}</version> + <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-artifact</artifactId> <version>${maven.version}</version> + <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> - <version>3.5</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-interactivity-api</artifactId> - <version>1.0-alpha-6</version> - </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-archiver</artifactId> - <version>4.8.0</version> + <version>4.9.1</version> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>3.0.24</version> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.7</version> - </dependency> - <dependency> - <groupId>org.apache.maven.shared</groupId> - <artifactId>maven-filtering</artifactId> - <version>3.1.1</version> + <version>4.0.0</version> </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>osgi.core</artifactId> - <version>6.0.0</version> + <artifactId>org.osgi.framework</artifactId> + <version>1.10.0</version> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr</artifactId> - <version>2.0.12</version> + <version>2.2.6</version> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.osgi</artifactId> - <version>2.4.0</version> + <version>2.4.2</version> </dependency> <!-- | Metatype Exporter @@ -159,12 +133,17 @@ <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.metatype</artifactId> - <version>1.1.6</version> + <version>1.2.4</version> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.service.log</artifactId> - <version>1.3.0</version> + <version>1.5.0</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.component</artifactId> + <version>1.5.1</version> </dependency> </dependencies> </project> diff --git a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/checks/SCRCheck.java b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/checks/SCRCheck.java index 957f43f7d5..3b29ce55df 100644 --- a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/checks/SCRCheck.java +++ b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/checks/SCRCheck.java @@ -16,13 +16,9 @@ */ package org.apache.felix.maven.osgicheck.impl.checks; -import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; import java.lang.reflect.Field; import java.net.MalformedURLException; import java.net.URL; @@ -32,12 +28,15 @@ import java.util.Enumeration; import java.util.List; import java.util.Map; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + import org.apache.felix.maven.osgicheck.impl.Check; import org.apache.felix.maven.osgicheck.impl.CheckContext; -import org.apache.felix.scr.impl.helper.Logger; +import org.apache.felix.scr.impl.logger.BundleLogger; +import org.apache.felix.scr.impl.logger.ComponentLogger; import org.apache.felix.scr.impl.metadata.ComponentMetadata; import org.apache.felix.scr.impl.metadata.ReferenceMetadata; -import org.apache.felix.scr.impl.parser.KXml2SAXParser; import org.apache.felix.scr.impl.xml.XmlHandler; import org.apache.maven.plugin.MojoExecutionException; import org.osgi.framework.Bundle; @@ -163,197 +162,205 @@ public class SCRCheck implements Check { } private List<ComponentMetadata> loadDescriptor(final CheckContext ctx, final File file) throws IOException, MojoExecutionException { - try(final Reader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"))) { - XmlHandler handler = new XmlHandler( new Bundle() { + XmlHandler handler = new XmlHandler( new Bundle() { - @Override - public int compareTo(Bundle o) { - return 0; - } + @Override + public int compareTo(Bundle o) { + return 0; + } - @Override - public void update(InputStream input) throws BundleException { - // nothing to do - } + @Override + public void update(InputStream input) throws BundleException { + // nothing to do + } - @Override - public void update() throws BundleException { - // nothing to do - } + @Override + public void update() throws BundleException { + // nothing to do + } - @Override - public void uninstall() throws BundleException { - // nothing to do - } + @Override + public void uninstall() throws BundleException { + // nothing to do + } - @Override - public void stop(int options) throws BundleException { - // nothing to do - } + @Override + public void stop(int options) throws BundleException { + // nothing to do + } - @Override - public void stop() throws BundleException { - // nothing to do - } + @Override + public void stop() throws BundleException { + // nothing to do + } - @Override - public void start(int options) throws BundleException { - // nothing to do - } + @Override + public void start(int options) throws BundleException { + // nothing to do + } - @Override - public void start() throws BundleException { - // nothing to do - } + @Override + public void start() throws BundleException { + // nothing to do + } - @Override - public Class<?> loadClass(String name) throws ClassNotFoundException { - return null; - } + @Override + public Class<?> loadClass(String name) throws ClassNotFoundException { + return null; + } - @Override - public boolean hasPermission(Object permission) { - return false; - } + @Override + public boolean hasPermission(Object permission) { + return false; + } - @Override - public Version getVersion() { - return null; - } + @Override + public Version getVersion() { + return null; + } - @Override - public String getSymbolicName() { - return null; - } + @Override + public String getSymbolicName() { + return null; + } - @Override - public int getState() { - return 0; - } + @Override + public int getState() { + return 0; + } - @Override - public Map<X509Certificate, List<X509Certificate>> getSignerCertificates(int signersType) { - return null; - } + @Override + public Map<X509Certificate, List<X509Certificate>> getSignerCertificates(int signersType) { + return null; + } - @Override - public ServiceReference<?>[] getServicesInUse() { - return null; - } + @Override + public ServiceReference<?>[] getServicesInUse() { + return null; + } - @Override - public Enumeration<URL> getResources(String name) throws IOException { - return null; - } + @Override + public Enumeration<URL> getResources(String name) throws IOException { + return null; + } - @Override - public URL getResource(String name) { - return null; - } + @Override + public URL getResource(String name) { + return null; + } - @Override - public ServiceReference<?>[] getRegisteredServices() { - return null; - } + @Override + public ServiceReference<?>[] getRegisteredServices() { + return null; + } - @Override - public String getLocation() { - return file.getAbsolutePath(); - } + @Override + public String getLocation() { + return file.getAbsolutePath(); + } - @Override - public long getLastModified() { - return 0; - } + @Override + public long getLastModified() { + return 0; + } - @Override - public Dictionary<String, String> getHeaders(String locale) { - return null; - } + @Override + public Dictionary<String, String> getHeaders(String locale) { + return null; + } - @Override - public Dictionary<String, String> getHeaders() { - return null; - } + @Override + public Dictionary<String, String> getHeaders() { + return null; + } - @Override - public Enumeration<String> getEntryPaths(String path) { + @Override + public Enumeration<String> getEntryPaths(String path) { + return null; + } + + @Override + public URL getEntry(final String path) { + try { + return new File(ctx.getRootDir(), path).toURI().toURL(); + } catch (final MalformedURLException e) { return null; } + } - @Override - public URL getEntry(final String path) { - try { - return new File(ctx.getRootDir(), path).toURI().toURL(); - } catch (final MalformedURLException e) { - return null; - } - } + @Override + public File getDataFile(String filename) { + return null; + } - @Override - public File getDataFile(String filename) { - return null; - } + @Override + public long getBundleId() { + return 0; + } - @Override - public long getBundleId() { - return 0; - } + @Override + public BundleContext getBundleContext() { + return null; + } - @Override - public BundleContext getBundleContext() { - return null; - } + @Override + public Enumeration<URL> findEntries(String path, String filePattern, boolean recurse) { + return null; + } - @Override - public Enumeration<URL> findEntries(String path, String filePattern, boolean recurse) { - return null; - } + @Override + public <A> A adapt(Class<A> type) { + return null; + } + }, new BundleLogger() { - @Override - public <A> A adapt(Class<A> type) { - return null; - } - }, new Logger() { + @Override + public void log(Level level, String message, Throwable ex) { + // nothing to do + + } - @Override - public void log(int level, String pattern, Object[] arguments, ComponentMetadata metadata, Long componentId, - Throwable ex) { - // nothing to do - } + @Override + public void log(Level level, String message, Throwable ex, Object... args) { + // nothing to do + + } - @Override - public void log(int level, String message, ComponentMetadata metadata, Long componentId, Throwable ex) { - // nothing to do - } + @Override + public boolean isLogEnabled(Level level) { + return false; + } - @Override - public boolean isLogEnabled(int level) { - return false; - } - }, false, false ); - try { - new KXml2SAXParser( in ).parseXML(handler); + @Override + public ComponentLogger component(Bundle m_bundle, String implementationClassName, String name) { + // nothing to do + return null; + } + }, false, false, null ); + try { + final SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + final SAXParser parser = factory.newSAXParser(); + parser.parse(file, handler); - for ( final ComponentMetadata metadata : handler.getComponentMetadataList() ) { - try { - // validate the component metadata - metadata.validate( null ); // logger argument is not used and removed in R7 + for ( final ComponentMetadata metadata : handler.getComponentMetadataList() ) { + try { + // validate the component metadata + metadata.validate(); - } catch ( final ComponentException t ) { - ctx.reportError("Invalid component descriptor " + file.getAbsolutePath() + " for " + metadata.getName() + " : " - + t.getMessage()); - } + } catch ( final ComponentException t ) { + ctx.reportError("Invalid component descriptor " + file.getAbsolutePath() + " for " + metadata.getName() + " : " + + t.getMessage()); } + } - return handler.getComponentMetadataList(); - } catch ( final Exception e) { - if ( e instanceof MojoExecutionException ) { - throw (MojoExecutionException)e; - } - throw new MojoExecutionException(e.getMessage(), e); + return handler.getComponentMetadataList(); + } catch ( final Exception e) { + if ( e instanceof MojoExecutionException ) { + throw (MojoExecutionException)e; } + throw new MojoExecutionException(e.getMessage(), e); } } } diff --git a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/AbstractMarkdownMojo.java b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/AbstractMarkdownMojo.java index 365b2bae24..3894d4bb3b 100644 --- a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/AbstractMarkdownMojo.java +++ b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/AbstractMarkdownMojo.java @@ -35,7 +35,6 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; abstract class AbstractMarkdownMojo extends AbstractMojo { @@ -115,9 +114,7 @@ abstract class AbstractMarkdownMojo extends AbstractMojo { } private void writeIndex() throws MojoExecutionException { - PrintWriter writer = null; - try { - writer = newPrintWriter(new File(getTargetDir(), "README.md")); + try (PrintWriter writer = newPrintWriter(new File(getTargetDir(), "README.md"))) { writer.println(getReadmeTitle()); writer.println("======================="); @@ -153,8 +150,6 @@ abstract class AbstractMarkdownMojo extends AbstractMojo { } } catch (IOException e) { throw new MojoExecutionException("An error occurred while rendering index in README.md", e); - } finally { - IOUtil.close(writer); } } diff --git a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MavenScrLogger.java b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MavenScrLogger.java index 6d350edf9b..fc3328e848 100644 --- a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MavenScrLogger.java +++ b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MavenScrLogger.java @@ -18,32 +18,33 @@ package org.apache.felix.maven.osgicheck.impl.mddocgen; import java.text.MessageFormat; -import org.apache.felix.scr.impl.helper.Logger; -import org.apache.felix.scr.impl.metadata.ComponentMetadata; +import org.apache.felix.scr.impl.logger.BundleLogger; +import org.apache.felix.scr.impl.logger.ComponentLogger; import org.apache.maven.plugin.logging.Log; -import org.osgi.service.log.LogService; +import org.osgi.framework.Bundle; -final class MavenScrLogger implements Logger { +final class MavenScrLogger implements BundleLogger, ComponentLogger { private final Log log; + private String prefix; public MavenScrLogger(final Log log) { this.log = log; } @Override - public boolean isLogEnabled(int level) { + public boolean isLogEnabled(Level level) { switch (level) { - case LogService.LOG_DEBUG: + case DEBUG: return log.isDebugEnabled(); - case LogService.LOG_ERROR: + case ERROR: return log.isErrorEnabled(); - case LogService.LOG_INFO: + case INFO: return log.isInfoEnabled(); - case LogService.LOG_WARNING: + case WARN: return log.isWarnEnabled(); default: @@ -52,18 +53,20 @@ final class MavenScrLogger implements Logger { } @Override - public void log(int level, String pattern, Object[] arguments, - ComponentMetadata metadata, Long componentId, Throwable ex) { - String message = MessageFormat.format(pattern, arguments); + public void log(Level level, String message, Throwable ex, Object... args) { + String msg = MessageFormat.format(message, args); - log(level, message, metadata, componentId, ex); + log(level, msg, ex); } @Override - public void log(int level, String message, ComponentMetadata metadata, - Long componentId, Throwable ex) { + public void log(Level level, String message, Throwable ex) { + if (prefix != null && prefix.length() > 0) + { + message = prefix.concat(" ").concat(message); + } switch (level) { - case LogService.LOG_DEBUG: + case DEBUG: if (ex != null) { log.debug(message, ex); } else { @@ -71,7 +74,7 @@ final class MavenScrLogger implements Logger { } break; - case LogService.LOG_ERROR: + case ERROR: if (ex != null) { log.error(message, ex); } else { @@ -79,7 +82,7 @@ final class MavenScrLogger implements Logger { } break; - case LogService.LOG_INFO: + case INFO: if (ex != null) { log.info(message, ex); } else { @@ -87,7 +90,7 @@ final class MavenScrLogger implements Logger { } break; - case LogService.LOG_WARNING: + case WARN: if (ex != null) { log.warn(message, ex); } else { @@ -100,4 +103,14 @@ final class MavenScrLogger implements Logger { } } + @Override + public ComponentLogger component(Bundle m_bundle, String implementationClassName, String name) { + return this; + } + + @Override + public void setComponentId(long m_componentId) { + this.prefix = "(" + m_componentId + ") "; + } + } diff --git a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MetatypeMarkdownGeneratorMojo.java b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MetatypeMarkdownGeneratorMojo.java index d5f2c892e7..5807d41a34 100644 --- a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MetatypeMarkdownGeneratorMojo.java +++ b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/MetatypeMarkdownGeneratorMojo.java @@ -19,6 +19,7 @@ package org.apache.felix.maven.osgicheck.impl.mddocgen; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.PrintWriter; import java.util.Arrays; import java.util.Collection; @@ -33,7 +34,6 @@ import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; @Mojo( name = "generate-metatype-doc", @@ -131,9 +131,7 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { } File targetFile = new File(targetDir, className.getSimpleName() + ".md"); - PrintWriter writer = null; - try { - writer = newPrintWriter(targetFile); + try (PrintWriter writer = newPrintWriter(targetFile)) { // generic properties @@ -157,8 +155,6 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { printAttributes(optionalAttributes, localizationProperties, writer); } catch (IOException e) { getLog().error("An error occurred while rendering documentation in " + targetFile, e); - } finally { - IOUtil.close(writer); } } } @@ -169,10 +165,8 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { getLog().debug("Analyzing '" + metatypeFile + "' meta type file..."); // read the original XML file - FileInputStream inputStream = null; MetaData metadata = null; - try { - inputStream = new FileInputStream(metatypeFile); + try (FileInputStream inputStream = new FileInputStream(metatypeFile)) { metadata = reader.parse(inputStream); getLog().debug("Metaype file '" + metatypeFile + "' successfully load"); @@ -180,8 +174,6 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { getLog().error("Metatype file '" + metatypeFile + "' could not be read", e); - } finally { - IOUtil.close(inputStream); } return metadata; @@ -200,12 +192,10 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { File propertiesFile = FileUtils.resolveFile(mainDir, propertiesFileName.toString()); Properties properties = new Properties(); - FileInputStream inputStream = null; if (propertiesFile.exists()) { getLog().debug("Loading properties file '" + propertiesFile + "'..."); - try { - inputStream = new FileInputStream(propertiesFile); + try (InputStream inputStream = new FileInputStream(propertiesFile)) { properties.load(inputStream); getLog().debug("Properties file '" + propertiesFile + "' successfully load"); @@ -213,8 +203,6 @@ public final class MetatypeMarkdownGeneratorMojo extends AbstractMarkdownMojo { getLog().error("Properties file '" + metatypeFile + "' can not be read, labels could not be human-readable", e); - } finally { - IOUtil.close(inputStream); } } else { getLog().warn("File '" diff --git a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/ServicesMarkdownGeneratorMojo.java b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/ServicesMarkdownGeneratorMojo.java index e34b70217d..747708bed4 100644 --- a/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/ServicesMarkdownGeneratorMojo.java +++ b/tools/osgicheck-maven-plugin/src/main/java/org/apache/felix/maven/osgicheck/impl/mddocgen/ServicesMarkdownGeneratorMojo.java @@ -17,7 +17,6 @@ package org.apache.felix.maven.osgicheck.impl.mddocgen; import java.io.File; -import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.util.Arrays; @@ -25,16 +24,17 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + import org.apache.felix.scr.impl.metadata.ComponentMetadata; import org.apache.felix.scr.impl.metadata.Faker; import org.apache.felix.scr.impl.metadata.PropertyMetadata; import org.apache.felix.scr.impl.metadata.ServiceMetadata; -import org.apache.felix.scr.impl.parser.KXml2SAXParser; import org.apache.felix.scr.impl.xml.XmlHandler; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; -import org.codehaus.plexus.util.IOUtil; @Mojo( name = "generate-services-doc", @@ -107,9 +107,7 @@ public final class ServicesMarkdownGeneratorMojo extends AbstractMarkdownMojo { } File targetFile = new File(targetDir, className.getSimpleName() + ".md"); - PrintWriter writer = null; - try { - writer = newPrintWriter(targetFile); + try(PrintWriter writer = newPrintWriter(targetFile)) { // generic properties @@ -132,8 +130,6 @@ public final class ServicesMarkdownGeneratorMojo extends AbstractMarkdownMojo { } } catch (IOException e) { getLog().error("An error occurred while rendering documentation in " + targetFile, e); - } finally { - IOUtil.close(writer); } } } @@ -145,15 +141,14 @@ public final class ServicesMarkdownGeneratorMojo extends AbstractMarkdownMojo { getLog().debug("Analyzing '" + serviceFile + "' SCR file..."); // read the original XML file - FileReader reader = null; List<ComponentMetadata> metadata = null; try { - reader = new FileReader(serviceFile); - - XmlHandler xmlHandler = new XmlHandler(new SyntheticBundle(servicesDirectory, serviceFile), mavenScrLogger, false, true); - KXml2SAXParser parser = new KXml2SAXParser(reader); - parser.parseXML(xmlHandler); + XmlHandler xmlHandler = new XmlHandler(new SyntheticBundle(servicesDirectory, serviceFile), mavenScrLogger, false, true, null); + final SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + final SAXParser parser = factory.newSAXParser(); + parser.parse(serviceFile, xmlHandler); getLog().debug("SCR file '" + serviceFile + "' successfully load"); @@ -163,8 +158,6 @@ public final class ServicesMarkdownGeneratorMojo extends AbstractMarkdownMojo { + serviceFile + "' could not be read", e); metadata = Collections.emptyList(); - } finally { - IOUtil.close(reader); } return metadata;