[ 
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)

Reply via email to