diff --git a/symmetric/symmetric-server/src/main/deploy/release-notes-2.2.x.html b/symmetric/symmetric-server/src/main/deploy/release-notes-2.2.x.html
new file mode 100644
index 0000000000..d0244ac55e
--- /dev/null
+++ b/symmetric/symmetric-server/src/main/deploy/release-notes-2.2.x.html
@@ -0,0 +1,85 @@
+
+
+
+ Release Notes - SymmetricDS - Version 2.2.0
+
+ Bug
+
+
+- [SYMMETRICDS-352] - Trigger Hist row is inserted, even if the trigger generation failed.
+
+- [SYMMETRICDS-362] - Documentation isn't being packaged during a release
+
+- [SYMMETRICDS-367] - Nodes actually pull their configuration data 2 times during registration. It should only happen once.
+
+- [SYMMETRICDS-368] - Possible to extract the wrong target schema when two tables of the same name are syncing
+
+- [SYMMETRICDS-369] - SymmetricDS doesn't start up because of xml column in postgres
+
+- [SYMMETRICDS-378] - Segmentation fault in sym_hex UDF for Firebird
+
+- [SYMMETRICDS-382] - Oracle timestamp columns should synchronize milliseconds
+
+- [SYMMETRICDS-384] - Authentification failed when using custom INodePasswordFilter
+
+- [SYMMETRICDS-389] - Fix IOfflineClientListener. Add a few more possible exceptions that might cause offline.
+
+- [SYMMETRICDS-394] - During the extract process, if there is an error, then the extract file does not get deleted.
+
+- [SYMMETRICDS-397] - When initial.load.delete.first is set to true and a table that is being synchronized is missing, the initial load fails
+
+- [SYMMETRICDS-399] - 22 million row initial load blew up at the very end because the stats in sym_incoming_batch became too big for the column
+
+- [SYMMETRICDS-402] - If there is an ER on the reload channel, then other channels have to be sent to correct the error
+
+- [SYMMETRICDS-403] - symmetric-ddl conflicts with apache ddlutils
+
+- [SYMMETRICDS-404] - Should always check for duplicate trigger names, not just when the trigger name is > max length
+
+
+
+ Improvement
+
+
+- [SYMMETRICDS-212] - Add option on sym_trigger to not record data in sym_data if none of the columns have changed
+
+- [SYMMETRICDS-346] - Build a stripped down client only distribution of SymmetricDS
+
+- [SYMMETRICDS-365] - Refactor JobManager so that a list of jobs can be retrieved and reported on
+
+- [SYMMETRICDS-373] - XmlPublisherDataRouter should only publish one message, not a message per node.
+
+- [SYMMETRICDS-374] - Only use 1 database connection while loading data.
+
+- [SYMMETRICDS-388] - Improve the push and pull api to return a status code instead of a boolean.
+
+- [SYMMETRICDS-400] - Log the fact that a table is not found by the data loader.
+
+- [SYMMETRICDS-405] - Break the purge job out into 3 different jobs to match how the job is locked.
+
+
+
+ New Feature
+
+
+- [SYMMETRICDS-268] - Support array data types on Postgres
+
+- [SYMMETRICDS-342] - Add statistics at node level and at the job level. This is follow up to the new statistics in 2.1
+
+- [SYMMETRICDS-366] - Add a sym_registration_request table that captures when a node both attempts and successfully registers
+
+- [SYMMETRICDS-380] - Add batchid element to XML published by the XML data loader and the XML data router.
+
+- [SYMMETRICDS-395] - Use dbms_lob.substr during an initial load on oracle if contains_big_lob column of sym_channel is set to false
+
+
+
+ Task
+
+
+
+
+