Brief refactoring plan (remember to x out finished items).
- Refactor to remove webapp gui and test modules
- Refactor to remove ibator and autogenerated iBatis classes
- Refactor modules not used (difi-ws, dbms-schema, integration, export, import, security)
- Make sure maven project still compiles and tests well
- Remove all usage and references to Spring
- Remove all usage and references to Struts
- Remove all usage and references to iBatis
- Remove all usage and references to Sitemesh
- Remove runtime class manipulations (cglib-nodep)
- Remove any jRebel references or dependencies
- Make sure maven project still compiles and tests well
- Update Maven 3 plugins and enforce JSE8 or higher
- Removed htmlunit
- Do we need both easymock and mockito (updated easymock version, removed references to mockito)
- Do we need both junit and testng (update versions and stick with testng)
- Do we really need both jetty and catalina during testing (updated jetty, removed catalina)
- Removed old SR implementation of email (replaced it with a simple logging implementation)
- mvn test now works without network (still needs database)
- Move all online SMP tests as integration tests
- Move all online MYSQL tests as persistence tests
- Make sure all "mvn test" runs without network, redis, mail, mysql and oxalis-home
- mvn test -> should just do unit tests (no dependencies on other systems/infrastructure)
- mvn verify -> should trigger integration tests (maven-failsafe-plugin)
- Remove any remaining references to old SR modules
- Remove any SR/Unit4 usernames, password, hostnames (wordpress, jenkins, nagios etc)
- Remove nexus and github references
- Remove any SR/Unit4 servers, hostnames, ips (192.168.*) from config and files
- Remove links to Struts and Account pages webpages ending in ".action" or ".do"
- Look thru @todo, @fixme and @authors
- Remove any keystores (*.jks) files (used in OxalisDocumentSender)
- Remove links to ap.unit.com and ap-test.unit4.com (ringo.domain.com and ringo-test.domain.com)
- Make sure database scripts will create the correct tables (see : create-oxalis-dbms.sql)
- Tag last versjon with UNIT4 features as "vefa-srest-0.0"
- Remove special handling of messages on the "UNIT4_*" channels (left TEST_ONLY channel)
- Remove U4TS SMP Cleansing from /directory/query resource
- Remove U4TS LOOKUP Currencies, Bronnoysund, Postal Codes REST calls
- Remove U4TS EVENTS REST calls
- Remove any usage and dependencies on Redis (jedis used from currency rates)
- Make sure maven clean builds and tests with clean repo (mvn -Dmaven.repo.local=/tmp/m2 clean install)
- Upload code to difi-srest (do not bring over the complete Unit4 git history)
- Tag last versjon with UNIT4 features as "vefa-srest-1.0"
- PeppolDocumentSender (and implementations) can be found in both oxalis and peppol packages
- SMP lookups constructs the ProfileID from DocumentID/CustomizatonID (should use the real SMP value)
- Make sure the client version detection works and alerts are logged (for Ringo Client)
- Verify inbound messages belonging to us (receiver connected to account)
- Verify outbound messages parameters actually matching what's specified in the document
- Validate messages both inbound and outbound, should be pluggable
- Hardcoded ADMIN_USERNAME ("sr-admin") should be changed (used when logging in as other users)
- Removed the SmpRegistrationClient that registered new accounts directly into ELMA
- Moved artifacts naming from no.sr.ringo to no.difi.ringo (to prevent further dependency conflicts)
- Remove BILLING from scope (code, tests, sql)
- Consider removing REST functionality that adds users, send mails and do other admin chores
- Remove as much as possible of apache + commons bloat
- Make some persistence methods as user supplied components (provide default impl)
- Ringo has it's own version of API classes from Oxalis (should just rely on Oxalis API)
- Should not store messages in database
- Look thru the logging usage and make sure we just use slf4j
- Remove any unused dependecies (run : mvn dependency:analyze)
- Upgrade old 6.x Tomcat (https://tomcat.apache.org/migration.html) or JEE7 (WildFly?)
- References to ringo.domain.com should point to the production server (scripts and download urls)
- References to ringo-test.domain.com should point to the test server (scripts and download urls)
- Consider upgrading to the latest and greates version of Jetty
- Consuder upgrading to later version of Jersey
- Replace JodaTime with JSE8 LocalData, LocalTime variants
- Replace jaxen, jdom and ws implementations with built in alternatives (JAXB, JAXP, JAXWS are built in to JSE8)
- Replace json and rest implementations with standard alternatives (JSON-B, JSON-P, JAX-RS part of JEE7/8)
- Update direct usage of jersey and jackson to JAX-RS 2.0 (standard JEE7 spec)
- Example : com.sun.jersey.spi.container.ResourceFilters => javax.ws.rs.container.ContainerRequestContext
- Update Guice version and use standard Java / CDI annotations (standard JEE7 spec)
- Example : com.google.inject.servlet.RequestScope => javax.enterprise.context.RequestScoped
- No need to manually concat XML (JAXB provides XML & JSON when using JAX-RS2 for free)
- Make sure maven project still compiles and tests well
- Add Swagger 2.0 API (JAX-RS 2.0 Swagger will automatically create up to date runtime documentation)
- Consider running whole server on wildfly-swarm or similar microservice plattform
- Consider rest-assured for testing REST (instead of hand coded httpclient tests)
- Implement notification service to be used by
NotificationResource.java
. Replace Email-service with generic notification service. - ? Add some kind of GUI mode to Ringo Client (swing / javafx / web)
- ? Does it make sense to add GUI mode to Ringo Standalone
- ? Add the REST version of the validator as a module (and use it in code)
- Transmission evidence resource
- Configurable JNDI name for JDBC access
- Include the SQL scripts in the binary distribution.
- Added Oxalis-Persistence module (MessageRepository installed in Oxalis, will persist into Ringo database tables)
- Support transmission of files wrapped in SBDH and ASiC archives with internal SBDH.
- Organisation numbers should be validated. Determine the extent of such validation.
- Allow for external configuration of logging. This should happen in RingoGuiceContextListener
- Refactor package names in accordance with domains
- Duplicate class/interface MessageMetaData needs to be refactored