Hi Ted, try following:
NSProperties.sharedInstance().setPropertyForKey("value-from-db", "desired-key");
Farrukh
On 2011-10-29, at 1:35 AM, Theodore Petrosky wrote:
> but how do you handle the situation where you don't know the smtp server, or
> the smtp server is changing?
>
> I want to store the smtp server (and port) as an attribute in my database
> then I can adjust it as needed.
>
> Am I thinking about this 'wrong'?
>
> TEd
>
> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 25 Oct 2011 00:34:43 +0200
>> From: Philippe Rabier <[email protected]>
>> Subject: Re: setting properties ??
>> To: WebObjects Development <[email protected]>
>> Message-ID: <[email protected]>
>> Content-Type: text/plain; CHARSET=US-ASCII
>>
>> Theodore, I'm afraid you use properties the wrong way.
>>
>> Personally, I never set properties in my own code, only
>> read them (except for frameworks I wrote of course).
>> Properties are used to initialize informations.
>>
>> By setting default values in your framework, you can change
>> them in your application. And you can have several
>> properties files in your have with a different suffix
>> (Properties.staging, Properties.production for example).
>> Then you can set a user through the WOMonitor in the
>> additional arguments like -Duser.name=staging and the right
>> file will be opened.
>>
>> I hope you read the wiki because there are useful
>> informations like
>> http://wiki.objectstyle.org/confluence/display/WO/Project+Wonder+Properties+Files
>>
>> Now if you want to modify on the fly ERJavaMail, use the
>> accessors like setCentralize(boolean) for example because
>> properties can be read once during initialization. If you
>> don't find an accessor, maybe you can't change it. I
>> wouldn't be surprised if the smtp host is one of them.
>>
>> Philippe
>>
>> On 24 oct. 2011, at 16:39, Theodore Petrosky wrote:
>>
>>>
>>>
>>> --- On Sun, 10/23/11, Kieran Kelleher <[email protected]>
>> wrote:
>>>
>>>> From: Kieran Kelleher <[email protected]>
>>>> Subject: Re: setting properties ??
>>>> To: "Theodore Petrosky" <[email protected]>
>>>> Cc: [email protected]
>>>> Date: Sunday, October 23, 2011, 10:42 PM
>>>> You can specify the properties in
>>>> your Properties file (inside Resources folder in
>> your
>>>> project), for example:
>>>>
>>>> er.javamail.centralize=false
>>>>
>>>
>>> what I am discovering is that there are some
>> ERJavaMail attributes that can be adjusted on the fly.
>>>
>>> centralize is not one of them.
>>>
>>> I have a little dummy app for testing and after I put
>> the er.javamail.centralize=false in the Properties file, I
>> can put:
>>>
>>> ERXProperties.setStringForKey("mail.agencysacks.com",
>> "mail.smtp.host");
>>>
>>> in my component and it will use this mail server.
>> however if it is commented out, it will not find a mail
>> server and the sending will fail.
>>>
>>> Now I will experiment to discover what other
>> attributes MUST be in the Properties file and which can be
>> adjusted on the fly.
>>>
>>> Ted
>>>
>>>
>>>
>>>>
>>>> On Oct 23, 2011, at 7:34 AM, Theodore Petrosky
>> wrote:
>>>>
>>>>> I am working with sending email notifications
>> when my
>>>> users save edits to EOs.
>>>>>
>>>>> I discovered that I can update the properties
>> from my
>>>> app (in the application constructor) with:
>>>>>
>>>>>
>> ERXProperties.setStringForKey("mail.agencysacks.com",
>>>> "mail.smtp.host");
>>>>> ERXProperties.setStringForKey("35",
>>>> "mail.smtp.port");
>>>>> ERXProperties.setStringForKey("false",
>>>> "er.javamail.centralize");
>>
>>>>> ERXProperties.setStringForKey("tpetrosky",
>>>> "er.javamail.smtpUser");
>>>>> ERXProperties.setStringForKey("xxxx",
>>>> "er.javamail.smtpPassword");
>>>>> ERXProperties.setStringForKey("true",
>>>> "er.javamail.smtpAuth");
>>
>>>>> ERXProperties.setStringForKey("[email protected]",
>>>> "er.javamail.adminEmail");
>>>>>
>>>>> so (as I am just playing because I need to
>> learn more)
>>>> I added some log statements in my save method:
>>>>>
>>>>> public WOActionResults saveChangesToItem() {
>>>>> . . . . .
>>>>>
>>>>> ERMailDeliveryHTML mail = new
>> ERMailDeliveryHTML ();
>>>>>
>>
>>>>
>>>>> IOChangeEmail component =
>>>> pageWithName(IOChangeEmail.class);
>>>>> mail.setComponent(component);
>>>>>
>>
>>>>
>>>>> System.out.println("inside try mail.smtp.host
>> = " +
>>>> ERXProperties.stringForKey("mail.smtp.host"));
>>>>> System.out.println("inside try mail.smtp.port
>> = " +
>>>> ERXProperties.stringForKey("mail.smtp.port"));
>>>>> System.out.println("inside try
>> er.javamail.centralize
>>>> = " +
>>>>
>> ERXProperties.stringForKey("er.javamail.centralize"));
>>>>> System.out.println("inside try
>> er.javamail.adminEmail
>>>> = " +
>>>>
>> ERXProperties.stringForKey("er.javamail.adminEmail"));
>>>>>
>>
>>>>
>>>>> mail.newMail();
>>
>>>>
>>>>> mail.setToAddress("[email protected]",
>>>> "Theodore Petrosky");
>>>>> mail.setFromAddress("[email protected]",
>>>> "Ted Petrosky");
>>>>> mail.setReplyToAddress("[email protected]",
>>>> "Ted Petrosky");
>>>>> mail.setSubject("An IO was edited and
>> saved!!");
>>>>>
>>
>>>>
>>>>> mail.sendMail();
>>>>>
>>>>> . . . .
>>>>> }
>>>>>
>>>>> this is the console:
>>>>>
>>>>> Oct 23 02:27:06 ASChelseaLoginGrid[56901]
>> DEBUG
>>>> NSLog - === Commit Internal
>> Transaction
>>>>> inside try mail.smtp.host =
>> mail.agencysacks.com
>>>>> inside try mail.smtp.port = 35
>>>>> inside try er.javamail.centralize = false
>>>>> inside try er.javamail.adminEmail = [email protected]
>>>>> Oct 23 02:27:09 ASChelseaLoginGrid[56901]
>> DEBUG
>>>> NSLog - === Begin Internal
>> Transaction
>>>>>
>>>>> er.javamail.centralize was set to false in
>> the
>>>> application constructor. However it was ignored
>> and when I
>>>> looked at the logs in the mail server I see that
>> the
>>>> toAddress was "[email protected]".
>>>>>
>>>>> which was odd as I was setting the adminEmail
>> in the
>>>> application constructor also.
>>>>>
>>>>> After experimenting I find that these two
>> properties
>>>> do not 'stick' even though my log statements claim
>> that the
>>>> values are correct.
>>>>>
>>>>> ERXProperties.setStringForKey("false",
>>>> "er.javamail.centralize");
>>>>> ERXProperties.setStringForKey("[email protected]",
>>>> "er.javamail.adminEmail");
>>>>>
>>>>> bottom line, I got things to work, just not as
>> I
>>>> expected. Is this correct? Should I be adjusting
>> the
>>>> properties in the application constructor? If not,
>> then
>>>> where. Or maybe the better question is, "Is there
>> a better
>>>> way to do this?"
>>>>>
>>>>>
>>>>> Ted
>>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/farrukh.ijaz%40fuegodigitalmedia.com
>
> This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]