Results 1 to 5 of 5
  1. #1

    Configuring adapter at runtime

    Our corporate environment has a fairly typical setup with different execution environments for development, integration testing, and production. There is a single server setup in each environment and all the various groups develop and maintain their individual adapters. The format for the package we submit to the LS team for installation is a zip file containing the adapters.xml and the libraries that we need to load. As such, we don't have access to JVM parameters or such in the execution environment.

    The issue I'm facing is that we need to use the same package for both INTEGRATION and PROD deployments, but of course, they use different connection strings to their source data. It appears whatever calls DataProvider.init() has already read the xml parameters into a map before the init() method is called. I'm looking for a way to "choose" either the location or filename of adapters.xml at runtime and include that map in the DataProvider.init() call. We can use existence of certain filesystems to make that determination, but I can't seem to locate where the DataProvider.init() is called. Any help would be greatly appreciated.

    Thanks in advance,
    Paul
    Last edited by paulwiersema; December 21st, 2018 at 10:05 PM.

  2. #2
    Administrator
    Join Date
    Jul 2006
    Location
    Milan
    Posts
    970
    Hello Paul,

    The adapters.xml file is loaded before adapters are initialized because it contains information on how to load the Adapters.
    Then the Adapters are initialized before the Server starts listening.
    If you need to initialize two adapters differently even though their installation directories are identical, they should acquire specific information by asking to some external system or by looking for some file outside the installation directory; this can be done in the init() method.
    Is this enough for your purpose?
    Perhaps you cannot accept that the init() code that will be used also in production can look for specialized information that are needed only in the test environment?

  3. #3
    Dario,

    Thanks for the reply. What I seem to be missing is that the parameters map is already read in by the time the init() is called, so I'd need to interject into the code path before then, but I don't see any way to do that.

    The best that I can come up with at this point is to build both the SI and PROD packages at the same time, with only the configuration being different, and then deliver the appropriate package for the intended environment. It's not ideal, but I can't see any other way. Please let me know if I've missed something.

    Thanks,
    Paul

  4. #4
    I think the approach I'll take for now is to set both SI and PROD specific values in the original map and then, in init() set the general one to the appropriate value.

    Thanks,
    Paul

  5. #5
    Administrator
    Join Date
    Jul 2006
    Location
    Milan
    Posts
    970
    I still can't understand how you would have liked to operate.
    There may be a few tricks left, but, since you say that you are not allowed to set different JVM variables in the two environments (which would be a very simple solution), it is not clear to me what other ways of distinguish the environments are allowed.

 

 

Similar Threads

  1. Configuring Lightstreamer with SSL Certificate
    By hakankecelioglu in forum General
    Replies: 1
    Last Post: May 21st, 2015, 09:48 AM
  2. Replies: 4
    Last Post: October 24th, 2011, 09:33 AM
  3. Replies: 3
    Last Post: January 24th, 2011, 08:48 AM
  4. Replies: 3
    Last Post: January 7th, 2010, 08:57 AM
  5. Problem configuring new Moderato
    By markgoldin in forum General
    Replies: 2
    Last Post: September 25th, 2008, 06:49 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT +1. The time now is 04:10 AM.