From 20b507d71d130a3acac23f841bed606fa9194c13 Mon Sep 17 00:00:00 2001
From: adrian-velonis1 <85172912+adrian-velonis1@users.noreply.github.com>
Date: Wed, 4 Dec 2024 22:35:41 -0500
Subject: [PATCH] PD-5436 removing Databricks - ported to docs.liquibase.com

---
 .../database-tutorials/databricks.md          | 312 ------------------
 .../example/change/SetPasswordChange.class    | Bin 0 -> 1988 bytes
 .../configuration/ExampleConfiguration.class  | Bin 0 -> 1414 bytes
 .../configuration/ExampleValueModifier.class  | Bin 0 -> 1850 bytes
 .../configuration/ExampleValueProvider.class  | Bin 0 -> 1269 bytes
 .../example/database/ExampleDatabase.class    | Bin 0 -> 1667 bytes
 .../database/ExamplePostgresDatabase.class    | Bin 0 -> 1154 bytes
 .../example/executor/ExampleExecutor.class    | Bin 0 -> 6242 bytes
 .../example/includeall/NoBakFilesFilter.class | Bin 0 -> 626 bytes
 .../example/includeall/NumberComparator.class | Bin 0 -> 1165 bytes
 .../com/example/parser/ExampleParser.class    | Bin 0 -> 2183 bytes
 .../PasswordIsSetPrecondition.class           | Bin 0 -> 3679 bytes
 .../resource/ExamplePathHandler$1.class       | Bin 0 -> 1106 bytes
 .../example/resource/ExamplePathHandler.class | Bin 0 -> 1533 bytes
 .../example/resource/ExampleResource.class    | Bin 0 -> 1869 bytes
 .../resource/ExampleResourceAccessor.class    | Bin 0 -> 2291 bytes
 .../ExampleChangeLogSerializer.class          | Bin 0 -> 2691 bytes
 .../ColumnSnapshotGeneratorExample.class      | Bin 0 -> 1930 bytes
 .../RenameColumnGeneratorExample.class        | Bin 0 -> 3419 bytes
 19 files changed, 312 deletions(-)
 delete mode 100644 docs/extensions-integrations/directory/database-tutorials/databricks.md
 create mode 100644 snippets/target/classes/com/example/change/SetPasswordChange.class
 create mode 100644 snippets/target/classes/com/example/configuration/ExampleConfiguration.class
 create mode 100644 snippets/target/classes/com/example/configuration/ExampleValueModifier.class
 create mode 100644 snippets/target/classes/com/example/configuration/ExampleValueProvider.class
 create mode 100644 snippets/target/classes/com/example/database/ExampleDatabase.class
 create mode 100644 snippets/target/classes/com/example/database/ExamplePostgresDatabase.class
 create mode 100644 snippets/target/classes/com/example/executor/ExampleExecutor.class
 create mode 100644 snippets/target/classes/com/example/includeall/NoBakFilesFilter.class
 create mode 100644 snippets/target/classes/com/example/includeall/NumberComparator.class
 create mode 100644 snippets/target/classes/com/example/parser/ExampleParser.class
 create mode 100644 snippets/target/classes/com/example/precondition/PasswordIsSetPrecondition.class
 create mode 100644 snippets/target/classes/com/example/resource/ExamplePathHandler$1.class
 create mode 100644 snippets/target/classes/com/example/resource/ExamplePathHandler.class
 create mode 100644 snippets/target/classes/com/example/resource/ExampleResource.class
 create mode 100644 snippets/target/classes/com/example/resource/ExampleResourceAccessor.class
 create mode 100644 snippets/target/classes/com/example/serializer/ExampleChangeLogSerializer.class
 create mode 100644 snippets/target/classes/com/example/snapshot/ColumnSnapshotGeneratorExample.class
 create mode 100644 snippets/target/classes/com/example/sqlgenerator/RenameColumnGeneratorExample.class

diff --git a/docs/extensions-integrations/directory/database-tutorials/databricks.md b/docs/extensions-integrations/directory/database-tutorials/databricks.md
deleted file mode 100644
index 897e4cb..0000000
--- a/docs/extensions-integrations/directory/database-tutorials/databricks.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-title: Databricks
-description: Learn how to use Liquibase with Databricks SQL Warehouses to automate database schema migration.
----
-
-# Using Liquibase with Databricks Data Lakehouses
-
-<small>Verified on: February 29, 2024</small>
-
-A data lakehouse is a new, open data management architecture that combines the flexibility, cost-efficiency, and scale of data lakes with the data management and ACID transactions of data warehouses, enabling business intelligence (BI) and machine learning (ML) on all data.
-
-The lakehouse architecture and [Databricks SQL](https://docs.databricks.com/en/sql/index.html) bring cloud data warehousing capabilities to your data lakes. Using familiar data structures, relations, and management tools, you can model a highly-performant, cost-effective data warehouse that runs directly on your data lake.
-
-For more information on Databricks, see the [Databricks](https://www.databricks.com) website.
-
-## Prerequisites
-
---8<-- "database-tutorial-prerequisites.md"
-
-### Setup Databricks
-
-1. Create a Databricks account and workspace
-
-    If you don't already have a Databricks account and workspace, follow the [Databricks Getting Started](https://docs.databricks.com/en/getting-started/index.html) instructions.
-
-1. Navigate to your Workspaces tab and click the Open Workspace button in the upper right of the page.
-
-    ![Databricks Open Workspace](../../../images/extensions-integrations/databricks-open-workspace.jpg)
-
-1. Create a SQL Warehouse
-
-    If you don't have a SQL Warehouse set up, follow the Databricks instructions on [Creating a SQL Warehouse](https://docs.databricks.com/en/compute/sql-warehouse/create-sql-warehouse.html)
-
-1. Create a catalog
-
-    If you don't already have a catalog setup, follow the Databricks instructions on [Create and Manage Catalogs](https://docs.databricks.com/en/data-governance/unity-catalog/create-catalogs.html)
-
-1. Click the SQL Editor option in the left navigation, enter your SQL to create your database (also called a schema), and click the Run button
-
-    `CREATE DATABASE IF NOT EXISTS <catalog_name>.<database_name>;`
-
-    ![Databricks Create Database](../../../images/extensions-integrations/databricks-create-database.jpg)
-
-1. Your database is configured and ready to use.
-
-## Install drivers
-
-### All users
-
-To use Databricks with Liquibase, you need to install two additional JAR file.
-
-1. Download the jar files
-    * Download the [Databricks JDBC driver](https://www.databricks.com/spark/jdbc-drivers-download) (`DatabricksJDBC42-<version>.zip`) from driver download site and unzip the folder to locate the `DatabricksJDBC42.jar` file.
-    * Download the [Liquibase Databricks extension](https://github.com/liquibase/liquibase-databricks) (`liquibase-databricks-<version>.jar`) from the GitHub Assets listed at the end of the release notes.
-
-1. [Place your JAR file(s)](https://docs.liquibase.com/workflows/liquibase-community/adding-and-updating-liquibase-drivers.html) in the `<liquibase_install_dir>/lib` directory.
-    * `DatabricksJDBC42.jar`
-    * `liquibase-databricks-<version>.jar`
-      
-    !!! Note
-        If you are running your project on MacOS or Linux, you might need to run the following command in your terminal 
-        (you can add it to your bash profile as well) to allow the dependencies to work properly:
-        
-        `export JAVA_OPTS=--add-opens=java.base/java.nio=ALL-UNNAMED`
-
-### Maven users (additional step)
-
-If you use Maven, note that this database does not provide its driver JAR on a public Maven repository, so you must install a local copy and [add it as a dependency](https://docs.liquibase.com/tools-integrations/maven/using-liquibase-and-maven-pom-file.html) to your `pom.xml` file.
-
-```
-<dependency>
-    <groupId>com.databricks</groupId>
-    <artifactId>databricks-jdbc</artifactId>
-    <version>[2.6.36,)</version>
-</dependency>
-<dependency>
-    <groupId>org.liquibase.ext</groupId>
-    <artifactId>liquibase-databricks</artifactId>
-    <version>[1.1.3,)</version>
-</dependency>
-```
-
-### Verify installation
-
-Run the following command to confirm you have successfully installed everything:
-
-```
-liquibase --version
-```
-
-Review the libaries listing output for the two newly installed jar files: `DatabricksJDBC42-<version>.zip` and `liquibase-databricks-<version>.jar`.
-
-![Databricks Install Verification](../../../images/extensions-integrations/databricks-install-verification.jpg)
-
-## Database connection
-
-### Configure connection
-
-1.  Specify the database JDBC URL in the [`liquibase.properties`](https://docs.liquibase.com/concepts/connections/creating-config-properties.html) file (defaults file), along with other properties you want to set a default value for. Liquibase does not parse the URL.
-
-    ```
-    liquibase.command.url: jdbc:databricks://<your_workspace_host_name>:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/1.0/warehouses/<your_warehouse_id>;ConnCatalog=<your_catalog>;ConnSchema=<your_schema>;
-    ```
-     
-    !!! Note
-        Your base JDBC connection string can be found on the **SQL Warehouses -> *your_warehouse* -> Connection details** tab.
-
-    !!! Note
-        Additional information on specifying the Databricks JDBC connection can be found in the [Databricks JDBC Driver](https://docs.databricks.com/en/integrations/jdbc/index.html) documentation.
-
-1. Specify your username and password in the [`liquibase.properties`](https://docs.liquibase.com/concepts/connections/creating-config-properties.html) file (defaults file)
-
-    1. The username, in our case is just “token” for the User or Service Principal you want to manage Liquibase.
-
-    ```
-    # Enter the username for your Target database.
-    liquibase.command.username: token
-    ```
-    
-    1. This is the token for the User or Service Principal we want to authenticate. This is usually passed in dynamically using frameworks like GitActions + Secrets.
-    
-    ```    
-    # Enter the password for your Target database.
-    liquibase.command.password: <your_token_here>
-    ```
-    
-    !!! tip
-        To find or setup your Databricks user token:
-        
-        1. **Log into your Databricks workspace**.
-        2. **Access the User Settings**. Click on your profile at the bottom left corner of the workspace, then select "User Settings" from the menu.
-        3. **Navigate to the Access Tokens tab**. In the User Settings window, you will find a tab for "Access Tokens."
-        4. **Generate a New Token**. If you haven't already created a token, you can generate a new one by clicking on the "Generate New Token" button. You'll be asked to provide a description for the token and, optionally, set an expiration time for it.
-        5. **Copy the Token**. Once the token is generated, make sure to copy and save it securely. This token will not be shown again, and you'll need it to establish connections to your Databricks SQL Warehouse.
-
-### Test connection
-
-
-1. Create a text file called [changelog](https://docs.liquibase.com/concepts/changelogs/home.html) (`.xml`, `.sql`, `.json`, or `.yaml`) in your project directory and add a [changeset](https://docs.liquibase.com/concepts/changelogs/changeset.htmlhttps://docs.liquibase.com/concepts/changelogs/changeset.html).
-
-    If you already created a changelog using the [`init project`](https://docs.liquibase.com/commands/init/project.html) command, you can use that instead of creating a new file. When adding onto an existing changelog, be sure to only add the changeset and to not duplicate the changelog header.
-
-    === "SQL example"
-          ``` sql
-          --liquibase formatted sql
-
-          --changeset my_name:1
-          CREATE TABLE test_table 
-          (
-            test_id INT, 
-            test_column INT, 
-            PRIMARY KEY (test_id)
-          )
-          ```
-          ---
-
-    === "XML example"
-          ``` xml
-          <?xml version="1.0" encoding="UTF-8"?>
-          <databaseChangeLog
-            xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
-            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
-            xmlns:pro="http://www.liquibase.org/xml/ns/pro"
-            xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
-              http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
-              http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
-              http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">
-
-            <changeSet id="1" author="my_name">
-              <createTable tableName="test_table">
-                <column name="test_id" type="int">
-                  <constraints primaryKey="true"/>
-                </column>
-                <column name="test_column" type="INT"/>
-              </createTable>
-            </changeSet>
-
-          </databaseChangeLog>
-          ```
-          ---
-
-    === "YAML example"
-          ``` yaml
-          databaseChangeLog:
-            - changeSet:
-              id: 1
-              author: my_name
-              changes:
-              - createTable:
-                tableName: test_table
-                columns:
-                - column:
-                  name: test_column
-                    type: INT
-                    constraints:
-                      primaryKey:  true
-                      nullable:  false
-          ```
-          ---
-
-    === "JSON example"
-          ``` json
-          {
-            "databaseChangeLog": [
-              {
-                "changeSet": {
-                  "id": "1",
-                  "author": "my_name",
-                  "changes": [
-                    {
-                      "createTable": {
-                        "tableName": "test_table",
-                        "columns": [
-                          {
-                            "column": {
-                              "name": "test_column",
-                              "type": "INT",
-                              "constraints": {
-                                "primaryKey": true,
-                                "nullable": false
-                              }
-                            }
-                          }
-                        ]
-                      }
-                    }
-                  ]
-                }
-              }
-            ]
-          }
-          ```
-          ---
-
-1. Navigate to your project folder in the CLI and run the Liquibase [`status`](https://docs.liquibase.com/commands/change-tracking/status.html) command to see whether the connection is successful:
-
-    ```
-    liquibase status --changelog-file=<changelog.xml>
-    ```
-
-    If your connection is successful, you'll see a message like this:
-
-    ```
-    1 changeset has not been applied to <your_jdbc_url>
-    Liquibase command 'status' was executed successfully.
-    ```
-    
-    !!! Tip
-    
-        **If you see this error message:**
-    
-        ```
-        Connection could not be created to jdbc:databricks://...; with driver 
-        com.databricks.client.jdbc.Driver.  
-
-        [Databricks][JDBCDriver](500593) Communication link failure. Failed to connect to server. 
-        Reason: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
-        PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
-        unable to find valid certification path to requested target.
-        ```
-    
-        **This is the likely problem:**
-    
-        This issue was seen with Java 1.8. The SSL certificate is not available in that version of Java.
-    
-        **This is the suggested resolution:**
-    
-        Upgrade Java to a more recent version.
-    
-
-1. Inspect the SQL with the [`update-sql`](https://docs.liquibase.com/commands/update/update-sql.html) command. Then, make changes to your database with the [`update`](https://docs.liquibase.com/commands/update/update.html) command.
-
-    ```
-    liquibase update-sql --changelog-file=<changelog.xml>
-    liquibase update --changelog-file=<changelog.xml>
-    ```
-
-    If your `update` is successful, Liquibase runs each changeset and displays a summary message ending with:
-
-    ```
-    Liquibase: Update has been successful.
-    Liquibase command 'update' was executed successfully.
-    ```
-
-1. From a database UI tool, ensure that your database contains the `test_table` you added along with the [DATABASECHANGELOG table](https://docs.liquibase.com/concepts/tracking-tables/databasechangelog-table.html) and [DATABASECHANGELOGLOCK table](https://docs.liquibase.com/concepts/tracking-tables/databasechangeloglock-table.html).
-
-Now you're ready to start making deployments with Liquibase!
-
-## Troubleshooting
-
-If you use v1.1.3 of the Liquibase Databricks extension, you may receive this error running Liquibase:
-
-```
-Unexpected error running Liquibase: 
-Error executing SQL SELECT MD5SUM FROM main.default.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL: [Databricks][JDBCDriver](500540) Error caught in BackgroundFetcher. Foreground thread ID: 1. Background thread ID: 20. 
-Error caught: Could not initialize class com.databricks.client.jdbc42.internal.apache.arrow.memory.util.MemoryUtil.
-```
-
-To resolve this, append `;UserAgentEntry=Liquibase;EnableArrow=0;` to your JDBC URL. For example:
-
-```
-jdbc:databricks://<host>:<port>/<schema>;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/1.0/warehouses/<warehouse>;ConnCatalog=<catalog>;UserAgentEntry=Liquibase;EnableArrow=0;
-```
-
-## Related links
-
-* [Read the Data Warehousing Blog on Databricks](https://medium.com/dbsql-sme-engineering)
-    * [Database Change Management on Lakehouse with Databricks SQL and Liquibase](https://medium.com/dbsql-sme-engineering/database-change-management-on-lakehouse-with-databricks-sql-and-liquibase-c3c238781616)
-    * [Advanced Schema Management on Databricks with Liquibase](https://medium.com/dbsql-sme-engineering/advanced-schema-management-on-databricks-with-liquibase-1900e9f7b9c0)
-* [Databricks GitHub Demo repo](http://github.com/CodyAustinDavis/liquibase_demo)
-* [GitHub extension repo](https://github.com/liquibase/liquibase-databricks)
diff --git a/snippets/target/classes/com/example/change/SetPasswordChange.class b/snippets/target/classes/com/example/change/SetPasswordChange.class
new file mode 100644
index 0000000000000000000000000000000000000000..e5a274947a674ae150bd632e9eb0aa033887278d
GIT binary patch
literal 1988
zcma)6YjfK~6g}%WwquKin%L=swCaPzc4)*KijzR<lD6Qcp{8asd|=kr*4d6MxmuaR
zNB$AaKr+yQAHa`dxGPzfClQ^D$J*Vyd+$Bx?A`m%zkmJ>-~&9)Bg1gB?+q>SBOi_&
zVf7EWI}lb!1p8d67oKmoLQ5W5hO3TzK9)VMrssBgD)4zfhz>Cn#!C1u9}0$Y`x*a%
zTMosuI)N|UL6i1Jlc)^2P3g*Dn_;e2?=oato-K-)gJGb61%}18bj99y*c1LYyyt`w
zy*_uk+?RSiF=m59sTfw<XJJ7I$^+pFp9i87&}S&zfV}V2+6gtA2R!6>cQR?#znj@s
zv7gm>?o5L;^H^dqlPKxO@~AS@(oXd~Usz8@lsrLJzy*c{J{o<mWmQE~a7n9knc;Tr
zw7h4r)Vl@b7r=1EKpr_A(ll@l*BQ=p+ujo|TAni=x?S#!N%H+yr+L(SCi+3Mo+?io
zBa-PR!}7_>xHFcHE&Kvj8H#ZUZLJk?12s*!&QM7~QtxUe>jvhLE8!NbJT@3EC-R=U
zN(1lUT>>CfpN~jrU6#9^AKx_9QCgbQ!fIsi8}x)eq(Y_(60Xf~>rB2AuFV2IW?&)5
z+Xg;`ejR}qL1I{{)zh+8uw`HypD~<MBKY=D_@d=-QjB3cHG85(Qjn<^L)l}s7*=L3
zG`3o?NCdPx5JAgxpGtqo1L?UBg;IPV3b;#!6*ms^kSnt%glk4k#WtUMzR6G`=O@!P
zQ6e5QE82_w=_KtXt769+`+c!1buXx%>QEcHs2DCj9=m}Yimp_Wy2Os_dh}okBR%tL
zGqfg+E+!Q<Frt=?x>w1j67l6odq&xm$xU6FYsyTTSYhN#&zHeZbJS2N0sZwXLqDp?
za7M3;#yss%TcdB0Ru+wn#`(rEO23B3UZZa=G%n&C&5h^)7V$c*=yjq@U+w%e1<KI4
zmHi8E9L&8$<$$sB@-Z%!-)#Jbl_Okzi5myyw~n#4PKL%Gcsqk5yjT8+K1cZE2%DW>
zC_n}}X_b(I+CYwG=dp}SxPVPsYY^2a(F6pg#OK%{7}PP*oWR*8#+u7gn6yPnb<QYL
zk|m;cWro_)l-d{5Scxta;-vHS8Rz+_^DgRBAX;`(v9bO;8i}gK(7H-A*JeoNrlfM=
zRcTW9Qh}_T1ky+aaz7o&%1Iy_l+OAeAi7o<!F@n9GWZf-(O4l%n>2o?a36aLkFfs$
GU;hVnIoHMj

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/configuration/ExampleConfiguration.class b/snippets/target/classes/com/example/configuration/ExampleConfiguration.class
new file mode 100644
index 0000000000000000000000000000000000000000..3e88b01d71b291c7defcb597d6e3986092fa7fb1
GIT binary patch
literal 1414
zcmbtUZBG+H5Pp`IUV9uZ9wLH*2cov99Eb{7LV|#XSn)%fCL|_gdtJ)n^$zdF=+81H
zkZ9r$@JAVEuT6OoK2$&K&feV4Gc(W3?62S7e*$=lqJ|!ZImd6>;xlg^xx#jQZ(laz
zfJf5z?5&n|<E&CcAH&cg|HN&Vdky<t?NB(8h7`lRD?i4v#>0y^>v80}KCg@VIjE39
zf4jR^-l|l#cV06rl&%6eXSON!r6*N@MTSgSHas51fneC`)_%2gnnyVbq}M2}5oUVT
zag~QPhTeRk%Fwsr*M){0!%~+K&b*AJTNgnZ*C^JGv5qW;4P3_vLu$3{Yb5`7IE88&
zqh#6qQWjA}0csdKM}I49g?G!qZA=heUGYP7>|KI)#>0lo!?0NBma|qyimEj3Fifvo
zkq9FzY=vh<2RyPO{y~Hmx59)|9aFfgVVYsNL%@YbyQ01wUj}Ayk0DE5Hbv+J@<^4R
zVds(*|05$6=>r3K6d3wzs&WjA`K|$r88AFFpdrnWD^W3a;$}?*6<%|xE@sJhxLf6c
zRNrl-mbeoE!^*!^L<B`0y;x9PWl+mT2a@J%zSP}xQ}^p-KMox6N~&1LE_(vz)YLE-
z+ny(aq>V(VVVS}1vc3#jdp>CBk`wh6)qv)XRzIyVMIy-zJy<=^X{9j$gEWJrd7s<^
zCVwEiYYv^jd^2m_FmE1X+?+gyb&UJpF#9#JeMI{>QnU{c&LB)0nNj3OH;4%g;W7PD
zxH^V02b;c_VzTYYCdo+GKYN1tQ@~WBOm&Ru0-j)zF80v-s`h7iPST`P7E4&6M5ai-
GK;{pbaFz1_

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/configuration/ExampleValueModifier.class b/snippets/target/classes/com/example/configuration/ExampleValueModifier.class
new file mode 100644
index 0000000000000000000000000000000000000000..89ff099cc990fb9e636d7bbda7fb351e0bb29298
GIT binary patch
literal 1850
zcmb7ET~iZR7=8|kYzV7B6a?!BTG0d|OBJyuKt<Hn8pM$f9ldcjn`2zM$%c~+Q?B|y
z`Wt%VO`Opg$15*7(|^=)`kdWmO!%<zV)vZ$em?K#-=E&T2QZJ4fj)s*$FEuPce~c`
zq~-Yamu|JC?7;Qw*8PaOX?rcX=2zU8u2cq+0>fMOj%|5%y=twOx1<vo=ohd&ce~}5
z?dE<vtFcvC=`tnIzv$N8U|ArM&20)KSN)1iBY{B^22uh;CATggw`ygnezD7*6v&i(
z$M!aD<?44#Oa`yqrode3>q03Cq^dGlR~4y32oFi{ccfBog|711QjY-@HTZ!Iw_3M@
zmZIvNo>do1pHsOJD7RiMF4J5Zr!iq*T;OVt7)+eOH&H-gk_Ap>a~;N`Iu#9^>ndO5
zGmW#jU}6#%X(8|<;(iM;ycE8rP-%U2rS#(7U9CA~;tH;^nsU2kdo09g_Mqe3a|1bn
zsiVSqqWm4EJ?ao0{)~w{t`RIt)WsCYF|wZQ6w}DUGBKwE8=|47geaSVtUQvtns?pA
z4b3yjTX6!yCnJTM1iDozJB5bd45~^tx4nX8dAjvpky5xhf8)AU+pUySxWzPuJ;`KD
zD%tRCN7iIL(AIC8D1coy_&EeN+QJvm?@dZLe_<Wt&{Y`9lAa5W%O9Nyj_cBq@`IGP
z`iICImB%k2iQ4myi40Z*rjPFRuCj$g((i}sf+ak%fP0SPR$%%}r==8A8uxYPU=#vl
z-FsoTv9}wRdUbT@Bnlkg2yExKHM<e-n)HU>QjUD!>TNV}*oK_d6D{y-2h6?n|6j8A
zEyzP5;Uc)K_#NXC*C#h6{{wtkJO$5V({GS|%}XCl{`*6sf#bZJkpNC$h%ZhTM)=pt
z*LZ5>#BlmA9-XR#9jb{~b%fPFNvTtz>}Y7>A0kQcy*$&#*aw_l%YVdBzK!#lOKn{K
z6Uo;z?~r{)?sOZo(eYhoKC=*Azkh?pHh$2+lOgbh(C;v<j$oYrCg|-9MsXfvnBt1a
zlR8W49I3ZRFOa{4bD`E`gd|2wOt_0x2AIME?%_U>KcJr|9h&zec|VadfWCh*Zg8zp
N<RJ-t_&E;p(SOeL`EdXM

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/configuration/ExampleValueProvider.class b/snippets/target/classes/com/example/configuration/ExampleValueProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..926bb9b3043013cdf39fbcace4516711cf275c96
GIT binary patch
literal 1269
zcmb7ET~pIQ6g}G(l9pm2K=}|6{4A|BsDMa;83%P_rV3*n93QvoQWo2!rW=O-2Y-qW
z`XVYbK0E#>$D1_8fWG*$clYi&_v7qMe*XIQ9l#PcG{hK+meVxFF>kgS!n7QFU)DXB
zE9uzgldgA<H$1WHI!Cf5Tn!0^jfQ;Z$trJOWIU?2mCG&loVT{3q0WV1=wFw%RGSR(
z-25IxV#}$C6yivx(T9G9Oj+9Eh1aYK_Z6=;1cOm_EZ*4TuJq5LGocP-n_;p1e=U?4
z2J1rYy227QVOtcQ>eyx&C2z&?TuVF_ZOfG{Uj=gK=F5lth?@;=*UgG@rCl%S7@;ts
zLbFG{MAR1rpw=0NdlXN}hDk2UnXJgV&6Vd8aO~p!dOp8d(lANXAXUJ7#@h$PO<@8_
z9n+NWO!uPaHgwF8Fo(6OwbtycnP!bE?!U<ZW^ql!9O3`OqBv<>#|`SW<tc{MT%@O+
z>Y=by>2FW8@erir7Q-b+9SFDhR&<JFg^nD9-t2UB(2-{t`ctaQ?V8inaED<kD5xzg
z&y}iUR{V{48QiB(K+<2#G!~Iz&}?z6wr!QdJuGRs-;*YI1@eo!aMM`E3PA(?clH^w
zx$S7pA&k`T4<IxxnQoVnhsmCwtxl^qU(4sA>k)mzDTsJNc{V9msyjqar9Zio|N4rG
zz7CiJy#{@XK!SEO`Lt?uGRZQsefbmUpJ)?9idO#`NMeB2bQeH&kWTa<$k6JOi)4LV
zVi-R@kd1N&BiuyDO<)MaA$K9<#tq}+1*#FD#?Ppu7^4K)06QL}e^0%{=)7`@i8m*h
zDi@5)#+9$Q8prE`anrcn+s>b&K!AnMD1O1+(CcT72hC<l4`3WR4gUxxF@q`kWlaZF
eWV;!{Ds*c30amH>hs5xO>3Y_JW=iCXVf{BUC@EzC

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/database/ExampleDatabase.class b/snippets/target/classes/com/example/database/ExampleDatabase.class
new file mode 100644
index 0000000000000000000000000000000000000000..37e6653dd58e538d634ce51b80f2c5b3478ec321
GIT binary patch
literal 1667
zcma)6TT|0O7(Lq-0;LL+i;5r@xwL={UQs~>3(nN(05do|__j?KSSC%%CSkze<b%F=
zd+-PN5BxKZU(%$FrQ`6jo83L<`_6a1-TeCV<0pVe*wm0<m^JL0F3x$aZVJ81U0&gi
z(6<{KTj5$miebT&r=ARso4C!2<0@{rZ>tp}0yA{4OG~;h8IrmD0Yj>2S4A30^k&e7
zZifD{w8V~As|fXuS4_c>E!ze+54e*4I^0aT$I@Y#FJDFC8bjZaaQBq7m2@wH+$9Zz
z3`;HDj!<XP5GEyaZKa1``9W0o8z&5t(ka?X3B!%*Df!magynKq+7`oNuH1^)bRt3*
zZObAuA=mQn8PeP5hN$~XN5d$?T#G8A6FuTKv3<CSF%7r=!T%>!2DdTJFiHkQvG$Z*
z^$d51*T~-CT)uq5&$w=K>qy^sm9&o5dT@uKH|q53G^Q}4VVYr}9h$*i%u-v$smD#~
z$Ve_0ZMSkl^#;XeBZ(~&=-OP-Ertxq-#@lhAi4*61}(gp3=@87;*fi0rwV(pOtQmL
zrXmYyE5=gtOenfdaqXcK9nD#xI_csSLJ5UxrLYyoVB|qIW<eN+;d(3I9@XJH6^~uA
zTyZ4SS`zr3Ok)+#G(2S(Z227`GI$QU(ApU{J+XU8oz0ax1!9<Syn3BdIVE~=lAGoQ
zxg?bGpHa~^y_!W@=^4^h9Eza9^K$Ck5OkK_w>@QuH`0HG!_jRB-+jSXhG|d;`egvU
z^hGb2MvYcF&5Y)*#joi3OdkoPY4ndlfIb>C4FJv8XhjC0pGKd&OtX(mq(1s%jM*1s
zCYsDFh6puG*c9<bf*2dLlc1f<(s$gTmP~xXWP7xMAlhgH7e@1S&0#)Juz+!zeMR?z
zHIU5aKD9|2iAhR^K~h-kKwWC5j&-0i%2f!nuF~w+kj(1s)XA9iC@TSR9}fbl59ue~
ykiHVE$@=W$Z+OxkXEr9GyJ_e;UWDvsE0XQz<zviND_&k^UTR{YBlA_@>&9OUFlc%J

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/database/ExamplePostgresDatabase.class b/snippets/target/classes/com/example/database/ExamplePostgresDatabase.class
new file mode 100644
index 0000000000000000000000000000000000000000..480eac6c9fef9fda632269c9ca25171e405bc911
GIT binary patch
literal 1154
zcmb7DQBM;=5dNmETxqLdg{oKtRHOyuUVOtCW5I-^L6Q<4eA`~vvgCRTdsl+~CLi=g
zqYwT7f0S|dde_#b8hx3$nf<=mZ)WFy{QUMEz*D#mGK6hU_gr};dgs1$J0cQo5lVM|
zkT}v|)HO2POY#nKgqp7|`YMJE@t!u)okSC6o~b}Z&k5OD{e+Nf=#DHPi`f#cVTLf*
zRDnF~_uA4Ni?%Nb<)-$8e<F;sagxkMrz#}uH2+8IE}__!(UDQwsOVj+;lRO7!q%vP
zP?}5SNuMu`v~d%#dM`Vz!3kkSg$-?t^rCbM2X<CH8AKvdIv{M;nxl%tk)-H`4gw}K
za<~45P}sln<hcz)2NlBlh$_<)H{}koMcl!XgS)@s|8i9c_fRENcmQdwBcnTgFFF)G
z9`i!2-aHeR!u3Vabz6~9L3cNg`-Iu#>Gxh1u!;u`)(G>H&=MZv5kIfI=nJ1;X0bL_
z?REQ%`;D6|rxHg)AZ+~Ov<M}Z-#XPM7M(|(;3S($ShlUnx1#S)>oAXPmYuY+nvQ^{
z-_m{K$ydtmTJ;ZGzGK_P8hB;+M**)Y*>z>>aOAQlo8A0^{3rg%pupB1g8@ahr2&Bb
zb&d!(Fvr%Cx7k}<CjY_OF=la$nHe(6xW%Xi#^#u}7}t2gnG9!2TVHXT|Cr^^SedLg
zA6Kgka7i_*YaNec1skZcw~C&`F_10SK2Atl9FvqyisZ04g}OCKU7A8AzRUK!^9$%p
B4=Dfu

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/executor/ExampleExecutor.class b/snippets/target/classes/com/example/executor/ExampleExecutor.class
new file mode 100644
index 0000000000000000000000000000000000000000..2ad252013e83cd230deef6d708bd62e302a5c24c
GIT binary patch
literal 6242
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
F{{t(S?IHjG

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/includeall/NoBakFilesFilter.class b/snippets/target/classes/com/example/includeall/NoBakFilesFilter.class
new file mode 100644
index 0000000000000000000000000000000000000000..a39d878e6f205695f54af966dd07154ce86f6f90
GIT binary patch
literal 626
zcma)(%}T>S5Xb+UrcJG_)%yL7AlNE27jKHF1wn{asCe+U*)Hw2+eFhud=;O-ix)2n
z9(({FN}Mzmzb+m!vokyM%lv2G-d|n;Y-81e!LT9xo-J>A?@CKsc|u1`$+foY{vq!k
zDJ}bCLK#>v8OA&OhTEEZE&J5%ND*4dFsy5J9VwUhr7hZYC$-<Qj}z2^)=57@W><MC
z++#?UD;ErA&2P#aQW(v{LYATEC{Na-o-2cM?rO<Ua(uz{1rJml50hrtR(*zw^UuL|
z7_6Z#hUv2NC7}@p%4_XZF0+_qNLO9nt>!R|Sqn2iv?hgl%we7(D||2H%A*+;ztd`M
z9yH{2Bt0RC$xuj^;rOjH9=2mOe|}9xjgX7(3BMYu%QgHc5HemoP5b*1sxbj;pdHee
zre`$B)Aq=YP-K&5<kOqa$UP3O^JFtg5(PTvhvzXADI%GeAR9N=31*NlZk0+;n7V_N
ox`$~#P%1@jpO}#WW+o{`f}tiXV39yeRF{TP*pCNUroh0;2WH=n8UO$Q

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/includeall/NumberComparator.class b/snippets/target/classes/com/example/includeall/NumberComparator.class
new file mode 100644
index 0000000000000000000000000000000000000000..37884293ee903893b9381ebf0cdc0af17da8770a
GIT binary patch
literal 1165
zcma)5%Wm306g>k56UQV#32pjLUtnHtXj)YzidsdAgoKg>QT79w5=X{Hj*0S7U9=lg
zby0QQkE(iyae_lzsf!ukxpU^6Gk30k{`&SEz!u)<NHCNK{>T;=d^C22?RW!saxA#(
z+WV7HUj)1UXv_m1`hgCOA$Q8px$SaqXdm=X#URv?W+=|GlhASPIi4ZC?RZYO!;q|4
zM-1Aoe=H0nv1~#|hGDhqctXh>^1dq=3SED|-6I}2avdeL@WeS|u)6<gw9TLslx!1Y
zxze3m?uCKl4cmWatd0SOTPBKFW5|n(FyMo5&v7Grf9J7cL>(^_LlLwM+{U_&JH#^A
zjW$i(#XW|l$lRgNP>S2T;;=dlsWA^vHf2TTG?D#iv&FDH1E~s<{TTF$D#ElBCWEK+
z7>#B%gXat|P==+Wa^qQ*h>0p{3}zt4E+2?JCpZfk-p1YjyO=Q_5lB|0VWKIktDkds
zA`U(-)Ks-o{B5F)dYerXIpi6Po<9ksA=xf#i#^(u#i9!LoT10ViEM!Fn423K3+)=m
zMXq<+*r2vZ(n!${qtTc8mgXf|+4Q9vB2~SF@r8l}Oq$awi7drt6t7^FR#au=X_kjQ
zLQBeGwRVZZezi{XJFT&<O;P$pdBwFt(ja`AUMfp$l5<O)gW@Cx+{c5NP7x0&N)UPl
zkMNkzX36dbMH*$Pu_NvGw38qvvsQRgcs9k0uc&{%)>Qs;Gp&-sU2B<2EBAqJBCjuR
k(jYeJGFz?vK)Ft1ikI^%C^|NylcEW<X7ek$h+Mt?4gCQGj{pDw

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/parser/ExampleParser.class b/snippets/target/classes/com/example/parser/ExampleParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..dacd0324bd78406848f916c32286f2935e0df88d
GIT binary patch
literal 2183
zcma)7TXWk)6#mwcy{;^i^b%4vC8RASaok3Pd+nCexCse3ZK#7w+RzzA-mz6|%SdvY
z@DKPQOka3_mt;z3=o`%NkKloFR<dOo2k1D_YIo21&h0x#zyI~~F96=fR~!k3S<7h|
zV$W=Kn!@Oqt|we$CERWXI}U|m;-UG-G@53+Zrt8|C@h~NMY>J<o36cUdXZ+SK_a5;
z)I(i{)K$A}`yVlk&F88NO3A4S6=TR~;7Bu!m+iK=)otwxcgx&u3WgJ9$1<B$)3xQk
zcc}Oc+haIi{y%Sv44Jy{H(lFtZGS(oyUuZvAwO`IVtiy<qDh8)$2EGw_P3%|32zwE
zUboY6T%U{<=F5ZVE52*D>&5Z_%oU!~buD4s>Al>rEa7>MTg=^4F$JCD^iTpr2n}a2
zP0spG*?BD75+#x0)O>E#RvNES7>liaiT1jNS)3#PM7!qQwfzRe<PrYm?lEMoelb?<
zFtH<HkY9cG`(86#e5v3Vk^x&7zB|Hx3?lTR>C}xlIn0*uh3ma!B9DZ-Y5Jz*UIa_E
zS6B8d(eZ7k?Qtv&6<zdihWzkEq``5Cf*%xi;P{9o6?rU51{?p9{%QtGc!%R{h6@A4
zey&HTqES1(7czHc&-Q$x7{k&LdCkQ#F@jdi-~(LY_>f`xKa6T9fKoN?bVPf--Rb&7
zNMW`Zruyu&9V2#8RB;X0IjD(G1`Ha$*6^`x<fPSfJZkM_+~g?rMT3d4)o`81vY9ok
zV3mkz)@l`MFABgDHHOpiKqKK|uBu`UpK`1Zp+)u5@R{r&mD+uSkjy$+&tXHB<rc$2
z9JJrHg9eD3VbD8`eb1(`6LConAxR@L9r7TYX+7F9#0xPXN~BKXug`FXW03&ET&#f6
zu`xn0s!zs_*Jd)D3&W`=DMnMHcNgS3$`0LSE52!cy<v8OA<98BVQ#>Sf%PN2rnFXq
zsn#1ELtlhNnMRxgO(ptI(#J%hmBu+ekI~McmC>49IE4BWy(FN~GZh?a$kMwO3g8ut
z(~iavj?+^rU!qkiCzK!LGp0Ea(@aE~r!d*mTqEf*(oypVc=g2D1I+vrVKP9N4W)Vr
zB#-mB5ZF}l1}+i`!<(3+b)L{<XgTQ_E75zJPFl~9-_9T6azSB*BrBvY=bz%O1fJr3
z`dDzC|B5R*Kfu)|SSlptHXUsB<nuyGPyPl~PZg3+a9mI7sqbk=%K>iCwXXbFP@W;T
ztt$ukL{|<`eok&oP{S6;FmN9`)DmMsQqE99foXF8EN1ApO&^9Gs>%ZjN2Yj<Dniai
zVYYC)7iJ5a_?&R%tqgdKFz(Q=LIKV|#}>XI-3L^fD(=$Rmn69g{(^>HnuBpnacpxe
lapXCcgTHI?c==Cc<TjiA1Bn-8K#5CBi8V^*eL_oM=WnD-GYbF!

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/precondition/PasswordIsSetPrecondition.class b/snippets/target/classes/com/example/precondition/PasswordIsSetPrecondition.class
new file mode 100644
index 0000000000000000000000000000000000000000..222bcaa9fc0223729a1f5cda3e44c7e07adaa8ae
GIT binary patch
literal 3679
zcmbVOYj+b>6y3LN9!vw+@Ul`M<<-*CPQ`-IKo$BxAT7{9v7+K+a!IC4GwIBvDfoUr
ztA6r#$XeQhT?*e^%Rl5dm*-CA)g&VNB{R8m_qpfnv+ut5kH3ET4ZtwIkD-O(m})G@
zd|6p2>s&6ITs2C0&DM;Pd_}RWs$u3YSXpjg34Mv7jiF!H7Asm#vFcD~bCzu?>IMKq
zykc>)q%3fTWM*DjQe<5z738dKYNbM&A$nRXY4#{XYwwX+hPE*y&n2{?J%JeF3|li=
ziBDG+a@@S8<a8&Dp(^^UVrt^QJJ@CyHH%?5^WTf2Bw___Pdhno?>*9(WgOcWHkZS!
zP^MMIEHRwv%>;bp6<cwL8FydOM?zouvdYU2!8Zs><y+|(b}@7X0UD=B*ok(c(F@J6
zClt~fmHh>2>XM>s^ns|F_&>?b*5D+B3DY!8k>p;6gUynxpDJMw+T(~wVA!9)0dz35
z6Svo04T$fD5;%+=QiEFL>YW)*S~7WlQsa7_A=BH)erV)!Zl0_5Kag6V4E42(*3NPg
zimu(``5IdE*(xh4kD-sDFDQ$0tW7lKjHhr9ER+_<Q3kna+vO2iu2!pqK6KD93-a=U
zE|)AhpHqt@aIPDL0lsW+A|?hCh#*Q#SOF6ZJDQX#c0k18h2e)M_bwy?e?eabV@?Vg
zqmXVot@fGrcJt3mnx)x>Dc7b=EORxZSvD_mGc6L7COjQmF&rmKd>+V6JcWl{V^Yy{
zp7&8Pyhxn<8_3a~kCAW+q{9*Ng8-OSjWSQ*G|td4b$YB~n!IE?!wlPKC)drT2rrQ^
zgHcYkRYa+xNby4bUeZ)Dpi?-Tz&VUDB!q@&v+CS7Xul7J+cu_?Cv1?TKhu?J91~;}
z^P~z1qd1?yE4WbG6W)>x)8UY=F@{oa+~eWG8cLudFER86MOrp_!2%H@tA@$t8Ks(C
z)U)1T3{wod>W%qaMbq=#jN>x(*Wx<ux|HXCsoSQpkW$L!Tf*9{RJF)Wp7Lz|Opk;N
zt_t@aYDX5=W4Ok!J4mOYoCIcZgL2@Os+4)H{z=0ecP*6Ra1(x-xU^VzE`ir@lTH;%
zkC(_$2A&G*mYa^_4F={^a4Uhggnh+rqn46{i?|wt%J57*TkYT|#Bh5<oehmipa_j&
z%VLF_cd5XdLKx16H+s;laFfy@5A-w_B;iZ#4!MeVcBe{)og%|Y-8RgWM2G%@XbA~e
zX~IZIZBJ<?8}AFDD*{=Bgfh$+78wo&Z4a!$YplPy6R-r+5^c08Zdpo!thus5!W&j|
zoFVKl5^PjOb;}I-aCO&;rco8v-Q4HAM4Gzgh9$$RIR)OsJ2AZNNugqEx_s6&mAh5~
z@8Uh7KTCKfG0=N6)H}CRu6P}on3k4s0w0J9J`{)$z;gqq*};5a!<%ZIB9mw6dCCU*
zDDr-WeN9m{HpJoJoYCSe6ISIN0SrS;VNW<TXcKvxVdL$^8};p%mW+EgLmQE9FyYFc
zARz*7CQDQAOetmeMkr;CimCERI(r!QdfTGmN;@d1MK>MOt#mhLXc1>My~XLBE}-<g
ziT=s-Wb};mtwFj^FD*#WZ`2v=z-D?+)FxmHw$eY620G|hfCuO)z^%#TkMsybcZHy>
zK6E>FxX{xyyM-|Eb?ls5!?X4HE(gD}Hpj(_+&l4{v*>Pgxsj%*J`t&79eXI!zGSLz
z72T^i7=+y7P|!_f@2Bj$L!mqT&>ep0-X`_+2f=F8^faxH?uBkv0k1z{pdQ>G0!Msu
zWDL3BQJ0)(U;ob-2)ZIUh04^(p->G`zlNyOV$qZ5ag64^K(s{ZIZV5d`o)f-oj3qi
z9^hnhbQLc@#%OZ9e-)D>k<Q3EF3znZGnbrR!<GI%%KIT^TCj>&ldsdyD&Aa!lFU6s
zz7>y=8;N#Cf5-SbhHI#KLJ3f9>QT~@{%C}Po|x;5tiovf74}@~I{kD;#K)!V1KeH1
z`;YEZx}X!JNaot=h;Ofx<Z*1Hv?p;Am*~<`L>lvSBl?Ce8$y&bqy;L(FMY*rpBVcH
zA3H>?;1hi6w0;Gj;d8W6#OwG1UlL7|B!#btoG3-zkFP0igpeSbTK+^ahVlVQ>suOV
H!FPWHY<vDZ

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/resource/ExamplePathHandler$1.class b/snippets/target/classes/com/example/resource/ExamplePathHandler$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..ace3c9f96cd1e077274854d89f7f3ce918657720
GIT binary patch
literal 1106
zcma)6+iuf95Iviubz)2!(i=3S4J9SFwr;r7R7kWcqEbpLih_9DIIG5$V@LJ|wVwqN
ztppMuz(*lwodhi9C6;W>?#`S!duGPJ|NQs`;3@Vr#26};*E7W>@AVyF`XcZKz9r1V
z;l?SK-FMvWIKnU1H6$4F7yJu1ZO`1llH!f;^Q)7A><{Fb^abxR%*w7E6n6->IVEs|
zg7$3JmaiE$%Tq^HS`3K;uOm`mxMg4lvpV9qZ9qesAzoGvb4}Y7?+3lM@IUglBN(zx
z&*Dyt`?gw-HWP|8Lv7mR#X6Cmu^cZTME&s65`AfVZlGa_VScR8(aFD)6z*b0!###f
zc<ONX+&sGqr05yQ;Xd*829ja1ISxMcZFeMUL&GY=awJgF;raf+b~?gOqQJ2F$@iov
zNUtzixZQ%TBad|@%tK019_AQQ2$33<mh#vz@CYTU2JiQU+hN#>x}LNzge4o5iRclJ
zhJvUVsG`P@lpZw%kz`mXPlk~17EBG>5w#*0Hn5|ZYJH`F<EpYgHZZTss-K1Z`PNpo
zT%Nq_wo-}ee(0*|5P@SMyIx1b3x?8^4Qb#Nb{WzZb+i;8MkB#cjmj~+-dGNrhv*nk
zcNj;mEBph82Z0DspdO9W(6LNLH7Z##dNm|zKNSvREZotnweQfYH!!}2K6CV)B_CiN
z8TuNbt>X@|v?BG8rnm*N6SP_kv5rF<$bG}|Pvk#m*KY8jdX3^W%GcN=@cMu7bVzFh
jOH}$5lp;xTqa<-WA@~^mFP?>Ip5rANWa*Sp5u@iXdYBb$

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/resource/ExamplePathHandler.class b/snippets/target/classes/com/example/resource/ExamplePathHandler.class
new file mode 100644
index 0000000000000000000000000000000000000000..8f0ecb1731d67157309fe0942feab154ce0c3700
GIT binary patch
literal 1533
zcmb7EZBNrs6n^d)D=R|=6YvcMoUk#ZqWA(s6M_&)CJ-<f{B~Dv#?`K!?VZ7&;(y?S
zesPH;{s4cJ@wDqkGho3cy{GrybDr~@xBmJ2>o<T!tZ0Za%$QEq5XZb)vxMOa&#Akn
zFxHy~J6s*T;r5{=Tn%xCX-j^t%QE*Os;gyBx!hC{U53Ppw558*(38vWGsM@NL!qMw
z$rO5#U>Gb(TWr;<W#PW#WlJy&mmHH@``nfOK0J)8Bk3{ZOIIXWWazI5wc|?1mFg?Q
zNUrpef8mD3?TWFdTxnN|`OQ8IG4zE&FYCx)M8kE4bf<0#qZnh*J;hz+y_f3f637o4
zZZeFWrKe`qE7CT00znCI9Y^^=c6uPj1AB^_pWgCX7<7gr*bNJ@YMR3H9G79~qDV?-
z4%?;cG$jxE`mrf$N;<ZuVUi&eu#k?ix!u0eaGznkb+I8WvE`@@r*0ocR30$Qbt^@u
zZyj08_$AL>k~iuNzhEsphK2tPv#4Q?A$t{8KAWVD0t}zhBZjpLoONxr7SC2$ia~SN
zXi6BanXceUv{V>oFF?;X8-P;3U01cbqLviAN-;d8F7FmYWV*5oI!*6$KZX}nk6c&A
z5xan_z84I*Utj9i^J6~mcK}0b)3$}XW^vCG9wtG9O#cj!OGa;kR*iNBN#>u<HqiHj
zK4Q>m^{;^x`hzu4pxprNC`%Zm)i>TH?HI{{!f^U0hQFaVeiA#OgPs87THrB_B!&nm
z6M&624MH$7#Vy<>xI2Lr>!;6g+$E)ZbdVr9fvLdPO9JzKB~Ot(C^Rtroi<UjHzN4S
zHhwb1r`ljPgpHGvi2(F9Wx@wdpQ3P3@R1vM*uZ=z_ILz4-NsI1A>hvN7*Eb&M+h$-
eP<Eenf=)$1qlBBFF)RfEE~7|NC(4T?>G=m{0&bE3

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/resource/ExampleResource.class b/snippets/target/classes/com/example/resource/ExampleResource.class
new file mode 100644
index 0000000000000000000000000000000000000000..a325e91a13cde678073ab730affd656a54bd6ba6
GIT binary patch
literal 1869
zcmbtUU3U{z6x}yXJ0VP4D6J`4FqVo*nsz`wREi%>El^DXn>J8+noKV3U@{XXH(36Y
z54e`5F1r@K`=ea$JDI5=#I-<QX70zid+)Q)x%bb%et!wzDjph02rM{$(~<{vv(=DR
zAlrT?aHO@~TiA-`29g378t&7MTeI7JajUhq3T#KkfdZ#uj8(^x?Y18XESKMeBaUAY
z7`y3uuKGe?EmwYGKeMfd?d@3=6}aBs%G-hEs{+Y2zb*}&6vzysl{#*tE`t=t1yYd<
zH_}LB(u9Fi0y9Gt<f}Sj%ETE=Q>@);Nv|%jG%WNr{So7ehIq$B2D4;VelIzJ>0JJ`
zBaD3)a|YfMFvA2qsjQu?4HM^Zo&uae+DZz{|GR+b1d&FN)v0~JdJYNiamUg5>IpE;
z#3;rDCd;lT?{=Cs8Eo6N1_`IizGFA4cHruHw3t-;Zd>5u8`X)$PPS~dudxPe!@WtL
z)^2#Mj-o%(ZnA>0Kdx`}Z7?>ye&EQKa(%CDU|HZyh^NEu9q$;pBrq3ml%6ZO8U*(9
zKA;pnX3?Ye&pN)Rq^Giv1HYL~(~GMnuIY*yds5w}?leBZX9hlH-w(<+aRZc<Vx%Ub
zCCOa=Q7H`zpX&;+y+?D8O1eSE<bm5(j2Ow~zbCl9LXBrM`0|hv<;z3vVSN8sV1chq
ztmBrz$p}XaWkH5w4XP%<9eiV8L!kIJx7NhBC@}$MYhY90(mx_)To-G{lLsy7C|NJZ
zPswp<(kSDe_T|37Y`@g){lNcG_t%QHYSdTzl5dKjJ2SnOd9}o}e7vG;=Z8(Z6?No9
z<U_@+HTZ(CRVv{tcgxjHJU#H%Eo)1VrH><gCfS&}`#Bor*g%Tk6P(pK*Zb!Si$_TB
zPML?8SnT3-7c;-%>>=JS6o1A1&x}Z5f!~QR`ZQ*Vca9Iohg{3{5O5J6aYiiUkSD$#
zY0d=41uXJk<XV!mrI7nhsD)8Suy#ZC%VaNfaiu4qi|dED`GRM9++!hTCge0D{2r&k
zm-vb+I-?^0nmdvFY2f5s-^oOzR$vvS=;Tx8p}oiye!+Z!F06HN`^DxF%Dcrw-2Eej
zH8D>4BYkGfbL9e!S?Dt(b8JQi--TvOP}~+OOl6xCOl8v`j=;|UrC%g{k@QRdiM|?o
G^x$td@V#jO

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/resource/ExampleResourceAccessor.class b/snippets/target/classes/com/example/resource/ExampleResourceAccessor.class
new file mode 100644
index 0000000000000000000000000000000000000000..c6f866087091a346babd075a93ca318d2d3d3071
GIT binary patch
literal 2291
zcmb7FT~`xV6x}z(Ob7uH0b9k-DgpsUkbZ_@BSN)}(1OK6KW`>i96My<%!H*ceRBC9
z`Y+lC!Iri91Nxh~y1MVoBqkxP_(0a&bI;j#pL6y({PoWte*&0;G>{OOwA>w2J&`+A
zN12}T-I`}9b15>c#pi-$Dc^TJ14)6LV?VChCFwW$7fOEMNh@d%5J-Bi8wd;(AIV*5
zI<m5Dt_Pl7+0F~3=Ix3dEC_Usjc?F((JiYCy3mt_fpj+ndb2o&l)&+#T~RBwos#nI
z$&#ZqpleBILwdG8$Hrvv(DntUi*J$?i42V$rl%RDd?h{Wp}>_64qM|<P%W?>vuOJP
zfig=^EL9C`x8fT(C2%s#+IG!5tBo6h?sa>+B7>U8JZ>EYdA``8=Ji_V7xD(q)ZYr(
z6g*Ep)s!+gjUEH%1WvWr|7Oj0%F4^&0xlW2DA3>Tk;OZ>EMV+Pr>0gP2#hv!T`fIQ
zR*;X2(A?Mz&SF%za3GB_7SWuU_8&XiI*~;VlQhX{RaMFYQ_YC6E)FBcRP!2QItvrm
z1k!;U`3nq=9S)(dz-$)RF-LiAD@t&t<6Hk%*dDxx4-C97&==OG(djHc#7D%HW#-T#
zo_bZb(wNt&&+63EpvKdtG_OaePxPr|&gm0nUzGtR*6k^)=K1z6MIp8*B~MWy72QSl
z=CIU;TL<82wLS!9oA2wy!zo)2r1jHXS&hdi#d;MSQoG!-WUaNJ>KBjT_Bs{@?()5(
z%xwlmtZI3E(fQ>!8~*W)4AyYZz&bnmDzin`aVT#+$XR>^?t)&QOUqG#8@HsTHubi*
zm7cXZQC7a?*(Igh72<Js)dkxS6dgwo8RsLk=FwWnr|}JmuE|Q--MLU-0T(v(hzcCD
z9M@L{zOQeCFt%y)WY)v|zHI9iI`SV|ep;6S7db#({6|5$dI$3>#c%Fq{&w>;j|9Jf
z%)~zb#0zA9<0*kY{`Q5D{Yc^jeFt!ywru2$e%drD*F%i7%%}uy5mK%L(jbwBh%_7`
z4M*NF65~RCoEn_OAYUFLR+6V-yv45s-qw6Yie5>cpC91#<~~MNrX~(>b~E=9=l5}C
z;OZX6_b|1Gncwkl0{2^Q^KG{yzu-oz$H#3Rt+zMYZ+{Ir>RO#+CBQYE#u<!a1h=^4
zZqxbz=kW}e!i*;(=8cS>qY!q3+2AG?nPVD1GjfU9FB47II<kC9%WYcNwZHMq;6f9)
zgU>ot>GQCw1-_(v(R+a6W{$00d5JGI*{HEv0>IU#HuN?~^~R(G?&E9vN5$U^VXrYx
vN2Uh0I^az<2_)4J$hRb&Xf*S?5GO|rjU!%ZEuu8r1i^I~YwQQQCh+6G+HWS%

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/serializer/ExampleChangeLogSerializer.class b/snippets/target/classes/com/example/serializer/ExampleChangeLogSerializer.class
new file mode 100644
index 0000000000000000000000000000000000000000..cf0dd6facf773a067c39ea919eb8c2d9bf3a2ac5
GIT binary patch
literal 2691
zcmb7F+j<jK7+t$fJLxch23iCK8bC?f(iEwurdDZ4u^Lh|p$JiNnoQGyNhVAt(BkPi
z^aZ@}0=)<y`ss(azJWJBin#WkG?|q4Q!kp`+5c(%>p$#2{{Hzl0JHc;!+^l~vRg}8
zn`W)ySgEGv*`{MZu)I_@xXNsp^{SO~tA(yeLqy=Y+vYtp<xrSfS-WkOeGS6`3CF(M
zve(RJpQ~Mb2n^5Lb=zMM7)&Hr1tJ-@V(A#fJ_8z}0ta(;-O9IWYnE3u*BnbAmUGLd
zvuY9|zdM%^f5UDHT*&?JG|~cNRm)#xzLh20v9g=KRd3pEo$f{x$x^PDVZrz8dNr-#
zP+#J~brhpaV!E~^u#f((dbaD?KEIgQvWBAqlYOk*v&)vlOnlc%b(BeXh5Sm1z|eh~
z^GqfJ1TEioQaQWnr-N_XO|7*2M$2b-%dDj(dwO=WY&CodUc(82Lkc@Jmsh$Hfsuk;
zt($(!qxb9c#ksj$4_H~%*>S6>ZnZKSwo^$j?1V92ET$Ls#4>_YIHTdT!112*%Z|Hd
zIvKaVZdY5LDRCNj8LtQ&Ub$AhdaZbCX*rj@mCa{XE-mLTvnj*K!e*&HCzq^s*+g`g
z){(%3hNM8M7q|RhObtw8iv7mgWm=wR)n!YxNYUX$GSmY>m#6n(8Z#PF0tXbw-Rc-P
zk5>hvtQ|9SJ$Bc&z0z6k+|$D>Uf1v%8@lIVTWa792_{mvHaSsm37iULvqy<^2&4_n
z<879>JHY}M6CoD6_a1wxGo#xhEypQ+Gn{Ov;dR9Dj)8Y^k%^I?#Vz0Bbc}UcLQQ{1
zHCbBJkwI3&B{H|&e&I$na12Xq??h=axhhF`&%iR?7tl7$W}f+~iMh#0W!ZQv1cz<s
z2vEmuQFCnfSzuKt=4@o^Ww*kam0LrB31cM)6++-lh@m|vKt}7^JX?+J?K8RqUoaa4
z$r%yYU+~THohxQT?J5l)_YK9)cm>Okg6WUdw#L_8uV(tbRT&Sonijj^6M-W;b6ISW
zD$9%FGluIk)KS9ca+jKNojprJa#e2IvVjWN>$18T$855?hql{RQKl|AT~*i`HaI3d
z1WIJ!Htw*7w9lKhXQrmxNF~$^)ZudRn~jE5uLzvm4b?M1I~fu}33m;6GFsGk1IP5{
zs@F$gDpbmUZFbr<Jj<6`T9ERY@TBZgm)^FM4~5#eBY_%=CU7zodN*s9Cb;G^Djl#(
zgEYCIl|wG@E@Tp;7u=RtwgT0Ydq2d}vKEMQ{0I3r#7BLYCtpwgj_@nRQ}7&`cm(}N
z{xblhqXZnle*SL+3j8|AFAf}@=dU!LMMTN;$ghaq7>pe*JmhWILoDP$?|K-+k&cHc
zo-+JE<cA%WFN7=yx|YZAA`^Lux-#-{oK#lh3eBIq8|HWVC&b%0`vkH4<YSx@m>c>Y
zCyow1#sz^Vcylf?HE}c&X=CnO8w+hLN)aEF@1Fi835X~H#uQg4pktiu#WBNk4yP5U
zStUz%KrtXbKu)ER#uemAfX+p~f~$lYCutwzBYG{+_ZVe?ev$ft>>6dOygi12rx?Ys
z2BBeELq_9f)yOd=LT+yUO41wjI><9V`8%$Ei{aRfhrgh7BlhVd+?s4-t&R0IoHiP=
z7K1981Ipkmy(I{3LM1UCIO!%4M-#qEB90dB5vT;krjbua9rt<Bqg~=CQW)VGotTtd
r=6lVft1M?2?t%(65$JV8MX`x36)K7c_=4KZ8DA>C1iqrr0et-rqlKm%

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/snapshot/ColumnSnapshotGeneratorExample.class b/snippets/target/classes/com/example/snapshot/ColumnSnapshotGeneratorExample.class
new file mode 100644
index 0000000000000000000000000000000000000000..de4a884881a678d1e1124f880cde193d53d94274
GIT binary patch
literal 1930
zcmbVM*>2N76g`s!oSM*vK+B%CtVy@9Zz*faQWO>uRIxl%Q)imGICko#z^CvJJitpU
zA%VmzABDJMJI=HLfl#D)Jag}vd(OGOKYo7s2H*l7YDh7hH=K4wyyNYTB`TiHJKl=p
zS89$GwCzUxdSBSW<-X(Ijp8(97-lSUEijk3r=+c}xBryNuyfY5P5%Z%x>R0Z$kd#s
z(2>SK4m+@uVW@7};&ISk67F-pWC?~s-7&bez+F?m$D0{{#q=01*8ijMD#Nap@SnP-
z<C^|^hO?#mDqrUni`%VA&ElR{t@n5}xz9s_bMc~Do@W?nm@S+8flC#>=*yp-Q~*5R
z4GbAs=^{K?S`~(0z45neH0)(Kp;AnWiB0GtN(qN^7{ri<{gl%yKXJ3qM+V&q3wi#&
zLoD|6iNKKU-p6oMVbtAC2$7^CTWuo9*s3erasO2uhTRRH8*d)*P7IZGMaSZXAm{g$
z%CENrQx(^Lv%U4cZgcm^L3U_3P93<d7Z~!c;LSO)%md3`;8s9lbxMjHiNrN-tcd0_
z=dEgN&wj(99*90FHK1S3vcfFx6&<Hh)=**?RlH3)OM%W|0+S3HwRmLg$x>M@c59Ao
zAQ@KGF^!6b8HVvcUeFEB;SA13Uy;mx%-bXhIii%^@LkhxRkJuxANi{1*g7uavW80}
zXHVcLDu*k$O8a6h;FdSvvPq{JjTDAq^~;JO%dfH^rwh%<ki~WB$YONGb==fI!{vxV
zp=)?zP7b$ln+6aG#Bl0&Hz+(3`O~Q7Z~`Y8_8Z|`d?b7>t$QXs>WhX1E2=v8-AhI5
zQR=+C?2yiC^j25mCZU9e6S#)BXUa)<JlgK-+;|quNL?`wqDG?~$k2*rD*bEpR-q@O
z=Z=X@WIxj)1)cuoF|dn%KrRZP=Wcpqa+*+7p4KVs2|?BfT7u`NzN7E~`o!eaCiZ<y
zeWblih&LFX4^ecU@(UsESd<gvQZ^3YV0c#^hj5tCk5GPeyF5EeXGPjcgALMh6k|yl
z<6#-IAvZwJe8sVs=|Z~kiNYg7Q2_^t*g*^sSdW+<7m$%Q60TI`Eg@y-S)AIysSQjO
z&TZfV5t}Sr+raE6;y1mCI}$yu&>JOT#xR0oA^JpwkkBh)4tGO(Mcl)Es*CVLqUkQJ
M5juWA+bPWd0$NK0n*aa+

literal 0
HcmV?d00001

diff --git a/snippets/target/classes/com/example/sqlgenerator/RenameColumnGeneratorExample.class b/snippets/target/classes/com/example/sqlgenerator/RenameColumnGeneratorExample.class
new file mode 100644
index 0000000000000000000000000000000000000000..33aeee0cdc474dab1f9a3e4a5cfb6337a6cf8b22
GIT binary patch
literal 3419
zcmc&$ZC4XV6n+MR8{(pviWXl=P{bq>Laml+Pzq73HbrU_%S&ID%`_}-cEe_a_EUdB
zKeT_Kf4~pz7dX~qk3FZK`lEV!XLqxiKtgHlIsK5?$;`cXo_p^zckUm5{_-n;D|o7)
zi{YwnSF-$>R;ijiTiZ0t+~SVr+D`TXx3mh++h)CD-D#}e_9YcW7$!_(vu><uwOxw3
z?eOf(TFrGd-7RjKp)$jvDZ?_{n+)B_)FMM9Z<lxs-RM=(gF_5Q3x>t#>y<U`Jk-`q
z&JZuyx@InFjv@XBixGF-s4+|y{uTHf!{IV_7aYTO4EGxk%v}Y?7|wU_sMU#RtzNC#
zj!Os@k_Ab{)m&cTmYek=AjhxR*vd)rCC$~m=-mn?xzw_P0frITtxzfmeM6X`x7M&q
zxsdFJ%lqMAh&C)UoRzd2tJ%gu6t3u&W*W3X`S|g_^;kN%g?w_v^Xr;n<x-L;f2Q-Q
zYuHwH(FaD;+m2&9wVZ;p6u@RuI*Z0|2E9=vD3Fu~lg|^|V>pKq1?L&Yn<fqtPZbw1
z%AgXjJdO%u49AnH!iKh`Wlha0XN#_5Smm5JH>o0pG_hM>=lYWeobHjsOLGP{OALkN
zUL|Se{@MoD-Gjy>iZO;h+bsDPx#8rvimU+KPk`^sn^C+=@)m#ED*v8J6(f+Jmp2)X
zQR2cY?&XRhEhX!3@=8U4d#Pg>m9#qN&A+~0mEuGbhVTA2O0GzN$;~XmAp%ZOOeFUB
z>k6pq4Yn>nvZ|U><0Vp4@FBy=-CUWi8)k_+QOpvxG}Gly!lP;;hH2aqHS;#ZKpVQG
z76p^<sQ5@E?Fc0~Pc_E0%Z>csQ}MCb>Z7e9k+7nPox}J9_Z7@DoNglBQxH@v;8UvA
zyryeaza;x~zt;wdMBIS?dso_Cl4%rGJj5g7hgPj}i!Mf{js3m4LC|thJSLC{$9u*S
zy7!JH6f7|eHJzhJs;;|rda%5j?UP=FVMWC%KBo)fd+A>~-_6N3FeIn)rdF%b_1v9I
z0`w(4c?s9{(x<6d6B&rQwjUS;<l?z@&>EH42NA;!d@XWcX1Lx4N((7N_gZb_#OwQg
z`+GxdJm7QH%Km2OKo(jH!a<9bf(?eG6au*)*<&>Z22;f;oMxDPQ(scc!kn!lj<*=T
zeN%J)AT%xc3W|up;;6WW>kP4?U3YXoXNY!aSnevqAP23%xS$+8XGNoIX@b-YrA|OP
zHfd9`Mx(*luamf$!!W_^rlt~z(u_Je8WsANr7xpzPkIN@pJ~#C7>!~Z=)++eRbPO<
zee{oN6^_y<l*i~R<hr8I#VBd^OPXDwCM7P=%+puE=^6VC$9F3ac*+T1AW$YzoWM!%
zxE{QXK{}2JVg&|&An6`5IPnr^mUi&Y^~hi(K6Ggt!`ry{nC6#go(bj?G{5Z6e+q%0
z@bpiimuwDD12BxU$Y99Ba>chDVwniBOaxfyWL(AjgrXN0F^LZlA!Njk0N?KvoCuw@
z8hM4>Quj;TSbB-+rTEMa@?!*Nj(&IPH~a#H2)6MczDR@E$;3Z<f#q&*?TcXTa&v7P
zUv<BNz5`xt`Z7u=fDuaL1q%5nl7uNk;}rEYGf1OI>npS`(wp{ig}$wZzO9D7t@^(8
z&rrnI1CPc@Pk3}Bed#sMjb&cL*v6A42A@LI$dgPLK)P{M0^KylNu)pK>u$r^%>h~O
W8mjx9x!LhdI=AMX?xOB}xBdd_(!QAh

literal 0
HcmV?d00001