Hello all,

 

I’m trying to set a system where I can deploy a single .war under multiple 
context names (using the ant deploy extensions). For example:

 

ant -Ddeploy-path=/app-01 deploy

ant -Ddeploy-path=/app-02 deploy

 

Both deploy commands use the same .war. However, I’m trying to do something 
that I’ve been unable to find a proper method for. The application being 
deployed (in this case it’s Solr) needs one variable to be defined in either a 
context fragment in META-INF/context.xml or defined in WEB-INF/web.xml. The 
variable is solr/home, and it points to a directory that is packed inside the 
.war. So, I would like to have a context fragment that looks like this:

 

In META-INF/context.xml

 

<Context>

    <Environment name="solr/home" type="java.lang.String" 
value="webapps/${context.name}/app-01/solr/" override="true" />

</Context>

 

Or in WEB-INF/web.xml

 

<env-entry>

    <env-entry-name>solr/home</env-entry-name>

    <env-entry-type>java.lang.String</env-entry-type>

    <env-entry-value> webapps/${context.name}/app-01/solr/</env-entry-value>

</env-entry>

 

As you can see, I’ve used a variable called ${context.name}, so that the 
different contexts can use the same fragment, but be named something different. 
This allows for a much simpler deployment, where no context.xml needs to be 
generated and packaged into the war at deploy time. Unfortunately,  as far as I 
know, a variable like this does not exist. So my question is this, is there a 
way to specify a variable like this relative to the context root?

 

Thanks, any help would be appreciated.

Anthony Arnone

Reply via email to