blob: a46e92d35d1696466d71a79829eaf475b58afe5e [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<model xmlns="http://modello.codehaus.org/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.4.0 http://modello.codehaus.org/xsd/modello-1.4.0.xsd"
xml.namespace="http://npanday.apache.org/executables/1.5.0">
<id>executable-plugin</id>
<name>ExecutablePlugin</name>
<description>
A configuration file for defining how npanday should locate exectuables
to be run in the context of a plugin.
</description>
<defaults>
<default>
<key>package</key>
<value>npanday.model.executable.plugins</value>
</default>
</defaults>
<versionDefinition>
<type>namespace</type>
</versionDefinition>
<classes>
<class rootElement="true" xml.tagName="executablePlugins" xsd.compositor="sequence">
<name>ExecutablePluginsModel</name>
<fields>
<field>
<name>executablePlugins</name>
<description>Plugin configurations.</description>
<association xml.itemsStyle="flat">
<type>ExecutablePlugin</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
<class>
<name>ExecutablePlugin</name>
<fields>
<field>
<name>identifier</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The platform-independent identifier for the executable as it will be
requested through the npanday.executable.ExecutableRequirement.
</description>
</field>
<field>
<name>pluginClass</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Class name of the executable implementation. Must implement npanday.executable.NetExecutable.
</description>
</field>
<field>
<name>pluginConfiguration</name>
<description>
Configuration properties, that will be passed along to npanday.executable.NetExecutable#init()
</description>
<version>1.5.0+</version>
<type>Properties</type>
<association xml.mapStyle="inline">
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>vendor</name>
<version>1.0.0+</version>
<type>String</type>
<description>Vendor this executable is provided by or compatible with. For example MICROSOFT, MONO, DotGNU</description>
</field>
<field>
<name>vendorVersion</name>
<!-- since NPanday 1.5.0 -->
<version>1.5.0+</version>
<type>String</type>
<description>The vendor version the executable is provided by or compatible with.</description>
</field>
<field>
<name>profile</name>
<version>1.0.0+</version>
<type>String</type>
<required>true</required>
<description>Profile for the plugin.</description>
</field>
<field>
<name>executable</name>
<version>1.0.0+</version>
<type>String</type>
<required>true</required>
<description>Executable name without extension, as run from the command line.</description>
</field>
<field>
<name>executableVersion</name>
<version>1.5.0+</version>
<type>String</type>
<description>
The version of the executable, since multiple could be found on different paths (specified in 'probingPaths').
Applicable, if executable is NOT provided by the .NET vendor (as specified in 'vendor').
</description>
<required>false</required>
</field>
<field>
<name>probingPaths</name>
<version>1.5.0+</version>
<description>
The paths this executable is likely to be found on. You can use expressions
referring to the pom or registry here. $(project.build.directory) would expect the executable
in the target directory, and $(HKLM/Software/MyComp/MySoftware@InstallDir) would look up a path in the
windows registry.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>frameworkVersions</name>
<description>Supported framework version(s): 1.1.4322, 2.0.50727, 3.0, ..</description>
<version>1.0.0+</version>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>platforms</name>
<version>1.0.0+</version>
<description>The platform this executable is compatible with.</description>
<association>
<type>Platform</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>commandFilter</name>
<version>1.0.0+</version>
<description>A filter for including/excluding user-passed commands options.</description>
<association>
<type>CommandFilter</type>
</association>
</field>
</fields>
</class>
<class>
<name>CommandFilter</name>
<fields>
<field>
<name>excludes</name>
<version>1.0.0+</version>
<description>
The command options to exclude from the user specified pass-through parameters.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>includes</name>
<version>1.0.0+</version>
<description>
The command options to allow from the user specified pass-through parameters.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
<class>
<name>Platform</name>
<fields>
<field>
<name>operatingSystem</name>
<version>1.0.0+</version>
<type>String</type>
<description>The operating system that the executable is compatible with.</description>
</field>
<field>
<name>architecture</name>
<version>1.0.0+</version>
<type>String</type>
<description>The architecture that the executable is compatible with.</description>
</field>
</fields>
</class>
</classes>
</model>