Skip to content

Commit

Permalink
Story/1045/cdm serialization (#446)
Browse files Browse the repository at this point in the history
* Added baseline tests for serialization

* add basic types

* add records

* add data types

* fix namespace name

* add enums

* add choice types

* correct choice wrapper attr name

* add extension tests

* add extended concrete type test

* rename test

* add meta scheme

* add meta key

* meta address

* fix address structure

* add extra element to structure

* fix formatting

* fix list test for scheme

* add first error handling test

* add number fraction test

* fix string length

* add illegal string tests

* too many elements test

* fix namespace

* rename serializer methods

* add extra field for polymorphic test

* make error handling test individual tests

* rename round trip test

* rename serializer

* revert changes

* fix reference attribute name

* remove generated code

* rename serializer implementation

* add object mapper initial

* add json handling code

* create a dynamic classloader for the in memory compile

* use correct rune annotations

* fix test

* fix group names

* fix metascheme test structures

* fix enumtypes test structures

* fix choicetype test structures

* fix address structure

* add licenses to code

* override RosettaModelConfiguration

* refactor injector

* add SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS to fix wrapped subtype handling

* fix meta tests

* bring in property ignorals code

* refactor ignorals so it doesn't override legacy method

* inject object mapper

* add top level meta

* add property ordering attempt which doesn't work atm

* reorder test properties

* add all ordered prop names

* fix location tests

* override ObjectWriter to add header fields

* put meta headers at top of json output

* rename mapper classes

* add javadoc

* remove dead code

* add javadoc and outline difficulty with property ordering

* rename package

* rename test package names

* clean up javadoc

* add license

* add javadoc

* remove redundant comment

* rename caps json

* rename mapper and writer

* remove top level serializer abstraction

* remove alphabetic ordering

* update dsl version

---------

Co-authored-by: Minesh Patel <[email protected]>
  • Loading branch information
davidalk and minesh-s-patel authored Jan 6, 2025
1 parent 7637b32 commit 299cb2e
Show file tree
Hide file tree
Showing 271 changed files with 1,938 additions and 181 deletions.
185 changes: 185 additions & 0 deletions common/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.regnosys</groupId>
<artifactId>rune-common-parent</artifactId>
<version>0.0.0.main-SNAPSHOT</version>
</parent>

<artifactId>rosetta-common</artifactId>

<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.regnosys.rosetta</groupId>
<artifactId>com.regnosys.rosetta.lib</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-blackbird</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-guava</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
<executions>
<execution>
<id>import-test-xsd-schema</id>
<phase>generate-test-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.regnosys.rosetta.tools.modelimport.XsdImportMain</mainClass>
<cleanupDaemonThreads>false</cleanupDaemonThreads>
<arguments>
<argument>-config-path</argument>
<argument>
${project.basedir}/src/test/resources/xml-serialisation/schema/import-config.yml
</argument>
<argument>-rosetta-output-path</argument>
<argument>${project.build.testOutputDirectory}/xml-serialisation/rosetta</argument>
<argument>-xml-config-output-path</argument>
<argument>${project.build.testOutputDirectory}/xml-serialisation/xml-config.json
</argument>
</arguments>
<includePluginDependencies>true</includePluginDependencies>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.regnosys.rosetta</groupId>
<artifactId>com.regnosys.rosetta.tools</artifactId>
<version>${rosetta.dsl.version}</version>
<exclusions>
<exclusion>
<groupId>com.regnosys.rosetta</groupId>
<artifactId>com.regnosys.rosetta.ide</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.regnosys.rosetta</groupId>
<artifactId>com.regnosys.rosetta.xcore</artifactId>
<version>${rosetta.dsl.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.regnosys.rosetta</groupId>
<artifactId>rosetta-maven-plugin</artifactId>
<version>${rosetta.dsl.version}</version>
<executions>
<execution>
<id>generate-xsd-based-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>testGenerate</goal>
</goals>
<configuration>
<addOutputDirectoriesToCompileSourceRoots>false</addOutputDirectoriesToCompileSourceRoots>
<sourceRoots>
<sourceRoot>${project.build.testOutputDirectory}/xml-serialisation/rosetta</sourceRoot>
</sourceRoots>
<classPathLookupFilter>.*com\.regnosys\.rosetta.*</classPathLookupFilter>
<languages>
<language>
<setup>com.regnosys.rosetta.RosettaStandaloneSetup</setup>
<outputConfigurations>
<outputConfiguration>
<outputDirectory>${project.build.testOutputDirectory}/xml-serialisation/java</outputDirectory>
</outputConfiguration>
</outputConfigurations>
</language>
</languages>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-generated-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.testOutputDirectory}/xml-serialisation/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.regnosys.rosetta.common.serialisation.reportdata;
package com.regnosys.rosetta.common.serialisation.json.reportdata;

/*-
* ==============
Expand All @@ -24,6 +24,7 @@
import com.fasterxml.jackson.databind.type.CollectionType;
import com.google.common.io.Resources;
import com.regnosys.rosetta.common.serialisation.RosettaObjectMapper;
import com.regnosys.rosetta.common.serialisation.reportdata.*;
import com.rosetta.model.lib.ModelReportId;
import org.junit.jupiter.api.Test;

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 299cb2e

Please sign in to comment.