-
Notifications
You must be signed in to change notification settings - Fork 612
Plugins new style
For the BIMserver 1.5 release, plugins have changed quite a bit.
For starters they depend on maven now. In the long term the plan is to also support non-maven plugins, but for now it's a requirement. To make the transition for older plugins easier, and to help developers of new plugins, this document describes how it works.
BIMserver specific terminology:
- Plugin: A plugin (implementing org.bimserver.plugins.Plugin)
- PluginBundle: A collections of 1 or more plugins, for example the org.opensourcebim.ifcplugins bundle has 18 plugins, but a lot of bundles only have 1 (for example org.opensourcebim.ifcopenshellplugin)
Most Java IDEs should support this. There should be one pom.xml file per plugin bundle. In the next section all required parts in the pom.xml will be described, most of them are enforced by maven(relase plugin), ans some by BIMserver pluginmanagement.
<groupId>org.opensourcebim</groupId>
For most plugins for bimserver this is org.opensourcebim, but this can be anything of course, make sure to use lowercase, which is the convention
<artifactId>ifcplugins</artifactId>
This should describe your plugin bundle, also make sure it is lowercase
<version>0.0.8-SNAPSHOT</version>
Make sure your version on SCM always ends in -SNAPSHOT and releases always omit -SNAPSHOT
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
This is just to make sure build results are repeatable on different platforms
<description>BIMserver plugin that uses IfcOpenShell to generate geometry from IFC files</description>
A description for the whole bundle.
<scm>
<url>https://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin.git</url>
<connection>scm:git:https://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin.git</connection>
<developerConnection>scm:git:https://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin.git</developerConnection>
</scm>
This is used by the maven release plugin to push/pull to the SCM.
<organization>
<name>OpenSource BIM</name>
<url>opensourcebim.org</url>
</organization>
Some information about the organization, of course you should fill in the details about your organization.
<issueManagement>
<system>GitHub</system>
<url>https://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin/issues</url>
</issueManagement>
<name>IfcOpenShellPlugin</name>
<url>https://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin</url>
<licenses>
<license>
<name>GNU Affero General Public License</name>
<url>http://www.gnu.org/licenses/agpl-3.0.en.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<email>[email protected]</email>
<name>Ruben de Laat</name>
</developer>
</developers>
Get Started
- Quick Guide
- Requirements Version 1.2
- Requirements Version 1.3
- Requirements Version 1.4
- Requirements Version 1.4 > 2015-09-12
- Requirements Version 1.5
- Download
- JAR Starter
- Setup
Deployment
- Ubuntu installation 1.3
- Windows installation
- Security
- Memory Usage
- More memory
- Performance statistics
- Large databases
Developers
- Service Interfaces
- Common functions
- Data Model
- Low Level Calls
- Endpoints
Clients
BIMServer Developers
- Plugins in 1.5
- Plugin Development
- Eclipse
- Eclipse Modeling Framework
- Embedding
- Terminology
- Database/Versioning
- IFC STEP Encoding
- Communication
- Global changes in 1.5
- Writing a service
- Services/Notifications
- BIMserver 1.5 Developers
- Extended data
- Extended data schema
- Object IDM
New developments
- New remote service interface
- Plugins new
- Deprecated
- New query language
- Visual query language
- Reorganizing BIMserver JavaScript API
General