What are the differences between CQ 5.6 and AEM 6.0 in regards to the Technology Stack?
Here are the major tech stack upgrades in AEM 6.1/6.0
Jackrabbit Oak:
Compared to JCR, Oak offers improved performance, scalability. You also have an option of using NoSQL DB like MongoDB as persistence layer to support clustering and user generated data scenarios.
Sightly: New templating language, makes markup look beautiful, enforces separation of the markup from logic and also offers XSS protection by default.
Touch UI: Classic UI in CQ5 which is ExtJS based has been upgraded to Touch UI which supports touch enabled devices - built using Coral UI framework.
Search - Apache Solr: Default search engine in CQ5 was Lucene, this has been upgraded to Solr. You can now configure Solr server as search engine for your AEM application.
Check out the release notes to get the complete lowdown of what's been upgraded in AEM 6.0 and 6.1
The other major change is in the Communities...
Please look at this article for more details.
http://cq-ops.tumblr.com/post/86504895994/whats-new-in-aem-60
Related
I was surfing the Internet where I found an article saying that Alfresco is a Content Management Framework as well as App Development Framework. While I understood it as Content Management Framework, I am not able to know about it as an App Development Framework.I tried researching over it, but could not find anything viable.
I want to know that how Alfresco can be used as an App Development Framework ?
Hi Alfresco has an application development framework, more info here:
Guides: https://community.alfresco.com/community/application-development-framework/pages/get-started
Angular 2 components repository: https://github.com/Alfresco/alfresco-ng2-components
Alfresco App Yeoman generator: https://github.com/Alfresco/generator-ng2-alfresco-app
JavaScript API repository: https://github.com/Alfresco/alfresco-js-api
Some videos:
https://www.youtube.com/watch?v=-OFI3izSDdk
https://www.youtube.com/watch?v=kjOgVbINAyU
In case you want a live support you can use the Gitter channel: https://gitter.im/Alfresco/alfresco-ng2-components
Well, if for App is meant mobile application, Alfresco has a Mobile SDK available for both iOS and Android which can help you create your own application to work against the Alfresco Platform.
Moreover there is another framework called Aikau which has one main goal
The main purpose of Aikau is to provide a library of widgets that can be easily assembled into a web application for accessing an Alfresco repository. The aim is not to replace Share but it was necessary to migrate away from its original implementation, which was based around the Surf paradigms of pages, templates, components and web scripts, towards a solution that provided for rapid development and customization.
This feature was first introduiced in Alfresco 4.2 and then extended in Alfresco 5.0
If you want to build applications for Alfresco you have a number of options available to you - as mentioned you can build mobile applications (and there are SDKs available to do this).
If you want to build web applications then you have the option of either customizing the default Alfresco Share client (which is built on top of the Alfresco Surf framework using a combination of YUI 2 and Aikau). Alternatively you can built your own web client by building a new client with the Maven Aikau Archetype.
The advantage of the Surf framework is that it takes care of Alfresco authentication across all the various APIs (WebScript, CMIS, Public API, etc) as well as providing lots of security benefits (CSRF, XSS white-lists, etc).
The advantage of using Aikau is that it provides a large number of out-of-the-box widgets that are specifically designed to work with Alfresco data and address Alfresco (ECM) specific use cases.
You are of course not limited to these options - you can build an application on top of any stack you wish, but ultimately you will want to be making use of the REST APIs that the Alfresco Repository provides.
Depending upon the application you are building you may also want to build custom data models and build in workflow via Activiti BPM as well.
One of the main driving factors to use a modern work flow engine like Activiti is it’s support for cloud and multiple tenancy. Our current in house work flow engine lacks these features. So, we are planning to replace it with Activiti.
The current thought process is that we would run Activiti as a standalone (independent) application. Our Application (multiple instances) would interact with the Activiti App using the REST APIs.
Since our current work flow engine is embedded, so is its UI. This means that the work flow pages like user forms etc are rendered as part of our application. We want the UI to remain same so that the transitions for the end users is transparent. So, we cannot reuse the Activiti Explorer, let’s say be rendering Explorer pages within our UI or redirecting to Explorer UI.
This means that we would need to create a UI for Activiti within our web application. Our web application is Struts and Applet based. We are open to use HTML5 but not Spring. My thoughts are that we would need to develop a generic UI framework that would render the BPMN user forms. Are there any Struts/Applet based framework available for this. Behind the scene, an Java API would need to be developed that interact with Activiti Engine using the REST APIs.
Any thoughts/references about how I can go about developing the UI.
Even I am looking for custom UI for Activiti. Little googling has given me the below (apart from Vaadin), but did not found much help around using it for Activiti
http://www.jorambarrez.be/blog/2013/09/03/brazos-for-activiti/
https://github.com/minikomi/Bootstrap-Form-Builder
Also it seems the out-of-the-box activiti explorer UI is hard-wired and not customizable - http://forums.activiti.org/content/ui-customization. Does it mean...no one is using Activiti explorer in production?
Guidance from someone who has someone has gone through this cycle and used custom UI will be really helpful.
Another approach could be XForms. For example, Orbeon (http://www.orbeon.com/) is a java-based XForms Engine which can be used as stand-alone server. In addition, orbeon offers a servlet filter to integrate the XForms-Rendering in your own application.
We realized an XForms-Integration with Activiti and it works very well. Hope this helps.
I am looking for a robust REST framework to eliminate all that boilerplate code with starting up a new REST-only web service (mobile clients). Is there a framework that already has this built-in where I could, for example, simply build the domain models and run with it? I would like to see:
Authentication & User Model
Logging
Basic CRUD
Permissions (for model access)
Scalability
It seems every web service at a minimum needs the above capabilities. Somebody, somewhere must have written a good re-usable framework with the above capabilities. Any ideas? I would prefer Node.js, Java or even hosting with a PaaS service provider that offers these features.
Spring 3 MVC provides a very nice and simple annotation based framework for REST.
See http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/ it can be deployed on any java web server like Jetty or Tomcat.
A framework like XAP provides a combined solution of Spring and Jetty plus it's built for dynamic scaling.
See http://www.gigaspaces.com/xap.
Last if you want to easily on board this solution on any cloud CloudifySource provides an open source project which includes XAP capabilities and PaaS.
See http://www.cloudifysource.org
I use Symfony 1.4 for this. It is an PHP framework. It generates most of what you need for free. The database stuff is also quite easy as the Symfony uses ORM libraries (you can choose but I can recommend Doctrine: http://www.doctrine-project.org/).
For example the whole backend site(admin) generating is a matter of running one command. They have a great e-book fro free. More info here:http://www.symfony-project.org/.
There is also Symfony 2.X (http://symfony.com/), which have a lot of new features (e.g. new Doctrine 2.0). Especially with the bundle (plugin) https://github.com/FriendsOfSymfony/FOSRestBundle is the RESTful service quite easy.
is there any working, supported and maintained scaffolding solution for Wicket 1.5?
I know of
Wicketopia at two different locations sourceforge and github but this is still targeted at wicket 1.4, brings it's own wicket and mails to the mailinglists didn't trigger any response in months.
Wicket Rad but this hasn't been updated in 18 Months
Wicket CRUD which seems more like a tutorial or proof of concept than a working solution.
I can't belive, that there is no solution out there that allows to edit Domain Objects (selecting objects for OneToOne and add-remove-controls for lists would be a big plus). Writing editors isn't the most interesting part of developing a wicket application and getting them to look alike is tiring, so I'm looking for suggestions to automate this...
You can look at Apache Isis for a domain driven approach. Perhaps you can find a CRUD framework at the Wicket WIKI page dedicated to related projects. Maybe databinder is an option.
At my company we created our own CRUD framework. While it was not easy, it does give you an advantage and enables you to do things your own way.
I spend few fours with wicket-webbeans (WWB). It isn't fully ported to wicket 1.5
(but some works have been done in 1.5 branch).
I think such project (automagicaly bean editor for Wicket 1.5) is very necessary
There is a simple CRUD web application for hotel booking based on Wicket 6.0, Ujorm 1.40 and Spring 3.2 frameworks. Graphical interface is built on preview tables and form dialogs, see the next persistent class model:
We currently have an application that is based on an in-house developed workflow engine with YAML based DSL. We are looking to move parts of it to Java.
I have discovered a number of java solutions like Intalio, JBPM, Drools Expert, Drools Flow etc.
They appear to be aimed at businesses where the business analyst creates the workflows using a graphical editor and submits them to the workflow engine. They seem geared towards ease of use for non-technical people rather than for developers with a focus on human interaction.
The workflows tend to look like.
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
If any step fails we need to retry it X times. We also need to be able to stop the system and be able to restart it and have it continue from where it was (durable).
Some of our workflows can be defined by a set of goals we need to achieve so Jess's backwards rule chaining sounds interesting but it is not open source.
It might be that what we are after is a Finite State Machine engine or just an Enterprise Service Bus and do everything as JMS queues.
Is there a good open source workflow engine that is both standards-based but also geared towards developers. We don't particular want to use a graphical workflow designer or write reams of XML and it should ideally be in Java or language agnostic (makes REST/Soap calls to external services).
Thanks,
Tom
Both Activiti and Bonita are open source and standard based (BPMN2). See for example this blog post.
Ruote is not standard based but seems close to your DSL approach and runs on a JVM thanks to JRuby.
Intaloi an open source BPM engine it offers a BPMN-support Designer and a BPEL engine. it's written in Java.
Camunda BPM is a developer-friendly Open Source workflow engine that is based on the open standards BPMN 2.0, DMN 1.1 and CMMN 1.1.
While it does come with a comfortable graphical workflow designer it also ships with a fluent API to build workflows programmatically. Camunda is written in Java, but can also be invoked from other languages via its REST API and it can make REST/Soap calls to external services.
jBPM 5 (open source, ASL, BPMN2) is just released and it's the best of Drools Flow and jBPM 4. It's lightweight but it can also integrate deeply with the Drools rule engine to make decisions.
For anyone looking for Python based enterprise grade solution.
Zengine, is GPL3 BPMN workflow based framework with Tornado, Rabbit AMQP, advanced permissions, extensible scaffolding features and more.
Built on top of following major components;
SpiffWorkflow: Powerful workflow engine with BPMN 2.0 support.
Tornado: Tornado is a Python web framework and asynchronous networking library.
Pyoko: Django esque ORM for Riak KV store.
RabbitMQ: Fast, ultrasharp AMQP server written with legendary Erlang lang.