You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-dev@incubator.apache.org by "Sandro Boehme (JIRA)" <ji...@apache.org> on 2005/04/11 08:55:18 UTC

[jira] Created: (GRFT-18) Proof of concept for mapping Java beans to JCR nodetypes

Proof of concept for mapping Java beans to JCR nodetypes
--------------------------------------------------------

         Key: GRFT-18
         URL: http://issues.apache.org/jira/browse/GRFT-18
     Project: Graffito
        Type: New Feature
  Components: JCR-Mapping  
    Reporter: Sandro Boehme


Hello,

attached there are (hopefully all) the files for a proof of concept
of three usecases for the JCR Mapping(I could not sent it to the mailing list
because it does not allow attachments):
1. Registering custom nodetypes according to a Java Bean model.
2. Persist a Java Bean.
3. Loading a Java Bean from the repository.

==>1. Creating the custom nodetypes is realized with JAXB.  The
BeanConverter class maps the Java structure to the
nodetype structure and marshalls the custom_nodetypes.xml to the
configured nodetype folder. I attached the /lib folder
with the jaxb libraries, a XML schema and the command line call (in the
generateNodeTypeDTD.bat file) if somebody want
to generate a new custom_nodetypes.xml file. I did not check the schema
against the spec yet, because it will change anyway.
Once the definition of the custom_nodetypes.xml file is stable, I would
like to create an Ant target and a seperate library
for generating custom nodetypes out of Java Beans.

==>2. Persisting simply works like that:
    PersistenceManager pm = new PersistenceManager(session);
    String relPath = pm.insert(folder);

==>3. Loading can be implemented this way:
        Folder loadedFolder = (Folder) pm.getObject(relPath);

All information for reading and writing a bean can be gained by the
class itself except the path where the
object is stored in the repository. This path acts like a unambiguous
database id.

++ limitations ++
o no complex properties can be saved (Folder.getDocument())
o collections are not yet supported
o deletion is not yet supported
o only the basic JCR Types (String, boolean,...) and java.util.Date are
supported
o the bean converter is not yet adapted to Graffito converter handling
o mixin's/Interfaces are not yet supported

++ next steps ++
o much more test cases need to be added and I'm sure according bug's
need to be fixed  ;-) 
o also delete the data created in the test cases
o pm.update and pm.delete() need to be added
o more atomic types (like Character,...) need to be added
o support for complex types
o support for collections
o support for interfaces
o make the namespace "graffito" configurable
o support for JCR features like searching, versioning,...
o creating an Ant target for registering Java classes as nodetypes
o refactor some responsibilties and names of some classes
o ...

++ configuration ++
I don't think it is ready for check in because the configuration is not
very clean at the
moment. I needed to delete the repository data (repotest/versions and
repotest/workspaces/default)
in order to get the tests to run. I've not very much experience with
maven. Your information for this
issue are very much appreciated.

Regards,

Sandro

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GRFT-18) Proof of concept for mapping Java beans to JCR nodetypes

Posted by "Sandro Boehme (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/GRFT-18?page=history ]

Sandro Boehme updated GRFT-18:
------------------------------

    Attachment: GraffitoJcrMappingTest.zip

> Proof of concept for mapping Java beans to JCR nodetypes
> --------------------------------------------------------
>
>          Key: GRFT-18
>          URL: http://issues.apache.org/jira/browse/GRFT-18
>      Project: Graffito
>         Type: New Feature
>   Components: JCR-Mapping
>     Reporter: Sandro Boehme
>  Attachments: GraffitoJcrMappingTest.zip
>
> Hello,
> attached there are (hopefully all) the files for a proof of concept
> of three usecases for the JCR Mapping(I could not sent it to the mailing list
> because it does not allow attachments):
> 1. Registering custom nodetypes according to a Java Bean model.
> 2. Persist a Java Bean.
> 3. Loading a Java Bean from the repository.
> ==>1. Creating the custom nodetypes is realized with JAXB.  The
> BeanConverter class maps the Java structure to the
> nodetype structure and marshalls the custom_nodetypes.xml to the
> configured nodetype folder. I attached the /lib folder
> with the jaxb libraries, a XML schema and the command line call (in the
> generateNodeTypeDTD.bat file) if somebody want
> to generate a new custom_nodetypes.xml file. I did not check the schema
> against the spec yet, because it will change anyway.
> Once the definition of the custom_nodetypes.xml file is stable, I would
> like to create an Ant target and a seperate library
> for generating custom nodetypes out of Java Beans.
> ==>2. Persisting simply works like that:
>     PersistenceManager pm = new PersistenceManager(session);
>     String relPath = pm.insert(folder);
> ==>3. Loading can be implemented this way:
>         Folder loadedFolder = (Folder) pm.getObject(relPath);
> All information for reading and writing a bean can be gained by the
> class itself except the path where the
> object is stored in the repository. This path acts like a unambiguous
> database id.
> ++ limitations ++
> o no complex properties can be saved (Folder.getDocument())
> o collections are not yet supported
> o deletion is not yet supported
> o only the basic JCR Types (String, boolean,...) and java.util.Date are
> supported
> o the bean converter is not yet adapted to Graffito converter handling
> o mixin's/Interfaces are not yet supported
> ++ next steps ++
> o much more test cases need to be added and I'm sure according bug's
> need to be fixed  ;-) 
> o also delete the data created in the test cases
> o pm.update and pm.delete() need to be added
> o more atomic types (like Character,...) need to be added
> o support for complex types
> o support for collections
> o support for interfaces
> o make the namespace "graffito" configurable
> o support for JCR features like searching, versioning,...
> o creating an Ant target for registering Java classes as nodetypes
> o refactor some responsibilties and names of some classes
> o ...
> ++ configuration ++
> I don't think it is ready for check in because the configuration is not
> very clean at the
> moment. I needed to delete the repository data (repotest/versions and
> repotest/workspaces/default)
> in order to get the tests to run. I've not very much experience with
> maven. Your information for this
> issue are very much appreciated.
> Regards,
> Sandro

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Closed: (GRFT-18) Proof of concept for mapping Java beans to JCR nodetypes

Posted by "Christophe Lombart (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/GRFT-18?page=all ]
     
Christophe Lombart closed GRFT-18:
----------------------------------

    Resolution: Fixed

The prototype is finished

> Proof of concept for mapping Java beans to JCR nodetypes
> --------------------------------------------------------
>
>          Key: GRFT-18
>          URL: http://issues.apache.org/jira/browse/GRFT-18
>      Project: Graffito
>         Type: New Feature
>   Components: JCR-Mapping
>     Reporter: Sandro Boehme
>     Assignee: Christophe Lombart
>  Attachments: GraffitoJcrMappingTest.zip
>
> Hello,
> attached there are (hopefully all) the files for a proof of concept
> of three usecases for the JCR Mapping(I could not sent it to the mailing list
> because it does not allow attachments):
> 1. Registering custom nodetypes according to a Java Bean model.
> 2. Persist a Java Bean.
> 3. Loading a Java Bean from the repository.
> ==>1. Creating the custom nodetypes is realized with JAXB.  The
> BeanConverter class maps the Java structure to the
> nodetype structure and marshalls the custom_nodetypes.xml to the
> configured nodetype folder. I attached the /lib folder
> with the jaxb libraries, a XML schema and the command line call (in the
> generateNodeTypeDTD.bat file) if somebody want
> to generate a new custom_nodetypes.xml file. I did not check the schema
> against the spec yet, because it will change anyway.
> Once the definition of the custom_nodetypes.xml file is stable, I would
> like to create an Ant target and a seperate library
> for generating custom nodetypes out of Java Beans.
> ==>2. Persisting simply works like that:
>     PersistenceManager pm = new PersistenceManager(session);
>     String relPath = pm.insert(folder);
> ==>3. Loading can be implemented this way:
>         Folder loadedFolder = (Folder) pm.getObject(relPath);
> All information for reading and writing a bean can be gained by the
> class itself except the path where the
> object is stored in the repository. This path acts like a unambiguous
> database id.
> ++ limitations ++
> o no complex properties can be saved (Folder.getDocument())
> o collections are not yet supported
> o deletion is not yet supported
> o only the basic JCR Types (String, boolean,...) and java.util.Date are
> supported
> o the bean converter is not yet adapted to Graffito converter handling
> o mixin's/Interfaces are not yet supported
> ++ next steps ++
> o much more test cases need to be added and I'm sure according bug's
> need to be fixed  ;-) 
> o also delete the data created in the test cases
> o pm.update and pm.delete() need to be added
> o more atomic types (like Character,...) need to be added
> o support for complex types
> o support for collections
> o support for interfaces
> o make the namespace "graffito" configurable
> o support for JCR features like searching, versioning,...
> o creating an Ant target for registering Java classes as nodetypes
> o refactor some responsibilties and names of some classes
> o ...
> ++ configuration ++
> I don't think it is ready for check in because the configuration is not
> very clean at the
> moment. I needed to delete the repository data (repotest/versions and
> repotest/workspaces/default)
> in order to get the tests to run. I've not very much experience with
> maven. Your information for this
> issue are very much appreciated.
> Regards,
> Sandro

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (GRFT-18) Proof of concept for mapping Java beans to JCR nodetypes

Posted by "Christophe Lombart (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/GRFT-18?page=history ]

Christophe Lombart reassigned GRFT-18:
--------------------------------------

    Assign To: Christophe Lombart

> Proof of concept for mapping Java beans to JCR nodetypes
> --------------------------------------------------------
>
>          Key: GRFT-18
>          URL: http://issues.apache.org/jira/browse/GRFT-18
>      Project: Graffito
>         Type: New Feature
>   Components: JCR-Mapping
>     Reporter: Sandro Boehme
>     Assignee: Christophe Lombart
>  Attachments: GraffitoJcrMappingTest.zip
>
> Hello,
> attached there are (hopefully all) the files for a proof of concept
> of three usecases for the JCR Mapping(I could not sent it to the mailing list
> because it does not allow attachments):
> 1. Registering custom nodetypes according to a Java Bean model.
> 2. Persist a Java Bean.
> 3. Loading a Java Bean from the repository.
> ==>1. Creating the custom nodetypes is realized with JAXB.  The
> BeanConverter class maps the Java structure to the
> nodetype structure and marshalls the custom_nodetypes.xml to the
> configured nodetype folder. I attached the /lib folder
> with the jaxb libraries, a XML schema and the command line call (in the
> generateNodeTypeDTD.bat file) if somebody want
> to generate a new custom_nodetypes.xml file. I did not check the schema
> against the spec yet, because it will change anyway.
> Once the definition of the custom_nodetypes.xml file is stable, I would
> like to create an Ant target and a seperate library
> for generating custom nodetypes out of Java Beans.
> ==>2. Persisting simply works like that:
>     PersistenceManager pm = new PersistenceManager(session);
>     String relPath = pm.insert(folder);
> ==>3. Loading can be implemented this way:
>         Folder loadedFolder = (Folder) pm.getObject(relPath);
> All information for reading and writing a bean can be gained by the
> class itself except the path where the
> object is stored in the repository. This path acts like a unambiguous
> database id.
> ++ limitations ++
> o no complex properties can be saved (Folder.getDocument())
> o collections are not yet supported
> o deletion is not yet supported
> o only the basic JCR Types (String, boolean,...) and java.util.Date are
> supported
> o the bean converter is not yet adapted to Graffito converter handling
> o mixin's/Interfaces are not yet supported
> ++ next steps ++
> o much more test cases need to be added and I'm sure according bug's
> need to be fixed  ;-) 
> o also delete the data created in the test cases
> o pm.update and pm.delete() need to be added
> o more atomic types (like Character,...) need to be added
> o support for complex types
> o support for collections
> o support for interfaces
> o make the namespace "graffito" configurable
> o support for JCR features like searching, versioning,...
> o creating an Ant target for registering Java classes as nodetypes
> o refactor some responsibilties and names of some classes
> o ...
> ++ configuration ++
> I don't think it is ready for check in because the configuration is not
> very clean at the
> moment. I needed to delete the repository data (repotest/versions and
> repotest/workspaces/default)
> in order to get the tests to run. I've not very much experience with
> maven. Your information for this
> issue are very much appreciated.
> Regards,
> Sandro

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira