{style}
.panel {-moz-border-radius: 7px;
border-radius: 7px;}
.panelMacro table {-moz-border-radius: 15px;
border-radius: 15px;}
{style}

This page describes how to build new Weasis plug-ins and how they can be incorporated to the distributions, see also this page for the IDE configuration.

List of plug-ins types

See also Weasis Architecture

Build plug-ins from Maven archetype

  1. From the root directory of an archetype execute: mvn install
  2. Generate a sample project by executing the following command: mvn archetype:generate -DarchetypeCatalog=local
  3. Select the archetype:

File > New > Maven Project
Search for weasis archetype in catalog filter.

To load the plugin in the standard configuration of Weasis, add to the launcher the following VM argument:
-Dfelix.extended.config.properties="file:///your_plugin_path/conf/ext-config.properties"

Install plug-ins

For weasis-portable distribution

The file "/weasis/conf/ext-config.properties" must be adapted and plug-ins must be placed in the directory "/weasis/plugins".

Example with weasis-isowriter:

For the WEB distribution

Build a new war file containing the plug-ins and the ext-config.properties file.

To load plugins in the standard configuration of Weasis, add to the launcher the following VM argument:
-Dfelix.extended.config.properties="http://server:port/weasis-ext/conf/ext-config.properties"

Example that make a package of weasis-isowriter plugin:

Build OSGI services

All the plug-in type described in the list above are OSGI services that are registered and aggregated in the GUI. Building the plug-in from the Maven archetype will configure automatically the OSGI service. For adding new OSGI services, here is the procedure:

1) Create a class implementing one of the plug-in type and add at least the annotations @Component and @Service, for instance:


@Component(immediate = false)
@Service
public class SamplePrefFactory implements PreferencesPageFactory {
...

For more information about annotations see the Apache Felix SCR Annotations.

2) Add in pom.xml of the plug-in the maven-scr-plugin (to generate xml file from the Java annotations) and the property for loading any xml file in maven-bundle-plugin:


<build>
<plugins>
 <plugin>
	<groupId>org.apache.felix</groupId>
	<artifactId>maven-scr-plugin</artifactId>
 </plugin>
 <plugin>
	<groupId>org.apache.felix</groupId>
	<artifactId>maven-bundle-plugin</artifactId>
 </plugin>
...