[cmis] api and general structure, client implementation

2009-01-12 Thread David Nuescheler
hi all,

i think we are making great progress on the server side of the cmis
implementation and it is great to see both the ws and the atompub
binding progress so quickly.

since i think it should also be a goal of this implementation to
make our code as re-uable as possible, it is great that it does
not have any specific proprietary jackrabbit dependencies but
really just jcr dependencies. on top of that i think it would also
be great to expose the entire cmis model as a separate api.

i think dominique already submitted an issue around specifying
an api, so both the ws and the atompub binding can use that.

https://issues.apache.org/jira/browse/JCRCMIS-7

i would like to take that a step further and also propose that we
have a cmis client. i think this is something that is really important
and help everybody developing something around cmis a great
deal.

so. i would propose that we have an svn subproject structure
that is something like this.

jcr-cmis/
  server/
  client/
  api/

does that make sense?

regards,
david

-- 
Visit: http://dev.day.com/


[jira] Updated: (JCR-1932) Session.getAttributes( ) call always returns an empty array

2009-01-12 Thread alessandro cosenza (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCR-1932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

alessandro cosenza updated JCR-1932:


Summary: Session.getAttributes( ) call always returns an empty array  (was: 
bug in JCR API Session.getAttributes( ) call)

 Session.getAttributes( ) call always returns an empty array
 ---

 Key: JCR-1932
 URL: https://issues.apache.org/jira/browse/JCR-1932
 Project: Jackrabbit
  Issue Type: Bug
  Components: JCR API
Reporter: alessandro cosenza
 Attachments: bug.txt


 Repository repository = new 
 RMIRemoteRepository(//localhost:1099/jackrabbit.repository);
 SimpleCredentials c = new SimpleCredentials(alex,ok.toCharArray());
 c.setAttribute(anAttribute, aValue);
 Session s = repository.login(c, aWorkspace);
 String[]attr=s.getAttributeNames();
 array attr is empty.
 according to docs it should contains attributes from the SimpleCredentials 
 object.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1892) Unique ID for org.apache.jackrabbit.value.BinaryValue

2009-01-12 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12662918#action_12662918
 ] 

Thomas Mueller commented on JCR-1892:
-

What about 

The identifier is opaque, meaning it can have any format and size, however
it is at normally about 50 characters and at most 255 characters long.
The string only contains Unicode code points from 32 to 127 (including).

For some databases, the VARCHAR limit is 255. Unicode code points 32 to 127 are 
the same in ASCII, and I don't like to exclude ':' and '/' to support URLs; and 
I don't like to exclude base64 encoding.

 If you already have a DataIdentifier for something, then it's highly likely 
 that the corresponding record also exists in the DataStore

One use case is fast data migration (from one repository to another). In that 
case the record usually doesn't exist yet.

I don't see any harm in getRecordIfStored().

 Unique ID for org.apache.jackrabbit.value.BinaryValue
 -

 Key: JCR-1892
 URL: https://issues.apache.org/jira/browse/JCR-1892
 Project: Jackrabbit
  Issue Type: New Feature
  Components: jackrabbit-jcr-commons
Reporter: Thomas Mueller
Assignee: Thomas Mueller
 Attachments: JackrabbitValue-api.patch, JackrabbitValue-core.patch


 BinaryValue should have a method get the unique identifier (if one is 
 available). That way an application may not have to read the stream if that 
 value is already processed.
 When the DataStore is used, a unique identifier is available, so probably 
 this feature is quite simple to implement.
 See also http://www.nabble.com/Workspace.copy()-Question-...-td20435164.html 
 (but please don't reply to this thread from now on - instead add comments to 
 this issue).
 Another feature is getFileName() to get the file name if it is stored in the 
 file system. This method may need a security mechanism, for example 
 getFileName(Session s) so that the system can check it. In any case the file 
 should not be modified, but maybe knowing the file name is already too 
 dangerous in some cases.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[Website] Prominent links to articles

2009-01-12 Thread Alexander Klimetschek
Hi all,

there are a lot of good both introductionary and detailed articles
about JCR and Jackrabbit on the web. We link them on the wiki [1], but
this requires to non-obvious clicks from the jackrabbit homepage
(wiki - jcr links) amongst dozens of others.

Therefore I would like to create a new Articles page on the website,
that should be part of the Apache Jackrabbit section in the
top-right of the navigation sidebar. This page would basically do the
same as the JcrLinks wiki page, but reduced to a smaller set and
cleaned up - for the rest we can directly link to the wiki page.

In addition, I would link to that page from the Getting Started page
[2] (See here for some good articles explaining the concepts).
That page should also link to all the pages it mentions and lead to
First hops as a logically next step for anyone that wants to code
with Jackrabbit.

Finally I would improve the home page and include prominent links to
those pages (Look at Getting Started, If you are new to JCR and
Jackrabbit, here are some good introductions and tutorials). I think
currently a new visitor has no clue what to explore first on the
homepage. And all the articles already give a good documentation
(which we ...ahem... lack a bit).

WDYT?

[1] http://wiki.apache.org/jackrabbit/JcrLinks
[2] http://jackrabbit.apache.org/getting-started-with-apache-jackrabbit.html

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetsc...@day.com


Re: [Website] Prominent links to articles

2009-01-12 Thread Jukka Zitting
Hi,

On Mon, Jan 12, 2009 at 1:15 PM, Alexander Klimetschek aklim...@day.com wrote:
 WDYT?

+1

BR,

Jukka Zitting


[jira] Commented: (JCR-1931) SharedFieldCache$StringIndex memory leak causing OOM's

2009-01-12 Thread Marcel Reutegger (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12662960#action_12662960
 ] 

Marcel Reutegger commented on JCR-1931:
---

Comments:

- can you please create a patch that only includes relevant changes? it seems 
there are several changes in the patch that are just line breaks at different 
positions.
- StringIndex#sparse should be final, it is only set in the constructor
- comment in StringIndex#isSparse still mentions 10%

Other than that, the patch looks OK.

 SharedFieldCache$StringIndex memory leak causing OOM's 
 ---

 Key: JCR-1931
 URL: https://issues.apache.org/jira/browse/JCR-1931
 Project: Jackrabbit
  Issue Type: Bug
  Components: query
Affects Versions: 1.5.0
Reporter: Ard Schrijvers
Assignee: Ard Schrijvers
Priority: Critical
 Fix For: 1.5.1

 Attachments: JCR-1931.patch, OrderByOOMTest.java


 SharedFieldCache$StringIndex is not working properly. It is meant to cache 
 the docnumbers in lucene along with the term to sort on. The issue is 
 twofold. I have a solution for the second one, the first one is not really 
 solvable from jr pov, because lucene index readers are already heavily 
 caching Terms. 
 Explanation of the problem:
 For *each* unique property where is sorted on, a new lucene 
 ScoreDocComparator is created (see SharedFieldComparator newComparator). This 
 new comparator creates *per* lucene indexreader  SharedFieldCache.StringIndex 
 which is stored in a WeakHashMap with as key, the indexreader . As this 
 indexreader  almost *never* can be garbage collected (only if it is merged 
 and thus unused after), the SharedFieldCache.StringIndex are there to be the 
 rest of the jvm life (which is sometime short, as can be seen from the simple 
 unittest attached).  Obviously, this results pretty fast in OOM.
 1) issue one:  The cached terms[] in SharedFieldCache.StringIndex can become 
 huge when you sort on a common property (date) which is present in a lot of 
 nodes. It you sort on large properties, like 'title' this 
 SharedFieldCache.StringIndex  will quickly use hundreds of Mb for a couple of 
 hundred of thousand of nodes with a title. This issue is already a lucene 
 issue, as lucene already caches the terms. OTOH, I really doubt whether we 
 should index long string values as UNTOKENIZED in lucene at all. A half 
 working solution might be a two-step solution, where the first sort is on the 
 first 10 chars, and only if the comparator returns 0, take the entire string 
 to sort on
 2) issue two:  The cached terms[] in SharedFieldCache.StringIndex is 
 frequently sparse, consuming an incredible amount of memory for string arrays 
 containing mainly null values. For example (see attached unit test):
 - add 1.000.000 nodes
 - do a query and sort on a non existing property
 - you'll loose 1.000.000 * 4 bytes ~ 4 Mb of memory
 - sort on another non existing prop : another 4 Mb is lost
 - do it 100 times -- 400 Mb is lost, and can't be reclaimed
 I'll attach a solution which works really fine for me, still having the 
 almost unavoidable memory absorption, but makes it much smaller. The solution 
 is, that if  10% of the String array is filled, i consider the array already 
 sparse, and move to a HashMap solution. Performance does not decrease much 
 (and in case of large sparsity increases because less memory consumption -- 
 less gc, etc). 
 Perhaps it does not seem to be a common issue (certainly the unit test) but 
 our production environments memory snapshots indicate most memory being held 
 by the SharedFieldCache$StringIndex (and the lucene Terms, which is harder to 
 avoid)
 I'd like to see this in the 1.5.1 if others are ok with it

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1932) Session.getAttributes( ) call always returns an empty array

2009-01-12 Thread Alexander Klimetschek (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12662964#action_12662964
 ] 

Alexander Klimetschek commented on JCR-1932:


Looking at the SessionImpl code, I see that the member attributes, which is 
read by getAttributeNames() and getAttribute(String) is never written to. The 
solution would be to change the RepositoryImpl.login(Credentials, String) 
method to pass on the attributes array through to createSession() - 
createSessionInstance() - XASessionImpl constructor - SessionImpl constructor.

 Session.getAttributes( ) call always returns an empty array
 ---

 Key: JCR-1932
 URL: https://issues.apache.org/jira/browse/JCR-1932
 Project: Jackrabbit
  Issue Type: Bug
  Components: JCR API
Reporter: alessandro cosenza
 Attachments: bug.txt


 Repository repository = new 
 RMIRemoteRepository(//localhost:1099/jackrabbit.repository);
 SimpleCredentials c = new SimpleCredentials(alex,ok.toCharArray());
 c.setAttribute(anAttribute, aValue);
 Session s = repository.login(c, aWorkspace);
 String[]attr=s.getAttributeNames();
 array attr is empty.
 according to docs it should contains attributes from the SimpleCredentials 
 object.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1664) JNDI Referencable Issues

2009-01-12 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12662986#action_12662986
 ] 

Jukka Zitting commented on JCR-1664:


I just noticed that revision 683268 that contained changes relevant to this 
issue was incorrectly labelled with JCR-1644 instead of JCR-1664, and that I 
therefore missed merging it to the 1.4 branch for the 1.4.6 release.

1.4.6 still works with the previous 681031 changes merged, but it's a bit more 
difficult to subclass BindableRepository. We can include the missing 683268 
changes in a jackrabbit-core 1.4.7 release if there's enough demand.

 JNDI Referencable Issues
 

 Key: JCR-1664
 URL: https://issues.apache.org/jira/browse/JCR-1664
 Project: Jackrabbit
  Issue Type: Bug
  Components: jackrabbit-core
Affects Versions: core 1.4.5
 Environment: linux glassfish jndi spring
Reporter: Nicholas Stuart
Assignee: Jukka Zitting
 Fix For: core 1.4.6

 Attachments: JCR-1664.patch, JCR-1664.patch, out.patch


 I'm questioning the use of Referencable in the BindableResource and 
 BindableResourceFactory classes for the JNDI lookup process. Reason for this 
 is because Referencable needs the Addrs to be in the EXACT order in order for 
 it to be considered the same. (see 
 http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Reference.html#equals(java.lang.Object)
  )
 In order for me to get the JNDI reference to be found correctly I had to 
 change the BindableResource.getReference method to swap the order the 
 StringReferences were added to match up what was being passed in by 
 glassfish. This seems EXTREMELY fragile to me as I don't know what order, say 
 JBoss, would pass the StringRefences in in the Reference object for the 
 Factory method.
 Also, another problem is that getReference is binding the class name to 
 BindableRepository class implementation and not javax.jcr.Repository. This 
 again causes them not to match if you follow the example on the wiki on 
 setting up the JNDI reference and use javax.jcr.Repository as the type. This 
 can either be fixed by changing the JNDI reference to use the 
 BindableRepository class or the change the BindableRepository class to set 
 that to the Repository interface. Not sure which would be considered 'better'
 I have a patch that fixes the first issue (at least for glassfish), but not 
 the second. Again, this seems like a really 'breakable' setup right now and 
 not sure what would be better to make sure this is avoided.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1823) Repository.login throws IllegalStateException

2009-01-12 Thread JIRA

[ 
https://issues.apache.org/jira/browse/JCR-1823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12662990#action_12662990
 ] 

Grégory Joseph commented on JCR-1823:
-

I might be wrong, but I seem to remember this is the exception i got with 
JCR-1778, which might thus be irrelevant now ?

 Repository.login throws IllegalStateException
 -

 Key: JCR-1823
 URL: https://issues.apache.org/jira/browse/JCR-1823
 Project: Jackrabbit
  Issue Type: Bug
  Components: jackrabbit-core
Affects Versions: core 1.4.5
Reporter: Felix Meschberger
Assignee: Jukka Zitting
 Fix For: 1.5.1

 Attachments: JCR-1823.patch


 Calling any login method on Repository instance, which has been shut down 
 throws an IllegalStateException, which is caused by the 
 RepositoryImpl.sanityCheck method.
 This exception is unexpected by callers of the login method, which is 
 specified to throw one of LoginException, NoSuchWorkspaceException and 
 RepositoryException. In particular the spec says, that a RepositoryException 
 is thrown if another error occurs.
 So I suggest to modify the RepositoryImpl.login(Credentials, String) as 
 follows (patch against trunk):
 Index: 
 /usr/src/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
 ===
 --- 
 /usr/src/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
 (revision 706543)
 +++ 
 /usr/src/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
 (working copy)
 @@ -1358,6 +1358,8 @@
  } catch (AccessDeniedException ade) {
  // authenticated subject is not authorized for the specified 
 workspace
  throw new LoginException(Workspace access denied, ade);
 +} catch (RuntimeException re) {
 +throw new RepositoryException(re.getMessage(), re);
  } finally {
  shutdownLock.readLock().release();
  }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (JCR-1933) Session.isLive() and logout() throw exceptions

2009-01-12 Thread Marcel Reutegger (JIRA)
Session.isLive() and logout() throw exceptions
--

 Key: JCR-1933
 URL: https://issues.apache.org/jira/browse/JCR-1933
 Project: Jackrabbit
  Issue Type: Bug
  Components: jackrabbit-jcr-rmi
Affects Versions: 1.5.0
Reporter: Marcel Reutegger
Priority: Minor


The two methods will throw an exception in case the remote session is not 
available anymore. For most other methods an exception is OK in that case, but 
I think for the methods isLive() and logout() (both do not declare any 
exception) a client expects a different behavior. I propose we change it as 
follows:

- Session.isLive(): return false if remote session is not available anymore
- Session.logout(): write a log message, but do not throw a runtime exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1931) SharedFieldCache$StringIndex memory leak causing OOM's

2009-01-12 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12663010#action_12663010
 ] 

Jukka Zitting commented on JCR-1931:


Seems OK to me too. Ard, can you commit this with Marcel's suggetions? I'll 
then merge it to 1.5 for inclusion in 1.5.1.

 SharedFieldCache$StringIndex memory leak causing OOM's 
 ---

 Key: JCR-1931
 URL: https://issues.apache.org/jira/browse/JCR-1931
 Project: Jackrabbit
  Issue Type: Bug
  Components: query
Affects Versions: 1.5.0
Reporter: Ard Schrijvers
Assignee: Ard Schrijvers
Priority: Critical
 Fix For: 1.5.1

 Attachments: JCR-1931.patch, OrderByOOMTest.java


 SharedFieldCache$StringIndex is not working properly. It is meant to cache 
 the docnumbers in lucene along with the term to sort on. The issue is 
 twofold. I have a solution for the second one, the first one is not really 
 solvable from jr pov, because lucene index readers are already heavily 
 caching Terms. 
 Explanation of the problem:
 For *each* unique property where is sorted on, a new lucene 
 ScoreDocComparator is created (see SharedFieldComparator newComparator). This 
 new comparator creates *per* lucene indexreader  SharedFieldCache.StringIndex 
 which is stored in a WeakHashMap with as key, the indexreader . As this 
 indexreader  almost *never* can be garbage collected (only if it is merged 
 and thus unused after), the SharedFieldCache.StringIndex are there to be the 
 rest of the jvm life (which is sometime short, as can be seen from the simple 
 unittest attached).  Obviously, this results pretty fast in OOM.
 1) issue one:  The cached terms[] in SharedFieldCache.StringIndex can become 
 huge when you sort on a common property (date) which is present in a lot of 
 nodes. It you sort on large properties, like 'title' this 
 SharedFieldCache.StringIndex  will quickly use hundreds of Mb for a couple of 
 hundred of thousand of nodes with a title. This issue is already a lucene 
 issue, as lucene already caches the terms. OTOH, I really doubt whether we 
 should index long string values as UNTOKENIZED in lucene at all. A half 
 working solution might be a two-step solution, where the first sort is on the 
 first 10 chars, and only if the comparator returns 0, take the entire string 
 to sort on
 2) issue two:  The cached terms[] in SharedFieldCache.StringIndex is 
 frequently sparse, consuming an incredible amount of memory for string arrays 
 containing mainly null values. For example (see attached unit test):
 - add 1.000.000 nodes
 - do a query and sort on a non existing property
 - you'll loose 1.000.000 * 4 bytes ~ 4 Mb of memory
 - sort on another non existing prop : another 4 Mb is lost
 - do it 100 times -- 400 Mb is lost, and can't be reclaimed
 I'll attach a solution which works really fine for me, still having the 
 almost unavoidable memory absorption, but makes it much smaller. The solution 
 is, that if  10% of the String array is filled, i consider the array already 
 sparse, and move to a HashMap solution. Performance does not decrease much 
 (and in case of large sparsity increases because less memory consumption -- 
 less gc, etc). 
 Perhaps it does not seem to be a common issue (certainly the unit test) but 
 our production environments memory snapshots indicate most memory being held 
 by the SharedFieldCache$StringIndex (and the lucene Terms, which is harder to 
 avoid)
 I'd like to see this in the 1.5.1 if others are ok with it

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



JCRSITE project created

2009-01-12 Thread Jukka Zitting
Hi,

I created a new JCRSITE [1] project in Jira for tracking changes to
the Jackrabbit web site, the Jackrabbit parent POM (as discussed for
the JCR Commons subproject), and other resources for which we don't
have a more specific issue tracker.

Like the JCRCMIS project, JCRSITE has wiki markup enabled for comments
and issue descriptions.

[1] https://issues.apache.org/jira/browse/JCRSITE

BR,

Jukka Zitting


Setting up a new parent POM (Was: [VOTE] Create the JCR Commons subproject)

2009-01-12 Thread Jukka Zitting
Hi,

On Wed, Jan 7, 2009 at 8:03 AM, Felix Meschberger fmesc...@gmail.com wrote:
 I think the parent project is truly Jackrabbit global. As such it does
 not belong to the Commons subproject.

That's a good point, and I agree that we should go that way. I'll be
setting up the new parent POM (as described in JCRSITE-1) in a
separate svn subtree rooted at .../asf/jackrabbit/parent.

BR,

Jukka Zitting


Re: JCRSITE project created

2009-01-12 Thread Alexander Klimetschek
On Mon, Jan 12, 2009 at 6:40 PM, Jukka Zitting jukka.zitt...@gmail.com wrote:
 I created a new JCRSITE [1] project in Jira for tracking changes to
 the Jackrabbit web site, the Jackrabbit parent POM (as discussed for
 the JCR Commons subproject), and other resources for which we don't
 have a more specific issue tracker.

Cool, I just added a website task for my earlier proposal [1].

But it seems I (and probably other committers as well) don't have the
rights to assign issues - although I can edit, comment, attach files,
resolve issue etc.

Regards,
Alex

[1] https://issues.apache.org/jira/browse/JCRSITE-2

-- 
Alexander Klimetschek
alexander.klimetsc...@day.com


[jira] Commented: (JCR-1933) Session.isLive() and logout() throw exceptions

2009-01-12 Thread Alexander Klimetschek (JIRA)

[ 
https://issues.apache.org/jira/browse/JCR-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12663029#action_12663029
 ] 

Alexander Klimetschek commented on JCR-1933:


 - Session.isLive(): return false if remote session is not available anymore
 - Session.logout(): write a log message, but do not throw a runtime exception.

+1

 Session.isLive() and logout() throw exceptions
 --

 Key: JCR-1933
 URL: https://issues.apache.org/jira/browse/JCR-1933
 Project: Jackrabbit
  Issue Type: Bug
  Components: jackrabbit-jcr-rmi
Affects Versions: 1.5.0
Reporter: Marcel Reutegger
Priority: Minor

 The two methods will throw an exception in case the remote session is not 
 available anymore. For most other methods an exception is OK in that case, 
 but I think for the methods isLive() and logout() (both do not declare any 
 exception) a client expects a different behavior. I propose we change it as 
 follows:
 - Session.isLive(): return false if remote session is not available anymore
 - Session.logout(): write a log message, but do not throw a runtime exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: JCRSITE project created

2009-01-12 Thread Jukka Zitting
Hi,

On Mon, Jan 12, 2009 at 7:09 PM, Alexander Klimetschek aklim...@day.com wrote:
 But it seems I (and probably other committers as well) don't have the
 rights to assign issues - although I can edit, comment, attach files,
 resolve issue etc.

Should be fixed now.

BR,

Jukka Zitting


[jira] Resolved: (JCRSITE-1) Create new project-level Jackrabbit parent POM

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting resolved JCRSITE-1.
-

Resolution: Fixed

I think I have the new parent POM in a pretty good shape now in 
https://svn.apache.org/repos/asf/jackrabbit/parent/trunk/. Resolving as Fixed.

 Create new project-level Jackrabbit parent POM
 --

 Key: JCRSITE-1
 URL: https://issues.apache.org/jira/browse/JCRSITE-1
 Project: Jackrabbit Site
  Issue Type: Task
  Components: parent
Reporter: Jukka Zitting
Assignee: Jukka Zitting
 Fix For: parent 2.0


 The current {{org.apache.jackrabbit:jackrabbit-parent}} POM contains 
 dependency management and other settings that are related to specific 
 Jackrabbit components. Since we are now moving many components to the new JCR 
 Commons subproject we should have a more generic project-level parent POM 
 that only specifies global configuration like project members, mailing lists, 
 and perhaps some generic settings of the Jackrabbit build environment.
 I plan to identify this parent POM as {{org.apache.jackrabbit:parent}} as I'd 
 like to reserve the jackrabbit- artifactId prefix for the component that 
 are part of the core Jackrabbit repository build.
 I'd like to start the versioning of this parent POM at 2.0 as an upgrade from 
 the jackrabbit-parent 1.x POMs we now have, and create 2.x versions until 
 upgrading to 3.0 for some major change like a TLP reorganization or switch to 
 the next major Maven version.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRSITE-4) Implementation Architecture Documentation

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-4?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-1 to JCRSITE-4:
---

Component/s: (was: docs)
 site
Description: (was: Create Generic Documentation that decribes the 
Architecture and Operations of Jackrabbit.

Target Audience: 
 Jackrabbit Developers  Jackrabbit Users

TOC:
 Architecure Overview (JSR-170 vs Jackrabbit Implementation)
 Basic Jackrabbit Operations
  - Startup, initialize, configuration
  - Authenticate, login, acquire a session
  - Read and Introspect, Nodetypes, Permissions
  - Create, Update  Delete, working with transient Items
  - NodetypeValidate  Save, PerstianceHandlers, Stores
  - NamespaceRegistry and Session Namespaces
  - Queries, Querylanguages, Indexes
 ...)
Environment: (was: Documentation)
   Workflow: no-reopen-closed, patch-avail  (was: jira)
Key: JCRSITE-4  (was: JCR-1)
Project: Jackrabbit Site  (was: Jackrabbit)

 Implementation Architecture Documentation
 -

 Key: JCRSITE-4
 URL: https://issues.apache.org/jira/browse/JCRSITE-4
 Project: Jackrabbit Site
  Issue Type: Task
  Components: site
Reporter: David Nuescheler
Assignee: David Nuescheler



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRSITE-5) Update First Hops Documentation

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-5?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-941 to JCRSITE-5:
-

Fix Version/s: (was: none)
  Component/s: (was: docs)
   site
 Workflow: no-reopen-closed, patch-avail  (was: jira)
  Key: JCRSITE-5  (was: JCR-941)
  Project: Jackrabbit Site  (was: Jackrabbit)

 Update First Hops Documentation
 -

 Key: JCRSITE-5
 URL: https://issues.apache.org/jira/browse/JCRSITE-5
 Project: Jackrabbit Site
  Issue Type: Improvement
  Components: site
 Environment: None - just the Apache Jackrabbit website
Reporter: Porter Woodward
Assignee: Jukka Zitting

 The First Hops portion of the Apache Jackrabbit site is out of date.
 http://jackrabbit.apache.org/doc/firststeps.html 
 It still references Jackrabbit 1.0 - and the project is onto release 1.3;  it 
 also references several dependencies - and the downloads page is no longer 
 clear as to which jar files would be required to get a basic repository 
 application up and running.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRSITE-6) Update / Fix Documentation for CND Notation

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-6?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-1194 to JCRSITE-6:
--

Component/s: (was: docs)
 site
   Workflow: no-reopen-closed, patch-avail  (was: jira)
Key: JCRSITE-6  (was: JCR-1194)
Project: Jackrabbit Site  (was: Jackrabbit)

 Update / Fix Documentation for CND Notation
 ---

 Key: JCRSITE-6
 URL: https://issues.apache.org/jira/browse/JCRSITE-6
 Project: Jackrabbit Site
  Issue Type: Improvement
  Components: site
Reporter: Felix Gonschorek
Priority: Minor

 I started to learn Jackrabbit / JCA, but there was a documentation bug that 
 took me long to figure out.
 This is related to the CND documentation under 
 http://jackrabbit.apache.org/doc/nodetype/cnd.html 
 I could not import my namespace and NodeType definition, until i 
 a) created the namespace in my repository (it's obvious i need to do this, 
 but i thought, the namespace declaration on top of the cnd file would do this)
 b) i declare the namespace nt in addition to my own namespace. i could not 
 import anything but an empty node type, until i did this
 eg. not just:
 ---
 myns=http://www.mynamespace.com/myns;
 ---
 i needed to declare:
 ---
 myns=http://www.mynamespace.com/myns;
 nt = 'http://www.jcp.org/jcr/nt/1.0'
 ---
 before anything works. otherwise i got a strange exception (could not parse 
 node type definition at [??)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (JCRSITE-3) Simple standalone sample apps

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-3?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated JCRSITE-3:


Description: 
It would be great to have really simple standalone sample apps for the most 
important features.

The sample apps should have a main method each, write to System.out, and be in 
the test source tree or in a new 'examples' tree, in jackrabbit-core (and / or 
in another project).

Then for each of those sample apps there should be a test that redirects 
System.out to a ByteArrayOutputStream, calls the main method, checks if the 
output is correct. Like that the sample apps don't get out of sync.

 Simple standalone sample apps
 -

 Key: JCRSITE-3
 URL: https://issues.apache.org/jira/browse/JCRSITE-3
 Project: Jackrabbit Site
  Issue Type: New Feature
  Components: site
Reporter: Thomas Mueller
Assignee: Thomas Mueller
Priority: Minor

 It would be great to have really simple standalone sample apps for the most 
 important features.
 The sample apps should have a main method each, write to System.out, and be 
 in the test source tree or in a new 'examples' tree, in jackrabbit-core (and 
 / or in another project).
 Then for each of those sample apps there should be a test that redirects 
 System.out to a ByteArrayOutputStream, calls the main method, checks if the 
 output is correct. Like that the sample apps don't get out of sync.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (JCRSITE-4) Implementation Architecture Documentation

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-4?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated JCRSITE-4:


Description: 
Create Generic Documentation that decribes the Architecture and Operations of 
Jackrabbit.

Target Audience:
 Jackrabbit Developers  Jackrabbit Users

TOC:
 Architecure Overview (JSR-170 vs Jackrabbit Implementation)
 Basic Jackrabbit Operations
  - Startup, initialize, configuration
  - Authenticate, login, acquire a session
  - Read and Introspect, Nodetypes, Permissions
  - Create, Update  Delete, working with transient Items
  - NodetypeValidate  Save, PerstianceHandlers, Stores
  - NamespaceRegistry and Session Namespaces
  - Queries, Querylanguages, Indexes
 ... 

 Implementation Architecture Documentation
 -

 Key: JCRSITE-4
 URL: https://issues.apache.org/jira/browse/JCRSITE-4
 Project: Jackrabbit Site
  Issue Type: Task
  Components: site
Reporter: David Nuescheler
Assignee: David Nuescheler

 Create Generic Documentation that decribes the Architecture and Operations of 
 Jackrabbit.
 Target Audience:
  Jackrabbit Developers  Jackrabbit Users
 TOC:
  Architecure Overview (JSR-170 vs Jackrabbit Implementation)
  Basic Jackrabbit Operations
   - Startup, initialize, configuration
   - Authenticate, login, acquire a session
   - Read and Introspect, Nodetypes, Permissions
   - Create, Update  Delete, working with transient Items
   - NodetypeValidate  Save, PerstianceHandlers, Stores
   - NamespaceRegistry and Session Namespaces
   - Queries, Querylanguages, Indexes
  ... 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: JCRSITE project created

2009-01-12 Thread Jukka Zitting
Hi,

On Mon, Jan 12, 2009 at 6:40 PM, Jukka Zitting jukka.zitt...@gmail.com wrote:
 I created a new JCRSITE [1] project in Jira for tracking changes to
 the Jackrabbit web site, the Jackrabbit parent POM (as discussed for
 the JCR Commons subproject), and other resources for which we don't
 have a more specific issue tracker.

As you probably noticed, I also migrated all open Jackrabbit docs
issues to JCRSITE.

BR,

Jukka Zitting


[jira] Assigned: (JCRSITE-2) Add articles/tutorials page

2009-01-12 Thread Alexander Klimetschek (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRSITE-2?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Klimetschek reassigned JCRSITE-2:
---

Assignee: Alexander Klimetschek

 Add articles/tutorials page
 ---

 Key: JCRSITE-2
 URL: https://issues.apache.org/jira/browse/JCRSITE-2
 Project: Jackrabbit Site
  Issue Type: Improvement
  Components: site
Reporter: Alexander Klimetschek
Assignee: Alexander Klimetschek

 Add articles page (copy from JcrLinks in the wiki), improve getting started 
 page, change homepage to link to them
 See mailing list: http://markmail.org/message/allouxx4sbib35la

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (JCR-1778) BindableRepositoryFactory doesn't handle repository shutdown

2009-01-12 Thread JIRA

[ 
https://issues.apache.org/jira/browse/JCR-1778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12663117#action_12663117
 ] 

Grégory Joseph commented on JCR-1778:
-

Seems to as this is (if only by accident) related to JCR-1823

 BindableRepositoryFactory doesn't handle repository shutdown
 

 Key: JCR-1778
 URL: https://issues.apache.org/jira/browse/JCR-1778
 Project: Jackrabbit
  Issue Type: Bug
  Components: jackrabbit-core
Reporter: Jukka Zitting
Priority: Minor

 The BindableRepositoryFactory class keeps a cached reference to a repository 
 even after the repository has been shut down.
 This causes the following code snippet to fail with an IllegalStateException:
 Hashtable environment = new Hashtable();
 environment.put(
 Context.INITIAL_CONTEXT_FACTORY,
 DummyInitialContextFactory.class.getName());
 environment.put(Context.PROVIDER_URL, 
 http://jackrabbit.apache.org/;);
 Context context = new InitialContext(environment);
 JackrabbitRepository repository;
 String xml = src/test/repository/repository.xml;
 String dir = target/repository;
 String key = repository;
 // Create first repository
 RegistryHelper.registerRepository(context, key, xml, dir, true);
 repository = (JackrabbitRepository) context.lookup(key);
 repository.login().logout();
 repository.shutdown();
 // Create second repository with the same configuration
 RegistryHelper.registerRepository(context, key, xml, dir, true);
 repository = (JackrabbitRepository) context.lookup(key);
 repository.login().logout(); // throws an IllegalStateException!
 repository.shutdown();

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (JCRRMI-1) Copy the JCR-RMI component to the new JCR Commons subproject

2009-01-12 Thread Jukka Zitting (JIRA)
Copy the JCR-RMI component to the new JCR Commons subproject


 Key: JCRRMI-1
 URL: https://issues.apache.org/jira/browse/JCRRMI-1
 Project: Jackrabbit JCR-RMI
  Issue Type: Task
Reporter: Jukka Zitting
Assignee: Jukka Zitting


JCR-RMI is one of the components to be included in the new JCR Commons 
subproject.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



org.apache.jcr for the JCR Commons subproject

2009-01-12 Thread Jukka Zitting
Hi,

I'd like to start using org.apache.jcr as the package root and Maven
groupId of the components in the new JCR Commons subproject to clarify
the distinction between Jackrabbit, the content repository and the
generic JCR tools we'll have in JCR Commons.

Doing so will require changes to all client code that wants to upgrade
to the latest version, but will also give us a chance to clean up our
APIs and we're in any case labeling the first JCR Commons releases as
2.0.

BR,

Jukka Zitting


[jira] Moved: (JCRRMI-4) RMI: Allow custom socket factories

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRRMI-4?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-781 to JCRRMI-4:


Component/s: (was: jackrabbit-jcr-rmi)
Description: (was: The current JCR-RMI server classes always use the 
default RMI socket factory. Provide a mechanism for specifying a custom socket 
factory.)
   Workflow: no-reopen-closed, patch-avail  (was: jira)
Key: JCRRMI-4  (was: JCR-781)
Project: Jackrabbit JCR-RMI  (was: Jackrabbit)

 RMI: Allow custom socket factories
 --

 Key: JCRRMI-4
 URL: https://issues.apache.org/jira/browse/JCRRMI-4
 Project: Jackrabbit JCR-RMI
  Issue Type: New Feature
Reporter: Jukka Zitting
Assignee: Jukka Zitting
Priority: Minor



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRRMI-2) ClientObservationManager causes null pointer

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRRMI-2?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-1643 to JCRRMI-2:
-

  Component/s: (was: jackrabbit-jcr-rmi)
Affects Version/s: (was: rmi 1.4.1)
 Workflow: no-reopen-closed, patch-avail  (was: jira)
  Key: JCRRMI-2  (was: JCR-1643)
  Project: Jackrabbit JCR-RMI  (was: Jackrabbit)

 ClientObservationManager causes null pointer
 

 Key: JCRRMI-2
 URL: https://issues.apache.org/jira/browse/JCRRMI-2
 Project: Jackrabbit JCR-RMI
  Issue Type: Bug
 Environment: Using a simple rmi connection to connect to a jackrabbit 
 server running on tomcat on linux.
Reporter: Brett Conoly

 This is listed as major because it prevents rmi users from accessing 
 registered events...safely
 There is a mailing list thread with the subject null pointer in client 
 observation manager for reference.
 Using:
 ObservationManager manager = session.getWorkspace().getObservationManager();
 EventListenerIterator events = manager.getRegisteredEventListeners();
 causes an unexplained null pointer within the ClientObservationManager if 
 getRegisteredEventListeners() is called before an EventListener is registered 
 with the related ObservationManager.
 This was tested with 
 org.apache.jackrabbit.core.observation.ObservationManagerImpl and it passed 
 without any issues.
 No other implementations of the ObservationManager were tested.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRRMI-6) Streamline the JCR-RMI network interfaces

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRRMI-6?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-300 to JCRRMI-6:


Component/s: (was: jackrabbit-jcr-rmi)
   Workflow: no-reopen-closed, patch-avail  (was: jira)
Key: JCRRMI-6  (was: JCR-300)
Project: Jackrabbit JCR-RMI  (was: Jackrabbit)

 Streamline the JCR-RMI network interfaces
 -

 Key: JCRRMI-6
 URL: https://issues.apache.org/jira/browse/JCRRMI-6
 Project: Jackrabbit JCR-RMI
  Issue Type: Improvement
Reporter: Jukka Zitting
Assignee: Jukka Zitting
Priority: Minor

 The JCR-RMI network layer makes an excessive amount of remote method calls in 
 some use cases. Use caching and other mechanisms to improve performance in 
 such cases.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Moved: (JCRRMI-3) Session.isLive() and logout() throw exceptions

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRRMI-3?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting moved JCR-1933 to JCRRMI-3:
-

  Component/s: (was: jackrabbit-jcr-rmi)
Affects Version/s: (was: 1.5.0)
 Workflow: no-reopen-closed, patch-avail  (was: jira)
  Key: JCRRMI-3  (was: JCR-1933)
  Project: Jackrabbit JCR-RMI  (was: Jackrabbit)

 Session.isLive() and logout() throw exceptions
 --

 Key: JCRRMI-3
 URL: https://issues.apache.org/jira/browse/JCRRMI-3
 Project: Jackrabbit JCR-RMI
  Issue Type: Bug
Reporter: Marcel Reutegger
Priority: Minor

 The two methods will throw an exception in case the remote session is not 
 available anymore. For most other methods an exception is OK in that case, 
 but I think for the methods isLive() and logout() (both do not declare any 
 exception) a client expects a different behavior. I propose we change it as 
 follows:
 - Session.isLive(): return false if remote session is not available anymore
 - Session.logout(): write a log message, but do not throw a runtime exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (JCRRMI-4) RMI: Allow custom socket factories

2009-01-12 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCRRMI-4?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated JCRRMI-4:
---

Description: The current JCR-RMI server classes always use the default RMI 
socket factory. Provide a mechanism for specifying a custom socket factory.

 RMI: Allow custom socket factories
 --

 Key: JCRRMI-4
 URL: https://issues.apache.org/jira/browse/JCRRMI-4
 Project: Jackrabbit JCR-RMI
  Issue Type: New Feature
Reporter: Jukka Zitting
Assignee: Jukka Zitting
Priority: Minor

 The current JCR-RMI server classes always use the default RMI socket factory. 
 Provide a mechanism for specifying a custom socket factory.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Migrating JCR-RMI to the JCR Commons subproject

2009-01-12 Thread Jukka Zitting
Hi,

I started setting up the new JCR Commons subproject by using the
JCR-RMI component as the first example. Here are the steps I've taken
so far:

1) Create the JCRRMI project in Jira.
2) Migrate all open jackrabbit-jcr-rmi issues from JCR to JCRRMI.
3) Create the repos/asf/jackrabbit/commons/jcr-rmi directory in svn.
4) Copy trunk/jackrabbit-jcr-rmi to commons/jcr-rmi/trunk
5) Modify the JCR-RMI POM to work outside the main Jackrabbit build.

Here's what I still plan to do over the next few weeks/months:

6) Rename the org.apache.jackrabbit.rmi package to org.apache.jcr.rmi.
7) Prepare and release JCR-RMI 2.0.
8) Replace old jackrabbit-jcr-rmi with an external dependency to the
new 2.0 release of JCR-RMI.
9) Remove the jackrabbit-jcr-rmi component from the JCR project in Jira.

Feel free to comment or question any of these steps, I may well be
overlooking something or otherwise going in the wrong direction.

If this migration works well for JCR-RMI, we can replicate it with the
other JCR Commons components.

BR,

Jukka Zitting


[jira] Resolved: (JCR-601) Delete workspace support

2009-01-12 Thread angela (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCR-601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

angela resolved JCR-601.


Resolution: Won't Fix

this issue (delete workspace support in jackrabbit API) should from my point of 
view be resolved won't fix. if we add a temporary Workspace interface to the 
jsr283 package is a different story we may or may not do that depending on 
the needs.

 Delete workspace support
 

 Key: JCR-601
 URL: https://issues.apache.org/jira/browse/JCR-601
 Project: Jackrabbit
  Issue Type: Improvement
  Components: jackrabbit-api
Affects Versions: 0.9, 1.0, 1.0.1, 1.1
Reporter: Przemo Pakulski
Assignee: angela
Priority: Minor

 JackrabbitWorkspace interface defines method to create new workspace,
 but there is no method to remove workspace programatically.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.