Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Orion/How Tos/How to write an Orion SDK plugin"

< Orion‎ | How Tos
(Created page with "= Introduction = This how-to deals with creating a plugin that is part of the Orion SDK - one that is stored, built and used in the Orion client. For a how-to on creating a pl...")
 
Line 9: Line 9:
  
 
= Put the code in the client =
 
= Put the code in the client =
 +
 +
= Configure build.properties =
 +
 +
The <code>build.properties</code> file must be created / edited to tell Orion what you would like to be built.
 +
 +
The most common cases will have two entries:
 +
*'''bin.includes''' - what should be included in the binary-only build
 +
*'''src.includes''' - what should be included in the source build
 +
 +
The JavaScript plugin, for example, has the following entries:
 +
<pre>
 +
bin.includes = META-INF/,\
 +
              bundle.properties,\
 +
              web/
 +
src.includes = web/,\
 +
              about.html
 +
</pre>
 +
 +
A word of caution here, your <code>bin.includes</code> entry '''must''' contain the root to where your plugins' HTML resides or the build will fail stating it cannot find your plugin.
 +
 +
= Add a POM.xml file =
 +
 +
Since Orion is moving towards a completely Tycho / Maven-based build, your plugin will also require a <code>pom.xml</code> to indicate how it should be built. For more information on POM files please see the [http://maven.apache.org/guides/introduction/introduction-to-the-pom.html Maven POM file introduction].
 +
 +
First we add some information about our plugin as direct children of the POM project element:
 +
*'''groupId''' - this will be have the value <code>org.eclipse.orion</code>
 +
*'''artifactId''' - this is the identifier of your plugin from its MANIFEST.MF file, for example <code>org.eclipse.orion.client.javascript</code>
 +
*'''version''' - this is the version of your plugin from its MANIFEST.MF file with <code>-SNAPSHOT</code> added after the end. For example the JavaScript plugin has the version <code>1.0.0.qualifier</code> which would be entered as <code>1.0.0-SNAPSHOT</code> in the POM file.
 +
*'''packaging''' - this is how the plugin should be packaged, the value is typically <code>eclipse-plugin</code>
 +
 +
Secondly, we have to add a section about the parent:
 +
*'''groupId''' - this is the value <code>org.eclipse.orion</code>
 +
*'''artifactId''' - this is the client parent identifier <code>org.eclipse.orion.client.parent</code>
 +
*'''version''' - this is the client parent version, which currently is: <code>1.0.0-SNAPSHOT</code>
 +
*'''relativePath''' - this is the path relative to the parent, which is <code>../..</code>
 +
 +
As an example, the complete POM.xml for the JavaScript plugin looks like:
 +
<pre>
 +
<project xmlns="http://maven.apache.org/POM/4.0.0"
 +
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 +
<modelVersion>4.0.0</modelVersion>
 +
 +
<groupId>org.eclipse.orion</groupId>
 +
<artifactId>org.eclipse.orion.client.javascript</artifactId>
 +
<version>1.0.0-SNAPSHOT</version>
 +
<packaging>eclipse-plugin</packaging>
 +
 +
<parent>
 +
<groupId>org.eclipse.orion</groupId>
 +
<artifactId>org.eclipse.orion.client.parent</artifactId>
 +
<version>1.0.0-SNAPSHOT</version>
 +
<relativePath>../..</relativePath>
 +
</parent>
 +
</project>
 +
</pre>
  
 
= Update the defaults =
 
= Update the defaults =

Revision as of 14:21, 7 November 2013

Introduction

This how-to deals with creating a plugin that is part of the Orion SDK - one that is stored, built and used in the Orion client. For a how-to on creating a plugin in general, please see the Simple Plugin Example.

The remainder of this how-to assumes a few things:

  1. You have already created a plugin and that you want to hook all of the pieces up to make it part of the SDK. As an example the new org.eclipse.orion.client.javascript plugin will be referenced.
  2. You have the Orion client repository checked out, and the projects imported in your workspace.
  3. You have some familiarity with Ant buildfiles and editing them.

Put the code in the client

Configure build.properties

The build.properties file must be created / edited to tell Orion what you would like to be built.

The most common cases will have two entries:

  • bin.includes - what should be included in the binary-only build
  • src.includes - what should be included in the source build

The JavaScript plugin, for example, has the following entries:

bin.includes = META-INF/,\
               bundle.properties,\
               web/
src.includes = web/,\
               about.html

A word of caution here, your bin.includes entry must contain the root to where your plugins' HTML resides or the build will fail stating it cannot find your plugin.

Add a POM.xml file

Since Orion is moving towards a completely Tycho / Maven-based build, your plugin will also require a pom.xml to indicate how it should be built. For more information on POM files please see the Maven POM file introduction.

First we add some information about our plugin as direct children of the POM project element:

  • groupId - this will be have the value org.eclipse.orion
  • artifactId - this is the identifier of your plugin from its MANIFEST.MF file, for example org.eclipse.orion.client.javascript
  • version - this is the version of your plugin from its MANIFEST.MF file with -SNAPSHOT added after the end. For example the JavaScript plugin has the version 1.0.0.qualifier which would be entered as 1.0.0-SNAPSHOT in the POM file.
  • packaging - this is how the plugin should be packaged, the value is typically eclipse-plugin

Secondly, we have to add a section about the parent:

  • groupId - this is the value org.eclipse.orion
  • artifactId - this is the client parent identifier org.eclipse.orion.client.parent
  • version - this is the client parent version, which currently is: 1.0.0-SNAPSHOT
  • relativePath - this is the path relative to the parent, which is ../..

As an example, the complete POM.xml for the JavaScript plugin looks like:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.eclipse.orion</groupId>
	<artifactId>org.eclipse.orion.client.javascript</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>eclipse-plugin</packaging>

	<parent>
		<groupId>org.eclipse.orion</groupId>
		<artifactId>org.eclipse.orion.client.parent</artifactId>
		<version>1.0.0-SNAPSHOT</version>
		<relativePath>../..</relativePath>
	</parent>
</project>

Update the defaults

To have your plugin show up installed by default in Orion (see testing Orion plugins for more information) you will want to add an entry to the org.eclipse.orion.client.ui/web/defaults.pref file.

The entry is based off the root of where your plugin provides its packages (more on this in update the site information section) and specifies if the plugin should be started automatically. For example, the JavaScript plugin adds the entry: "javascript/plugins/javascriptPlugin.html":true. This entry points to the HTML file for the plugin and is based off the root you supply in the site configuration and also indicates that the plugin should be automatically started.

The path entered here added to the path from the site configuration must point directly to your pluings' HTML file. For example the JavaScript plugin has the org.eclipse.orion.client.javascript/web/ path in its site configuration, making the full path to the plugin HTML file: org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.html.

Update the site information

Update the build

Back to the top