Re: Best Practices - Properties files
and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution MyEOModel.password = @@secretpassword@@ Perhaps a bit offtopic but is there a way to override all the EOModels in the Application like this? ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Possible Request Handler Issue
Its all browsers although firefox seems to be worse off than the others. Since my first post the problem has now been observed in ERXLongResponsePage too. The perform action completes but then gets stuck and never returns the pageForResult. Although i can reproduce the error in production its not consistent and even more annoying is that the error doesn't exist on our development server. (Which does make it look like an apache problem) I'm going switch on all the extra logging that kieran recommends and watch the logs roll past Thanks 2009/6/24 Chuck Hill ch...@global-village.net On Jun 24, 2009, at 4:56 AM, Robin Smith wrote: Hi All, We have suddenly developed an issue in our production enviroment and we have no idea where to start debugging. Symptoms- When using the app and you click a link or button the request seems to just stall, the browser progress bar shows that its doing something but the page never moves on. If i click the link or button again it completes straight away with no problems. All requests? Just some? Is it consistently reproducible? Totally random? All browsers? Just Safari? I have seen this on Safari, but only for file uploads. The request never gets to the WO app. We are not sure if its an apache problem or maybe request handler problem. Does anybody have advice on where i should start? WO 5.3 on Tiger server Wonder Revision 9482 My guess would be a browser / network / apache problem. If it was the app, the second click would not process straight away. Start by checking the Apache logs to see if the request even arrives at your server. If is does, check the app logs (you do have good logging, right?), to see if it gets there. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects -- Robin Smith Software and Infrastructure Engineer BEng (Hons) MBCS Click Travel Ltd www.clicktravel.com For companies on the move *** Click Travel has been awarded the best Business Travel Management Company 2009 at the Business Travel World Awards *** Read more about our award here: http://www.clicktravel.com/wordpress/?p=484 ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
Hi Freddie, Am 25.06.2009 um 10:30 schrieb Freddie Tilley: and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution MyEOModel.password = @@secretpassword@@ Perhaps a bit offtopic but is there a way to override all the EOModels in the Application like this? You mean overriding the connection dicitionaries of all models? That would be: dbConnectURLGLOBAL=@@url@@ dbConnectUserGLOBAL=@@username@@ dbConnectPasswordGLOBAL= @@password@@ dbConnectDriverGLOBAL=@@driver@@ dbEOPrototypesEntityGLOBAL=@@prototypes@@ smime.p7s Description: S/MIME cryptographic signature ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n%n %V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I really like that one for using special dev passwords and keeping it safely tucked away. On Jun 24, 2009, at 7:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy OK - I get this now. I'd misunderstood. It's actually using the username variant and passing that in as a launch argument. I guess
WebObjects Jobs in Amsterdam
If anyone is interested in a full time permanent job as a WebObjects developer working in Amsterdam please contact me by e-mail. We have a small development team responsible for sales Web sites, entertainment portals and a few interesting Web applications. WebObjects and Project Wonder are our primary development technologies. Ideally you would be an experienced WebObjects developer with good CSS and Javascript skills as well, but we will consider hiring good programmers who are just learning the technology. -- James ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
You mean overriding the connection dictionaries of all models? That would be: dbConnectURLGLOBAL=@@url@@ dbConnectUserGLOBAL=@@username@@ dbConnectPasswordGLOBAL= @@password@@ dbConnectDriverGLOBAL=@@driver@@ dbEOPrototypesEntityGLOBAL=@@prototypes@@ Exactly, thanks! ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [OT] WOLips - Eclipse compatibility?
Hello, Same problem for me : New Eclipse 3.5 install, new workspace. I just test the connection with Galileo software site update (default in eclipse) and this error : -- NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages java.lang.NullPointerException -- So I have the same error message with WOLips update link: http://webobjects.mdimension.com/wolips/eclipse_3_5 Still trying to fix that.. Cedric Le 25 juin 09 à 06:39, Yung-Luen Lan a écrit : Does anyone encounter a strange error updating/installing plugins in Eclipse 3.5 like this? --- Unable to load the repository http://webobjects.mdimension.com/wolips/eclipse_3_5 org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://webobjects.mdimension.com/wolips/eclipse_3_5. at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager.fail(AbstractRepositoryManager.java:380) at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager .loadRepository(AbstractRepositoryManager.java:606) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:92) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .operations .ProvisioningUtil.loadMetadataRepository(ProvisioningUtil.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableMetadataRepositoryManager .doLoadRepository(QueryableMetadataRepositoryManager.java:55) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager .loadRepository(QueryableRepositoryManager.java:195) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager.loadAll(QueryableRepositoryManager.java: 108) at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler $2.run(PreloadingRepositoryHandler.java:71) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) --- I install eclipse 3.5 on another computer without this problem. I think it's the problem of eclipse since I also have problem updating the built-in galileo update site. I tried reinstall eclipse 3.5, start a new workspace, remove ~/Library/Caches/org.eclipse.eclipse, ~/.eclipse_keyring and ~/Library/Preferences/org.eclipse.eclipse.plist but the problem is still here. Change another user account didn't fix that either. (Hence it's not likely bad thing happened in users home directory) If you have any idea how to fix that (so I can install the wolips 3.5 branch), please let me know. Regards, yllan ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
Kieran and his logging. The man is insane. Or a genius... it's hard to tell most days. Dave On Jun 25, 2009, at 7:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I really like that one for using special dev passwords and keeping it safely tucked away. On Jun 24, 2009, at 7:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put
Re: [OT] WOLips - Eclipse compatibility?
Hi Cedric, Am 25.06.2009 um 12:47 schrieb WebObjects - Anazys: Hello, Same problem for me : New Eclipse 3.5 install, new workspace. I just test the connection with Galileo software site update (default in eclipse) and this error : -- NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages java.lang.NullPointerException -- So I have the same error message with WOLips update link: http://webobjects.mdimension.com/wolips/eclipse_3_5 Still trying to fix that.. I had a similar problem today with the same site, when installing another eclipse plugin. Looks like some server is down. You could try to get an archive of the plugin you want to install from the eclipse downloads site. cheers, Fabian Le 25 juin 09 à 06:39, Yung-Luen Lan a écrit : Does anyone encounter a strange error updating/installing plugins in Eclipse 3.5 like this? --- Unable to load the repository http://webobjects.mdimension.com/wolips/eclipse_3_5 org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://webobjects.mdimension.com/wolips/eclipse_3_5. at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager.fail(AbstractRepositoryManager.java:380) at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager .loadRepository(AbstractRepositoryManager.java:606) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:92) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .operations .ProvisioningUtil.loadMetadataRepository(ProvisioningUtil.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableMetadataRepositoryManager .doLoadRepository(QueryableMetadataRepositoryManager.java:55) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager .loadRepository(QueryableRepositoryManager.java:195) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager.loadAll(QueryableRepositoryManager.java: 108) at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler $2.run(PreloadingRepositoryHandler.java:71) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) --- I install eclipse 3.5 on another computer without this problem. I think it's the problem of eclipse since I also have problem updating the built-in galileo update site. I tried reinstall eclipse 3.5, start a new workspace, remove ~/Library/Caches/org.eclipse.eclipse, ~/.eclipse_keyring and ~/Library/Preferences/org.eclipse.eclipse.plist but the problem is still here. Change another user account didn't fix that either. (Hence it's not likely bad thing happened in users home directory) If you have any idea how to fix that (so I can install the wolips 3.5 branch), please let me know. Regards, yllan ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.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: http://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com This email sent to lists.fab...@e-lumo.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
I just tried to start a wiki page for the properties file under 'http://wiki.objectstyle.org/confluence/display/WONDER/Home' but I don't see a clear way to ask for an account. Could someone either help point me in the right direction or someone with access maybe volunteer to put in a start to documentation for the Wonder Properties files. I admit as one who has just started looking at Wonder finally it was one of my first questions and I should have come to the list as Tim did. Though making the email thread horrible I am posting the properties file contents in 'ERExtensions/Resource' for those who might not have looked at it but will when they see it pass through their email box. hope thats helpful :-) Thanks, ~Jake Look at bottom of thread for props summary On Jun 24, 2009, at 10:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy For sensitive passwords that you want kept out of svn repository, you can put them in WOMonitor args directly like -DMyEOModel.password = mypassword OR use @@ template substitution and in WOMonitor args, put this: -Duser.name=deploy -Dsecretpassword=mypassword and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution MyEOModel.password = @@secretpassword@@ For *most* properties, see the file ERExtensions/Resources/ Properties. In fact the Resources/Properties file of each Wonder framework usually documents the Properties that can be configured. Also a new Wonder project in WOLips will usually have recommended property settings. Browsing the source code of Wonder can sometimes lead you to discover configurable properties that are not documented anywhere too. Deployment scripts generally take the split tar.gz's created by the standard build.xml and scp them to a remote server using ssh where dsa public/private keypairs remove the need to enter passwords. Then the copied tar.gz's can be copied from one remote machine to all other WO servers in the cluster and inflated and permissions can be set. Tim, I am sure there are other ways too to skin the cat. HTH, Kieran On Jun 24, 2009, at 9:59 PM, Tim Worman wrote: All: context: I've been wanting to start some threads on simple best practices and maybe get involved in helping with the wiki. From my own work, this seemed as good a place to start as any. -- I have a project that is pretty recently moved to Wonder. From searching list posting and blogs I have seen mentions of different configurations of Properties files that Wonder will discover and use for database connection stuff, etc. Some of them I hadn't seen mention of elsewhere. I've recently started using Properties.username for doing dev work and keeping passwords in there (and away from my code repository). However, I've also recently seen whisper of a Properties.dev. Two things I'd like to see: 1. a full concise list of what all the possible Properties files (requiring Wonder or not) and also how the more experienced among us leverage them. If it turns out there are some that don't have great documentation I'll volunteer to update the wiki!! 2. It still seems to me that another Properties file must be inserted at deployment for different db passwords, etc. How do the veterans among handle this? I've seen some deployment scripts around but haven't dug into that stuff yet. I still build very locally and deploy very manually (scp). :-) Tim UCLA GSEIS ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com This email sent to kieran_li...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/fisherja%40gmail.com This email sent to fishe...@gmail.com # ERExtensions Framework Properties # These properties are pushed into the Java system properties for # applications linking against to this framework # You can override them from the application's Properties file or # command-line arguments. # Remove the leading '#' to uncomment a property # # ERXProperties # ## Retain default value # er.extensions.ERXProperties.RetainDefaultsEnabled = true ## Allows you
Re: Best Practices - Properties files
On Jun 25, 2009, at 9:18 AM, Jacob Fisher wrote: I just tried to start a wiki page for the properties file under 'http://wiki.objectstyle.org/confluence/display/WONDER/Home' but I don't see a clear way to ask for an account. http://issues.objectstyle.org/jira/secure/Dashboard.jspa I'll update the Wonder home page with a link. Dave Could someone either help point me in the right direction or someone with access maybe volunteer to put in a start to documentation for the Wonder Properties files. I admit as one who has just started looking at Wonder finally it was one of my first questions and I should have come to the list as Tim did. Though making the email thread horrible I am posting the properties file contents in 'ERExtensions/Resource' for those who might not have looked at it but will when they see it pass through their email box. hope thats helpful :-) Thanks, ~Jake Look at bottom of thread for props summary On Jun 24, 2009, at 10:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy For sensitive passwords that you want kept out of svn repository, you can put them in WOMonitor args directly like -DMyEOModel.password = mypassword OR use @@ template substitution and in WOMonitor args, put this: -Duser.name=deploy -Dsecretpassword=mypassword and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution MyEOModel.password = @@secretpassword@@ For *most* properties, see the file ERExtensions/Resources/ Properties. In fact the Resources/Properties file of each Wonder framework usually documents the Properties that can be configured. Also a new Wonder project in WOLips will usually have recommended property settings. Browsing the source code of Wonder can sometimes lead you to discover configurable properties that are not documented anywhere too. Deployment scripts generally take the split tar.gz's created by the standard build.xml and scp them to a remote server using ssh where dsa public/private keypairs remove the need to enter passwords. Then the copied tar.gz's can be copied from one remote machine to all other WO servers in the cluster and inflated and permissions can be set. Tim, I am sure there are other ways too to skin the cat. HTH, Kieran On Jun 24, 2009, at 9:59 PM, Tim Worman wrote: All: context: I've been wanting to start some threads on simple best practices and maybe get involved in helping with the wiki. From my own work, this seemed as good a place to start as any. -- I have a project that is pretty recently moved to Wonder. From searching list posting and blogs I have seen mentions of different configurations of Properties files that Wonder will discover and use for database connection stuff, etc. Some of them I hadn't seen mention of elsewhere. I've recently started using Properties.username for doing dev work and keeping passwords in there (and away from my code repository). However, I've also recently seen whisper of a Properties.dev. Two things I'd like to see: 1. a full concise list of what all the possible Properties files (requiring Wonder or not) and also how the more experienced among us leverage them. If it turns out there are some that don't have great documentation I'll volunteer to update the wiki!! 2. It still seems to me that another Properties file must be inserted at deployment for different db passwords, etc. How do the veterans among handle this? I've seen some deployment scripts around but haven't dug into that stuff yet. I still build very locally and deploy very manually (scp). :-) Tim UCLA GSEIS ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com This email sent to kieran_li...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/fisherja%40gmail.com This email sent to fishe...@gmail.com # ERExtensions Framework Properties # These properties are pushed into the Java system properties for # applications linking against to this framework # You can override them from the application's Properties file or # command-line arguments. # Remove the leading '#' to uncomment a property # # ERXProperties
Re: [Wonder-disc] Best Practices - Properties files
You need a Jira account. Click the Signup link on the ObjectStyle.org Issue Tracker home page: http://issues.objectstyle.org/jira/secure/Dashboard.jspa On 25-Jun-09, at 9:18 AM, Jacob Fisher wrote: I just tried to start a wiki page for the properties file under 'http://wiki.objectstyle.org/confluence/display/WONDER/Home' but I don't see a clear way to ask for an account. Could someone either help point me in the right direction or someone with access maybe volunteer to put in a start to documentation for the Wonder Properties files. I admit as one who has just started looking at Wonder finally it was one of my first questions and I should have come to the list as Tim did. Though making the email thread horrible I am posting the properties file contents in 'ERExtensions/Resource' for those who might not have looked at it but will when they see it pass through their email box. hope thats helpful :-) Thanks, ~Jake Look at bottom of thread for props summary On Jun 24, 2009, at 10:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy For sensitive passwords that you want kept out of svn repository, you can put them in WOMonitor args directly like -DMyEOModel.password = mypassword OR use @@ template substitution and in WOMonitor args, put this: -Duser.name=deploy -Dsecretpassword=mypassword and in Properties.deploy you can use a wonder simple template format like this which does property resolving/substitution MyEOModel.password = @@secretpassword@@ For *most* properties, see the file ERExtensions/Resources/ Properties. In fact the Resources/Properties file of each Wonder framework usually documents the Properties that can be configured. Also a new Wonder project in WOLips will usually have recommended property settings. Browsing the source code of Wonder can sometimes lead you to discover configurable properties that are not documented anywhere too. Deployment scripts generally take the split tar.gz's created by the standard build.xml and scp them to a remote server using ssh where dsa public/private keypairs remove the need to enter passwords. Then the copied tar.gz's can be copied from one remote machine to all other WO servers in the cluster and inflated and permissions can be set. Tim, I am sure there are other ways too to skin the cat. HTH, Kieran On Jun 24, 2009, at 9:59 PM, Tim Worman wrote: All: context: I've been wanting to start some threads on simple best practices and maybe get involved in helping with the wiki. From my own work, this seemed as good a place to start as any. -- I have a project that is pretty recently moved to Wonder. From searching list posting and blogs I have seen mentions of different configurations of Properties files that Wonder will discover and use for database connection stuff, etc. Some of them I hadn't seen mention of elsewhere. I've recently started using Properties.username for doing dev work and keeping passwords in there (and away from my code repository). However, I've also recently seen whisper of a Properties.dev. Two things I'd like to see: 1. a full concise list of what all the possible Properties files (requiring Wonder or not) and also how the more experienced among us leverage them. If it turns out there are some that don't have great documentation I'll volunteer to update the wiki!! 2. It still seems to me that another Properties file must be inserted at deployment for different db passwords, etc. How do the veterans among handle this? I've seen some deployment scripts around but haven't dug into that stuff yet. I still build very locally and deploy very manually (scp). :-) Tim UCLA GSEIS ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com This email sent to kieran_li...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/fisherja%40gmail.com This email sent to fishe...@gmail.com # ERExtensions Framework Properties # These properties are pushed into the Java system properties for # applications linking against to this framework # You can override them from the application's Properties file or # command-line arguments. # Remove the leading '#' to uncomment a property # # ERXProperties
Re: Best Practices - Properties files
BTW Tim, For WOMonitor, just make sure that port 56789 is closed to the outside world and for security, use an ssh tunnel to forward port 56789 to port whatever in your own remote machine. Then access the local forwarded port in your browser. -Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: OK - I get this now. I'd misunderstood. It's actually using the username variant and passing that in as a launch argument. I guess you'd want to make sure you'd deployed a secure version of WOMonitor as well. I haven't. :-( Still running stock parts with that. ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [OT] WOLips - Eclipse compatibility?
That works with archive or local plugin, but I always have this error with software sites update : I try Galileo, Eclipse and WOLips. Thanks, Cedric Le 25 juin 09 à 15:06, Fabian Peters a écrit : Hi Cedric, Am 25.06.2009 um 12:47 schrieb WebObjects - Anazys: Hello, Same problem for me : New Eclipse 3.5 install, new workspace. I just test the connection with Galileo software site update (default in eclipse) and this error : -- NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages java.lang.NullPointerException -- So I have the same error message with WOLips update link: http://webobjects.mdimension.com/wolips/eclipse_3_5 Still trying to fix that.. I had a similar problem today with the same site, when installing another eclipse plugin. Looks like some server is down. You could try to get an archive of the plugin you want to install from the eclipse downloads site. cheers, Fabian Le 25 juin 09 à 06:39, Yung-Luen Lan a écrit : Does anyone encounter a strange error updating/installing plugins in Eclipse 3.5 like this? --- Unable to load the repository http://webobjects.mdimension.com/wolips/eclipse_3_5 org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://webobjects.mdimension.com/wolips/eclipse_3_5. at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager.fail(AbstractRepositoryManager.java:380) at org .eclipse .equinox .internal .p2 .repository .helpers .AbstractRepositoryManager .loadRepository(AbstractRepositoryManager.java:606) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:92) at org .eclipse .equinox .internal .p2 .metadata .repository .MetadataRepositoryManager .loadRepository(MetadataRepositoryManager.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .operations .ProvisioningUtil.loadMetadataRepository(ProvisioningUtil.java:88) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableMetadataRepositoryManager .doLoadRepository(QueryableMetadataRepositoryManager.java:55) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager .loadRepository(QueryableRepositoryManager.java:195) at org .eclipse .equinox .internal .provisional .p2 .ui .QueryableRepositoryManager .loadAll(QueryableRepositoryManager.java:108) at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler $2.run(PreloadingRepositoryHandler.java:71) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) --- I install eclipse 3.5 on another computer without this problem. I think it's the problem of eclipse since I also have problem updating the built-in galileo update site. I tried reinstall eclipse 3.5, start a new workspace, remove ~/Library/Caches/org.eclipse.eclipse, ~/.eclipse_keyring and ~/Library/Preferences/org.eclipse.eclipse.plist but the problem is still here. Change another user account didn't fix that either. (Hence it's not likely bad thing happened in users home directory) If you have any idea how to fix that (so I can install the wolips 3.5 branch), please let me know. Regards, yllan ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.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: http://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com This email sent to lists.fab...@e-lumo.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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
There's a wiki page already started about best practices and properties here: http://wiki.objectstyle.org/confluence/display/WONDER/Best+Practices David On 25-Jun-09, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I really like that one for using special dev passwords and keeping it safely tucked away. On Jun 24, 2009, at 7:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named
Re: Best Practices - Properties files
As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy you can also do Properties.dev, which will get loaded for everyone in development mode (so you can make properties for all developers) and there is /etc/WebObjects/YourAppName/Properties that is actually the preferred way (IMO) of doing deployment properties ... user.name is convenient, but it always felt a little dirty. ms ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
On Jun 25, 2009, at 10:24 AM, David Holt wrote: There's a wiki page already started about best practices and properties here: http://wiki.objectstyle.org/confluence/display/WONDER/Best+Practices That was originally intended to be a WOnder Best Practices and the Properties stuff I put in was just the beginning. I had forgotten that even existed. Dave David On 25-Jun-09, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c:%L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I really like that one for using special dev passwords and keeping it safely tucked away. On Jun 24,
Re: Best Practices - Properties files
On Jun 25, 2009, at 10:36 AM, Mike Schrag wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy you can also do Properties.dev, which will get loaded for everyone in development mode (so you can make properties for all developers) I didn't know about that one! and there is /etc/WebObjects/YourAppName/Properties that is actually the preferred way (IMO) of doing deployment properties ... user.name is convenient, but it always felt a little dirty. Interesting. Where would the analogous (if there is one) location be when deploying as a servlet? Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [Wonder-disc] Best Practices - Properties files
and there is /etc/WebObjects/YourAppName/Properties /etc/WebObjects/IHaveNoIdea/What/Servlets/WouldDoWithThis/Properties ms ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [Wonder-disc] Best Practices - Properties files
On Jun 25, 2009, at 10:54 AM, Mike Schrag wrote: and there is /etc/WebObjects/YourAppName/Properties /etc/WebObjects/IHaveNoIdea/What/Servlets/WouldDoWithThis/Properties :-) Let me rephrase. What is it that looks in this location for a Properties file? Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
WOLips 3.5 tree not showing Wonder project wizards : SOLVED
Creating a new workspace showed that the Wonder project creation wizards were indeed there. I went back to my current workspaces and even though I had reselected WOLips perspectives, it only would show default WebObjects project creation wizards. For future reference the solution was to Reset the Perspective. My guess is that any Eclipse update both needs to reselect the WOLips perspective (it is generally shown as WOLips in the top right of the window. And then one must still reset the perspective. ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [OT] WOLips - Eclipse compatibility?
It's likely something wrong in my system/configuration. Another computer update successfully at the same time, and VMWare running OSX server at the same machine have no problem either. But different accounts on the same machine still suffer from this error. So it should not be the problem of internet, the update sites or my computer's hardware. Regards, yllan On Thu, Jun 25, 2009 at 9:55 PM, WebObjects - Anazyswebobje...@anazys.com wrote: That works with archive or local plugin, but I always have this error with software sites update : I try Galileo, Eclipse and WOLips. Thanks, Cedric Le 25 juin 09 à 15:06, Fabian Peters a écrit : Hi Cedric, Am 25.06.2009 um 12:47 schrieb WebObjects - Anazys: Hello, Same problem for me : New Eclipse 3.5 install, new workspace. I just test the connection with Galileo software site update (default in eclipse) and this error : -- NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages NLS missing message: Unexpected_exception in: org.eclipse.equinox.internal.p2.updatesite.metadata.messages java.lang.NullPointerException -- So I have the same error message with WOLips update link: http://webobjects.mdimension.com/wolips/eclipse_3_5 Still trying to fix that.. I had a similar problem today with the same site, when installing another eclipse plugin. Looks like some server is down. You could try to get an archive of the plugin you want to install from the eclipse downloads site. cheers, Fabian Le 25 juin 09 à 06:39, Yung-Luen Lan a écrit : Does anyone encounter a strange error updating/installing plugins in Eclipse 3.5 like this? --- Unable to load the repository http://webobjects.mdimension.com/wolips/eclipse_3_5 org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at http://webobjects.mdimension.com/wolips/eclipse_3_5. at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.fail(AbstractRepositoryManager.java:380) at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:606) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:88) at org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil.loadMetadataRepository(ProvisioningUtil.java:88) at org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager.doLoadRepository(QueryableMetadataRepositoryManager.java:55) at org.eclipse.equinox.internal.provisional.p2.ui.QueryableRepositoryManager.loadRepository(QueryableRepositoryManager.java:195) at org.eclipse.equinox.internal.provisional.p2.ui.QueryableRepositoryManager.loadAll(QueryableRepositoryManager.java:108) at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler$2.run(PreloadingRepositoryHandler.java:71) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) --- I install eclipse 3.5 on another computer without this problem. I think it's the problem of eclipse since I also have problem updating the built-in galileo update site. I tried reinstall eclipse 3.5, start a new workspace, remove ~/Library/Caches/org.eclipse.eclipse, ~/.eclipse_keyring and ~/Library/Preferences/org.eclipse.eclipse.plist but the problem is still here. Change another user account didn't fix that either. (Hence it's not likely bad thing happened in users home directory) If you have any idea how to fix that (so I can install the wolips 3.5 branch), please let me know. Regards, yllan ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.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: http://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com This email sent to lists.fab...@e-lumo.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: http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com This email sent to webobje...@anazys.com ___ Do not post admin requests to the list. They will be ignored.
Re: Best Practices - Properties files
There's a lot of good stuff in there. Thanks for offering up some of your approaches. log4j is also something I have not really gotten into. I use a lot of System.out when I'm diagnosing problems. :-) T On Jun 25, 2009, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I really like that one for using special dev passwords and keeping it safely tucked away. On Jun 24, 2009, at 7:17 PM, Kieran Kelleher wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations
Re: Best Practices - Properties files
David: Yeah, I'd seen that before and that was one of the reasons I thought it could be greatly expanded. Other than that David LeBer's blog was one of the easiest to find without a lot of digging (which was also great) and had database config stuff. Tim UCLA GSEIS On Jun 25, 2009, at 7:24 AM, David Holt wrote: There's a wiki page already started about best practices and properties here: http://wiki.objectstyle.org/confluence/display/WONDER/Best+Practices David On 25-Jun-09, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c:%L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code. Check out the ERXProperties.java class to learn more about Properties in Wonder. Regards, Kieran On Jun 25, 2009, at 1:16 AM, Tim Worman wrote: Keiran: Thanks - there's some awesome options in there that I didn't know about! I forgot to mention the one I was actually using in dev and that is ~/WebObjects.properties but that one is pretty well documented. I
Re: Best Practices - Properties files
On Jun 25, 2009, at 7:36 AM, Mike Schrag wrote: As you saw u can use Properties.username for specific user configurations. This same feature can be used for configurations too, for example have a deployment config file named Properties.deploy and then in the WOMonitor args, simply put -Duser.name=deploy you can also do Properties.dev, which will get loaded for everyone in development mode (so you can make properties for all developers) That would probably be a great place to set up a lot of the diagnostic logging you may only want to do in dev mode. and there is /etc/WebObjects/YourAppName/Properties that is actually the preferred way (IMO) of doing deployment properties ... user.name is convenient, but it always felt a little dirty. ms OK, that is awesome and that is one that I have not seen mentioned anywhere. That is the one that would save me from having to do what I mentioned in initial email regarding deployment. I really like that solution. Thanks Mike. Tim UCLA GSEIS ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: bindings and WOPopUp lists and selections
This is correct If I set 'current' to any other value by selecting a different row, then the update fails. --- On Mon, 6/22/09, Ricardo J. Parada rpar...@mac.com wrote: From: Ricardo J. Parada rpar...@mac.com Subject: Re: bindings and WOPopUp lists and selections To: Theodore Petrosky tedp...@yahoo.com Cc: webobjects-dev@lists.apple.com Date: Monday, June 22, 2009, 9:23 AM On Jun 21, 2009, at 8:10 PM, Theodore Petrosky wrote: however if I select any other row. it fails. I can change the category and the subcat popup has the wrong list. so I am looking at a change to 'banking' (category) and I see the subcat list for 'aviation'. this error only happens on the NON first element of the displayGroup. Is it possible that I have the displayGroup set up wrong? When you say you select any other row, do you mean setting the current to another row? That should work! If it's not working then I would try to find out why it's not. For example, if your category pop-up hag selection = current.contactCategory; and then your sub-category pop-up had: list = current.contactCategory.subCategories; selection = current.subCategory; then I'm pretty sure it would work as that is a typical setup I've used in my apps. In other words, everything is tied to current so that when you change it then the selection in the category pop-up updates and then the list of sub-categories and selection there also update in the user interface. but were your popups on a ModalContainer? maybe this is the problem. Did you get a chance to look at the source I sent your way? I really don't know what else to do to resolve this problem. Is there a known issue with AjaxModalContainers? Thanks for your help. Ted ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: bindings and WOPopUp lists and selections
On Jun 25, 2009, at 2:20 PM, Theodore Petrosky wrote: but were your popups on a ModalContainer? maybe this is the problem. Did you get a chance to look at the source I sent your way? I really don't know what else to do to resolve this problem. Is there a known issue with AjaxModalContainers? I only took a quick look at the source... I've been super busy lately. Is your project runnable or does it require a database? ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: bindings and WOPopUp lists and selections
it requires a database I set it up with migrations so it sets itself up with postgresq. it even populates the database. ted --- On Thu, 6/25/09, Ricardo J. Parada rpar...@mac.com wrote: From: Ricardo J. Parada rpar...@mac.com Subject: Re: bindings and WOPopUp lists and selections To: Theodore Petrosky tedp...@yahoo.com Cc: webobjects-dev@lists.apple.com Date: Thursday, June 25, 2009, 2:52 PM On Jun 25, 2009, at 2:20 PM, Theodore Petrosky wrote: but were your popups on a ModalContainer? maybe this is the problem. Did you get a chance to look at the source I sent your way? I really don't know what else to do to resolve this problem. Is there a known issue with AjaxModalContainers? I only took a quick look at the source... I've been super busy lately. Is your project runnable or does it require a database? ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
2 New Tutorials
Hey all, I've uploaded two new tutorials to the Wiki. 1) Using multiple versions of WebObjects with WOLips : http://wiki.objectstyle.org/confluence/display/WOL/Using+WOLips+With+Multiple+Versions+of+WebObjects 2) Getting Started with Direct to Java Client: http://wiki.objectstyle.org/confluence/display/WO/Getting+Started+with+Direct+to+Java+Client+%28D2JC%29 Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: 2 New Tutorials
On Jun 25, 2009, at 1:23 PM, David Avendasora wrote: Hey all, I've uploaded two new tutorials to the Wiki. 1) Using multiple versions of WebObjects with WOLips : http://wiki.objectstyle.org/confluence/display/WOL/Using+WOLips+With+Multiple+Versions+of+WebObjects 2) Getting Started with Direct to Java Client: http://wiki.objectstyle.org/confluence/display/WO/Getting+Started+with+Direct+to+Java+Client+%28D2JC%29 Super Cool. Thanks! kib The trouble with normal is it always gets worse. Bruce Cockburn Klaus Berkling Systems Administrator DynEd International, Inc. www.dyned.com | www.eskimo.com/~kiberkli ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [Wonder-disc] Best Practices - Properties files
On Jun 25, 2009, at 9:26 AM, Tim Worman wrote: There's a lot of good stuff in there. Thanks for offering up some of your approaches. log4j is also something I have not really gotten into. I use a lot of System.out when I'm diagnosing problems. :-) In my opinion, you are doing it correctly. :-) I use System.out for quick and dirty debugging. I use log4j for long term info that I want to be able to see in production (and also while developing). If I am looking at older code and see System.out, I know that this is something that got forgotten and can be deleted. It can be very, very useful to be able to pull up a page (see ERXLog4JConfiguration in Wonder), make a couple of clicks, and get focused log messages to start to appear. It is also use to have less detailed logging so that you can trace a user's actions in case of a bug report (or so I have heard, I have no bugs). Chuck On Jun 25, 2009, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout log4j.appender.myMail.layout.ConversionPattern=%r %-5p %d{ISO8601}%n %n%V{t total/u used/f free}%n%n[%t] %n%n (%C, %M, %F:%L) - %n%n%m%n /snip Tim, hope that gives you enough bits and pieces to start a wiki page. Also, if you are not working with Wonder source you should be a lot of good education in that there source code.
Re: Possible Request Handler Issue
On Jun 25, 2009, at 1:59 AM, Robin Smith wrote: Its all browsers although firefox seems to be worse off than the others. Since my first post the problem has now been observed in ERXLongResponsePage too. The perform action completes but then gets stuck and never returns the pageForResult. That sounds like it could be a different problem. Although i can reproduce the error in production its not consistent and even more annoying is that the error doesn't exist on our development server. (Which does make it look like an apache problem) Or a concurrency / locking problem. Chuck I'm going switch on all the extra logging that kieran recommends and watch the logs roll past Thanks 2009/6/24 Chuck Hill ch...@global-village.net On Jun 24, 2009, at 4:56 AM, Robin Smith wrote: Hi All, We have suddenly developed an issue in our production enviroment and we have no idea where to start debugging. Symptoms- When using the app and you click a link or button the request seems to just stall, the browser progress bar shows that its doing something but the page never moves on. If i click the link or button again it completes straight away with no problems. All requests? Just some? Is it consistently reproducible? Totally random? All browsers? Just Safari? I have seen this on Safari, but only for file uploads. The request never gets to the WO app. We are not sure if its an apache problem or maybe request handler problem. Does anybody have advice on where i should start? WO 5.3 on Tiger server Wonder Revision 9482 My guess would be a browser / network / apache problem. If it was the app, the second click would not process straight away. Start by checking the Apache logs to see if the request even arrives at your server. If is does, check the app logs (you do have good logging, right?), to see if it gets there. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects -- Robin Smith Software and Infrastructure Engineer BEng (Hons) MBCS Click Travel Ltd www.clicktravel.com For companies on the move *** Click Travel has been awarded the best Business Travel Management Company 2009 at the Business Travel World Awards *** Read more about our award here: http://www.clicktravel.com/wordpress/?p=484 ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [Wonder-disc] Best Practices - Properties files
On Jun 25, 2009, at 2:17 PM, Chuck Hill wrote: On Jun 25, 2009, at 9:26 AM, Tim Worman wrote: There's a lot of good stuff in there. Thanks for offering up some of your approaches. log4j is also something I have not really gotten into. I use a lot of System.out when I'm diagnosing problems. :-) In my opinion, you are doing it correctly. :-) I use System.out for quick and dirty debugging. I use log4j for long term info that I want to be able to see in production (and also while developing). If I am looking at older code and see System.out, I know that this is something that got forgotten and can be deleted. This is exactly what I do. I have gotten the feeling that maybe some use log4j more prescriptively as a diagnostic tool. Maybe they aren't and I just assumed I was missing out on another great thing I haven't had time to explore. :-) Tim It can be very, very useful to be able to pull up a page (see ERXLog4JConfiguration in Wonder), make a couple of clicks, and get focused log messages to start to appear. It is also use to have less detailed logging so that you can trace a user's actions in case of a bug report (or so I have heard, I have no bugs). Chuck On Jun 25, 2009, at 4:41 AM, Kieran Kelleher wrote: Keep in mind that all of this Properties configuration stuff is more or less provided by Project Wonder, so your wiki page should be in the Project Wonder section (perhaps Introduction to Wonder Properties). OK, here are a few more bits and pieces that you may or may not know about. The use of Properties.user.name is not only useful for basic development and deployment configurations, but is ideal for teams of developers where each developer has his/her own Properties file for development since they may be working from different locations with different database auth, smtp servers and logging settings, etc. Also, note that Properties.user.name can be used to add additional properties *or* to override stuff in the main Properties. Be careful about over-use or abuse of the @@ template stuff though, it can get confused when the logic stretches across multiple Properties files. For example in a Properties.user.name file I may have sth like: smtpserver=smtp.somedomain.com and in the main Properties file I might have multiple other properties in various places in the Properties file that pick up that single setting depending on which user.name config is in use, for example: log4j.appender.myMail.SMTPHost=@@smtpserver@@ er.javamail.smtpHost=@@smtpserver@@ WOSMTPHost=@@smtpserver@@ Another Wonder Properties feature is that all of your log4j settings can be configured in a Properties file, which is ideal for user and deployment specific logging configuration. For example the base loggers config in my main Properties file in one app I have looks like this. And some line items such as log4j.rootLogger, log4j.appender.myMail.To are defined in each user Properties file (Properties.deploy, Properties.kieran, etc.). Notice the use of @@ substitution in properties such as log4j.appender.A2.file, log4j.appender.myMail.SMTPHost, log4j.appender.myMail.Subject. In the Properties.kieran file, I might have log4j.rootLogger= INFO, A1 snip - sample from main Properties # Pattern codes: # %-5p : Priority DEBUG, INFO, WARN, etc. # %d(ISO08601 : Date and time # %t : Thread # %c : Logger name (usually a class name) # %m%n : Log message arguments # Available levels are DEBUG, INFO, WARN, ERROR, FATAL # log4j appender and formatting # log4j.rootLogger= WARN, A1 A2, myMail log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory # A1 is a ConsoleAppender log4j.appender.A1=er.extensions.logging.ERXConsoleAppender log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout #log4j.appender.A1.layout.ConversionPattern=%-5p %d{HH:mm:ss} (%-20c: %L) %x -%m%n log4j.appender.A1.layout.ConversionPattern=%r %-5p [%t] (%C{3}, %M, %L) - %n%m%n%n # A2 is a DailyRollingFileAppender log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender log4j.appender.A2.file=/var/log/webobjects_apps/ @@build.app.bundle.name@@-@@WOPort@@.log log4j.appender.A2.datePattern='.'-MM-dd log4j.appender.A2.append=true log4j.appender.A2.layout=er.extensions.logging.ERXPatternLayout log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] (%c: %L) - %m%n # myMail is the SMTPAppender log4j.appender.myMail=org.apache.log4j.net.SMTPAppender log4j.appender.myMail.Threshold=ERROR log4j.appender.myMail.BufferSize=10 ## See deploy/development scenario for this since I want emails to me for dev especially selenium tests # log4j.appender.mymail.to=somebody+my...@gmail.com,otheradminper...@domain.net log4j.appender.mymail.from=my...@someplace.com log4j.appender.myMail.SMTPHost=@@smtpserver@@ log4j.appender.myMail.Subject=Log4J Error (@@build.app.bundle.name@@ host @@host@@ port @@WOPort@@) log4j.appender.myMail.layout=er.extensions.logging.ERXPatternLayout
Re: [Wonder-disc] Best Practices - Properties files
On Jun 25, 2009, at 7:36 AM, Mike Schrag wrote: and there is /etc/WebObjects/YourAppName/Properties that is actually the preferred way (IMO) of doing deployment properties ... user.name is convenient, but it always felt a little dirty. Mike: A couple questions about this one. Do you set the ownership of /etc/ WebObjects to the appserver user? And for YourAppName how is the app name polled? I ask because in deployment my app is named myapplication but the actual woa is myApplication.woa. I would think it would use the former? And I'm assuming these properties wouldoverride all like entries in the app/framework Propertieses? :-) Thanks much, Tim ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Best Practices - Properties files
On 25/06/2009, at 11:59 AM, Tim Worman wrote: All: context: I've been wanting to start some threads on simple best practices and maybe get involved in helping with the wiki. From my own work, this seemed as good a place to start as any. -- I have a project that is pretty recently moved to Wonder. From searching list posting and blogs I have seen mentions of different configurations of Properties files that Wonder will discover and use for database connection stuff, etc. Some of them I hadn't seen mention of elsewhere. I've recently started using Properties.username for doing dev work and keeping passwords in there (and away from my code repository). However, I've also recently seen whisper of a Properties.dev. Two things I'd like to see: 1. a full concise list of what all the possible Properties files (requiring Wonder or not) and also how the more experienced among us leverage them. If it turns out there are some that don't have great documentation I'll volunteer to update the wiki!! 2. It still seems to me that another Properties file must be inserted at deployment for different db passwords, etc. How do the veterans among handle this? I've seen some deployment scripts around but haven't dug into that stuff yet. I still build very locally and deploy very manually (scp). :-) using Wonder I define in the application Properties file: runtime.config.dir=Properties runtime.config.name= and: er.extensions.ERXProperties.OptionalConfigurationFiles=(\ @@runtime.config.dir@@/log4j@@runtime.config.name@@.properties,\ @@runtime.config.dir@@/jdbc@@runtime.config.name@@.properties,\ @@runtime.config.dir@@/runtime@@runtime.config.name@@.properties,\ @@runtime.config.dir@@/runtime@@runtime.config.name@@.properties,\ ../instance.properties ) For deployment simply tell JavaMonitor: -Druntime.config.dir=../../Properties For eclipse launch targets, I can switch between test, nightly backup db environments setting: -runtime.config.dir ../../Properties -runtime.config.name test or dev or... with regards, -- Lachlan Deck ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [Wonder-disc] Best Practices - Properties files
A couple questions about this one. Do you set the ownership of /etc/ WebObjects to the appserver user? you want it readable, but not writable, by whatever user you launch your app as And for YourAppName how is the app name polled? I ask because in deployment my app is named myapplication but the actual woa is myApplication.woa. I would think it would use the former? iirc, it uses application.name(), which should correspond to whatever you name your app, not what you name the app folder. And I'm assuming these properties wouldoverride all like entries in the app/framework Propertieses? :-) yep ms ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: 2 New Tutorials
Wow! Those are awesome David. I've been wanting to do a little of both recently, so your tutorials will be a big kick in the pants to get me started (^^) Thanks for posting them! Ramsey On Jun 25, 2009, at 4:23 PM, David Avendasora wrote: Hey all, I've uploaded two new tutorials to the Wiki. 1) Using multiple versions of WebObjects with WOLips : http://wiki.objectstyle.org/confluence/display/WOL/Using+WOLips+With+Multiple+Versions+of+WebObjects 2) Getting Started with Direct to Java Client: http://wiki.objectstyle.org/confluence/display/WO/Getting+Started+with+Direct+to+Java+Client+%28D2JC%29 Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/rgurley %40mac.com This email sent to rgur...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: 2 New Tutorials
Yes... thanks David... I may use the one about using multiple WO versions with Ecilpse when WO 5.5 (or 5.6) comes out. :-) On Jun 25, 2009, at 9:08 PM, Ramsey Lee Gurley wrote: Wow! Those are awesome David. I've been wanting to do a little of both recently, so your tutorials will be a big kick in the pants to get me started (^^) Thanks for posting them! Ramsey On Jun 25, 2009, at 4:23 PM, David Avendasora wrote: Hey all, I've uploaded two new tutorials to the Wiki. 1) Using multiple versions of WebObjects with WOLips : http://wiki.objectstyle.org/confluence/display/WOL/Using+WOLips+With+Multiple+Versions+of+WebObjects 2) Getting Started with Direct to Java Client: http://wiki.objectstyle.org/confluence/display/WO/Getting+Started+with+Direct+to+Java+Client+%28D2JC%29 Dave ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/rgurley%40mac.com This email sent to rgur...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/rparada %40mac.com This email sent to rpar...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
NullPointerException in _popComponentFromContext
Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) Jun 25 21:40:45 Phynance[58302] WARN NSLog - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.NullPointerException [2009-6-25 21:40:45 EDT] WorkerThread8 java.lang.NullPointerException at com .webobjects .appserver ._private .WOComponentReference ._popComponentFromContext(WOComponentReference.java:108) at com .webobjects .appserver ._private.WOComponentReference.invokeAction(WOComponentReference.java: 128) at er .extensions .components ._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at er .extensions.components._private.ERXWOForm.invokeAction(ERXWOForm.java: 180) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at er .extensions .components.conditionals.ERXWOTemplate.invokeAction(ERXWOTemplate.java: 50) at er .extensions .components .ERXWOComponentContent.invokeAction(ERXWOComponentContent.java:217) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at com .webobjects .appserver ._private.WOComponentContent.invokeAction(WOComponentContent.java:38) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com .webobjects .appserver ._private.WOComponentReference.invokeAction(WOComponentReference.java: 127) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com .webobjects .appserver ._private.WOComponentReference.invokeAction(WOComponentReference.java: 127) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357) at com.mpv.webcomponents.MPVWOSession.invokeAction(MPVWOSession.java: 175) at com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java: 1745) at er .extensions .appserver .ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:50) at er .extensions.appserver.ERXApplication.invokeAction(ERXApplication.java: 1657) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedPage(WOComponentRequestHandler.java:206) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedSession(WOComponentRequestHandler.java:298) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332) at com .webobjects .appserver ._private .WOComponentRequestHandler ._handleRequest(WOComponentRequestHandler.java:369) at com .webobjects .appserver ._private .WOComponentRequestHandler .handleRequest(WOComponentRequestHandler.java:442) at com .webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java: 1687) at er .extensions .appserver .ERXApplication.dispatchRequestImmediately(ERXApplication.java:1772) at er .extensions
Re: NullPointerException in _popComponentFromContext
On Jun 25, 2009, at 6:49 PM, Ricardo J. Parada wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? Chuck Jun 25 21:40:45 Phynance[58302] WARN NSLog - com.webobjects.appserver._private.WOComponentRequestHandler: Exception occurred while handling request: java.lang.NullPointerException [2009-6-25 21:40:45 EDT] WorkerThread8 java.lang.NullPointerException at com .webobjects .appserver ._private .WOComponentReference ._popComponentFromContext(WOComponentReference.java:108) at com .webobjects .appserver ._private .WOComponentReference.invokeAction(WOComponentReference.java:128) at er .extensions .components ._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at er .extensions .components._private.ERXWOForm.invokeAction(ERXWOForm.java:180) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at er .extensions .components .conditionals.ERXWOTemplate.invokeAction(ERXWOTemplate.java:50) at er .extensions .components .ERXWOComponentContent.invokeAction(ERXWOComponentContent.java:217) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at com .webobjects .appserver ._private.WOComponentContent.invokeAction(WOComponentContent.java:38) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java: 92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com .webobjects .appserver ._private .WOComponentReference.invokeAction(WOComponentReference.java:127) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java: 92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com .webobjects .appserver ._private .WOComponentReference.invokeAction(WOComponentReference.java:127) at com .webobjects .appserver ._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105) at com .webobjects .appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java: 115) at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java: 1079) at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java: 92) at er .extensions .components .ERXNonSynchronizingComponent .invokeAction(ERXNonSynchronizingComponent.java:60) at com.webobjects.appserver.WOSession.invokeAction(WOSession.java: 1357) at com.mpv.webcomponents.MPVWOSession.invokeAction(MPVWOSession.java:175) at com .webobjects.appserver.WOApplication.invokeAction(WOApplication.java: 1745) at er .extensions .appserver .ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:50) at er .extensions .appserver.ERXApplication.invokeAction(ERXApplication.java:1657) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedPage(WOComponentRequestHandler.java:206) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedSession(WOComponentRequestHandler.java:298) at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332) at com .webobjects .appserver ._private .WOComponentRequestHandler ._handleRequest(WOComponentRequestHandler.java:369) at com .webobjects .appserver ._private .WOComponentRequestHandler .handleRequest(WOComponentRequestHandler.java:442) at com
Re: NullPointerException in _popComponentFromContext
On Jun 25, 2009, at 9:53 PM, Chuck Hill wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? I see in the stack trace that it's going through the invokeAction phase. But the action method that is supposed to get called has not been called yet. I set a breakpoint in the method that it's supposed to get called but I hit the exception first and the action method never gets called. I'll set a breakpoint in the invokeAction() method of the component that is supposed to call the action to see how things look from there. From what I can tell the _popComponentFromContext() gets the current component from the context and then to message it and throws the null pointer exception because the current component is null for some obscure reason. Anyways, I'm taking a look at the invokeAction in my component. ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NullPointerException in _popComponentFromContext
On Jun 25, 2009, at 7:10 PM, Ricardo J. Parada wrote: On Jun 25, 2009, at 9:53 PM, Chuck Hill wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? I see in the stack trace that it's going through the invokeAction phase. But the action method that is supposed to get called has not been called yet. I set a breakpoint in the method that it's supposed to get called but I hit the exception first and the action method never gets called. I'll set a breakpoint in the invokeAction() method of the component that is supposed to call the action to see how things look from there. From what I can tell the _popComponentFromContext() gets the current component from the context and then to message it and throws the null pointer exception because the current component is null for some obscure reason. Anyways, I'm taking a look at the invokeAction in my component. I really ought to take better notes when I hit things like this. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NullPointerException in _popComponentFromContext
Well here's what I'm seeing... my component determines that it is the one that should invoke the action and goes through this code: // Tell context that an action was performed. If this is // not done, the form's default action will be called also. 111:wocontext.setActionInvoked(true); 112: 113: WOActionResults obj = (WOActionResults) valueForBinding(ACTION_BINDING_KEY); 114:if (obj == null) obj = wocontext.page(); 115: 116:return obj; Line # 113 should be calling the action method that is bound to the action binding. That is the method on which I set the breakpoint that I was referring to earlier. The one I never hit. So if I don't hit the breakpoint then it's not calling it. But it is calling something else because I see stuff show on the console every time I evaluate the expression valueForBinding(ACTION_BINDING_KEY). Anyways, I'll try to investigate what is getting called... or maybe take a look at valueForBinding to find out why it's not calling the right thing. If I evaluate the expression _associationWithName(ACTION_BINDING_KEY) in the debugger right after line #113 I get the following: (ognl.helperfunction.WOHelperFunctionBindingNameAssociation) ognl.helperfunction.WOHelperFunctionBindingNameAssociation: keyPath=^action On Jun 25, 2009, at 10:19 PM, Chuck Hill wrote: On Jun 25, 2009, at 7:10 PM, Ricardo J. Parada wrote: On Jun 25, 2009, at 9:53 PM, Chuck Hill wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? I see in the stack trace that it's going through the invokeAction phase. But the action method that is supposed to get called has not been called yet. I set a breakpoint in the method that it's supposed to get called but I hit the exception first and the action method never gets called. I'll set a breakpoint in the invokeAction() method of the component that is supposed to call the action to see how things look from there. From what I can tell the _popComponentFromContext() gets the current component from the context and then to message it and throws the null pointer exception because the current component is null for some obscure reason. Anyways, I'm taking a look at the invokeAction in my component. I really ought to take better notes when I hit things like this. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NullPointerException in _popComponentFromContext
Let me correct something I said: the action method is getting called!!! –– I was just confused the first time I looked. Anyways, the action method gets called and then that action method is calling performParentAction as follows: return performParentAction(s); I did not write that component and I rarely use the performParentAction. But that is returning null. And that is the value my component gets at line#113 and returns the page instead (is that bad? should I return the null value instead?). Then if I resume execution I get the null pointer exception in _popComponentFromContext() in WebObjects. Still investigating... On Jun 25, 2009, at 10:59 PM, Ricardo J. Parada wrote: Well here's what I'm seeing... my component determines that it is the one that should invoke the action and goes through this code: // Tell context that an action was performed. If this is // not done, the form's default action will be called also. 111:wocontext.setActionInvoked(true); 112: 113: WOActionResults obj = (WOActionResults) valueForBinding(ACTION_BINDING_KEY); 114:if (obj == null) obj = wocontext.page(); 115: 116:return obj; Line # 113 should be calling the action method that is bound to the action binding. That is the method on which I set the breakpoint that I was referring to earlier. The one I never hit. So if I don't hit the breakpoint then it's not calling it. But it is calling something else because I see stuff show on the console every time I evaluate the expression valueForBinding(ACTION_BINDING_KEY). Anyways, I'll try to investigate what is getting called... or maybe take a look at valueForBinding to find out why it's not calling the right thing. If I evaluate the expression _associationWithName(ACTION_BINDING_KEY) in the debugger right after line #113 I get the following: (ognl.helperfunction.WOHelperFunctionBindingNameAssociation) ognl.helperfunction.WOHelperFunctionBindingNameAssociation: keyPath=^action On Jun 25, 2009, at 10:19 PM, Chuck Hill wrote: On Jun 25, 2009, at 7:10 PM, Ricardo J. Parada wrote: On Jun 25, 2009, at 9:53 PM, Chuck Hill wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? I see in the stack trace that it's going through the invokeAction phase. But the action method that is supposed to get called has not been called yet. I set a breakpoint in the method that it's supposed to get called but I hit the exception first and the action method never gets called. I'll set a breakpoint in the invokeAction() method of the component that is supposed to call the action to see how things look from there. From what I can tell the _popComponentFromContext() gets the current component from the context and then to message it and throws the null pointer exception because the current component is null for some obscure reason. Anyways, I'm taking a look at the invokeAction in my component. I really ought to take better notes when I hit things like this. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/rparada %40mac.com This email sent to rpar...@mac.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NullPointerException in _popComponentFromContext
On Jun 25, 2009, at 8:49 PM, Ricardo J. Parada wrote: Let me correct something I said: the action method is getting called!!! –– I was just confused the first time I looked. Anyways, the action method gets called and then that action method is calling performParentAction as follows: return performParentAction(s); I did not write that component and I rarely use the performParentAction. But that is returning null. And that is the value my component gets at line#113 and returns the page instead (is that bad? should I return the null value instead?). Returning context.page is best. Then if I resume execution I get the null pointer exception in _popComponentFromContext() in WebObjects. Any chance the code called by performParentAction(s); is doing something bad? Chuck Still investigating... On Jun 25, 2009, at 10:59 PM, Ricardo J. Parada wrote: Well here's what I'm seeing... my component determines that it is the one that should invoke the action and goes through this code: // Tell context that an action was performed. If this is // not done, the form's default action will be called also. 111:wocontext.setActionInvoked(true); 112: 113: WOActionResults obj = (WOActionResults) valueForBinding(ACTION_BINDING_KEY); 114:if (obj == null) obj = wocontext.page(); 115: 116:return obj; Line # 113 should be calling the action method that is bound to the action binding. That is the method on which I set the breakpoint that I was referring to earlier. The one I never hit. So if I don't hit the breakpoint then it's not calling it. But it is calling something else because I see stuff show on the console every time I evaluate the expression valueForBinding(ACTION_BINDING_KEY). Anyways, I'll try to investigate what is getting called... or maybe take a look at valueForBinding to find out why it's not calling the right thing. If I evaluate the expression _associationWithName(ACTION_BINDING_KEY) in the debugger right after line #113 I get the following: (ognl.helperfunction.WOHelperFunctionBindingNameAssociation) ognl.helperfunction.WOHelperFunctionBindingNameAssociation: keyPath=^action On Jun 25, 2009, at 10:19 PM, Chuck Hill wrote: On Jun 25, 2009, at 7:10 PM, Ricardo J. Parada wrote: On Jun 25, 2009, at 9:53 PM, Chuck Hill wrote: Sigh... Does anybody see anything obvious in this stack trace? I used to have this exception ages ago and it was obscure. I don't recall what ended up fixing it exactly but now that I moved my application to Wonder I'm running into this again and haven't figured out yet why or how to fix it. Any ideas?? Pleeeassee!! :-) I have seen this before. It is caused by the context not knowing the current component. This is hitting some action method. What is it returning? I see in the stack trace that it's going through the invokeAction phase. But the action method that is supposed to get called has not been called yet. I set a breakpoint in the method that it's supposed to get called but I hit the exception first and the action method never gets called. I'll set a breakpoint in the invokeAction() method of the component that is supposed to call the action to see how things look from there. From what I can tell the _popComponentFromContext() gets the current component from the context and then to message it and throws the null pointer exception because the current component is null for some obscure reason. Anyways, I'm taking a look at the invokeAction in my component. I really ought to take better notes when I hit things like this. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/rparada%40mac.com This email sent to rpar...@mac.com -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com