You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Konrad Windszus (Jira)" <ji...@apache.org> on 2020/01/09 14:42:00 UTC

[jira] [Updated] (JCRVLT-394) Get rid of "provided" scope for FileVault dependencies

     [ https://issues.apache.org/jira/browse/JCRVLT-394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Konrad Windszus updated JCRVLT-394:
-----------------------------------
    Fix Version/s:     (was: 3.4.2)

> Get rid of "provided" scope for FileVault dependencies
> ------------------------------------------------------
>
>                 Key: JCRVLT-394
>                 URL: https://issues.apache.org/jira/browse/JCRVLT-394
>             Project: Jackrabbit FileVault
>          Issue Type: Improvement
>          Components: vlt
>    Affects Versions: 3.4.0
>            Reporter: Konrad Windszus
>            Priority: Major
>
> Almost all dependencies of Jackrabbit FileVault have scope "provided". Although in an OSGi context this seems reasonable, FileVault is also used outside of OSGi (e.g. within filevault-package-maven-plugin). Using it may lead to the following exceptions
> {code}
> java.lang.NoClassDefFoundError: org/apache/jackrabbit/api/ReferenceBinary
>     at org.apache.jackrabbit.vault.validation.impl.util.DocumentViewXmlContentHandler.getDocViewNode (DocumentViewXmlContentHandler.java:163)
>     at org.apache.jackrabbit.vault.validation.impl.util.DocumentViewXmlContentHandler.startElement (DocumentViewXmlContentHandler.java:134)
>     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement (AbstractSAXParser.java:509)
>     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement (AbstractXMLDocumentParser.java:182)
>     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement (XMLNSDocumentScannerImpl.java:351)
>     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook (XMLNSDocumentScannerImpl.java:613)
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next (XMLDocumentFragmentScannerImpl.java:3132)
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next (XMLDocumentScannerImpl.java:852)
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next (XMLDocumentScannerImpl.java:602)
>     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next (XMLNSDocumentScannerImpl.java:112)
>     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument (XMLDocumentFragmentScannerImpl.java:505)
>     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse (XML11Configuration.java:842)
>     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse (XML11Configuration.java:771)
>     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse (XMLParser.java:141)
>     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse (AbstractSAXParser.java:1213)
>     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse (SAXParserImpl.java:643)
>     at org.apache.jackrabbit.vault.validation.spi.impl.DocumentViewParserValidator.validateDocumentViewXml (DocumentViewParserValidator.java:147)
>     at org.apache.jackrabbit.vault.validation.spi.impl.DocumentViewParserValidator.validateJcrData (DocumentViewParserValidator.java:82)
>     at org.apache.jackrabbit.vault.validation.ValidationExecutor.validateGenericJcrData (ValidationExecutor.java:279)
>     at org.apache.jackrabbit.vault.validation.ValidationExecutor.validateJcrRoot (ValidationExecutor.java:181)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateInputStream (ValidatePackageMojo.java:120)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateEntry (ValidatePackageMojo.java:106)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateEntry (ValidatePackageMojo.java:103)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateEntry (ValidatePackageMojo.java:103)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateEntry (ValidatePackageMojo.java:103)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validateArchive (ValidatePackageMojo.java:95)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.validatePackage (ValidatePackageMojo.java:85)
>     at org.apache.jackrabbit.filevault.maven.packaging.ValidatePackageMojo.doExecute (ValidatePackageMojo.java:66)
>     at org.apache.jackrabbit.filevault.maven.packaging.AbstractValidateMojo.execute (AbstractValidateMojo.java:217)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
>     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
>     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
> {code}
> This is because the transitive dependency of Filevault named jackrabbit-api is only referenced with scope provided. 
> Currently this forces downstream consumers of FileVault to directly reference those transitive reference (even if they don't use them directly).
> IMHO all transitive dependencies of FileVault should have scope "compile".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)