Hi André, You can even remove some code. Wonder try to load some specific properties files is a specific order. This ordered loading allows to override a setting in a file loaded after another with the same setting.
Here are the one I use in load order: 1 - the main file named "Properties" created by the project template is loaded first. You may have a file inside each framework and in the app itself. 2 - A file named "Properties.username" where username is the current system username. 3- The file named "Properties.dev" loaded only in development mode. By default username is the system username but you can specify this name in the Java arguments. By adding "-user.name prod" in the Monitor Additional Arguments, Wonder will load the Properties.prod file for exemple. This is a zero code way to do the same thing you do manually if you specify the database connection in the Properties.username file. Regards, Samuel > Le 8 nov. 2017 à 03:31, André Rothe <andre.ro...@phosco.info> a écrit : > > Hi René, > > I have found a solution for my problems: > > In the JavaMonitor I have configured two applications with the same binaries. > The only difference is a VM parameter -Dconfigfile=foo.config in the first > application and the parameter -Dconfigfile=bar.config in the other > application. > > With these parameters I can use different database configurations, which are > stored into the configuration files. > > In the Application class I can use > > FileInputStream fs = new FileInputStream(System.getProperty("user.dir") + > System.getProperty("file.separator") + System.getProperty("configfile")); > Properties p = new Properties(); > p.load(fs); > > to get the database credentials. According to your post, in the model I have > removed all connections, this will result in an Exception, if I access an > EOEditingContext (i.e. within a Session). To prevent that, I set the > connection within the Application class, before any access to the database. > > EOModel model = EOModelGroup.defaultGroup().modelNamed("MyModelName"); > EODatabaseContext dc = > EODatabaseContext.registeredDatabaseContextForModel(model, new > EOEditingContext()); > EOAdaptor da = dc.adaptorContext().adaptor(); > > The database credentials I can store into an NSMutableDictionary: > > NSMutableDictionary cred = new NSMutableDictionary(); > cred.takeValueForKey(p.getProperty("username"), "username"); > cred.takeValueForKey(p.getProperty("password"), "password"); > cred.takeValueForKey(p.getProperty("url"), "URL"); > cred.takeValueForKey(p.getProperty("driver"), "driver"); > > Then I set the new ConnectionDictionary for the EOAdapter and EOModel: > > da.setConnectionDictionary(cred); > model.setConnectionDictionary(cred); > > This works also for all other EOEditingContext instances within the > application, I don't have to switch the connection for every new EC instance. > > Some ideas I got from https://stackoverflow.com/questions/13459208 and > http://mirror.informatimago.com/next/developer.apple.com/documentation/WebObjects/Enterprise_Objects/Connecting/chapter_10_section_8.html#//apple_ref/doc/uid/TP30001011-DontLinkChapterID_6-TPXREF144 > > Best regards > André > > > Am 2017-11-06 17:05, schrieb René Bock: >> Hi André >> we don't store database connection infos in the eo-model. Instead we follow: >> https://wiki.wocommunity.org/display/documentation/Best+Practices-Properties+Files >> e.g: >> dbConnectURLGLOBAL=jdbc:mysql://localhost/DbName >> dbConnectUserGLOBAL=ojp >> dbConnectPasswordGLOBAL=XXXXX >> dbEOPrototypesEntityGLOBAL=EOJDBCMySQLPrototypes >> dbConnectPluginGLOBAL=MySQLPlugIn >>> Am 06.11.2017 um 16:55 schrieb André Rothe <andre.ro...@phosco.info>: >>> Hi, >>> three questions according the database connection: >>> I have a model, which has a database connection defined in a connection >>> dictionary. But the model should not open the connection per default, it >>> should get the credentials from another property file which will differ >>> between the instances of the application in the JavaMonitor. If I use this >>> solution: >>> http://mirror.informatimago.com/next/developer.apple.com/documentation/WebObjects/Enterprise_Objects/Connecting/chapter_10_section_8.html >>> the app will connect to the default database and makes then a reconnect to >>> the later provided database. Is it possible to prevent the first connect? >>> If I use multiple EOEditingContexts in my application, I have to change the >>> connection parameters for every EC. When is the best time to set these for >>> the session.defaultEditingContext()? Can I get the current connection >>> credentials from an EditingContext instance to use it on another EC >>> instance? >>> Thank you. >>> Best regards >>> André >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/bock%40salient-doremus.de >>> This email sent to b...@salient-doremus.de >> Mit freundlichen Grüßen >> René Bock >> -- >> Telefon: +49 69 650096 18 >> salient GmbH, Lindleystraße 12, 60314 Frankfurt >> Telefon Zentrale: 069 / 65 00 96 - 0 | www.salient-doremus.de > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com > > This email sent to sam...@samkar.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com