Re: setting properties ??
Re: setting properties ??
- Subject: Re: setting properties ??
- From: Theodore Petrosky <email@hidden>
- Date: Fri, 28 Oct 2011 15:35:17 -0700 (PDT)
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@hidden>
> Subject: Re: setting properties ??
> To: WebObjects Development <email@hidden>
> Message-ID: <email@hidden>
> 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@hidden>
> wrote:
> >
> >> From: Kieran Kelleher <email@hidden>
> >> Subject: Re: setting properties ??
> >> To: "Theodore Petrosky" <email@hidden>
> >> Cc: email@hidden
> >> 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@hidden",
> >> "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@hidden",
> >> "Theodore Petrosky");
> >>> mail.setFromAddress("email@hidden",
> >> "Ted Petrosky");
> >>> mail.setReplyToAddress("email@hidden",
> >> "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@hidden
> >>> 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@hidden".
> >>>
> >>> 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@hidden",
> >> "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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden