Giter Site home page Giter Site logo

eclipse-extension-generator's Introduction

Eclipse Extension Generator

Annotate your Eclipse extensions and automatically generate plugin.xml files.

Supported Extensions:

  • @Application - Extension of org.eclipse.core.runtime.applications
  • @Perspective - Extension of org.eclipse.ui.perspective
  • @View - Extension of org.eclipse.ui.views
  • @Editor - Extension of org.eclipse.ui.editors

The Eclipse Extension Generator API is designed to be easily integrated into build tools like SBuild.

The Eclipse Extension Generator processes class files, and can therefore work on classes generated by various JVM languages, including Java and Scala and possible others. Let us know, If you can confirm support of your favorite JVM language.

License

Apache License Version 2.0

Annotating your Extensions

Simply add the annotation to your class implementing an Extension Point, e.g. to implement an Application (Java example):

@Application(name = "My RCP Application")
public class RcpApplication implements IApplication {
...

Generating a plugin.xml

Scan all class files in "target/classes" and generate the content of the plugin.xml (Scala example):

import de.tototec.eclipse.extensiongenerator._
val pluginXml = new PluginXmlBuilder(scanDirs = Seq(Path("target/classes"))).build
// write into file, e.g. when used in a SBuild build file
AntEcho(file = Path("target/classes/plugin.xml"), message = pluginXml)

Dependencies

The annotations are written in Java and have no dependencies besides an Java 5.

The generator needs the following dependencies on its classpath:

  • Scala 2.10
  • Javassist 3.16

The annotations in de.tototec.eclipse.extensiongenerator.annotation package have the class retention policy, which means they are retained in the class files but are not needed at runtime. So, at runtime you will not have to add them to the classpath.

Unfortunatelly, older and current (2.10.0) Scala compilers have a bug and those annotations end up effectively with runtime retention. Here is the ticket: SI-4788. Vote for it or even better, fix it, if that is not acceptable for you.

Downloads

In its current state, there are no binary releases. After some stabilzation and the addition of some more extension points as annotations, Eclipse Extension Generator will be release to Maven Central repository.

The Annotations:

<dependency>
  <groupId>de.tototec</groupId>
  <artifactId>de.tototec.eclipse.extensiongenerator.annotation</artifactId>
  <version>${eegVersion}</version>
</dependency>

The Generator:

<dependency>
  <groupId>de.tototec</groupId>
  <artifactId>de.tototec.eclipse.extensiongenerator</artifactId>
  <version>${eegVersion}</version>
</dependency>

eclipse-extension-generator's People

Contributors

lefou avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.