You should use JcrUtils.getRepository("file:///path/to/repository")
This will find any repository implementation which has RepositoryFactory
service implementation.
You could also use JNDI by passing a JNDI url to getRepository().
HTH,
Justin
On 9/2/10 10:58 AM, sriraj paul wrote:
> I tried to connect to repository using
> Repository repository = new TransientRepository(new
> File("C:\\jackrabbit\\jackrabbit"));
> and creating a new node type worked for jackrabbit server.
>
> What if i want to do the same for any jcr compliant repositories?
>
> Thank you
> Sriraj
>
>
>
>
> ________________________________
> From: Justin Edelson <[email protected]>
> To: "[email protected]" <[email protected]>
> Sent: Thu, September 2, 2010 5:03:13 PM
> Subject: Re: Creating a new node Type
>
> You can only create new node types by accessing the repository in-process,
> not
> by RMI or WebDAV.
>
> Justin
>
> On Sep 2, 2010, at 5:36 AM, sriraj paul <[email protected]> wrote:
>
>> Hello ,
>>
>> I want to create a new node type derived from nt:file , such that it allows
>> to
>
>> add a new node inside it other than "jcr:content" node.
>>
>> For that i tried the following code
>>
>> Repository repository = JcrUtils.getRepository( session = repository.login(
>> Workspace ws = session.getWorkspace();
>> NodeTypeManager nodeTypeManager=ws.getNodeTypeManager();
>> NodeTypeTemplate ndt=nodeTypeManager.createNodeTypeTemplate();
>> String [] str={"nt:file"};
>> ndt.setName("myfile");
>> ndt.setDeclaredSuperTypeNames(str);
>> nodeTypeManager.registerNodeType(ndt, false);
>>
>>
>> The function call createNodeTypeTemplate(); is giving the exception
>> Exceptionin
>>
>> thread "main" javax.jcr.UnsupportedRepositoryOperationException: TODO:
>> JCRRMI-26at
>> org.apache.jackrabbit.rmi.client.ClientNodeTypeManager.createNodeTypeTemplate(
>> at Test.main(ClientNodeTypeManager.java:104)Test.java:305)
>>
>> I am using jackrabbit-standalone-2.1.1.jar got from
>> http://jackrabbit.apache.org/downloads.html as the jcr client library. Is
>> there
>>
>> some jcr client library that implements all the jcr api's.
>>
>> I also tried
>> InputStream is=
>> Reader cnd =
>> NodeType[] nodeTypes =
>> CndImporter.registerNodeTypes(cnd,session);newFileInputStream("C:\\file.cnd");newInputStreamReader(is);
>> ;
>>
>>
>> This is also giving exception on the function call
>> CndImporter.registerNodeTypes(cnd,session).Exceptionin thread "main"
>> org.apache.jackrabbit.commons.cnd.ParseException:
>> javax.jcr.UnsupportedRepositoryOperationException: TODO: JCRRMI-26 (cnd
>> input
>> stream, line 1)at org.apache.jackrabbit.commons.cnd.Lexer.fail(
>> at org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader.parse(
>> at org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader.<init>(
>> at org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader.<init>(
>> at org.apache.jackrabbit.commons.cnd.CndImporter.registerNodeTypes(
>> at org.apache.jackrabbit.commons.cnd.CndImporter.registerNodeTypes(
>> at Test.main(
>>
>> File.cnd contains only one line
>> [myfile] > nt:file
>>
>> Is there any client library that implements all jcr api's and how to create
>> a
>> new node type?
>>
>> Thank you
>> SrirajLexer.java:228)CompactNodeTypeDefReader.java:219)CompactNodeTypeDefReader.java:164)CompactNodeTypeDefReader.java:140)CndImporter.java:111)CndImporter.java:74)Test.java:316)newSimpleCredentials("admin",
>> ,
>> "admin".toCharArray()),null);http://localhost:8079/rmi);
>>
>>
>
>
>
>