Ampie Barnard | 23 Oct 07:06 2014
Picon

Jackrabbit JCR over DAV Extensions - Production ready?

Hi All,

I am preparing a proposal for the use of Jackrabbit for a fairly simple,
isolated  document management requirement we have. We are happy that our
functional requirements are 100% satisfied by Jackrabbit, for which I thank
you all.

However, we do have a requirement for significant scaling, clustering and
remote access. From the documentation it would seem that the  JCR over RMI
implementation is not ideal for these requirements, which is why we are
rather considering using the JCR over DAV (with extensions). We would
however like to confirm that this module was intended for production use.

Your input would be much appreciated.

Kind Regards
Davide Giannella | 17 Oct 10:34 2014
Picon

[ANNOUNCE] Apache Jackrabbit Oak 1.1.1 released

The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 1.1.1 The release is available for download at:

    http://jackrabbit.apache.org/downloads.html

See the full release notes below for details about this release.

Introduction
------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

Apache Jackrabbit Oak 1.1.1 is an unstable release cut directly from
Jackrabbit Oak trunk, with a focus on new features and other improvements.
For production use we recommend the latest stable 1.0.6 release.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

Changes in Oak 1.1.1
---------------------

Bug

    [OAK-2144] - Intermittent Node not found at given revision with
DocumentNodeStore
    [OAK-2146] - empty resultset for PropertyIndex and multi-value
properties with mixed OR+AND
(Continue reading)

Tino Rink | 13 Oct 16:41 2014
Picon

How delete binary nodes immediately also on filesystem?

Hallo Everyone

We would like to use Jackrabbit in our current project. One of our
requirements is to store many documents and some with private or secure
nature. If a user request the deletion of such a sensitive document, it
should happend immediately - even from the filesystem.

After reading the documentation (
http://wiki.apache.org/jackrabbit/DataStore#Data_Store_Garbage_Collection)
it seem there only one way:
1. deleting the node including binary data property
2. run the GC

Questons:
- Is there another / direkt way to delete the binary content from fs?
- How 'fast' is the GC when talking about GB till TB of Data?
- Could the GC-Run be resticted / advised to analyse and process only a
subset of nodes (maybe only one)?

Thanks and best regards,
Tino
Tarek Jarraya | 10 Oct 12:49 2014
Picon

How to manage transaction over many sessions

Hi All,

Context:
-----------
Jackrabbit v 2.8
Deployment model 3, exposed via war deployed on tomcat 7
The consumers (web application) use webdav interface
We manage a session pool. One session per request
The consumer is stateless.

Need:
-------
Be able to add a "versionable" node subtree: 1st request for the root node,
and additional request per new child node.
All the subtree should not be available for read until all the grap is
created.
The same need for the update operation. The update will concern on a
specific version of the subtree. During the update the user should see the
old values of the version.

In my understanding, since that we don't keep a session for long time (a
session per request), we can not manage a JCR transaction to group all the
subtree operations before a commit.

I am thinking for this solution:
- Create a "tmp" node for subtree work, then I will move it in the right
place at the end.
- I don't know if this solution will work when I update an existing node. I
don't know if I create, move or copy the node to the tmp node.

(Continue reading)

Ben Peter | 8 Oct 17:36 2014

SimpleAccessManager only with SimpleSecurityManager?

Hi,

[1] says "The default SimpleAccessManager class included in Jackrabbit implements a trivially simple
authorization mechanism that grants full read access to all users and write access to everyone except
anonymous users.”

I just found that this is only true if the SimplePrincipalProvider is used at the same time and if it isn’t,
SAM will allow grant jcr:all to anonymous (ouch!)

So I’m wondering
- is this as expected and just lacking precise documentation
- is this unexpected and an issue 
- am I missing something?

SAM relies on the following code:

import org.apache.jackrabbit.core.security.AnonymousPrincipal
...
anonymous = !subject.getPrincipals(AnonymousPrincipal.class).isEmpty();

This will work if the principal provider is
org.apache.jackrabbit.core.security.simple.SimpleSecurityManager.SimplePrincipalProvider,
which is only ever the case if the security manager is org.apache.jackrabbit.core.security.simple.SimpleSecurityManager

In a default setup, however, I see the following principals in the subject an anonymous login
- org.apache.jackrabbit.core.security.user.AuthorizableImpl$NodeBasedPrincipal
- org.apache.jackrabbit.core.security.principal.EveryonePrincipal

Cheers
Ben
(Continue reading)

Emanuele.Gesuato | 8 Oct 13:00 2014

Setting identifier in a node

Hi All,

We are using jackrabbit 2.6.4 and I would like to know if it is possible 
to set a predefined identifier for a newly created node.

I read that I can get the identifier through getIdentifier method but I 
don't know how to set it (if it is possible).

Why am I asking this ?
We have an import feature that accepts in input a json of elements and 
saves it in our persistence layer (postgresql). Using eclipselink as an 
ORM
I can use a predefined id for every entity in order to know if it exist or 
not.
I would like to maintain the same approach for records saved in jackrabbit 
persistence layer. An easy way to know if an entity exist or not is by the 
idenfier
but I need to set it in the json and let jackrabbit use it. Is it possible 
to do ?

My thanks,
Emanuele Gesuato
Tarek Jarraya | 3 Oct 23:00 2014
Picon

Which deployment model to use?

Hi All,

We want to use jackrabbit 2.8 with the following needs:
- We use only servlet container Tomcat 7. Maybe it is a constraint for JCA
adapter deployment mode.
- We want to be able to have access to administrate the repository : multi
access channels

The only mode that can match is the standalone. But based on the wiki
description is more adapted for quick start not for real production purpose.
I have deployed the war version on tomcat, but unfortunately I can not
access to it with the CLI tool based on the standalone jar.

Which deployment model do you advice me?

Thank you,
Tarek
Amit Jain | 25 Sep 13:02 2014
Picon

[ANNOUNCE] Apache Jackrabbit Oak 1.0.6 released

The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 1.0.6. The release is available for download at:

    http://jackrabbit.apache.org/downloads.html

See the full release notes below for details about this release.

Introduction
------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

Apache Jackrabbit Oak 1.0.6 is a patch release that contains fixes and
improvements over Oak 1.0. Jackrabbit Oak 1.0.x releases are considered
stable and targeted for production use.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

Changes in Oak 1.0.6
--------------------

Bug Fixes

   [OAK-2047] - Missing privileges after repository upgrade
   [OAK-2049] - ArrayIndexOutOfBoundsException in Segment.getRefId()
   [OAK-2053] - Excessive memory usage with Oracle Java 6
   [OAK-2059] - Reindexing can include hidden nodes in the index
(Continue reading)

hsp | 22 Sep 15:30 2014
Picon

How index according to my needs...

Hi;
We have Jackrabbit 2.8 in our system.
I would like to get help from you guys on how to solve a case involving
indexing names of items.
We need to be able to search (by contains) in a property in which we copy
the name given to the item.
So, there are items saved as "first-second_third.pdf" ,
"first_second-third.pdf" , "first-second-third.pdf" ,
"first_second_third.pdf" .
Well, there is a prop:name in our node type where the name is copied in node
creation.
The search uses jcr:contains( <at> prop:name, 'termbeingsearch')
If I search for "first" the items returned are:
"first-second_third.pdf"
"first-second-third.pdf"

If I search for "second" no results found...
If I search for "third" no results found...
If I search for "third.pdf" the items returned are:
"first_second-third.pdf"
"first-second-third.pdf"

But We need that all the terms separeted by "_", "-", " ", ".", would be
indexed, this way the item would be easily searched with "first" , "second"
, "third" and "pdf".
I suspect it refers to anything involving implement lucene, no idea.
How to achieve this in Jackrabbit?
Thanks in advanced!

Helio.
(Continue reading)

techie2k | 19 Sep 09:23 2014
Picon

Get user from User session jackrabbit

I have created which is not part of admin group. Wanted to retrieve user
object from logged-in user session.

Using admin created user:

*/org.apache.jackrabbit.api.security.user.User applicationUser =
accessController.createUser(user.getUsername(), user.getPassword());/*

Login with newly created user:

*/Session session = repository.login(new
SimpleCredentials(userInstance.getUsername(),
userInstance.getPassword().toCharArray()));/*

Trying to retrieve user object:

*/UserManager userManager = ((JackrabbitSession)
adminSession).getUserManager(); 
User repoUser = (User) userManager.getAuthorizable(userName);/*

But userManager is null, since session created from user is not part of
admin group.

Only way I find is to impersonate user session to admin and retrieve user
object.

But is there any other way to retrieve User object without impersonation?

Using jackrabbit 2.6.0 and jcr 2.0

(Continue reading)

techie2k | 16 Sep 09:18 2014
Picon

Unable to impersonate - Jackrabbit

I have custom type node /et:document /which needs to shared among some users
in jackrabbit repository.

But when I try to impersonate as superuser and assign to each user, a
defined property /sharedWithMe/, getting *failed login exception*.

Log in as application user,

/SimpleCredentials credentials = new SimpleCredentials(userName,
password.toCharArray());
Session session = repository.login(credentials, "default");/

Trying to share documents(with property added to user node)

/SimpleCredentials credentials = new SimpleCredentials("superuser",
"superuser".toCharArray());
Session adminUser = session.impersonate(credentials);
UserManager userManager = ((JackrabbitSession) adminUser).getUserManager();

for(String userID : users) {
    User user = (User) userManager.getAuthorizable(userID);
    Value value = vf.createValue(docPath);
    Value[] sharedDocsPath =  user.getProperty("sharedWithMe");
    int shareDocIndex = 0;
    Value[] revisedSharedDocPath = null;

    if (null != sharedDocsPath && sharedDocsPath.length > 0) {
        revisedSharedDocPath = new Value[sharedDocsPath.length + 1];

        for (Value v : sharedDocsPath) {
(Continue reading)


Gmane