3 Replies Latest reply on Aug 7, 2007 11:15 AM by Pete Muir

    configuration with property files - ideas?

    Matt Drees Master

      I'm writing a Seam adapter for ja-sig's CAS client (http://www.ja-sig.org/products/cas/). The client by default is configured by Spring, but I'm trying to configure it with Seam. One thing it does is use a properties file, and a PropertyPlaceHolderConfigurer. To mimic that, I'm doing this:

      @Name("casProperties")
      @Scope(ScopeType.APPLICATION)
      @Install(precedence = Install.FRAMEWORK)
      public class CasProperties {
      
       Properties casProperties;
      
       String fileName = "cas-client.properties";
      
       @Create
       public void create() throws Exception {
       casProperties = new Properties();
       casProperties.load(Resources.getResourceAsStream("/WEB-INF/" + fileName, ServletLifecycle.getServletContext()));
       }
      
       @Unwrap
       public Properties getCasProperties() {
       return casProperties;
       }
      
       public String getFileName() {
       return fileName;
       }
      
       public void setFileName(String fileName) {
       this.fileName = fileName;
       }
      }
      


      and in a components.xml file this:
       <factory name="serverUrl" value="#{casProperties['cas.server.url']}" scope="STATELESS" auto-create="true"/>
       <factory name="clientServerName" value="#{casProperties['cas.client.serverName']}" scope="STATELESS" auto-create="true"/>
       <factory name="clientProxyCallbackUrl" value="#{casProperties['cas.client.proxyCallbackUrl']}" scope="STATELESS" auto-create="true"/>
      
      


      Is there an easier way to make the contents of a specific properties file (i.e., not using components.properties or seam.properties) available to components.xml, etc?

      Thanks
      -Matt