On Thu, Mar 4, 2010 at 5:33 PM, Birmingham, Steven <[email protected]> wrote: > Thanks for the input Stefan. I looked up your suggestion and tried using > CndImporter
erm, i don't think that i suggested using CndImporter... i suggested using CompactNodeTypeDefReader to generate NodeTypeDefinitions from your cnd-style definitions. those NodeTypeDefinition objects can then be passed on to the JCR 2.0 method NodeTypeManager.registerNodeTypes() which should be available on jcr-rmi and jcr2spi clients. you can find some code here, starting at line 232: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java?revision=816551&view=markup cheers stefan > which threw the exception JCR-2003. Implementation missing. So, are you > saying the implementation is missing from the StandAlone server but would be > available from the embedded war file? > > InputStream is = > getClass().getClassLoader().getResourceAsStream("test.cnd"); > Reader cnd = new InputStreamReader(is); > NodeType[] nodeTypes = CndImporter.registerNodeTypes(cnd, > session); > > Steve > > -----Original Message----- > From: Stefan Guggisberg [mailto:[email protected]] > Sent: Thursday, March 04, 2010 3:46 AM > To: [email protected] > Subject: Re: NodeType creation > > On Thu, Mar 4, 2010 at 12:43 AM, Birmingham, Steven > <[email protected]> wrote: >> I built and added jackrabbit-core-2.0.0.jar to the build path, but >> JackRabbitNodeTypeManager is still unresolved. Yes, I was trying to do an >> evaluation on the standalone server. So, are you saying NodeType management >> in 2.0 is not available in the standalone server? > > no, that's not what i am saying ;) > > i said that the method for registering node types defined in a CND or > XML format > might not be available on a remote client (such as jcr-rmi or jcr2spi). > > said method is specified in the jackrabbit-api, which is an extension > to the jcr api. > the jcr 2.0 api does not provide a method for registering node types > declared in CND > or XML format. it only allows to build and register node type > definitions programmatically, see e.g. > > http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/nodetype/NodeTypeManager.html#registerNodeTypes(javax.jcr.nodetype.NodeTypeDefinition[],%20boolean) > > you can use CompactNodeTypeDefReader (jcr-commons) to bridge the gap. > CompactNodeTypeDefReader allows you to parse a CND file returning > NodeTypeDefinitions > which can be registered using the jcr 2.0 api. > > cheers > stefan > >> >> I will download the 2.0 war file and see if things work differently on >> Tomcat. I am a little confused as there is documentation on the 2.0 website >> for NodeType management but I guess it is incomplete? >> >> Thanks for your help, >> Steve >> >> -----Original Message----- >> From: Stefan Guggisberg [mailto:[email protected]] >> Sent: Wednesday, March 03, 2010 1:30 PM >> To: [email protected] >> Subject: Re: NodeType creation >> >> >> >> On 03.03.2010, at 19:01, "Birmingham, Steven" >> <[email protected]> wrote: >> >>> Thanks for the response. >>> >>> JackrabbitNodeTypeManager is not on the class path either. I have >>> all the 2.0 jars on the class path. >>> For jackrabbitNodeTypeManagerImpl I get three implementations on the >>> classpath: >>> //import org.apache.jackrabbit.jcr2spi.nodetype.NodeTypeManagerImpl; >>> //import >>> org.apache.jackrabbit.ocm.nodemanagement.impl.jackrabbit.NodeTypeManagerImpl; >>> import >>> org.apache.jackrabbit.ocm.nodemanagement.impl.jeceira.NodeTypeManagerImpl; >>> >>> Does NodeType registration work for you in 2.0? >>> >> yes >> >> JackrabbitNodeTypeManager is included in jackrabbit-core, which is >> missing from your dependencies list. >> >> are you accessing a stand-alone jackrabbit server? if yes, you might >> be out of luck since the said method is only available on a local, >> i.e. embedded instance. >> >> cheers >> stefan >> >>> Here are my dependencies. >>> >>> <dependency org="org/apache" name="log4j" rev="1.2+" >>> conf="compile"/> >>> <dependency org="javax.jcr" name="jcr" rev="2.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-jcr- >>> commons" rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-jcr2dav" >>> rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-jcr2spi" >>> rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-spi" >>> rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-spi2dav" >>> rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-spi- >>> commons" rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-webdav" >>> rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache/jackrabbit" name="jackrabbit-jcr- >>> server" rev="2.0.0" conf="compile"/> >>> <dependency org="org/apache" name="commons-httpclient" >>> rev="3.0.1" conf="compile"/> >>> <dependency org="org/apache" name="commons-codec" rev="1.3" >>> conf="compile"/> >>> <dependency org="org/apache" name="commons-logging" rev="1.1.1" >>> conf="compile"/> >>> <dependency org="org/apache" name="commons-collections" rev="3.2" >>> conf="compile"/> >>> <dependency org="org/slf4j" name="slf4j-api" rev="1.5.2" >>> conf="compile"/> >>> <dependency org="org/slf4j" name="slf4j-log4j12" rev="1.5.2" >>> conf="compile"/> >>> >>> Steve >>> >>> -----Original Message----- >>> From: Stefan Guggisberg [mailto:[email protected]] >>> Sent: Wednesday, March 03, 2010 10:44 AM >>> To: [email protected] >>> Subject: Re: NodeType creation >>> >>> On Wed, Mar 3, 2010 at 5:25 PM, Birmingham, Steven >>> <[email protected]> wrote: >>>> Hello, >>>> >>>> I am trying to read a NodeType configuration from an xml file. The >>>> example I used was from the ocm test classes. >>>> >>>> >>>> jackrabbitNodeTypeManagerImpl.createNodeTypesFromConfiguration >>>> (session, >>>> new FileInputStream("./resources/ >>>> Signal.xml")); >>>> >>>> Exception in thread "main" java.lang.NoClassDefFoundError: org/ >>>> apache/jackrabbit/core/nodetype/xml/NodeTypeReader >>>> >>>> I have jcr-2.0.jar and all the other jackrabbit bundles on the >>>> class path. Am I somehow missing a jar or is this method not >>>> supported anymore or changed? >>> >>> try this: >>> http://jackrabbit.apache.org/api/2.0/org/apache/jackrabbit/api/JackrabbitNodeTypeManager.html#registerNodeTypes(java.io.InputStream,%20java.lang.String) >>> >>> e.g. >>> >>> ((JackrabbitNodeTypeManager) >>> session.getNodeTypeManager()).registerNodeTypes(new >>> FileInputStream("./resources/Signal.xml"), >>> JackrabbitNodeTypeManager.TEXT_XML); >>> >>> cheers >>> stefan >>>> >>>> Thanks, >>>> Steve >>>> >>>> ________________________________ >>>> This e-mail and any files transmitted with it may be proprietary >>>> and are intended solely for the use of the individual or entity to >>>> whom they are addressed. If you have received this e-mail in error >>>> please notify the sender. >>>> Please note that any views or opinions presented in this e-mail are >>>> solely those of the author and do not necessarily represent those >>>> of ITT Corporation. The recipient should check this e-mail and any >>>> attachments for the presence of viruses. ITT accepts no liability >>>> for any damage caused by any virus transmitted by this e-mail. >>>> >> >
