ccPublisher 2 has been designed for extensibility and customization by 3rd party developers. There are many ways you can customize the application. This document covers customizing ccPublisher 2 in order to create a new application.

Customizations v. Extensions

The functionality of ccPublisher 2 can be changed in one of two ways: through customization or through extensions. The difference lies in the extent of coding required and in the intended functionality change.

For example, an extension requires minimal coding, and adds functionality that does not change the core application process. An extension might add notification or some other behavior to the application. While extensions may be bundled with an application, by definition they should be able to be distributed independently of a P6 application.

Conversely, a customization of ccPublisher would change or modify the core functionality: what metadata fields are collected, where the files are transmitted to, or what sort of files (items) are collected. Customizations are typically built and packaged independently of ccPublisher 2.

Basic Requirements

The remainder of this document discusses particulars of customizing a P6 Application.

A minimal P6 Application requires the following:

  • app.zcml
  • application bootstrap
  • storage class


app.zcml is the default name of the top-level configuration file. This configuration file describes your application, defines metadata fields, and instantiates storage classes. App.zcml (or whatever you choose to call it) is loaded and parsed by the bootstrap code; if any part of the configuration fails, the application will not load. Fortunately, you can detect most of these situations during the development process.

Bootstrap Code


Types of Customizations

General Wizard Pages

Storage Providers

Metadata Fields

Item Types