Organisation of Extensions

It would be great to get the extensions area of Lucee more organised.

There is a thread about ‘where’ extensions should be shown here

This thread is more about ‘organisation’ and categorisation of extensions by name/folder/etc

At the moment extensions are all just in one folder, with no way to differentiate (metadata or not) what kind of functionality they have.

To start off the conversation I’ll suggest some ways we could approach this:

  1. folder structure
  • Using a metadata-inspired directory structure : /type/subtype/extension-name.lex of some kind
  • Using a naming convention for files type-extensionname.lex
  • Using a orgnanisational prefix for file names : lucee.spreadsheet.lex or ortus.spreadsheet.lex
  1. metadata info

Current examples:

Manifest-Version: 1.0
Built-Date: 2016-01-04 17:44:59
version: "0.0.0.14"
id: "66E312DD-D083-27C0-64189D16753FD6F0"
name: "PDF Extension"
description: "Core Extension to integrate the tag cfdocument into Lucee"
lucee-core-version: "5.0.0.107”
start-bundles: false

Manifest-Version: 1.0
Built-Date: 2016-01-18 09:54:54
version: "3.5.5.31"
id: "FAD1E8CB-4F45-4184-86359145767C29DE"
name: Hibernate ORM Engine
description: Hibernate ORM (Hibernate in short) is an object-relational mapping library for the Java language,
start-bundles: true
orm: "[{'class':'org.lucee.extension.orm.hibernate.HibernateORMEngine','name':'hibernate.extension','version':'3.5.5.31'}]"
lucee-core-version: "5.0.0.48"

Manifest-Version: 1.0
Built-Date: 2015-02-26 12:25:02
version: "4.0.0"
id: "99A4EF8D-F2FD-40C8-8FB8C2E67A4EEEB6"
name: "Microsoft SQL Server (Vendor Microsoft)"
description: "JDBC Driver from Microsoft for SQL Server, SQL Server is a relational database management system developed by Microsoft."
category: "Datasource"
lucee-core-version: "5.0.0.019"
start-bundles: false
jdbc: "[{'label':'Microsoft SQL Server (Vendor Microsoft)','class':'com.microsoft.sqlserver.jdbc.SQLServerDriver','bundleName':'microsoft.sqljdbc','bundleVersion':'4.0.0'}]"

perhaps we could extend the metadata to add ‘subcategory’ also, so that administration plugins and other interfaces (like coldbox) can categorise the plugins also to make them easier to catalog and expose to developers.

Manifest-Version: 1.0
Built-Date: 2015-02-26 12:25:02
version: "4.0.0"
id: "99A4EF8D-F2FD-40C8-8FB8C2E67A4EEEB6"
name: "Microsoft SQL Server (Vendor Microsoft)"
description: "JDBC Driver from Microsoft for SQL Server, SQL Server is a relational database management system developed by Microsoft."
category: "datasource"
subcategory: 'provider'
lucee-core-version: "5.0.0.019"
start-bundles: false
jdbc: "[{'label':'Microsoft SQL Server (Vendor Microsoft)','class':'com.microsoft.sqlserver.jdbc.SQLServerDriver','bundleName':'microsoft.sqljdbc','bundleVersion':'4.0.0'}]"