<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>io.forgebox</groupId>
  <artifactId>ortus-orm-extension-extension</artifactId>
  <version>6.4.0.78-snapshot</version>
  <packaging>lex</packaging>
  <name>Ortus ORM Extension</name>
  <description># Lucee Hibernate Extension (ORM)

[![Java CI](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml/badge.svg?branch=5.4)](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml) 5.4

[![Java CI](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml/badge.svg?branch=3.5.5)](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml) 3.5.5

[![Java CI](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml/badge.svg)](https://github.com/ortus-solutions/extension-hibernate/actions/workflows/main.yml) Master

* A [Hibernate ORM](https://hibernate.org/orm/) wrapper for the [Lucee CFML language](https://www.lucee.org/)

* Issues: https://ortussolutions.atlassian.net/jira/software/c/projects/LHE/issues
* Documentation: https://docs.lucee.org/categories/orm.html

## Contributing

You will need to install the following for extension development:

* Java 1.8+ (JRE and JDK)
* [ant](https://www.osradar.com/install-apache-ant-ubuntu-20-04/) (for building the extension `.lex` file)
* [maven](https://linuxize.com/post/how-to-install-apache-maven-on-ubuntu-20-04/) (for other automated tooling)
* [Docker](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/) (for managing test database servers)

### Getting Started

1. Install the repo - `git clone git@github.com:ortus-solutions/extension-hibernate.git`
2. Make changes..
3. [Build extension via `ant dist`](#building)
4. Test via `./test.sh` (See [#Testing](#testing) for more info)

**Before you send a PR:**

1. Don&apos;t forget to run tests!
 1. (if you can&apos;t get tests to pass, ask for help!)
2. Format java source code: `mvn formatter:format`

## Building

Using ant builds (for now):

* `ant clean` - clean build directories
* `ant compile` - compile code
* `ant dist` - Package the extension into a Lucee-installable `.lex` extension file

Using the Maven builds:

* `mvn test` run java-based (junit) tests
* `mvn javadoc:javadoc` generate java docs
* `mvn formatter:format` [format java source](https://code.revelc.net/formatter-maven-plugin/usage.html)
* `mvn verify` Run OWASP dependency checker to look for vulnerabilities

## Testing

See Lucee documentation on [testing-a-lucee-extension-locally](https://docs.lucee.org/guides/working-with-source/building-and-testing-extensions.html#testing-a-lucee-extension-locally).

To run CFML tests against the extension:

1. Check out [lucee/Lucee](https://github.com/lucee/lucee) to the parent directory - `git clone git@github.com:lucee/Lucee.git ../lucee`
2. Check out [lucee/script-runner](https://github.com/lucee/script-runner) to the parent directory - `git clone git@github.com:lucee/Lucee.git ../script-runner`.

Next, start the test databases using the Docker-compose setup:

```bash
cd tests &amp;&amp; docker-compose up
```

This will start Postgres, MySQL, and MSSQL containers using the credentials specified in `tests/.env`.

Finally, you can run tests from the extension root:

```bash
./test.sh
```

To build a .lex and test it immediately, chain `ant dist` and `./test.sh`:

```bash
ant dist &amp;&amp; ./test.sh
```
</description>
</project>