Skip to content

Latest commit

 

History

History
111 lines (100 loc) · 7.21 KB

TODO.md

File metadata and controls

111 lines (100 loc) · 7.21 KB

SendRegning Access Point REST based client API

Brief refactoring plan (remember to x out finished items).

Rearranging modules

  • 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

Removing frameworks we no longer want or need

  • 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

Upgrade frameworks and tests (moving along to JSE8 minimum)

  • 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)

Prepare and deploy version to DIFI

  • 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"

Defects and features that should be fixed

  • 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)

Other changes (unordered)

  • 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

Refactor code to really use JSE8 features (and standard JEE7 specs - just one single dependency)

  • 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 new features and improvements

  • 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.

Notes from meeting June 14th, 2016

  • 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.

Notes from refactoring and integration with Oxalis

  • 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