Map property in property file

Hi all,
can we have a map property in properties file, i.e key value pair , and the value being a List or map or Array for example,
States.properties
state=\
AL=Alabama,\
MA=Massachusetts,\
CA=California,\
xyz=List or Map or array
can we have a list or map or array as value for XYZ????

Nucleus doesn't have any code that understands complex collection element structures. In other words, there's no automatic parsing of maps within maps or arrays within arrays. If you want that kind of structure, you have to write your own parsing code for the children. You have to be careful with your choice of delimiters so that something in a child isn't interpreted as a parent delimiter. The most complex example is a map of maps. You'd have a hard time if you tried to use = to separate the keys and values in the child maps and tried to use comma to separate child map elements.
Another option for the map of maps case is a ServiceMap, which is a map of Nucleus components. Instead of configuring child maps in the parent's properties file, you'd configure each child in its own properties file. If you go to the trouble of splitting out the child configurations into separate components, you might as well take the next step and create a pojo with named properties instead of stuffing all the child information into a map. Accessing pojo properties by name usually makes for more readable application code.

Similar Messages

  • Modifying property file at run time

    Hi all..
    I have been using properties file for handling few configurations in my project.
    whenever i need a change in the file, i had to change it in corresponding file, create a jar file and then introspect it into project and then publish the project.
    Is there any other way of achieving it.... can we modify the property file at run time just like we do for JSP pages...
    Or any other better way of doing this.. pls suggest..
    (am using 10g OBPM)
    Have a nice time...
    Regds,
    Viswanath

    Sharma,
    write a java class that reads a property file from the external path. make the jar file non-versionable in case you need to update that later. if you are on J2ee container all you need to do it drop the file @ domain root and u shd be good to go.
    sample code I am doing this for log4j.properties and application propertied.
    public class BPMLoggerUtil {
         // Initializing the default Logger //
         private static Logger logger = null;
         private static final String DEFAULT_PATH = "resources/log4j.properties";
         private static HashMap map = new HashMap();
         * This is the init method
         * @param propertyPath
         public static void init(String propertyPath){
              try {
                   if((logger = (Logger) map.get(propertyPath)) == null){
                        Properties properties = new Properties();
                        properties.load(LoggerUtil.class.getClassLoader().getResourceAsStream(propertyPath));
                        PropertyConfigurator.configure(properties);
                        logger = Logger.getLogger(PropertiesHelper.getProperty("resources.test", "AppName"));
                        map.put(propertyPath, logger);
              } catch(Exception ex) {
                   ex.printStackTrace();
         }

  • FILENOTFOUNDEXCEPTION while reading property files in Tomcat 6------Help me

    Hi All
    I am planning to migrate my web application from iplanet 4.1 to tomcat 6. In this process I need to read the properties files initially.
    for eg: i got the property files in a iPlanet:
    Config directory---
    abc.properties.---
    abc.log--
    In tomcat I configured them in web.xml saying that.
    <servlet>
    <servlet-name>ABC</servlet-name>
    <servlet-class>com.ijk.abc</servlet-class>
    <init-param>
    <param-name>Loan</param-name>
    <param-value>/WEB-INF/config</param-value>
    </init-param>
    <init-param>
    <param-name>loan.props</param-name>
    <param-value>/WEB-INF/config/abc.props</param-value>
    </init-param>
    <init-param>
    <param-name>loan.log</param-name>
    <param-value>/WEB-INF/config/abc.log</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>ABC</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
    I need to read initially all the property files and then proceed.
    While configuring in this way, it am getting error saying that
    abc.props or abc.log..............(FILE NOT FOUND EXCEPTION)
    Can anyone suggest me how to configure them.
    Thanks in Advance.

    Thanks for your response, Actually we dont have the source code for that because it is very old code, but i m using decompiler in which i can get some informtaion.
    OS used for iPlanet is Unix but now I need to deploy this application in tomcat in windows server 2003.
    Servlet clss:
    SERVLET CLASS:
    Class com.ijk.abc implements extends HttpServlet  implements PropertyKeys
    private IClickManager m_im;
    public void init(ServletConfig paramServletConfig)
        throws ServletException
        Utils.info("Servlet initialization");
        try {
          super.init(paramServletConfig);
          Utils.info("ServerInfo: " + getServletContext().getServerInfo());
          PGroup localPGroup = this.m_im.claimPG();
          Utils.trace("Got " + localProcessorGroup + " for initialization");
          this.m_im.gatherProperties(localProcessorGroup);-----------this is where it is calling the property files.
          this.m_im.freePG(localPGroup);
          Utils.trace("Released " + localPGroup + " for new Properties");
          localPGroup = this.m_im.claimPG();
          Utils.trace("Got " + localPGroup + " for new Properties");
          try
            ConHandler localDBHandler = (ConHandler)localPGroup.getDBHandler("config.dbhandler");
            this.m_im.setNumPGs(localDBHandler.getNumPGroups());
          catch (Exception localException1) {
            Utils.info("NON FATAL ERROR: failed to set number of PGs", localException1);
          try
            Session.createAndStartSessionTask(localPGroup);
            localPGroup.resumeAllTasks();
          catch (Exception localException2) {
            Utils.info("NON FATAL ERROR: failed to start tasks", localException2);
          this.m_im.freePG(localPGroup);
          Utils.trace("Released " + localPGroup + " for initialization");
          Utils.info("Servlet initialization finished");
        catch (FatalServletError localFatalServletError) {
          Utils.error("FatalServletError: ", localFatalServletError);
          throw new UnavailableException(this, localFatalServletError.toString());
        catch (Error localError) {
          Utils.error("Error: ", localError);
          throw localError;
    ==========================================================
    public void gatherProperties(ProcessorGroup paramProcessorGroup)
        Object localObject;
        this.m_props.clear();
        String str1 = this.m_servlet.getInitParameter("loan.dir");
        if (str1 == null) {
          str1 = System.getProperty("server.root", System.getProperty("user.dir", "."));
        this.m_props.put("loan.dir", str1);
        String str2 = this.m_servlet.getInitParameter("abc.log");
        setLogFile(str2);
        try
          String str3 = this.m_servlet.getInitParameter("abc.props");
          if (str3 == null)
            str3 = "abc.props";
          localObject = str1 + File.separator + str3;
          Utils.info("Reading properties from file: " + ((String)localObject));
          Utils.loadProperties(this.m_props, new BufferedInputStream(new FileInputStream((String)localObject)));
        catch (IOException localIOException) {
          Utils.info("NON FATAL WARNING: Could not read props file", localIOException);--while running i m getting this error
        Utils.info("Reading properties from Servlet Parameters");
        Enumeration localEnumeration = this.m_servlet.getInitParameterNames();
        while (localEnumeration.hasMoreElements()) {
          localObject = (String)localEnumeration.nextElement();
          this.m_props.put(localObject, this.m_servlet.getInitParameter((String)localObject));
        Utils.info("Reading properties from DB");
        try {
          localObject = (ConDBHandler)paramProcessorGroup.getDBHandler("config.dbhandler");
          String str5 = ((ConDBHandler)localObject).getPropertiesFile();
          Utils.loadProperties(this.m_props, new ByteArrayInputStream(str5.getBytes()));
        catch (Exception localException) {
          Utils.info("NON FATAL WARNING: Could not read props file", localIOException);--while running i m getting this error
        String str4 = this.m_props.getProperty("smtp.host");
        if (str4 != null) MailUtils.setSMTPHost(str4.trim());
        if (str2 == null) {
          str2 = this.m_props.getProperty("abc.log");
          setLogFile(str2);
         runInitializers(paramPGroup);
        Utils.info("New Properties:", this.m_props);
        this.m_rroots = StringUtils.getPathsFromList(this.m_props.getProperty("resource.path", "/com/loan/resources/:/"));
        clearAllPGs();
    =================================================================
    the above is the servlet class and the method which is using to read the property files from root directory in Unix.
    ie../opt/mywebapp/loan/abc.props,abc.log
    loan is the directory in which two property files are placed.
    i just want to where to place property files in tomcat so that its going to read the property files.
    Right now, i placing it in the WEBAPPS/MYWEBAPPLICATION/WEB-INF/LOAN/abc.props,abc.logs.
    Its giving me errors such as FILENOTFOUNDEXCEPTION or cannot read the property files.
    The main problem is ...I donot have the complete source code. while decompiling i m not able view complete source code.
    Please help me regarding this.........
    Thanks in advance.

  • No mapping property with name - BPM error

    Hi all ,
    In our BPM scenario we are getting this error .. "No mapping property with name"
    when the message passed from Sender system to BPM
    RFC - BPM - File
    <Trace level="1" type="T">No mapping property with name sap.bc.bmt.wfm.xi.interface.synch.http://test.com/tp/pcs:MI_RecipeDownload_Abstract</Trace>
    <Trace level="1" type="T">MI_RecipeDownload_Abstract really used in process?</Trace>
    Few points:  MI_RecipeDownload_Abstract  is my first recv step in BPM
                       It is also the recv interface for RFC sneder - BPM
    Any clue will be very helpful...
    Kind regards
    Goutam

    Goutam,
    MI_RecipeDownload_Abstract is my first recv step in BPM
    It is also the recv interface for RFC sneder
    >> for rec interface for RFC sender it should be with out abstract. only steps inside BPM must be abstract.
    Regards
    Sreeram.G.Reddy

  • Creating cache for multiple property files run time/dynamically.

    Hi,
    I have a requirement, where in I need to create cache for each property file present in a folder at server side or in the lib or resources directory. Please help me how I can do this?
    Thanks.

    ok thank you.
    I follwed this method implementation:
    static HashMap<String, HashMap<Object, String>> cacheHolder = new HashMap<String, HashMap<Object, String>>();
         static HashMap<Object, String>[] cache = new HashMap[2];
         static Integer fileCount = 0;
         static int incrementSize = 2;
    public method1(Map<Object,String>map){
    File file = new File((new StringBuilder(
                             "ABC/XYZ/")).append(value)
                             .toString()); // where value is the file name returned from the external method
                   int newSize = existingMapLength+incrementSize;
                   if (someVal== null) {                    
                        synchronized (fileCount) {
                             int oldSize = cache.length;
                             if(fileCount==cache.length){
                                  HashMap[] oldData = new HashMap[oldSize];
                                  oldData = cache;                              
                                  cache = new HashMap[newSize];
                                  LOGGER.info("New Size added:==>"+cache.length);
                                  for(int i=0;i<oldSize;i++){                                   
                                       cache[i] = oldData;
                                  cache[fileCount] = readExternalPropertiesFile(file); // external method which returns the properties of the file in hashmap
                                  cacheHolder.put(value, cache[fileCount]);                    
                                  keys = cache[fileCount].keySet();
                             else{                         
                             cache[fileCount] = readPropertiesFile(file);
                             cacheHolder.put(value, cache[fileCount]);                    
                             keys = cache[fileCount].keySet();
                             someVal= cache[fileCount];
    fileCount = fileCount + 1;
    Please let me know if any improvemnets are possible.

  • Load property file in init(PortletConfig) method of JSR 286 portlet

    I store my configuration in .properties file. Now I want to load this file only once, so I decided to load it in init(poerletConfig) method. But now I'm confused to where to put this file, so it can be loaded in this method. I'm using following code:
    Properties properties = new Properties();
    try {
    properties.load(new FileInputStream("which_path_to_give_here")); // not sure where to put property file and how/which path to give here?
    } catch (IOException e) {
         System.out.println(e.getMessage());
    }

    Friend i think you are trying to reinvent the wheel again...
    To my knowledge liferay provides a utility class for FileUpload by default.
    Guess U need to add portlet-ear.jar along with the application you programme.
    Hope you could have seen admin portlet already where we would upload company logo.. hope you remeber tht....
    I've Posted the code behind(ActionClass) it in the below post
    http://forum.java.sun.com/thread.jspa?threadID=5160308&messageID=9610263#9610263
    it would be great if you can make use of StrutsPortlet class provided by liferay and configure your porlet.xml accordingly & then write an PortletAction class & then create its action mapping in struts-config.xml.
    and the reason why i'm stressing with that approach was sometimes The FileUpload Components may not be compatible different Portlet Containers
    Hope that might help :)
    and a small advice liferay does have their devoloper zone where you have user communities.Im sure you might get a better reply from their side too.
    REGARDS,
    RaHuL

  • Standard way to maintain property files for internationalization??

    Hi All,
    For multiple language support, normally we maintain a different property file for different languages.For example, consider English language.In my case, i placed all the labels for english in one property file through out my application.All french labels in one property file and so on.
    My question is, Is it better to maintain seperate property file for each page also??? Or else, one property file is good enough for one language??? which is better?(interms of complexity and performance)

    Here is how I mapped the taglibs in my XML file and it works fine:
    <taglib>
              <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
              <taglib-location>/WEB-INF/lib/struts-bean.tld</taglib-location>
    </taglib>The .tld files are in the WEB-INF/lib dir. To use them i put this line in the JSP file:
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="struts_html" %>Hope this helped,
    Calin

  • Property File  condition

    Hi
    I did one  file to file scenario  by using a property file.. that is.. my property file contain simple 2 lines of code..  that is...
    ABAP = FIRST RECEIVER 
    BW = SECOND RECEIVER
    It's working fine..   based onthat employee department wise it was sending the details to particular recever..  if  the Employee Department is ABAP then  his details was going to First Receiver..
    if  the Employee Department is  BW  then  his details was going to Second Receiver..
    It was working fine...
    <b>but now i want to specify one more condition.. that is... other that these two department emplyee details all i want to send one more receiver (Third Receiver)</b>for this.. what can i do.. where can we  write the condition.. and  message mapping what  can  do..
    plz suggest me..
    thansk
    Babu

    HI BABU,
    Just open it there will be + symboll for AND condition,
    [ ] symbol for OR condition, here we can add as many as VALUE for checking condition.
    GO to xpath condition TAB.
       Click on ICON or F4 help button you will get popup window thier u can use the conditions
    IF u think it's best answer reward it

  • How can i get the all values from the Property file to Hashtable?

    how can i get the all values from the Property file to Hashtable?
    ok,consider my property file name is pro.PROPERTIES
    and it contain
    8326=sun developer
    4306=sun java developer
    3943=java developer
    how can i get the all keys & values from the pro.PROPERTIES to hashtable
    plz help guys..............

    The Properties class is already a subclass of Hashtable. So if you have a Properties object, you already have a Hashtable. So all you need to do is the first part of that:Properties props = new Properties();
    InputStream is = new FileInputStream("tivoli.properties");
    props.load(is);

  • Error Reading Property File in Portal Component

    Hello,
    I have created a portal component that calls an api that is located in a jar file.  The documentation on the Portal Component Structure specifies putting the jar file in the PORTAL-INF/lib directory, which I have done.  The problem is, my jar file reads a property file using ResourceBundle, but it doesn't find the property file.  I have placed the property file in the jar file, and throughout the portal component structure, but it just can't find it.  Has anyone else done something similar?  If so, where did you put your property file(s) for external jars that are used in the portal component.
    EP6 SP2 Patch27
    thanks,
    Keith

    Hi,
    I had similar issues and moved the property files to PORTAL-INF/classes.
    Best Regards
    Frank

  • Maven Plugin not accepting values from a property file.

    Hi,
    I want to create javadocs using maven.
    It works fine when i provide all the absolute paths in the pom.
    But when i try to provide paths by reading a property file then the maven-javadoc-plugin does not get the paths from this property file.
    The property file is defined as mentioned in below format:
    src_mvn_consult_framework_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/projects/framework
    src_mvn_consult_module_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/projects/module
    src_mvn_consult_appx_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/projects/appx
    src_mvn_consult_client_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/projects/client
    src_mvn_consult_app_webservice_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/application/com.ofss.fc.cz.nab.webservices
    src_mvn_consult_app_middleware_dir=/var/lib/hudson/jobs/CZ_NAB_CORE_MVN_CHECKOUT/workspace/middleware/application/com.ofss.fc.cz.nab.middleware
    Calling this property file in the pom like:
    <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>properties-maven-plugin</artifactId>
         <version>1.0-alpha-2</version>
         <executions>
         <execution>
         <phase>initialize</phase>
         <goals>
    <goal>read-project-properties</goal>
         </goals>
         <configuration>
    <files>
         <file>/var/build/consult/maven/cz_javadoc-config.properties</file>
    </files>
         </configuration>
         </execution>
         </executions>
    </plugin>
    Finally we are using keys defined in property file in pom like:
    <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>2.7</version>
              <configuration>
              <sourcepath>${src_mvn_consult_framework_dir};
                   ${src_mvn_consult_module_dir};
                   ${src_mvn_consult_appx_dir};
                   ${src_mvn_consult_client_dir};
                   ${src_mvn_consult_app_webservice_dir};
                   ${src_mvn_consult_app_middleware_dir};
              </sourcepath>
              </configuration>
    </plugin>
    Please suggest how we can get the value of keys defined in the property file in POM
    Thanks for your invaluable support

    I've had to do something similar in one of my apps.  In order to populate values in the THIS scope, you'll need to put a copy of the XML loading/processing logic in the pseudo-constructor (or encapsulate it in a separate CFM/CFC file and include it in both places).  It's ugly, but that's the only way I'm aware of to access the THIS scope.
    -Carl V.

  • Open module for managing property file and environment variables

    Looking for an open module for managing property files and environment variables (like CLASSPATH) set in a shell script. For handeling properties (preserving comments, supporting includes, appending new entries, and more) I have looked at SuperProperties from openadaptor but find certain functionality lacking. As for interfacing with common shell scripts/files containing setting for CLASSPATH, JAVA_HOME, other system/application variables another type of object editor is needed. Maybe JFIG?
    Any ideas are greatly welcomed.

    You seem wright, you hit a brick wall here with Air to find the location
    of the command console on windows...
    So in fact I never build an exe tool, but this little problem was a nice
    case to test it and I tried it.:
    I downloaded monodevelop
    -GTK# for .NET 2.12.10*
    -MonoDevelop 2.4.2*
       from http://monodevelop.com/Download
    created a console project and had an exe in 5 minutes !
    You can download the findconsole tool and the projectfiles here:
       http://greencollective.nl/temp/dump/findconsole_monoproject.zip
    findconsole.exe will reveal the path/location of cmd.exe on a windows system.
    Cheers,
    Latcho

  • How to use an equal sign as a part of the value in a property file

    say I have this line in a properties file:
    args = -Xms512m -Xmx512m -XX:MaxPermSize=256m
    obviously I can't use the (=) as is. What should I do to make it work?
    I tried to use \= and \:, but it doesn't work as well.
    thanks.

    A property file contains "key" lines or "key=value" lines the '=' character loses its special meaning after a key is read so you can use '=' characters in the 'value' part of a property.
    kind regards,
    Jos

  • How to use property file - sql query define in property file

    Hi All,
    Anybody please tell me how to use property file.
    I have placed sql query in propery file and I have to access this in my file.
    well so far this is my code but don't know how to implement in the following ...
    pstmt = con.prepareStatement("select * from registration where username=?");
    instead of writting the query I want to use the property file.
    so far I have developed the following code...
    FileInputStream fis = new FileInputStream("querysql.property");
    Properties dbProp = new Properties();
    dbProp.load(fis);is the code correct... or is there another way to access property file
    Please help.
    please reply soon....
    Thanks

    Before answering, check if it's already been done here http://www.jguru.com/forums/view.jsp?EID=1304182

  • How to read and update the value of property file

    Hi,
    I am not able read the values from property file.
    Please tell me how to read and update the values from property file using Properties class
    This is my property file : - Config.properties its located in D:\newfolder
    Values
    SMTP = localhost
    Now i need to change the value of the SMTP
    New value :
    SMTP =10.60.1.9
    Pls Help me
    Thanks
    Merlin Rosina,

    Post a small (<1 page) example program that forum members can copy and run that demonstrates your problem.

Maybe you are looking for

  • Links missing in SWF file

    For some reason our linked areas don't appear in our swf flash file when viewed with computers that don't have the JAVA update. When these computers are updated, the linked areas suddently appear. Anyone know why? Is there a way to avoid this? I was

  • In Visual Composer Can we Pass a whole Table to a Bapi

    I have a Bapi which takes a table as input and stores the values in SAP-Database. But in Visual Composer i am not able to do it.When i fetching the Bapi into Storyboard its not showing the Input field for passing the table. Is it a limitation of Visu

  • How to charge OH on Internal order

    Hi gurus, can any body tell me what is the procedure to charge the Overhead on Internal Order? also want to know how can i charge  OH through Internal order during product costing? point will be rewarded........... than'x dhananjay

  • Is it possible to sync a clip without using multicam ?

    Hi there, I have some video clips recorded on 2 videos, we just say Video A & B. On the timeline, I mostly used clips from Video A. But for one 10 sec duration I prefer clip from Video B. How to I sync this 10-sec clip form video B to video A without

  • TF400587 and TF401098 Error when adding a new PortfolioBackLog

    On a fresh TFS 2013 installation, I tried to add a new Initiative category to the Portfolio Hierarchy of a Team Project using the Agile Process Template following the steps described here https://msdn.microsoft.com/en-us/library/dn306083.aspx Importi