I can see in AEM technology stack there are multiple frameworks like OSGi, JCR, CRX, Granite. but am unclear about the usage and the involvement of JCR vs CRX. Can anybody explain me whats the role of JCR & CRX in AEM?
JCR is the Java Content Repository standard, Apache JackRabbit implements the standard and CRX is a Repository based on JackRabbit.
Apache Jackrabbit is an open source content repository implementation that fully implements the JCR API.
JCR (JSR-170) is the a standard Java API for content repositories. It provides an interface for Java applications to interact with content repositories, however it does not provide a repository implementation.
Adobe CRX is the commercial content repository component used in the AEM, which uses some elements of Jackrabbit (e.g. some of the security APIs). CRX provides additional features such as development tools & clustering capabilities and has its own storage mechanism which differs from the Jackrabbit implementation.
Related
I am new SAP world, as i know we can save the UI5 code in the GIT or any other VCS (like Subversion).
As ABAP code can we place the UI5 (java script) code in the Server itself? in netweaver server itself?
So that i dont want to have separate code repo.
When you develop UI5 interfaces I assume you use NWDS (SAP Netweaver Developer Studio) for that. In NWDS you
set up DTR (Design Time Repository) server
download development configuration from DTR
develop new functionality in this configuration
In such configuration all your developments will be stored on DTR server. DTR is a standard component of Netweaver landscape, and this is a standard way of landscape organization for team development recommended by SAP. So you upload (check-in) your UI5 code not to Netweaver directly but to Netweaver component called DTR. Hence you don't need any additional versioning systems here and UI5 code is handled as any other code (Java, XML, JS) in Netweaver.
UPDATE:
If you use SAP Web IDE with ABAP stack it allows direct deploy to ABAP UI5 repository.
If you use another IDE for development you can use other options which are described in note 1793771:
SAPUI5 Team Repository Provider Eclipse plugin
ABAP report /UI5/UI5_REPOSITORY_LOAD
There is no need for NWDS, maybe its too oversized for your requirement. You can directly deploy from Eclipse or Web IDE to your SAP Backend Server, therefore you Need ADT (ABAP Developper Tools). The result is a BSP Page in SE80, clean and simple (but: there is no versioning, it is only pushing to the backend).
https://tools.hana.ondemand.com/
I am thinking to develop a custom Operation to be executed in an automation chain that needs to execute calls to external rest services.
I do not want to add dependencies if not necessary and before starting to use one of the many java implementations available, I would like to know if there is a library that Nuxeo itself already uses.
I know that CXF is used in Nuxeo but I do not think that the library for rest clients is already a dependency.
Nuxeo already uses Apache Commons HttpClient 3.1, Apache HttpComponents 4.3.3 and Jersey 1.17, any of which can be used to make REST client calls. There are probably others you can use, just look at the dependencies in the master POM to see if your favorite library is here.
All third-party libraries used by Nuxeo are listed in the dependencyManagement section of the Nuxeo root POM org.nuxeo:nuxeo-ecm.
You should indeed make your choice picking in that list first, if it contains a library fulfilling your needs.
Are there any tutorials for the development of aem6 components without crx?
If you prefer intellij with it's built in maven support, you can use IntelliVault
Well this is a broad topic. For a start you can read the following articles:
FileVault
A tool developed by Adobe that maps the content of a CRX/CQ instance to your file system.
IMHO it's more like for a small project because that approach is hardly applicable to continuous integration.
Eclipse + Maven provides ability to have an easily deliverable components package. Also many continuous integration tools are able to use Maven builder.
We have been using Drools guvnor 5.5.0 on JBoss 7.0. Now we want to use drools 6.1 final version. We have deployed all the jar files but unable to access UI as could not find war file. We got war file for 5.5.0 version from http://mirrors.ibiblio.org/maven2/org/drools/guvnor-distribution-wars/5.5.0.Final/ but unable to find same for 6.1.final version. Tried to use kie-drools-wb-distribution but not working.
Can anyone tell the way to use drools 6.1 version or to get the UI to create rules?
Summarizing Goodbye Guvnor. Hello Drools Workbench.
Along with the functional and feature changes we have restructured the
Guvnor github repository to better reflect our new architecture.
Guvnor has historically been the web application for Drools. It was a
composition of editors specific to Drools, a back-end repository and a
simplistic asset management system.
Things are now different.
For Drools 6.0 the web application has been extensively re-written to
use UberFire that provides a generic Workbench environment, a Metadata
Engine, Security Framework, a VFS API and clustering support.
Guvnor has become a generic asset management framework providing
common services for generic projects and their dependencies. Drools
use of both UberFire and Guvnor has born the Drools Workbench.
Drools Workbench (drools-wb)
https://github.com/droolsjbpm/drools-wb
Drools Workbench is the end product for people looking for a web application that is composed of all Drools related editors, screens and services. It is equivalent to the old Guvnor.
You can download from http://download.jboss.org/drools/release/6.1.0.Final/kie-drools-wb-distribution-6.1.0.Final.zip
Se also: Workbench Installation
I hope this help.
I would like to expose OSGi bundles as SOAP web services or in other words publish web service endpoints which are provided by OSGi bundles.
The architectural model/idea is that there is a host web application which is a normal war file deployed on JBoss (5.1.0 GA) offering a SOAP web service interface (JAX-WS).This host application starts the OSGi framework embedded (via ServletContextListener - currently Equinox) and loads a number of OSGi bundles which function as plugins.
The plugin bundles have a dependency to the host application as part of the request processing is delegated to them via internally defined interfaces.At the same time the plugin bundles should also be able to contribute an own public SOAP web service interface (endpoint implementations and the respective WSDL files to be published and made available by the application server).
The first approach we followed was that the host web application deploys a dispatcher/proxy servlet which delegates the processing to the relevant endpoints provided by the OSGi bundles.
There is the servlet bridge solution in OSGi/Equinox (BridgeServlet/HTTPServiceServlet) which enables the programmatic registration of servlets (for ex. in BundleActivators of the plugin bundles) using the HTTP Service specification.
The problem is that I have SOAP-based web service endpoints and would need to be able to wrap them in a javax.servlet.Servlet implementation.
That's usually an interna of the WS stack implementations of Java EE 5 servers which follow the servlet–based web services approach (endpoints defined as servlets in web.xml) and internally use to install native endpoint servlets for web service endpoints.
I did not find such a public endpoint servlet implementation which could be registered with the HTTP Service (maybe something similar like com.sun.jersey.spi.container.servlet.ServletContainer which can be used to publish REST-based services for JAX-RS applications in OSGi)
I am a little surprised that I did not find as much about registering SOAP-based WS endpoints with the OSGi HTTP Service or may be I do not see the obvious.
I have found something similar, JAX-WS-Commons/Spring (spring support for configuring JAX-WS, http://jax-ws-commons.java.net/spring/), which internally uses the class WSServletDelegate of the JAX-WS RI (metro) to process web requests for the endpoints.
But I am not sure about it, it seems kind of deprecated and I need to provide the metro WS stack jars to JBoss (or in the war file) in order to make it work on JBoss 5.1.0 GA.
Another approach seems to be distributed OSGI, which allows to publish OSGi services for remote access.
However, I could not find clear information about how to provide these services as web services on JBoss.
Other realisation aspects are:
we are bound to JBoss 5.1.0 GA and changes to the JBoss configuration should be as minimal as possible (in order to have minimal constraints to the setup of our customers)
All web services are developed contract-first which means that the original WSDL's are to be used by the providing container.
the plugin components should be as simple as possible concerning dependencies or technologies (in order to have minimal requirements to the skill of the plugin developers)
we use Spring 3 and Gemini Blueprint.
Finally, there are some ambiguities and unclear aspects and unfortunately I could not find reports on projects with similar requirements.
So, I would be eager to hear some suggestions or comments of the experts.
Maybe there are options I don't see, or maybe somebody has realised similar projects before and likes to share experiences.
Thanks a lot.
I am not an expert but another approach I have seen is to put the whole app server with an application into the OSGi container. It is an option in Sling launchpad http://sling.apache.org/documentation/the-sling-engine/architecture.html#launchpad
HTH