Skip to main content

[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

  • From: "chasetec (JIRA)" <jira-no-reply@...>
  • To: issues@...
  • Subject: [javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors
  • Date: Tue, 1 Jan 2013 01:31:52 +0000 (GMT+00:00)
  • Auto-submitted: auto-generated


    [ 
http://java.net/jira/browse/JAVAEE_SPEC-19?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=352595#action_352595
 ] 

chasetec commented on JAVAEE_SPEC-19:
-------------------------------------

For this to work I think you would need EL support in deployment descriptors 
with the addition of several implicit objects. My list of useful implicit 
objects:

* ${systemProperties} Gives you the ability to read from a system property. 
For example -Dstage=dev could be read with ${systemProperties.stage)
* ${propertyFile} Would give access to property files in the resource path 
(or maybe classpath). For example 
${propertyFile.WEB-INF.dev.properties.stage} would load the 
WEB-INF/dev.properties files and read the stage key's value.
* ${jmx} lets you read attributes from mbeans. 
* ${jndi} lets you read values from your local JNDI context.

Servers could support additional implicit objects like ${env} for environment 
variables through CDI named beans.

The ability to reference earlier values would also be useful. For servlet 
context paramaters: ${servletContext.paramName} and for servlet params 
${servletContext.servlets.servletname.paramName} and filters 
${servletContext.filters.filterName.paramName}. Maybe shorten those last two 
to ${this.paramName} if you are using the EL expression within the servlet or 
fitler tags. The ${this.name} syntax would work well for nesting in 
properties files too if that was also needed.

In JSF you have the javax.faces.CONFIG_FILES init param you can use right 
now, a similar configuration option for web.xml fragements named 
javax.servlet.CONFIG_FILES would be good. Behavior would be that it loaded 
additional, non-default web.xml fragements within an archive. Basically 
specifying some additional custom web.xml fragments within my archive but 
don't break web.xml fragments in embedded library jars.

Of course EL values would have to be supported when used as annotation 
attribute values. 

> Configurable deployment descriptors
> -----------------------------------
>
>                 Key: JAVAEE_SPEC-19
>                 URL: http://java.net/jira/browse/JAVAEE_SPEC-19
>             Project: javaee-spec
>          Issue Type: New Feature
>            Reporter: arjan tijms
>            Assignee: ldemichiel
>
> In a Java EE application deployment descriptors are used to configure and 
> setup the application. One major issue is that these deployment descriptors 
> are mostly static. In practice, there's often a need to have a different 
> set of configuration files for different situations.
> For instance, for a development environment I might want a link configured 
> by a {{context-param}} in web.xml to point to 
> 'localhost:8080/someapp/myresource', while in a QA environment I want it to 
> point to 'qa.mycompany.com/myresource' etc.
> As another example, since Java EE 6 a data source can be configured in 
> among others web.xml using the {{data-source}} element. Especially in this 
> case there is a pressing need to have different data sources pointing to 
> different databases depending on the context.
> Yet another example is a Servlet Filter that provides some development 
> utilities, which should definitely not be activated in a production 
> environment.
> A possible solution for this could be the introduction of descriptor 
> fragments that are included from the main descriptor based on a 
> placeholder. E.g. in web.xml:
> {code:xml}
> <web-app> 
>     ... 
>     <fragment>WEB-INF/conf/${mycompany.staging}/web-fragment.xml</fragment>
> </web-app>
> {code}
> Inside the WEB-INF/conf directory, multiple folders could be created, each 
> corresponding to a stage, e.g.
> {code}
> WEB-INF
>     conf
>         dev
>             web-fragment.xml
>         qa
>             web-fragment.xml
>         live
>             web-fragment.xml
> {code}
>     
> Starting up the application with {{-Dmycompany.staging=dev}} would then 
> cause {{WEB-INF/conf/dev/web-fragment.xml}} to be processed.
> Besides being useful for directing different fragment descriptors to be 
> processed, placeholders can also be used to externalize some values 
> completely. E.g. the password in a production datasource:
> {code:xml}
> <data-source>
>     <name>java:app/someDS</name>
>     <class-name>org.example.Something</class-name>
>     <url>jdbc:someDB</url>
>     <user>${mycompany.someDS.user}</user>
>     <password>${mycompany.someDS.password}</password>
> </data-source>
> {code}
> For the above to be really useful, another concept should be introduced: 
> the ability to load system properties from an external properties file. 
> Specifying the above password via a -D command line option is of course not 
> secure, since it can be seen in the running processes (e.g. using the 
> {{ps}} command). Something like the following would be more suitable:
>  {{-Djavax.config.properties=/somepath/config.properties}}.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

chasetec (JIRA) 01/01/2013

<Possible follow-up(s)>

[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

arjan tijms (JIRA) 01/09/2013

[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

ldemichiel (JIRA) 01/24/2013

[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

kithouna (JIRA) 01/28/2013

[javaee-spec issues] [JIRA] Commented: (JAVAEE_SPEC-19) Configurable deployment descriptors

arjan tijms (JIRA) 01/29/2013
 
 
Close
loading
Please Confirm
Close