Skip to content
/ sqml Public

Eclipse plug-in for the SoftiCAR Query and Modeling Language (SQML).

License

Notifications You must be signed in to change notification settings

softicar/sqml

Repository files navigation

SQML Eclipse Plugin

The SQML Eclipse Plugin is an Eclipse plugin that implements the SoftiCAR Query and Modeling Language (SQML), which is a domain-specific language (DSL) to define database table structures and database queries. The SQML Eclipse Plugin is based on the Xtext framework.

1 Main Features

The SQML Eclipse Plugin provides the following features.

  • Tables
    • Database table structures can be defined and validated
    • Java code is generated from table definitions.
    • The generated code realizes the Active Record pattern. It enables object-relational mapping, and CRUD operations on database records.
    • CREATE TABLE statements can be generated to initialize a DBMS instance.
  • Queries
    • Queries can be defined in an SQL-like manner
    • Queries can be validated with respect to the defined table structures
    • Java code can be generated to execute the queries

2 Runtime Requirements

To write SQML code in another project, an Ubuntu 20.04 (Focal) based workstation is recommended, with the following software installed:

  1. AdoptOpenJDK 15 with HotSpot JVM, with java in the PATH (an upgrade to Adoptium JDK 17 LTS is planned)
  2. Eclipse IDE for Java Developers, e.g. 2020-09 (4.17)
  3. SQML Eclipse Plugin

3 Installation

To install the SQML Eclipse Plugin, follow the instructions on our Eclipse update site.

4 Building and Development

To build the source code, an installation of the Eclipse IDE for Java Developers is required with an installed Xtext plugin.

4.1 Building

To build the source code, the SoftiCAR Platform needs to be accessible on Maven Central.

External dependencies are bundled by the com.softicar.sqml.shared subproject and dependency resolution is done by the Gradle Build Tool. To gather external dependencies, execute this:

cd com.softicar.sqml.shared
./gradlew syncSharedDependencies

The projects can now be imported without errors into Eclipse with Import ... Existing Projects into Workspace. Future updates may require repeated execution of the syncSharedDependencies task when dependencies changed.

4.2 Testing

Automated testing through the continuous integration workflow is currently not implemented. Thus, testing must be executed manually from Eclipse on the projects com.softicar.sqml.generator and com.softicar.sqml.tests.

5 Releases and Versioning

Releases of this repository follow the Semantic Versioning principle.

     1.2.3
    /  |  \
major  |  patch
     minor
  1. If there was an API break since the previous release, the major version is incremented: 1.2.3 -> 2.0.0 -- API breaks include:
    • Incompatible changes to existing Java code which is part of the API; most notably: changes to (or removal of) public/protected classes/fields/methods/signatures
    • Changes in the behavior of existing Java code (except fixes of defective behavior)
    • Any change to a database table
    • Fundamental changes to the behavior or style of the UI
  2. If there was no API break but a new feature was added, the minor version is incremented: 1.2.3 -> 1.3.0
  3. If there was no API break and no new feature was added, the patch version is incremented: 1.2.3 -> 1.2.4
    • e.g. when only defects were fixed

6 Contributing

Please read the contribution guidelines for this repository and keep our code of conduct in mind.

About

Eclipse plug-in for the SoftiCAR Query and Modeling Language (SQML).

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published