Jibe Framework

From Jibeframework

Jump to: navigation, search

Contents

Prerequisites

To be able to develop with Jibe you would need the following knowledge:

  • Advanced Java knowledge
  • Springframework
  • Alfresco configuration mechanism
  • ExtJs JavaScript library
  • Freemarker template engine

Architecture

The following picture is describing different building blocks of the Jibe framework. The yellow blocks are Alfresco native and blue blocks are Jibe framework specific.

Image:JibeArchitecture.png

All those building blocks are simple addons to the Alfresco repository which are packed as AMP files.

Client side JavaScript engine

The main responsibility of the client side JavaScript is to accurately construct and initialize ExtJS components tree using json data received from the server

Dispatcher WebScript

Using parameters from the received Ajax request, the dispatcher WebScript will invoke an appropriate method from the registered service bean passing an initialized Context object obtained from the Context Factory as an argument

Context Factory

Responsible to instantiate and initialize the Context object, which is used as a value map throughout the request serving pipeline

Service Bean

The Service Bean contains methods invoked from the JavaScript client. In order to be exposed for invocation from JavaScript, a method of the Service Bean needs to have a specific signature and has to be specifically annotated

Data Provider Bean

The facade toward Alfresco Service API with responsibility to produce appropriate data models consumable by Components. A Node instance is considered to be a data model for a form component while a List of Node instances is considered to be a data model for a grid. The Node Factory is used to create instances of the Node class

Node Factory

This is a singleton object with responsibility to produce instances of the Node class. A node is a thin wrapper around the Alfresco NodeRef or WorkflowTask objects with all dependencies injected during the instantiation. The intention is to encapsulate node's related operations within the node class and by that make Java code more readable. The concept is the same as for the Alfresco org.repo.jscript.ScriptNode class mechanism

Component Factory

The Component Factory is a singleton with a responsibility to create and initialize new Component instances. Components are created using Components API consulting xml configuration files and are Context dependent. Component instance should be able to produce JSON string consumed by the Client side JavaScript engine in order to create and initialize ExtJS components

Converter Service

Conceptually similar to JSF converters, with the difference that it does not have to be a separate class registered in the XML configuration but the converters are annotated methods of an appropriately registered bean

Resolver Service

Resolvers are like virtual properties or properties created on runtime. Resolvers are exposed for usage in a grid configuration by annotating a method of an appropriately registered bean

Actions Service

Responsibility of actions service is to evaluate visual status of registered actions (disabled, hidden) depending on the context and to provide dynamic actions which are dependent on the context (e.g. task transition actions). As usual, action evaluator and actions provider methods are registered with appropriate annotations

Community