Hi!

I have to develop some custom API which allows to access Nuxeo ECM 
functionality like document management, workflows, user management etc. 
Expected API will have some our application business logic additionally.  I do 
not plan to use any social networking or web engine specific functions like 
portal, blogs, wiki, gudgets etc. I am interesting in ECM functionality of the 
system only.
After some research I have decided to develop API using REST approach with 
reusing of some CMIS ideas. After discovering Nuxeo existing functionality I 
have found that there are already exists several implementations of REST API 
for document management:
1. Restlet based API methods in org.nuxeo.ecm.platform.ui.web.restAPI and 
org.nuxeo.ecm.platform.syndication.restAPI packages.
2. JAX-RS based API methods in Nuxeo WebEngine (it looks like they are not 
completed, but some base functionality exists).
3. CMIS implementation in the future (in sandbox now).

I am trying to figure out which one is the best for extending for our 
application. I think it is logically to reuse some existing in Nuxeo approach 
instead of building own from the scratch.
Here is my ideas about each of them which are based on my current understanding 
of Nuxeo functionality:
1. Restlet based API.
__A. Pros (for my needs): 
____a. Mature enough.
____b. Documented.
____c. Does not require WebEngine (I am trying to have the system as 
"lightweight" as possible if this term applicable for Jboss based application 
:) )
__B. Cons (for my needs): 
____a. I need to have Jboss runned and restart it often in order to develop my 
own API method which extends BaseNuxeoRestlet subclasses. For now I use debug 
mode code replacing in Eclipse to partly workaround this problem (but it does 
not work in some cases like method signature changing etc. due to some 
technical reasons).
____b. It is not such convenient to develop API as it is with JAX-RS.
2. JAX-RS based API.
__A. Pros (for my needs):
____a. I can use Jetty configuration for API rapid development.
____b. We can use Jetty configuration as development lightweight configuration 
for the team who develop application which use our custom Nuxeo REST API.
____c. I can use Groovy.
____d. JAX-RS is a standard.
____e. I can deploy my API to Nuxeo Jboss recommended for production usage 
since WebEngine could be deployed on both configurations.
__B. Cons (for my needs): 
____a. Does not looks like mature for this moment. 
____b. WebEngine has a lot of not required for our needs functionality (I hope 
I can delete all not required WebEngine bundles without affecting dependencies 
and left just ).
3. Nuxeo CMIS implementation is too raw for this moment for usage in the 
nearest time. CMIS is not a standard yet.

Here I am asking for advise in this selection. 
Q1. What is the best choice “Restlet based API” or “JAX-RS based API” as the 
base for our own REST API with some our application specific functionality?
Q2. Is it possible to develop Restlet based API on Jetty configuration? If so, 
could you provide a link to example configs?
Q3. Which direction is in Nuxeo long-term plan to support and ?
Q4. Which functionality of Nuxeo DM is not available on Jetty and available on 
JBoss configuration? Give me a link if it is described somewhere please.
Q5. Do my assumptions described above correct?
Q6. Any other pros/cons or ideas about the subject?

Sorry for so long post and thanks in advance!

Best regards,
Alexander Litvin.
--
Posted by "alexander.litvin" at Nuxeo Discussions <http://nuxeo.org/discussions>
View the complete thread: 
<http://www.nuxeo.org/discussions/thread.jspa?threadID=2941#8616>
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm

Reply via email to