vrijdag 19 april 2013

2 months at Docbyte

It has been 2 months now since I started my internship. It's been a while since I left another blog post so here is the next one.

In my last post I was saying I had to implement the print service of DocShifter into the auto-build and install of Jenkins. That went pretty easy (with some minor difficulties). Eventually the installer was created and could be automatically build by Jenkins. My next assignment was making sure that EPA could work with any CMIS repository to store the documents. This would be a replacement for Documentum.

DocShifter web service continues...

It took me a while before I could get started on this, though. First I had to make changes in DocShifter because the web service I'd created still contained some hard coded information. All the default configurations of the transformation modules were still hard coded into the project. Oops...

I still wanted the client to have the choice of adding parameters for the configuration or using the default ones. To do this, I've made sure that the receiver, who processes the files, could check all configurations of all transformations in the database. Next it would look at the configuration of AnyTranformation module. This contains the configuration of any other transformation module. Let me make this a bit easier to understand.

Suppose we have a PDF transformation and a PNG transformation. The PDF transformation has 3 sets of configurations: pdfconf1, pdfconf2, pdfconf3. The PNG also has a configuration: basicpngconf.

The AnyTransformation module has this configuration.


  1. Pdf
    1. name: pdf
    2. value: pdfconf2
    3. description: the name of the configuration for a PDF transformation.
  2. Png
    1. name: png
    2. value: basicpngconf
    3. description: the name of the configuration for a PNG transformation.
So once a task is received by the receiver, it first checks if AnyTransformation allows the requested transformation by checking if it is available in his configuration (e.g. PDF is requested. There is a parameter with the name pdf. So we can allow a PDF transformation.)
Next it starts looking for the default configuration (e.g. pdfconf2). If this is found, the receiver creates a transformation with that configuration.

Now that we have our requested transformation module, the receiver checks if the client added his own parameters to the request. If so, it replaces the parameters of the transformation module by the ones that the user requested. This way, the default parameters can be configured by a user and a client can still choose to use the default parameters or add his own (1 or more). 

Solving errors in DocShifter.

Once the web services were fixed I had to solve a problem one of the clients of Docbyte had using DocShifter. There seemed to be an issue that caused some quality loss when converting TIFF files to PDF. After a long search and a lot of testing using different version of Java, older library version, etc. I still could not reproduce this quality loss. Eventually I created a new process on this client's server using a VPN connection. I still was not able to reproduce this error. Apparently the files were merged by another program afterwards so the error was not in DocShifter. I've wasted quite some time on this...

Another error in DocShifter was that TIFF files could not be deleted once they were transformed. After a long search I've managed to find a stream that was not closed :-/

CMIS

I finally could start to work on implementing CMIS in EPA. Well, almost. I ran into a lot of difficulties. Let me put them all in a list:
  • EPA could not launch because of a ClassNotFoundException
  • I could not get EPA because the Stash was down
  • I could not log in because the active directory where my test user was, got relocated without being aware of this
  • There were changes in the organizational units on the active directory which resulted in not being able to log in again.
  • The Alfresco CMIS repository I installed to test apparently ran on the same port as EPA
  • ...
So after a couple of days having trouble, I finally got started. There were a couple of features for the CMIS repository that were already written in EPA but eventually I had to change them because they didn't work properly. At this time it's possible to add files, remove them, view them and get thumbnails of image files. CMIS does not support thumbnails for other files. One of the other things that CMIS does not support is the audit. Documentum could do this but CMIS can't. There is a possibility of using a change log in CMIS but it does not show how viewed a certain file...

Geen opmerkingen:

Een reactie posten