[dna-dev] Re: JBoss DNA 0.4 planning

Sergey Litsenko litsenko_sergey at yahoo.com
Sun Nov 16 05:25:01 EST 2008


That’s fantastic! 
I’ve reviewed Resteasy functionality couple days before Bill
posted that announcement. Less code to integrate always sounds good to me ;)
 
Regarding JDBC metadata. 
I meant to say connector for JDBC connection, and sequencer
for JDBC database metadata extraction.Based on my understanding of the core infrastructure I’m
planning to do following (very keen to change it in any other DNA strategically
important way in case it is different from my understanding):
 
1) I'll review new chapter "how to write custom connectors"and  use the dna-connector-svn as a reference to implement the dna-connector-jdbc inextensions. It willaccept two configuration styles to specify JDBC configuration- javax.sql.DataSource andmore genericjava.sql.Driver (connection URL, username/password, etc).

2) create  dna-sequencer-jdbc-metadata subproject
in extensions that will implement an interface similar to org.jboss.dna.graph.sequencers.StreamSequencer except for the “stream” input parameter because it
is irrelevant for JDBC based conversations:
 
package org.jboss.dna.graph.sequencers;
 
public interface JdbcSequencer {
    void sequence(java.sql.Connection
jdbcConnection,
                   SequencerOutput output,
                   SequencerContext context); 
}
 
The main purpose – is to make it generic enough to allow implementing
different JDBC sequencers.
How it sounds?    
 
Basically, what I need to do is to port my DatabaseMetadata Extractor (I did it
few years ago, and tested against Oracle9i, MS SQL Server 2005, and MySQL) into
org.jboss.dna space. The extractor as whole package is a bit too heavy to just
simply copy it – it is relying on several Apache\Jacarta libraries (notably on Jacarta
commons Chain (Chain of
Responsibility" pattern) + generates JDBC drivers comparison reports in
XML and HTML. So, I’m trying to refactor it in the same time. 

 
 
Regarding REST
mapping. My intention was to just describe “prior art” for reference purposes only – let others to they work -
while it sounds like Jerome K. Jerome’s famous quote about his addiction to
work ;) - we may save more time on analysis of possible REST mapping
strategies. 
 
My point is simple (and btw, it didn’t changed for years) –
“program to interfaces”, likely
standards based and setup transparent links (inject, configure, etc) to open
source software implementations (preferably) of those interfaces where
appropriate and possible.
 
I’m completely agree with your
comments on that, and even more – inspired by your feeling towards choosing
right balance between writing own code and reusing available libraries and
frameworks I decided to spend some time analysing possible choices and wrote a
wiki page about prospective ways to
integrate/implement various JBoss DNA components in the future. Basically its
small review of technologies available in OSS community (especially in JBOSS community) that might be related to JBoss DNA concept and might be reused in its
implementation – have a look at it here https://www.jboss.org/community/docs/DOC-12952 – your comments
are greatly appreciated. The main
purpose of that review was to make the DNA implementation technology(s) /
framework(s) choices broader and to address time to market requirement (while
I love those frameworks and JEE in particular - I don’t want to push it too
hard). The bottom line is that one of the main JBoss DNA/JCR and JBoss DNA/Web
purposes shall be to simplify metadata management things, not to complicate
them – from client prospective. Plus (I guess) serve as JBoss technology stack
show case (to some reasonable degree).
 
So, basically we will stick with JCR API for traversal,
search, update nodes and map it onto URL, right?
 
The beauty of JCR API is that we don’t need to wait till our
JCR implementation will be ready to integrate with other frameworks or
services. As long as all components will rely strictly on JCR API interfaces
and access it through standard way (e.g. JNDI lookup, dependency injection, etc)
– we can easily use JackRabbit embedded in a meantime, and then substitute it
with our JCR implementation when it became ready. We would need to address
performance limitations of JackRabbit in our implementation of JCR API – in
order to make it better (since it mean to be enterprise wide repository – e.g.
thousands of nodes, subnodes, properties).
 
I have the same opinion like you that RESTful service in not
the equal to web app UI.  We need separate
JIRA ticket(s) for Web UI app, each panned/proposed WS (e.g. REST-based API for remote access and usage). 
 
Also, we would need to clarify
deployment scenarios of JBoss DNA stack in detail (like JackRabbit’s team
did) – also highlighted on my wiki page. 
 
 
Regarding Web application UI.  I’m not against Flex as one of possible UI rendering but I’m just not
sold on the fact that Flex is the first or preferable choice for DNA UI.
Reasons explained in more detail on the same wiki page – but basically it is
all about infrastructure and
technology/feature enablers that btw
already part of JBoss stack. For instance, thin and rich JSF framework like RichFaces that nicely integrates
withJBoss Seam as a web
infrastructural component might implement all required UI functionality. It is
easy to use, understand how it works (both projects have comprehensive
documentation) + my past experience with both frameworks might help in setting
up quickly web infrastructure for JBoss DNA web. 


Best regards,
 Sergiy




________________________________
From: Randall Hauch <rhauch at redhat.com>
To: Sergey Litsenko <litsenko_sergey at yahoo.com>; JBoss DNA <dna-dev at lists.jboss.org>
Sent: Tuesday, 11 November, 2008 2:57:38 AM
Subject: Re: [dna-dev] Re: JBoss DNA 0.4 planning


Excellent!  Can't wait to see what you have.  You're right that we could code to JSR 311 and use any valid implementation, but I have no problem relying upon RESTeasy, since we could leverage new features (e.g., http://bill.burkecentral.com/2008/11/10/jax-rs-atom-support-with-resteasy/), and since the RESTful service would certainly be packaged to run in a servlet container and thus shouldn't have any problems with clashes in dependencies.  Plus, RESTeasy is another JBoss technology.

I'm wondering if you meant to say a JDBC Metadata "connector" (rather than "sequencer").  If you did mean "sequencer", I'd be interested in hearing about how that might work (what might be sequenced so the sequencer knows how to establish the connection and retrieve the metadata).

Now, regarding a REST mapping.  I've looked at Sling (which has other features besides just a REST service), and based upon the documentation (which may very well be out of date), the client specifies the content type in the URL - that's not very appealing.  I would much rather see standard content negotiation via the standard accept header.  Now, the other two examples don't always look very RESTful (or at least "resource oriented").  For example, Alfresco's REST API's login method (http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Login) uses GET even though it's not idempotent.  POST would seem to be better here. I would love to see a more detailed discussion on the REST mapping.  Perhaps you could start off with what you've used in your prototype?

Another important topic is this: will we want to build a content-driven application framework or will we want to use Sling or Alfresco's WebScripts (or other)?  Some advantages of reusing an existing system are: 
	* more functionality out of the box (i.e., we're not 1+ years behind)
	* reuse existing technology
	* leveraging existing community and possibly expand DNA community via participation in the other community
There are probably others, too.  Some disadvantages are:
	* must choose a technology
	* must live with their interface and design
	* little or no value-add over the existing technology
	* our JCR support must be close-to-complete before we can do this

I'm a bit conflicted: I think we could do better, but just because we can doesn't mean we should.  There's something to be said about focusing on what makes DNA unique and advantageous (primarily federation and sequencing), and just using Sling or Alfresco to build out some great useable applications.  In fact, I think that a really usable and really useful content-driven rich internet application (perhaps using Flex) is another potential focus area for DNA.  

So, as long as as have a correct  and complete (enough) JCR implementation, then we (or anyone else) should be able to use DNA in combination with Sling and/or Alfresco.  We may even win over the Alfresco community, if DNA's repository implementation is better than Jackrabbit.  (Jackrabbit does a lot of things well, but there are some things it doesn't do well.  All we need to do is be better at how Alfresco uses JCR.)

Now, having said that, I think that a RESTful service is not the same as a content-driven application framework.  I think DNA should offer a lightweight, full-functioning RESTful service that doesn't depend on the larger content-driven applications.  After all, I think many embedded use cases will simply want a deployable RESTful service so that client apps can work with a remote (federated) repository.  And I think we can achieve this with very little code using RESTeasy (or maybe even other JSR-311 implementations).  So we definitely need to do this.


Best regards,

Randall

On Nov 10, 2008, at 6:04 AM, Sergey Litsenko wrote:

Hi All,
 I've already started working on (not yet in SVN - will wait till 0.3 release):
  1) JDBC Metadata sequencer (POJO model is ready, working on extraction of metadata)
  2) JAX-RS prototype. 
  IMO, we would need to start working on REST mapping for JCR resources. Basicaly, any implementation of  http://jcp.org/en/jsr/summary?id=311 may be used as a core of the REST-JCR integration (RestEasy?)
  There are at least few available implementations exists that we may review:
  1) Sling project http://incubator.apache.org/sling/site/resources.html#Resources-JCRbasedResources) 
  2) Alfresco REST API for JCR at http://wiki.alfresco.com/wiki/HTTP_API#Alfresco_RESTful_API_Reference
  3) Alfresco  Content Management Interoperability Services  (CMIS) API  http://wiki.alfresco.com/wiki/CMIS_Web_Scripts_Reference

It would be nice to see as one of future features of DNA auto-discovery (zeroconf) of some resources as well as DNA repository self advertizing (for example - http://activemq.apache.org/zeroconf.html). 


Best regards,
Sergiy


________________________________
From: "dna-dev-request at lists.jboss.org" <dna-dev-request at lists.jboss.org>
To: dna-dev at lists.jboss.org
Sent: Thursday, 6 November, 2008 4:00:27 AM
Subject: dna-dev Digest, Vol 8, Issue 3

Send dna-dev mailing list submissions to
    dna-dev at lists.jboss.org

To subscribe or unsubscribe via the World Wide Web, visit
    https://lists.jboss.org/mailman/listinfo/dna-dev
or, via email, send a message with subject or body 'help' to
    dna-dev-request at lists.jboss.org

You can reach the person managing the list at
    dna-dev-owner at lists.jboss.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of dna-dev digest..."


Today's Topics:

  1. Preparing for the 0.3 release (Randall Hauch)
  2. JBoss DNA 0.4 planning (Randall Hauch)


----------------------------------------------------------------------

Message: 1
Date: Tue, 4 Nov 2008 12:18:59 -0600
From: Randall Hauch <rhauch at redhat.com>
Subject: [dna-dev] Preparing for the 0.3 release
To: JBoss DNA <dna-dev at lists.jboss.org>
Message-ID: <92A505A6-0D05-47BF-813B-438181005D27 at redhat.com>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes

We're down to just a handful of outstanding issues targeted to 0.3,  
and all of the big fish issues were completed.  I'll be working my two  
issues over the next few days, but I should be ready for releasing as  
early as this week.  Serge has the other outstanding issues, which are  
all regarding the SVN connector.  Serge, where do we stand on this?  
Do you want more time to get some functionality finished, or is the  
connector fairly close?

Anybody else have anything to discuss?

Best regards,

Randall


------------------------------

Message: 2
Date: Tue, 4 Nov 2008 12:37:05 -0600
From: Randall Hauch <rhauch at redhat.com>
Subject: [dna-dev] JBoss DNA 0.4 planning
To: JBoss DNA <dna-dev at lists.jboss.org>
Message-ID: <9643F3D3-5E3F-4219-A492-6BC1F6196C73 at redhat.com>
Content-Type: text/plain; charset="us-ascii"

Now that 0.3 is almost out the door, I'd like to start discussing the  
goals for the next release.

I'd love to see the JCR implementation take more shape.  Right now  
it's read-only, so getting that much farther along would be  
outstanding.  Anybody interested?  I think we could easily put several  
people to work here.  The graph API is pretty good, and should make  
implementing JCR relatively straightforward.  Any interest, Michael  
Trezzi and Alexandre and Serge?
We need to add events to the connector framework.  That should be  
pretty straightforward.  Also versioning, which will require a bit  
more work.  Plus, there are a couple of connectors that we may want to  
start working on.  This is something I'd be happy to continue with.  
Serge P. also has expressed interest in working on some connectors (in  
fact his SVN connector is coming along great!).
The CND sequencer could use some love and attention.  Dan was stuck in  
some ANLTR hell, and got pulled off onto a different project.  Since  
it uses ANTLR, maybe you might be interested in it, Alexandre?
We also have a need to start working on a REST/WebDAV layer that  
allows other client apps to access a DNA repository.  There's a couple  
of things we can do, including looking at Apache Sling, or using  
RESTeasy for a more simple implementation, or something else.  Sergiy  
and John both expressed interest in this.

Anything else?

We can either tackle several things at once and move them all  
incrementally, or we can do more in just a few areas.  Ideally, we're  
looking at a 4-5 week cycle (finishing before the year-end holidays.)  
A lot will depend on how much effort people might be able to dedicate  
to the project.

Please respond with your thoughts and comments!

Best regards,

Randall

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/dna-dev/attachments/20081104/90ff822f/attachment-0001.html

------------------------------

_______________________________________________
dna-dev mailing list
dna-dev at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/dna-dev


End of dna-dev Digest, Vol 8, Issue 3
*************************************



________________________________

Search 1000's of available singles in your area at the new Yahoo!7 Dating. Get Started.
_______________________________________________
dna-dev mailing list
dna-dev at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/dna-dev


      Make the switch to the world&#39;s best email. Get Yahoo!7 Mail! http://au.yahoo.com/y7mail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/dna-dev/attachments/20081116/4afa7e6c/attachment.html 


More information about the dna-dev mailing list