You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Erwan de FERRIERES <er...@gmail.com> on 2011/11/08 14:30:38 UTC

jackrabbit branch

Hi Sascha,

what is missing for merging trunk and jackrabbit branch ?

Cheers,


-- 
Erwan de FERRIERES

Re: jackrabbit branch

Posted by Sascha Rodekamp <sa...@googlemail.com>.
Hi Bilgin,

many thanks for your review:

> There are some jars which already exists in the project
Jap i deleted the duplicated libraries

> I see also some interfaces and classes not used at all.
HealthCheck, HealthCheckJackrabbit, DBAccess: First i thought they
would nice to have, but at the current state they are unnecessary.
Also the constants and JcrUtil interface.

The JcrEventHandler should be an interface for content streaming (i.e.
Image Streaming in the browser) that have to be implemented and is,
from my point of view, not superfluous.

>  can we shorten this naming
Yes of course we should

> RepositoryAccess - may be change it to JcrRepositoryAccessor
That is really a better name

> There are tests which rely on the previous test to pass successfully.
Yes the tests could be more straight forward, i will rewrite them

> Dublicate code in JcrFileHelper getRepositoryContent method
cleaned

> What about creating a factory class that instantiates
Could be a good point, but the interface to the developer should be
the API classes (org.ofbiz.jcr.api).
The problem i faced at this point was, that i have to deal with all
these different content objects which i want to hide/ simplify  for
the developer so i created the api layer. This should be the first
layer which knows which implementation of JCR is used.
I think this can be optimized, so if you have another/better approach,
we should talk about it.

> Are there any changes to Content component, in the svn history there are changes, but then I cannot see any?
There where some changes in the content component, but i reverted them
all. Because the first JCR implementation should be absolutely
independent from the application module. (Except move tika libs from
content component to framework jcr)

Best Regards,
Sascha


-- 

Sascha Rodekamp
    Visit the new german OFBiz Blog: http://www.ofbiz.biz
    Lynx-Consulting GmbH
    Johanniskirchplatz 6
    D-33615 Bielefeld
    http://www.lynx.de

Re: jackrabbit branch

Posted by Bilgin Ibryam <bi...@gmail.com>.
Hi guys,

here are some notes from my first look at JCR branch:

There are some jars which already exists in the project (with
different versions though). Is that needed?
pdfbox
slf4j-api
tika-core
tika-parsers

I see also some interfaces and classes not used at all.

HealthCheck, HealthCheckJackrabbit
DBAccess
Constants
JcrEventHandler
JcrUtil - Do we need an interface for a utility class?


OfbizRepositoryMappingJackrabbitArticle - can we shorten this naming
convention. For example to ArticleNode
RepositoryAccess - may be change it to JcrRepositoryAccessor
Dublicate code in JcrFileHelper getRepositoryContent method

JcrTests - may be indicate in the name that we are testing the
Jackrabbit implementation.

There are tests which rely on the previous test to pass successfully.
I think each test should be independent.
testCreateRepositoryNewsNode
testReadRepositoryNewsNode

Then there are tests which are actually not asserting the actual
operation stated in its name. Instead they are asserting that the
intermidiate object was created.
testUpdateRepositoryNewsNode (for example in this test there is no
need to assert assertNotNull(orm) but instead a check that the content
was updated as expected is needed)
testRemoveRepositoryNewsNode
testCreateRepositoryFileNode
testCreateRepositoryFileNode_2
testRemoveRepositoryFileNode


Example component
Change label jackrabbitsandbox

What about creating a factory class that instantiates
RepositoryAccessJackrabbit object and returns it as RepositoryAccess
Then we can use that factory in JackrabbitEvents, where currently
RepositoryAccessJackrabbit is created explicitely. This way we can
hide the jackrabbit implementation.
I was expecting to not see any jackrabbit packages, but only jcr in
JackrabbitEvents but that will require more work

Are there any changes to Content component, in the svn history there
are changes, but then I cannot see any?

HTH
Bilgin Ibryam

On Fri, Nov 11, 2011 at 8:36 AM, Sascha Rodekamp
<sa...@googlemail.com> wrote:
> Hi Sam,
>
> that is possible. At the moment the Jackrabbit Repository runs
> embedded in the ofbiz instance. But it is not much work to run the JCR
> Repository on an separate server instance and let this server stream
> your content.
>
> Descripted here http://jackrabbit.apache.org/standalone-server.html
>
> The only thing that have to be changed is the Repository Connection in
> something like:
>
> Repository repository =
>    new URLRemoteRepository("http://localhost:8080/rmi");
>
> (This could also be made configurable).
>
> Just a side node. For step one i didn't migrated all the content applications.
> There is only the API to work with the content repository, everything
> else will follow ...
>
> 2011/11/11 Sam Hamilton <sa...@sh81.com>
>>
>> Hi Sascha - thanks for the reply!
>>
>> So if I understand right images will not be stored on the app servers but on another server that is running the jackrabbit storage services? After these changes are merged only one copy of a product image will need to be saved in jackrabbit and now removes the need to sync image files between app servers if you are running a load balanced or cluster setup??
>>
>> Thanks
>> Sam
>>
>>
>>
>> On 11 Nov 2011, at 15:27, Sascha Rodekamp wrote:
>>
>> > Hi Sam,
>> > nope. Content information (images, text, files ...) will be stored in a
>> > content repository beside our normal (SQL) Database.
>> >
>> > A content repository is an information management system that provides
>> > various services for storing, accessing, and managing content. In addition
>> > to a hierarchically structured storage, common services of a content
>> > repository are versioning, access control, full text searching, and event
>> > monitoring (see http://jackrabbit.apache.org/frequently-asked-questions.html
>> > ).
>> >
>> > In our current configuration of Jackrabbit we have to differentiate between
>> > file and other content.
>> > Because files are normally larger than normal text i adviced Jackrabbit to
>> > store files directly on the file system and create a reference in the
>> > repository (that have performance reasons). On the other side text content
>> > is directly stored in the repository nodes (each item in a repository is
>> > called node, a node have different attributes which contains the content
>> > and metadata).
>> >
>> > Hope that answered your question?!
>> > Regards
>> > Sascha
>> >
>> >
>> > 2011/11/11 Sam Hamilton <sa...@sh81.com>
>> >
>> >> Hi Sascha,
>> >>
>> >> Please excuse my ignorance but does this branch mean that content
>> >> information such as images will be stored in the database base instead of
>> >> on the app servers?
>> >>
>> >> Thanks
>> >> Sam
>> >>
>> >>
>> >>
>> >> On 8 Nov 2011, at 21:55, Sascha Rodekamp wrote:
>> >>
>> >>> Hi Erwan,
>> >>>
>> >>> in my opinion step one is done.
>> >>> Includes: An abstract and completely independent framework module to
>> >> attach
>> >>> any JCR implementations you want to OFBiz, Jackrabbit is the default
>> >>> implementation.
>> >>>
>> >>> The basic CRUD functions, versioning and support for different languages
>> >>> works and looks stable :-).
>> >>>
>> >>> What is missing: Someone who reviews the architecture :-), have a short
>> >>> look to my code and gives a feedback.
>> >>>
>> >>> From my point view we could back merge without any problems because there
>> >>> are now cross dependencies to other modules.
>> >>>
>> >>> Cheers
>> >>> Sascha
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> 2011/11/8 Erwan de FERRIERES <er...@gmail.com>
>> >>>
>> >>>> Hi Sascha,
>> >>>>
>> >>>> what is missing for merging trunk and jackrabbit branch ?
>> >>>>
>> >>>> Cheers,
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Erwan de FERRIERES
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>>
>> >>> Sascha Rodekamp
>> >>>   Visit the new german OFBiz Blog: http://www.ofbiz.biz
>> >>>   Lynx-Consulting GmbH
>> >>>   Johanniskirchplatz 6
>> >>>   D-33615 Bielefeld
>> >>>   http://www.lynx.de
>> >>
>> >>
>> >
>> >
>> > --
>> >
>> > Sascha Rodekamp
>> >    Visit the new german OFBiz Blog: http://www.ofbiz.biz
>> >    Lynx-Consulting GmbH
>> >    Johanniskirchplatz 6
>> >    D-33615 Bielefeld
>> >    http://www.lynx.de
>>
>
>
>
> --
>
> Sascha Rodekamp
>     Visit the new german OFBiz Blog: http://www.ofbiz.biz
>     Lynx-Consulting GmbH
>     Johanniskirchplatz 6
>     D-33615 Bielefeld
>     http://www.lynx.de
>

Re: jackrabbit branch

Posted by Sascha Rodekamp <sa...@googlemail.com>.
Hi Sam,

that is possible. At the moment the Jackrabbit Repository runs
embedded in the ofbiz instance. But it is not much work to run the JCR
Repository on an separate server instance and let this server stream
your content.

Descripted here http://jackrabbit.apache.org/standalone-server.html

The only thing that have to be changed is the Repository Connection in
something like:

Repository repository =
    new URLRemoteRepository("http://localhost:8080/rmi");

(This could also be made configurable).

Just a side node. For step one i didn't migrated all the content applications.
There is only the API to work with the content repository, everything
else will follow ...

2011/11/11 Sam Hamilton <sa...@sh81.com>
>
> Hi Sascha - thanks for the reply!
>
> So if I understand right images will not be stored on the app servers but on another server that is running the jackrabbit storage services? After these changes are merged only one copy of a product image will need to be saved in jackrabbit and now removes the need to sync image files between app servers if you are running a load balanced or cluster setup??
>
> Thanks
> Sam
>
>
>
> On 11 Nov 2011, at 15:27, Sascha Rodekamp wrote:
>
> > Hi Sam,
> > nope. Content information (images, text, files ...) will be stored in a
> > content repository beside our normal (SQL) Database.
> >
> > A content repository is an information management system that provides
> > various services for storing, accessing, and managing content. In addition
> > to a hierarchically structured storage, common services of a content
> > repository are versioning, access control, full text searching, and event
> > monitoring (see http://jackrabbit.apache.org/frequently-asked-questions.html
> > ).
> >
> > In our current configuration of Jackrabbit we have to differentiate between
> > file and other content.
> > Because files are normally larger than normal text i adviced Jackrabbit to
> > store files directly on the file system and create a reference in the
> > repository (that have performance reasons). On the other side text content
> > is directly stored in the repository nodes (each item in a repository is
> > called node, a node have different attributes which contains the content
> > and metadata).
> >
> > Hope that answered your question?!
> > Regards
> > Sascha
> >
> >
> > 2011/11/11 Sam Hamilton <sa...@sh81.com>
> >
> >> Hi Sascha,
> >>
> >> Please excuse my ignorance but does this branch mean that content
> >> information such as images will be stored in the database base instead of
> >> on the app servers?
> >>
> >> Thanks
> >> Sam
> >>
> >>
> >>
> >> On 8 Nov 2011, at 21:55, Sascha Rodekamp wrote:
> >>
> >>> Hi Erwan,
> >>>
> >>> in my opinion step one is done.
> >>> Includes: An abstract and completely independent framework module to
> >> attach
> >>> any JCR implementations you want to OFBiz, Jackrabbit is the default
> >>> implementation.
> >>>
> >>> The basic CRUD functions, versioning and support for different languages
> >>> works and looks stable :-).
> >>>
> >>> What is missing: Someone who reviews the architecture :-), have a short
> >>> look to my code and gives a feedback.
> >>>
> >>> From my point view we could back merge without any problems because there
> >>> are now cross dependencies to other modules.
> >>>
> >>> Cheers
> >>> Sascha
> >>>
> >>>
> >>>
> >>>
> >>> 2011/11/8 Erwan de FERRIERES <er...@gmail.com>
> >>>
> >>>> Hi Sascha,
> >>>>
> >>>> what is missing for merging trunk and jackrabbit branch ?
> >>>>
> >>>> Cheers,
> >>>>
> >>>>
> >>>> --
> >>>> Erwan de FERRIERES
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>>
> >>> Sascha Rodekamp
> >>>   Visit the new german OFBiz Blog: http://www.ofbiz.biz
> >>>   Lynx-Consulting GmbH
> >>>   Johanniskirchplatz 6
> >>>   D-33615 Bielefeld
> >>>   http://www.lynx.de
> >>
> >>
> >
> >
> > --
> >
> > Sascha Rodekamp
> >    Visit the new german OFBiz Blog: http://www.ofbiz.biz
> >    Lynx-Consulting GmbH
> >    Johanniskirchplatz 6
> >    D-33615 Bielefeld
> >    http://www.lynx.de
>



--

Sascha Rodekamp
    Visit the new german OFBiz Blog: http://www.ofbiz.biz
    Lynx-Consulting GmbH
    Johanniskirchplatz 6
    D-33615 Bielefeld
    http://www.lynx.de

Re: jackrabbit branch

Posted by Sam Hamilton <sa...@sh81.com>.
Hi Sascha - thanks for the reply! 

So if I understand right images will not be stored on the app servers but on another server that is running the jackrabbit storage services? After these changes are merged only one copy of a product image will need to be saved in jackrabbit and now removes the need to sync image files between app servers if you are running a load balanced or cluster setup?? 

Thanks
Sam



On 11 Nov 2011, at 15:27, Sascha Rodekamp wrote:

> Hi Sam,
> nope. Content information (images, text, files ...) will be stored in a
> content repository beside our normal (SQL) Database.
> 
> A content repository is an information management system that provides
> various services for storing, accessing, and managing content. In addition
> to a hierarchically structured storage, common services of a content
> repository are versioning, access control, full text searching, and event
> monitoring (see http://jackrabbit.apache.org/frequently-asked-questions.html
> ).
> 
> In our current configuration of Jackrabbit we have to differentiate between
> file and other content.
> Because files are normally larger than normal text i adviced Jackrabbit to
> store files directly on the file system and create a reference in the
> repository (that have performance reasons). On the other side text content
> is directly stored in the repository nodes (each item in a repository is
> called node, a node have different attributes which contains the content
> and metadata).
> 
> Hope that answered your question?!
> Regards
> Sascha
> 
> 
> 2011/11/11 Sam Hamilton <sa...@sh81.com>
> 
>> Hi Sascha,
>> 
>> Please excuse my ignorance but does this branch mean that content
>> information such as images will be stored in the database base instead of
>> on the app servers?
>> 
>> Thanks
>> Sam
>> 
>> 
>> 
>> On 8 Nov 2011, at 21:55, Sascha Rodekamp wrote:
>> 
>>> Hi Erwan,
>>> 
>>> in my opinion step one is done.
>>> Includes: An abstract and completely independent framework module to
>> attach
>>> any JCR implementations you want to OFBiz, Jackrabbit is the default
>>> implementation.
>>> 
>>> The basic CRUD functions, versioning and support for different languages
>>> works and looks stable :-).
>>> 
>>> What is missing: Someone who reviews the architecture :-), have a short
>>> look to my code and gives a feedback.
>>> 
>>> From my point view we could back merge without any problems because there
>>> are now cross dependencies to other modules.
>>> 
>>> Cheers
>>> Sascha
>>> 
>>> 
>>> 
>>> 
>>> 2011/11/8 Erwan de FERRIERES <er...@gmail.com>
>>> 
>>>> Hi Sascha,
>>>> 
>>>> what is missing for merging trunk and jackrabbit branch ?
>>>> 
>>>> Cheers,
>>>> 
>>>> 
>>>> --
>>>> Erwan de FERRIERES
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> 
>>> Sascha Rodekamp
>>>   Visit the new german OFBiz Blog: http://www.ofbiz.biz
>>>   Lynx-Consulting GmbH
>>>   Johanniskirchplatz 6
>>>   D-33615 Bielefeld
>>>   http://www.lynx.de
>> 
>> 
> 
> 
> -- 
> 
> Sascha Rodekamp
>    Visit the new german OFBiz Blog: http://www.ofbiz.biz
>    Lynx-Consulting GmbH
>    Johanniskirchplatz 6
>    D-33615 Bielefeld
>    http://www.lynx.de


Re: jackrabbit branch

Posted by Sascha Rodekamp <sa...@googlemail.com>.
Hi Sam,
nope. Content information (images, text, files ...) will be stored in a
content repository beside our normal (SQL) Database.

A content repository is an information management system that provides
various services for storing, accessing, and managing content. In addition
to a hierarchically structured storage, common services of a content
repository are versioning, access control, full text searching, and event
monitoring (see http://jackrabbit.apache.org/frequently-asked-questions.html
).

In our current configuration of Jackrabbit we have to differentiate between
file and other content.
Because files are normally larger than normal text i adviced Jackrabbit to
store files directly on the file system and create a reference in the
repository (that have performance reasons). On the other side text content
is directly stored in the repository nodes (each item in a repository is
called node, a node have different attributes which contains the content
and metadata).

Hope that answered your question?!
Regards
Sascha


2011/11/11 Sam Hamilton <sa...@sh81.com>

> Hi Sascha,
>
> Please excuse my ignorance but does this branch mean that content
> information such as images will be stored in the database base instead of
> on the app servers?
>
> Thanks
> Sam
>
>
>
> On 8 Nov 2011, at 21:55, Sascha Rodekamp wrote:
>
> > Hi Erwan,
> >
> > in my opinion step one is done.
> > Includes: An abstract and completely independent framework module to
> attach
> > any JCR implementations you want to OFBiz, Jackrabbit is the default
> > implementation.
> >
> > The basic CRUD functions, versioning and support for different languages
> > works and looks stable :-).
> >
> > What is missing: Someone who reviews the architecture :-), have a short
> > look to my code and gives a feedback.
> >
> > From my point view we could back merge without any problems because there
> > are now cross dependencies to other modules.
> >
> > Cheers
> > Sascha
> >
> >
> >
> >
> > 2011/11/8 Erwan de FERRIERES <er...@gmail.com>
> >
> >> Hi Sascha,
> >>
> >> what is missing for merging trunk and jackrabbit branch ?
> >>
> >> Cheers,
> >>
> >>
> >> --
> >> Erwan de FERRIERES
> >>
> >
> >
> >
> > --
> >
> > Sascha Rodekamp
> >    Visit the new german OFBiz Blog: http://www.ofbiz.biz
> >    Lynx-Consulting GmbH
> >    Johanniskirchplatz 6
> >    D-33615 Bielefeld
> >    http://www.lynx.de
>
>


-- 

Sascha Rodekamp
    Visit the new german OFBiz Blog: http://www.ofbiz.biz
    Lynx-Consulting GmbH
    Johanniskirchplatz 6
    D-33615 Bielefeld
    http://www.lynx.de

Re: jackrabbit branch

Posted by Sam Hamilton <sa...@sh81.com>.
Hi Sascha, 

Please excuse my ignorance but does this branch mean that content information such as images will be stored in the database base instead of on the app servers?

Thanks
Sam



On 8 Nov 2011, at 21:55, Sascha Rodekamp wrote:

> Hi Erwan,
> 
> in my opinion step one is done.
> Includes: An abstract and completely independent framework module to attach
> any JCR implementations you want to OFBiz, Jackrabbit is the default
> implementation.
> 
> The basic CRUD functions, versioning and support for different languages
> works and looks stable :-).
> 
> What is missing: Someone who reviews the architecture :-), have a short
> look to my code and gives a feedback.
> 
> From my point view we could back merge without any problems because there
> are now cross dependencies to other modules.
> 
> Cheers
> Sascha
> 
> 
> 
> 
> 2011/11/8 Erwan de FERRIERES <er...@gmail.com>
> 
>> Hi Sascha,
>> 
>> what is missing for merging trunk and jackrabbit branch ?
>> 
>> Cheers,
>> 
>> 
>> --
>> Erwan de FERRIERES
>> 
> 
> 
> 
> -- 
> 
> Sascha Rodekamp
>    Visit the new german OFBiz Blog: http://www.ofbiz.biz
>    Lynx-Consulting GmbH
>    Johanniskirchplatz 6
>    D-33615 Bielefeld
>    http://www.lynx.de


Re: jackrabbit branch

Posted by Sascha Rodekamp <sa...@googlemail.com>.
Hi Erwan,

in my opinion step one is done.
Includes: An abstract and completely independent framework module to attach
any JCR implementations you want to OFBiz, Jackrabbit is the default
implementation.

The basic CRUD functions, versioning and support for different languages
works and looks stable :-).

What is missing: Someone who reviews the architecture :-), have a short
look to my code and gives a feedback.

>From my point view we could back merge without any problems because there
are now cross dependencies to other modules.

Cheers
Sascha




2011/11/8 Erwan de FERRIERES <er...@gmail.com>

> Hi Sascha,
>
> what is missing for merging trunk and jackrabbit branch ?
>
> Cheers,
>
>
> --
> Erwan de FERRIERES
>



-- 

Sascha Rodekamp
    Visit the new german OFBiz Blog: http://www.ofbiz.biz
    Lynx-Consulting GmbH
    Johanniskirchplatz 6
    D-33615 Bielefeld
    http://www.lynx.de