You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by sumit tiwari <ti...@gmail.com> on 2013/08/29 11:35:49 UTC

Spring jcr version to use with Jack Rabbit 2.6.3

Hi All,

I am planning to use jack rabbit with spring. I am seeing that spring jcr
version 0.8 and 0.9 looks for old jsr170 jar and fails out.


[ERROR] Failed to execute goal on project xyz: Could not resolve
dependencies for project com.test.xyq:war:2.4.2: The following artifacts
could not be resolved: jsr170:jsr170:jar:1.0, jeceira:jeceira:jar:0.1.3,
aparzev:doka:jar:0.1, aparzev:commons:jar:0.2, jug:jug-asl:jar:2.0.0:
Failure to find jsr170:jsr170:jar:1.0 in
http:///nexus/content/groups/cliqrthirdparty
was cached in the local repository, resolution will not be reattempted
until the update interval of  has elapsed
http:///nexus/content/groups/cliqrthirdparty
or updates are forced -> [Help 1]

I did the exclusion

<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-jcr</artifactId>
<version>0.8</version>
<optional>true</optional>
<exclusions>
<exclusion>
<artifactId>jackrabbit-core</artifactId>
<groupId>org.apache.jackrabbit</groupId>
</exclusion>
<exclusion>
<artifactId>jackrabbit-jca</artifactId>
<groupId>org.apache.jackrabbit</groupId>
</exclusion>
</exclusions>
  </dependency>

I am using it in application-context.xml

<bean id="repository"
class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean"> <!-- normal
factory beans params --> <property name="configuration"
value="classpath:/jackrabbit-repository.xml" /> <!-- use the target folder
which will be cleaned --> <property name="homeDir"
value="file:./tmp/repository" /> </bean>

Is there any recent spring document which I can refer. I am not keen on
using spring jcr but a good approach in which I can integrate the latest
version of jack rabbit with spring.


-- 
Thanks,
Sumit

AW: Spring jcr version to use with Jack Rabbit 2.6.3

Posted by Thomas Auinger <th...@byteconsult.de>.
Hi Alex,

I understand your reasoning for not using the Spring module, however, a typical Spring application is built around a single "Dispatcher" servlet, which makes session management in various servlets not a standard "Spring way".

Of course it is still possible to use servlet-filters or sprint interceptors, which can be configured like e.g.
http://stackoverflow.com/questions/9908124/spring-mvc-3-interceptor-on-all-excluding-some-defined-paths

Viele Grüße
Thomas Auinger
Beratung und Leitung Entwicklung

ByteConsult GmbH  |  Tel.: +49-(0)931-20510-20  |  AG Würzburg, HRB 7262
Schürerstraße 5   |  Fax:  +49-(0)931-20510-19  |  GF: Jens Helmerich
97080 Würzburg    |  http://www.byteconsult.de  |      Manuel Hermann


-----Ursprüngliche Nachricht-----
Von: Alexander Klimetschek [mailto:aklimets@adobe.com] 
Gesendet: Freitag, 30. August 2013 03:47
An: dev@jackrabbit.apache.org
Cc: users@jackrabbit.apache.org
Betreff: Re: Spring jcr version to use with Jack Rabbit 2.6.3

The spring jcr module is not developed by the Apache Jackrabbit. AFAIU it is inactive for a number of years already.

But you don't need it to use JCR withing Spring applications. What it does is IMHO a bad approach with JCR anyway - it sees JCR as just another DAO/OCR framework and uses template callbacks etc. to make it completely transparent to the user how the JCR session underneath is managed. This is a bad thing, it is important to control the session (login, lifecycle usually per request, and exact save() or refresh() points) yourself.

A usueful approach is:
- to have maybe a servlet filter etc. auto-create the session at the start of the request and use whatever authentication you have over HTTP coming in to login the right user for the session and
- provide that to your servlets in e.g. a request attribute.
- session.save() would be up to servlets that actually change something (e.g. POST or PUT requests)
- background services outside a request would create their own session with e.g. a service user

You don't need the spring jcr module for this. Also, you might want to look at Apache Sling, which follows the above pattern.

Cheers,
Alex

On 29.08.2013, at 02:35, sumit tiwari <ti...@gmail.com> wrote:

> Hi All,
> 
> I am planning to use jack rabbit with spring. I am seeing that spring jcr version 0.8 and 0.9 looks for old jsr170 jar and fails out.
> 
> 
> [ERROR] Failed to execute goal on project xyz: Could not resolve dependencies for project com.test.xyq:war:2.4.2: The following artifacts could not be resolved: jsr170:jsr170:jar:1.0, jeceira:jeceira:jar:0.1.3, aparzev:doka:jar:0.1, aparzev:commons:jar:0.2, jug:jug-asl:jar:2.0.0: Failure to find jsr170:jsr170:jar:1.0 in http:///nexus/content/groups/cliqrthirdparty was cached in the local repository, resolution will not be reattempted until the update interval of  has elapsed http:///nexus/content/groups/cliqrthirdparty or updates are forced -> [Help 1]
> 
> I did the exclusion 
> 
> <dependency>
> 			<groupId>org.springmodules</groupId>
> 			<artifactId>spring-modules-jcr</artifactId>
> 			<version>0.8</version>
> 			<optional>true</optional>
> 			<exclusions>
> 				<exclusion>
> 					<artifactId>jackrabbit-core</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 				<exclusion>
> 					<artifactId>jackrabbit-jca</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 		</exclusions>
> 	  </dependency>	
> 
> I am using it in application-context.xml
> 
> <bean id="repository"
>         class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean">
>         <!-- normal factory beans params -->
>         <property name="configuration" value="classpath:/jackrabbit-repository.xml" />
>         <!-- use the target folder which will be cleaned  -->
>         <property name="homeDir" value="file:./tmp/repository" />
>     </bean>
> 
> Is there any recent spring document which I can refer. I am not keen on using spring jcr but a good approach in which I can integrate the latest version of jack rabbit with spring.
>  
> 
> -- 
> Thanks,
> Sumit 
> 



Re: Spring jcr version to use with Jack Rabbit 2.6.3

Posted by Alexander Klimetschek <ak...@adobe.com>.
The spring jcr module is not developed by the Apache Jackrabbit. AFAIU it is inactive for a number of years already.

But you don't need it to use JCR withing Spring applications. What it does is IMHO a bad approach with JCR anyway - it sees JCR as just another DAO/OCR framework and uses template callbacks etc. to make it completely transparent to the user how the JCR session underneath is managed. This is a bad thing, it is important to control the session (login, lifecycle usually per request, and exact save() or refresh() points) yourself.

A usueful approach is:
- to have maybe a servlet filter etc. auto-create the session at the start of the request and use whatever authentication you have over HTTP coming in to login the right user for the session and
- provide that to your servlets in e.g. a request attribute.
- session.save() would be up to servlets that actually change something (e.g. POST or PUT requests)
- background services outside a request would create their own session with e.g. a service user

You don't need the spring jcr module for this. Also, you might want to look at Apache Sling, which follows the above pattern.

Cheers,
Alex

On 29.08.2013, at 02:35, sumit tiwari <ti...@gmail.com> wrote:

> Hi All,
> 
> I am planning to use jack rabbit with spring. I am seeing that spring jcr version 0.8 and 0.9 looks for old jsr170 jar and fails out.
> 
> 
> [ERROR] Failed to execute goal on project xyz: Could not resolve dependencies for project com.test.xyq:war:2.4.2: The following artifacts could not be resolved: jsr170:jsr170:jar:1.0, jeceira:jeceira:jar:0.1.3, aparzev:doka:jar:0.1, aparzev:commons:jar:0.2, jug:jug-asl:jar:2.0.0: Failure to find jsr170:jsr170:jar:1.0 in http:///nexus/content/groups/cliqrthirdparty was cached in the local repository, resolution will not be reattempted until the update interval of  has elapsed http:///nexus/content/groups/cliqrthirdparty or updates are forced -> [Help 1]
> 
> I did the exclusion 
> 
> <dependency>
> 			<groupId>org.springmodules</groupId>
> 			<artifactId>spring-modules-jcr</artifactId>
> 			<version>0.8</version>
> 			<optional>true</optional>
> 			<exclusions>
> 				<exclusion>
> 					<artifactId>jackrabbit-core</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 				<exclusion>
> 					<artifactId>jackrabbit-jca</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 		</exclusions>
> 	  </dependency>	
> 
> I am using it in application-context.xml
> 
> <bean id="repository"
>         class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean">
>         <!-- normal factory beans params -->
>         <property name="configuration" value="classpath:/jackrabbit-repository.xml" />
>         <!-- use the target folder which will be cleaned  -->
>         <property name="homeDir" value="file:./tmp/repository" />
>     </bean>
> 
> Is there any recent spring document which I can refer. I am not keen on using spring jcr but a good approach in which I can integrate the latest version of jack rabbit with spring.
>  
> 
> -- 
> Thanks,
> Sumit 
> 


Re: Spring jcr version to use with Jack Rabbit 2.6.3

Posted by Alexander Klimetschek <ak...@adobe.com>.
The spring jcr module is not developed by the Apache Jackrabbit. AFAIU it is inactive for a number of years already.

But you don't need it to use JCR withing Spring applications. What it does is IMHO a bad approach with JCR anyway - it sees JCR as just another DAO/OCR framework and uses template callbacks etc. to make it completely transparent to the user how the JCR session underneath is managed. This is a bad thing, it is important to control the session (login, lifecycle usually per request, and exact save() or refresh() points) yourself.

A usueful approach is:
- to have maybe a servlet filter etc. auto-create the session at the start of the request and use whatever authentication you have over HTTP coming in to login the right user for the session and
- provide that to your servlets in e.g. a request attribute.
- session.save() would be up to servlets that actually change something (e.g. POST or PUT requests)
- background services outside a request would create their own session with e.g. a service user

You don't need the spring jcr module for this. Also, you might want to look at Apache Sling, which follows the above pattern.

Cheers,
Alex

On 29.08.2013, at 02:35, sumit tiwari <ti...@gmail.com> wrote:

> Hi All,
> 
> I am planning to use jack rabbit with spring. I am seeing that spring jcr version 0.8 and 0.9 looks for old jsr170 jar and fails out.
> 
> 
> [ERROR] Failed to execute goal on project xyz: Could not resolve dependencies for project com.test.xyq:war:2.4.2: The following artifacts could not be resolved: jsr170:jsr170:jar:1.0, jeceira:jeceira:jar:0.1.3, aparzev:doka:jar:0.1, aparzev:commons:jar:0.2, jug:jug-asl:jar:2.0.0: Failure to find jsr170:jsr170:jar:1.0 in http:///nexus/content/groups/cliqrthirdparty was cached in the local repository, resolution will not be reattempted until the update interval of  has elapsed http:///nexus/content/groups/cliqrthirdparty or updates are forced -> [Help 1]
> 
> I did the exclusion 
> 
> <dependency>
> 			<groupId>org.springmodules</groupId>
> 			<artifactId>spring-modules-jcr</artifactId>
> 			<version>0.8</version>
> 			<optional>true</optional>
> 			<exclusions>
> 				<exclusion>
> 					<artifactId>jackrabbit-core</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 				<exclusion>
> 					<artifactId>jackrabbit-jca</artifactId>
> 					<groupId>org.apache.jackrabbit</groupId>
> 				</exclusion>
> 		</exclusions>
> 	  </dependency>	
> 
> I am using it in application-context.xml
> 
> <bean id="repository"
>         class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean">
>         <!-- normal factory beans params -->
>         <property name="configuration" value="classpath:/jackrabbit-repository.xml" />
>         <!-- use the target folder which will be cleaned  -->
>         <property name="homeDir" value="file:./tmp/repository" />
>     </bean>
> 
> Is there any recent spring document which I can refer. I am not keen on using spring jcr but a good approach in which I can integrate the latest version of jack rabbit with spring.
>  
> 
> -- 
> Thanks,
> Sumit 
>