Hjem   |   Kontakt   |   Sitemap
Hvem er vi Hvad kan vi Vores kunder Ledige stillinger Kontakt os Blog

Groovy CPE

Published Thursday, February 3rd, 2011 by AN

I’ve been working quite a lot on a TR069 AutoConfigurationServer. As part of the prototyping I created a client emulator to more quickly and easily test out different parts of the TR069 spec. I called the program GroovyCPE and it can be found on Google Code hosting. Hopefully it will be useful for others in initial bringup of TR069 servers, regression testing and performance testing. The code written in Groovy and it is licensed under the GPLv3.

The TR069 schemas which can be found at http://www.broadband-forum.org/cwmp.php define the communication. Unfortunately the CWMProtocol uses ancient technology – namely XML-RPC. One can find old libraries for XML-RPC on the web, but they look old and crusty. We decided to go with JAXB ( https://jaxb.dev.java.net ) to get Java classes from the schemas. However, JAXB doesn’t seem to handle the old XML-RPC ideas perfectly, so we have to apply some band-aid (more on the server side than on the client side, though). I’ll blog about this separately.

To get the JAXB processing to work at all I have deleted fixed="1" from the soapenv:mustUnderstand attributes.

The HTTP communication of GroovyCPE is done with the help of the Apache HttpComponents v3 which is a pretty OK library for HTTP communication.

The initial configuration content in testfiles/parameters_tg784/get*.txt is from a Thomson TG784 box.

GroovyCPE is built around a central store of the parameters it reads in. And as much as possible it uses the configuration parameters it self – eg. for the ManagementServer URL and the PeriodicInformInterval.

What it can do:

  • Immediately send Inform messages with all event types
  • Run a thread that sends scheduled Inform messages according to the PeriodicInformInterval
  • Listen for connection requests on the ConnectionRequestURL (and send an Inform if requested
  • Accept a DownloadRequest and initiate an HTTP download session according to the contents
  • Respond to GetParameter{Names,Values,Attributes} requests.
  • Accept SetParameter{Values,Attributes} and set the values
  • Accept AddObject requests and add objects (but only if the object layout is known from the configuration parameters)

I don’t have any immediate plans for improvements to GroovyCPE. At some point I will probably look at fixing the JAXB classes at generation time with a JAXB plugin.

Leave a Reply

Using TDC’s Columbine with modern browsers

Thursday, April 14th, 2011
On columbine.tdc.dk there is a gui with tools for resellers of TDC eBSA products. These ...

Groovy CPE

Thursday, February 3rd, 2011
I've been working quite a lot on a TR069 AutoConfigurationServer. As part of the prototyping ...
 
© 2011 Code3 ApS  |  Kigkurren 8G, 3.TH  |  2300 København S  |  +45 7020 3383  |  kontakt@code3.dk