Skip to content

kuseman/queryeer

Repository files navigation

Actions Status

Queryeer IDE

Query IDE based on Payloadbuilder built on Swing UI.

Table of Contents

About

Extensible Query IDE with support for Payloadbuilder Catalogs.

Queryeer

Usage

  • Download dist and unzip
  • Run launcher script in bin folder
  • Distribution folder layout
    • bin (start scripts etc.)
    • lib (Queryeer libraries)
    • plugins (Plugins)
    • shared (Shared libraries folder. Usefull for jdbc drviers etc. This is shared among all plugins classloaders)

Developing

Extending Queryeer can be made with a set of extension points.

  • ICatalogExtensionFactory

    • Adding a payloadbuilder catalog to Queeryer is made here
  • IConfigurable

    • Adding a configurable component to Queryeer is made here. This will enable a component to appear in Options dialog to allow for changing and persisting preferences to other compoenents such as Catalog extensions etc.
  • IOutputExtension

    • Adding an output extension is made here. To enable other types of UI output (like table and text) this is the extension to add. Queryeer comes bundled with Table/Text and File outputs.
  • IOutputFormatExtension

    • Adding an output format extension is made here. To enable other types of output formats (like JSON, CSV) this is the extension to add. Queryeer comes bundled with JSON and CSV formats.

Extension classes implementing one of the above interfaces or annotated with Inject is automatically discovered when placed in plugins folder. A set of services can be injected through constructor injection. Extension classes should have a single constructor or a constructor annotated with Inject

Each plugin is loaded with it's own isolated classloader so make sure that dependencies are bundled. Using maven assembly plugin is a great choice for this.

Enabling the plugin by placing the plugin distribution in the plugins folder in the unziped Queryeer distribution. Extra dependencies like jdbc-drivers etc. can be placed in shared folder.

License

Distributed under the Apache License Version 2.0.

Free for non commercial use