[ 
https://issues.apache.org/jira/browse/UIMA-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik updated UIMA-1288:
--------------------------------

    Description: 
Each UIMA AS deployment descriptor requires at least one Broker URL for the 
connection factory. Instead of hard coding the URL, perhaps a placeholder for 
it should be used. At runtime, the placeholder could be resolved to the actual 
URL by Spring resolver component. The value could come from either an external 
file or from an environment. The new approach should accommodate specifying 
more than one placeholder, since an aggregate may have delegates whose queues 
are managed by a different broker. The new approach would simplify deployment 
of UIMA AS services, especially during testing.

A placeholder syntax could be inherited from Spring, where it looks like 
${placeholder-name}. 

dd2spring would need to change to handle a placeholder notation in addition to 
supporting hard coded broker URL that we use now. A new bean must be added to 
the generated xml. It will be :

<bean 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="systemPropertiesModeName"  
value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
   </bean>
 
This bean is setup to resolve placeholders using system variables, like 
-Dplaceholder-name=placeholder-value


  was:
Each UIMA AS deployment descriptor requires at least one Broker URL for the 
connection factory. Instead of hard coding the URL, perhaps a placeholder for 
it should be used. At runtime, the placeholder could be resolved to the actual 
URL by Spring resolver component. The value could come from either an external 
file or from an environment. The new approach should accommodate specifying 
more than one placeholder, since an aggregate may have delegates whose queues 
are managed by a different broker. The new approach would simplify deployment 
of UIMA AS services, especially during testing.

A placeholder syntax could be inherited from Spring, where it looks like 
{$placeholder-name}. We can agree on special syntax for specifying broker 
placeholders. Perhaps something like:

{$uima.as.broker1}
{$uima.as.broker2}
....

dd2spring would need to change to accept a placeholder and *not* interpret it. 
I believe that dd2spring currently makes decisions based on what protocol is 
specified in the Broker URL ( tcp vs vm). There are other protocols that we may 
need to support other than tcp and vm. Most notably, the failover protocol that 
allows for specifying a redundant broker. We cant currently use this protocol 
for deploying UIMA AS services. An example of this protocol for activeMQ:

failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false




> Need a Better Approach For Specifying UIMA AS Broker URL in Deployment 
> Descriptor
> ---------------------------------------------------------------------------------
>
>                 Key: UIMA-1288
>                 URL: https://issues.apache.org/jira/browse/UIMA-1288
>             Project: UIMA
>          Issue Type: Improvement
>          Components: Async Scaleout
>            Reporter: Jerry Cwiklik
>
> Each UIMA AS deployment descriptor requires at least one Broker URL for the 
> connection factory. Instead of hard coding the URL, perhaps a placeholder for 
> it should be used. At runtime, the placeholder could be resolved to the 
> actual URL by Spring resolver component. The value could come from either an 
> external file or from an environment. The new approach should accommodate 
> specifying more than one placeholder, since an aggregate may have delegates 
> whose queues are managed by a different broker. The new approach would 
> simplify deployment of UIMA AS services, especially during testing.
> A placeholder syntax could be inherited from Spring, where it looks like 
> ${placeholder-name}. 
> dd2spring would need to change to handle a placeholder notation in addition 
> to supporting hard coded broker URL that we use now. A new bean must be added 
> to the generated xml. It will be :
> <bean 
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>     <property name="systemPropertiesModeName"  
> value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
>    </bean>
>  
> This bean is setup to resolve placeholders using system variables, like 
> -Dplaceholder-name=placeholder-value

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to