Sunday, September 9, 2012

WSO2 Governance Registry 4.5.0 Released

The following is the official release note sent by WSO2 G-Reg team. You can download the new version using this link.


WSO2 Governance Registry 4.5.0 Released

07 September 2012

The WSO2 Governance Registry team is pleased to announce the 4.5.0 release of the WSO2 Governance Registry. WSO2 Governance Registry is a user-friendly, but comprehensive enterprise governance, registry and repository solution available under the Apache Software License v2.0. WSO2 Governance Registry is pre-loaded with best practices to help users with governance adoption. WSO2 Governance Registry is fully integrated to the WSO2 Carbon platform with the 4.5.0 release. This allows WSO2 Governance Registry users to benefit from the flexibility and extensibility provided by the Carbon platform. WSO2 Governance Registry can be either used as a complete product or used in combination with components of other WSO2 products. User specific components, extensions or UIs to the WSO2 Governance Registry can be easily added as Carbon components.
We are striving for a simple and happy first time user experience as well as a satisfying experienced user experience with this release.

New Features in This Release

  • Adding Operators to Advanced Search API (Negation and Range Queries for Property Values)
  • UUID Support at Resource Level
  • Hierarchical Subscriptions for Collections
  • Onetime Email Verification for Subscriptions
  • URL Referenced Assets
  • API Assets
  • Worklist Notification Bar
  • Task Scheduling for Registry
  • Additional Reporting Improvements
  • Improving Support for Configurable Governance Artifacts
  • Support for Source Configuration Management(SCM)
  • Support for Java Management Extensions(JMX)
  • XPath Query Support for Search
  • Lifecycle Audit
  • Dynamically Clensing Version History
  • Invocation Statistics API
  • Inversions and Range Queries for Search
  • WS API for Governance Artifacts(CRUD Operation Support)
  • Adding Executor for Services to Publish as APIs
  • Display Life Cycle Status in the List View of Services, WSDLs, Schemas and Policies
  • Search by Name for the List View of WSDLs, Schemas, Policies and Configurable Governanace Artifacts
  • Display Notification Type Information on Notifications UI

Issues Fixed in This Release

WSO2 Governance Registry Issue Tracker

Features of WSO2 Governance Registry

  • Storing and managing arbitrary resources and collections
  • Tagging, commenting and rating
  • Managing users and roles
  • Authentication and authorization on all resources and actions
  • Resource / collection versioning and rollback
  • Advanced search capabilities - tags, users, etc.
  • Built in media type support for common types (WSDL, XSD)
  • Built in support for known repository types
  • Dependency management - maintain relationships between dependent resources for impact analysis
  • Pluggable media type handlers for handling custom media types
  • Pluggable custom UIs for resource types
  • Activity log and monitoring with filtering support for the activity logs
  • Atom Publishing Protocol (APP) support for reading/writing the data store remotely
  • Subscribe to resources, collections, comments, tags, etc. with any standard feed reader (Bloglines, Google Reader, etc)
  • Intuitive User Interface with an Ajax-based Web 2.0 interface
  • Internationalization
  • Support for deploying back end and front end (UI) in separate servers
  • WSDL Tool to import service information from a given WSDL, and WSDL custom-view
  • WSO2 Governance Registry federation - mounting a remote WSO2 Governance Registry to a specified location
  • Based on the OSGi based WSO2 Carbon architecture: this is a unification of all Java based products from WSO2
  • Advanced service governance through, discovery, impact analysis, versioning and automatically extraction of service meta data
  • Dashboard support with gadgets with design-time and run-time governance information
  • Advanced Life cycle management with checklists, and scripting support
  • Validation policies. e.g. WSDL Validation, WS-I Validation and Schema Validation
  • Eventing and notifications
  • Supports remote links, symbolic links for resources
  • Attach remote WSO2 Governance Registry instances, providing one interface for many WSO2 Governance Registry instances
  • Support for processing custom URL patterns via pluggable URL handlers
  • Support for custom query languages via pluggable query processors
  • Import/export resources and collections
  • Improved transaction support
  • Support for WebSphere, WebLogic, and JBoss
  • Provisioning and feature management support for WSO2 Carbon family of products
  • Support for clustering
  • Check-in/Checkout tool
  • Gadgets for impact analysis on services and registry resources
  • Dynamic Handler configuration, and simulation
  • Tree-based Resource view
  • API to govern SOA artifacts
  • Complete Web Services API for Registry
  • WS-Discovery support
  • Platform, and Group/Cluster based deployment model, with support for adding remote mounts
  • Support for multiple server instances
  • E-mail verification for subscriptions
  • Hierarchical permission model with granular and extensible permissions
  • Governance Archive for uploading WSDLs and Schemas with imports
  • Ability to update resource content by uploading
  • Rich text editor for editing text resources
  • XML editor for editing handler, lifecycle and service UI configurations
  • Support for deploying Carbon Applications (C-App)
  • Content Search
  • WebDAV support
  • Open-Social API
  • JCR API
  • UDDIv3 support
  • Cache-backed Registry
  • Resource Locking/Retention
  • Configurable Governance Artifacts
  • Improvements to the Lifecycle Model (Executors, Validators, Permissions, and Transition UI)
  • Improvements to Metadata Search
  • Improvements to Impact Analysis
  • Conflict Resolution for Concurrent Updates
  • Human-Readable Names for media-types

Project Resources

Installation and Running

  1. Extract the downloaded zip file
  2. Run the wso2server.sh or wso2server.bat file in the /bin directory
  3. Once the server starts, point your Web browser to https://localhost:9443/carbon/
  4. For more information, see the Installation Guide:
    Locally : INSTALL.txt
    On the web : http://docs.wso2.org/wiki/display/Governance450/Installation

Known Issues

WSO2 Governance Registry Issue Tracker

Reporting Problems

Issues can be reported using the public JIRA available at https://wso2.org/jira/browse/REGISTRY

Contact us

WSO2 Governance Registry developers can be contacted via the mailing lists:
For Users: user@wso2.org
For Developers: dev@wso2.org

Alternatively, questions can also be raised in the WSO2 Governance Registry forum:
Forum http://wso2.org/forum/351 

Support

We are committed to ensuring that your enterprise middleware deployment is completely supported from evaluation to production. Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.
For more details and to take advantage of this unique opportunity please visit http://wso2.com/support/
For more information about WSO2 Governance Registry please see http://wso2.com/products/governance-registry visit the WSO2 Oxygen Tank developer portal for additional resources.
Thank you for your interest in WSO2 Governance Registry
-The WSO2 Governance Registry Development Team


Sunday, September 2, 2012

CopyExecutor explained

In my previous posts, I have explained about the lifecycle management functionality in WSO2 Governance Registry. These posts covered a variety of topics ranging from the configuration model to its extension points. Executors are one such extension point and I have given an introduction to executors and about the default executors in couple of my previous posts.

This post explains about the default copyExecutor that is shipped with WSO2 Governance Registry 4.5.0. First, lets look at the code of the copyExecutor. You can find the original code segment using this link (which in located in WSO2 code base).


Before explaining the copyExecutor code, we need to get an understanding about how to configure the copyExecutor. The copyExecutor is designed to do one specific registry operation. That is to do an copy operation of a resource from one location to another. With the lifecycle configuration model of WSO2 Governance Registry, we are able to pass parameters to an executor class and because of that, we have made those resource paths (the source path and the target path) configurable from the lifecycle configuration. So altogether the copyExcutor has the following configurations.
  • Source path
  • Target path
  • Copy comments
  • Copy tags
  • Copy ratings
  • Copy associations
The configuration of the copyExecutor is as follows.

Let us go through the copyExecutor code and see how we have implemented these.

In one of my earlier posts, I explained that each executor must implement the Execution interface. This interface has 2 methods.
  • void init(Map parameterMap)
  • boolean execute(RequestContext context,String currentState,String targetState)
Out of these 2, the init method is called when we parse the lifecycle configuration and initialize the aspect. Also this method gets the static parameters we defined in the lifecycle configuration. Hence in the copy executor, we pass these parameters and we keep track of them using several variables. 


The execute method is called when we invoke a lifecycle operation. Inside this method, we do all the operations. The copyExecutor has the ability to append a version to a given path and these versions can be sent from the Management Console. Hence inside this execute method, we read the parameters that were sent from the UI and create a path according to them. The underlying code segment is as follows.


After that we are checking whether the resource path is in the given current environment. If not, we can not proceed further in the code but the executor should not fail. Hence we return "true" to inform the lifecycle implementation that the executor executed successfully.

Finally, we do all the other operations such as doing the copy operation and copying tags,ratings,comments and associations.


As you all can see, the copyExecutor has a simple code but has a great set of use cases. During this webinar we used the same copyExecutor to copy artifacts from one environment to another. Likewise it has many use-cases when it comes to governance scenarios.