Properties between two applications

Hi

I will be dividing my application into two domains. The first is the core.jar that will have some core classes. It will have its own properties file from which it will read the properties for various actions.

Now my second jar, applications.jar will be built upon core.jar. I will use only the jar of the core.
I want to modify the properties which get set in the core.jar file. How should i go about doing it.

One way is i can have a properties file outside my core.jar in a fixed path which the core.jar reads to set the propertoes. But this gives a very tight coupling between the jar and the loation of the file.

Is there any other way to go about doing it ?? I hope that i have made myself clear.

Thanks
Mrigank
LVL 5
mrigankAsked:
Who is Participating?
 
mmuruganandamCommented:
You can have the properties inside your Jar.  May be u can have the perperties identifier (say in numeric).  On each update the count should be increased by one.

You can load the properties outside the jar first and take the count.
Then load the properties inside jar and compare the count value.

That way you can decide the latest properties file.

Otherwise,
If any outside properties is available, then consider that as a latest properties.
Always check the existance of the outside properties file.
If that fould load it, otherwise load the jar properties file.


Regards,
Muruga
0
 
mmuruganandamCommented:
If both of the jars are going to be used within a JVM you can really split the things into two parts.

All your core things in a jar (utilities).  The domain stuffs in another Jar.  That way, you will be using a single properties file.
So all your update calls will goto a single place.

If it is two different JVM's just let me know how are you sharing a single property file across two different JVM's when both are at different (remote) locations.


Regards,
Muruga
0
 
mrigankAuthor Commented:
actually my core.jar will be used by various applications. So the core will have its own properties file inside the jar but the applications should be able to change those properties using a separate file.
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
mmuruganandamCommented:
But having the properties file which might be updated within a Jar is not a good idea.

In those scenerios, you can prefer DB to hold the updatable values.
0
 
mrigankAuthor Commented:
yeah thats the point. I should not update the properties inside the jar. but can i have a file outsude the jar which overrides the properties inside the jar ????

i suggsted the use of a db but people do not like it :(
0
 
ksivananthCommented:
Ya, u can have the properties files outside of the jar but the folder structure should be maintained. If u have the properties in the exact folder outside of the jar, that will be used and the properties inside the jar will be discarded.

Regards,
Siva
0
 
mrigankAuthor Commented:
that is the problem ..  having to maintain the folder structure ... which is a pain at times .. because my code will then search for that structure .. not in a generic format ...

though another way is to have the file in the classpath ..
0
 
mmuruganandamCommented:
don't keep it in the classpath.  Better would be give the complete path as system property then.

-Dapp.properties=/usr/muruga/hello.properties

0
 
ksivananthCommented:
>>that is the problem ..  having to maintain the folder structure ... which is a pain at times .. because my code will then search for that structure .. not in a generic format ...
>>

    I don't understant. What do you mean "which is a pain at times .. because my code will then search for that structure"?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.