jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Guggisberg <stefan.guggisb...@gmail.com>
Subject Re: Adding jcr:title and jcr:description properties
Date Wed, 03 Mar 2010 13:19:22 GMT
On Wed, Mar 3, 2010 at 2:00 PM, Nils Weinander <nils.weinander@mogul.com> wrote:
> On 2010-03-03 11:41, Stefan Guggisberg [via Jackrabbit] wrote:
>>
>> hi nils,
>>
>> On Wed, Mar 3, 2010 at 11:24 AM, Nils Weinander
>> <[hidden email]
>> <http://n4.nabble.com/user/SendEmail.jtp?type=node&node=1576362&i=0>>
>> wrote:
>>
>>  >
>>  > Probably a stupid newbie question, but here it goes. I use Jackrabbit
>> 2.0.0
>>  > through Spring-JCR. I want to use the jcr:title and jcr:description
>>  > properties from the mix:title mixin. The significant portion of the
>> code
>>  > looks like this:
>>  >
>>  >   Node containerNode = rootNode.addNode(id,
>> jcrConstants.getNT_FOLDER());
>>  >   containerNode.addMixin("mix:title");
>>  >   containerNode.setProperty("jcr:title", title);
>>  >   containerNode.setProperty("jcr:description", description);
>>  >   session.save();
>>
>> you're sure that 'session' is the one where you got 'rootNode' from?
>
> Yes, it is the same session
>
>> did you try to run a simple test case which just uses the jcr api
>> (without any blackbox magic on top of if ;)? see jackrabbit-jcr-tests
>> for examples.
>
> A simple test case works:
>
>        @Test
>        public void testSetProperty() throws LoginException,
> RepositoryException {
>                Repository repository = null;
>                Map<String,String> parameters = new HashMap<String,String>();
>                parameters.put("org.apache.jackrabbit.repository.conf",
> "C:/Users/nils.weinander/workspace/fofu-prototype/src/main/resources/repository.xml");
>                parameters.put("org.apache.jackrabbit.repository.home",
> "C:/Users/nils.weinander/tmp/repo");
>                for (RepositoryFactory factory :
> ServiceLoader.load(RepositoryFactory.class)) {
>                        repository = factory.getRepository(parameters);
>                        if (repository != null) {
>                                break;
>                        }
>                }
>                //Repository repository = new TransientRepository();
>                Credentials credentials = new SimpleCredentials("admin",
> "admin".toCharArray());
>                Session session = repository.login(credentials);
>                Node testNode = session.getRootNode().addNode("TEST-NODE",
> NodeType.NT_FOLDER);
>                testNode.addMixin("mix:title");
>                testNode.setProperty("jcr:title", "TEST-TITLE");
>                session.save();
>                assertTrue(testNode.hasProperty("jcr:title"));
>                Property property = testNode.getProperty("jcr:title");
>                assertNotNull(property);
>                assertEquals("TEST-TITLE", property.getString());
>                session.logout();
>        }
>
> The logs differ slightly, I can see that I get a TransientRepository
> with the simple test case.
>
> So, something is different when the repository is instantiated
> by Spring. Question is what...

-> 'blackbox magic' :)

cheers
stefan

>
> --
> mogul | nils weinander |
> hudiksvallsgatan 4 113 30 stockholm sweden |
> +46 8 4100 6456 | +46 709 78 28 37 |
> nils.weinander@mogul.com | skype: nils.weinander |
> www.mogul.com
>

Mime
View raw message