https://issues.apache.org/jira/browse/JCR-2400
Thanks, Jervis 2009/11/20 Stefan Guggisberg <[email protected]>: > hi jervis > > On Fri, Nov 20, 2009 at 9:09 AM, Jervis Liu <[email protected]> wrote: >> Hi Stefan, >> >> As far as the shareable node feature is concerned, how different is it >> between 2.0 trunk and 1.6 branch? > > i had a quick look at the code and it seems like importing shared nodes > is not supported in 2.0 trunk... > > could you please post a jira issue (affects 1.6 and 2.0)? > >> Willl the problem with importXML >> method be fixed in next minor release of JackRabbit 1.6 or it will be >> availeable only in 2.0? > > i assume that the fix to this issue will be backported to 1.6 aswell. > > cheers > stefan > >> I've tried shareble node feature from 1.6 in >> my project, everything works so far except the importXML. >> >> Thanks, >> Jervis >> >> 2009/11/19 Stefan Guggisberg <[email protected]>: >>> hi jervis, >>> >>> as thomas pointed out, shareable nodes are a jcr 2.0 feature. >>> there was some preliminary jcr 2.0 support in jackrabbit 1.6 >>> but it's not officially supported. >>> >>> your problem is caused by missing sharable nodes support >>> in the importXML method. >>> >>> for more information see 14.7 and 14.8 in the JCR 2.0 spec: >>> http://www.day.com/specs/jcr/2.0/14_Shareable_Nodes.html >>> >>> jcr 2.0 (and shareable nodes) will be fully supported in the >>> upcoming jackrabbit 2.0 release. there's a beta that you can >>> use until the final 2.0 release becomes available. >>> >>> cheers >>> stefan >>> >>> On Thu, Nov 19, 2009 at 7:12 AM, Jervis Liu <[email protected]> wrote: >>>> Hi, >>>> >>>> I am using the sharable node feature in JackRabbit 1.6. I did an >>>> export using Session.exportSystemView() then I import back using >>>> Session.getWorkspace().importXML(). Everything work fine until I >>>> created some sharable nodes. I got exception from importXML() like >>>> below: >>>> >>>> Caused by: javax.jcr.nodetype.NoSuchNodeTypeException: >>>> {http://www.jcp.org/jcr/nt/1.0}share >>>> at >>>> org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:1024) >>>> at >>>> org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:471) >>>> at >>>> org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicableChildNodeDef(EffectiveNodeType.java:682) >>>> at >>>> org.apache.jackrabbit.core.nodetype.EffectiveNodeType.checkAddNodeConstraints(EffectiveNodeType.java:655) >>>> at >>>> org.apache.jackrabbit.core.BatchedItemOperations.checkAddNode(BatchedItemOperations.java:732) >>>> at >>>> org.apache.jackrabbit.core.xml.WorkspaceImporter.resolveUUIDConflict(WorkspaceImporter.java:150) >>>> at >>>> org.apache.jackrabbit.core.xml.WorkspaceImporter.startNode(WorkspaceImporter.java:487) >>>> at >>>> org.apache.jackrabbit.core.xml.SysViewImportHandler.processNode(SysViewImportHandler.java:86) >>>> at >>>> org.apache.jackrabbit.core.xml.SysViewImportHandler.endElement(SysViewImportHandler.java:231) >>>> at >>>> org.apache.jackrabbit.core.xml.ImportHandler.endElement(ImportHandler.java:183) >>>> at >>>> org.apache.jackrabbit.commons.xml.DefaultContentHandler.endElement(DefaultContentHandler.java:83) >>>> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown >>>> Source) >>>> at >>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown >>>> Source) >>>> at >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown >>>> Source) >>>> at >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown >>>> Source) >>>> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) >>>> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) >>>> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) >>>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) >>>> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown >>>> Source) >>>> at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) >>>> at >>>> org.apache.jackrabbit.commons.xml.ParsingContentHandler.parse(ParsingContentHandler.java:62) >>>> at >>>> org.apache.jackrabbit.commons.AbstractWorkspace.importXML(AbstractWorkspace.java:54) >>>> at >>>> org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:979) >>>> ... 20 more >>>> >>>> The code snippet I used to create sharable nodes looks like below roughly: >>>> >>>> sharableNodeA().addMixin("mix:shareable"); >>>> ..... >>>> >>>> Session session = repo.getSession(); >>>> Workspace workspace = session.getWorkspace(); >>>> String path = "/pathA/pathB/sharableNodeB"; >>>> workspace.clone(workspace.getName(), sharableNodeA.getPath(), >>>> path, false); >>>> .............. >>>> >>>> I wonder where the schema mix:shareable is defined? Obviously it is >>>> not defined by http://www.jcp.org/jcr/nt/1.0. Did I do anything wrong >>>> or it is a bug in JackRabbit 1.6? >>>> >>>> Thanks, >>>> Jervis Liu >>>> >>> >> >
