Re: Custom EOQualifier
I agree with Xavier. Try it and see how it goes. You should be able to use the existing qualifier and it will work. Here’s a summary of things to try: 1) QualifierOperatorCaseInsensitiveLike - it should work. 2) Derived attribute - you can do “upper” in a derived attribute and then in java upper case the string and do an “equals” comparison 3) Create custom collation in the DB for that column so that it is case insensitive I ordered them by how easy to implement. First one is the easiest and third one is hardest but could be more performant in a large table. > On Aug 30, 2024, at 10:40 AM, Xavier (WO) via Webobjects-dev > wrote: > > Hi André, > > You shouldn’t need to do anything, your String will be called as a variable, > the EOQualifer will escape the problematic characters for you. > > Xavier > > >> On 30 Aug 2024, at 16:17, André Rothe wrote: >> >> Hi Xavier, >> >> How I can escape the wildcards, with a backslash? I did not find any >> information about that. >> >> Thank you >> André >> >> >> Am 30.08.2024 15:24, schrieb Xavier (WO): >>> Hello André, >>> Didi you actually try to use the regular >>> QualifierOperatorCaseInsensitiveLike, I’d say that it would “escape” the >>> special characters in the Strings so your “*” shouldn’t be an issue. >>> Xavier >>>> On 30 Aug 2024, at 15:06, André Rothe via Webobjects-dev >>>> wrote: >>>> Hi, >>>> I need a custom EOQualifier, which executes for Strings in an Oracle >>>> database >>>> WHERE UPPER(table.aStr) = UPPER(bStr) >>>> (compare both Strings in uppercases). A >>>> QualifierOperatorCaseInsensitiveLike will not work, because the Strings >>>> could contain "*", but these should not act as wildcards. >>>> How I can build such a class? >>>> Greetings >>>> André >>>> ___ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/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: > https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com > > This email sent to aa...@chatnbike.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Custom EOQualifier
Hi André, You shouldn’t need to do anything, your String will be called as a variable, the EOQualifer will escape the problematic characters for you. Xavier > On 30 Aug 2024, at 16:17, André Rothe wrote: > > Hi Xavier, > > How I can escape the wildcards, with a backslash? I did not find any > information about that. > > Thank you > André > > > Am 30.08.2024 15:24, schrieb Xavier (WO): >> Hello André, >> Didi you actually try to use the regular >> QualifierOperatorCaseInsensitiveLike, I’d say that it would “escape” the >> special characters in the Strings so your “*” shouldn’t be an issue. >> Xavier >>> On 30 Aug 2024, at 15:06, André Rothe via Webobjects-dev >>> wrote: >>> Hi, >>> I need a custom EOQualifier, which executes for Strings in an Oracle >>> database >>> WHERE UPPER(table.aStr) = UPPER(bStr) >>> (compare both Strings in uppercases). A >>> QualifierOperatorCaseInsensitiveLike will not work, because the Strings >>> could contain "*", but these should not act as wildcards. >>> How I can build such a class? >>> Greetings >>> André >>> ___ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Custom EOQualifier
Hi Xavier, How I can escape the wildcards, with a backslash? I did not find any information about that. Thank you André Am 30.08.2024 15:24, schrieb Xavier (WO): Hello André, Didi you actually try to use the regular QualifierOperatorCaseInsensitiveLike, I’d say that it would “escape” the special characters in the Strings so your “*” shouldn’t be an issue. Xavier On 30 Aug 2024, at 15:06, André Rothe via Webobjects-dev wrote: Hi, I need a custom EOQualifier, which executes for Strings in an Oracle database WHERE UPPER(table.aStr) = UPPER(bStr) (compare both Strings in uppercases). A QualifierOperatorCaseInsensitiveLike will not work, because the Strings could contain "*", but these should not act as wildcards. How I can build such a class? Greetings André ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Custom EOQualifier
Hello André, Didi you actually try to use the regular QualifierOperatorCaseInsensitiveLike, I’d say that it would “escape” the special characters in the Strings so your “*” shouldn’t be an issue. Xavier > On 30 Aug 2024, at 15:06, André Rothe via Webobjects-dev > wrote: > > Hi, > > I need a custom EOQualifier, which executes for Strings in an Oracle database > > WHERE UPPER(table.aStr) = UPPER(bStr) > > (compare both Strings in uppercases). A QualifierOperatorCaseInsensitiveLike > will not work, because the Strings could contain "*", but these should not > act as wildcards. > > How I can build such a class? > > Greetings > André > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Custom EOQualifier
André, someone might give a much better and more straightforward answer, but myself, I would just check (and more or less imitate) how custom qualifiers are written in Wonder, whose sources are available publicly <https://jenkins.wocommunity.org/job/Wonder7/ws/Wonder/Frameworks/Core/>. All the best, OC > On 30. 8. 2024, at 15:06, André Rothe via Webobjects-dev > wrote: > > Hi, > > I need a custom EOQualifier, which executes for Strings in an Oracle database > > WHERE UPPER(table.aStr) = UPPER(bStr) > > (compare both Strings in uppercases). A QualifierOperatorCaseInsensitiveLike > will not work, because the Strings could contain "*", but these should not > act as wildcards. > > How I can build such a class? > > Greetings > André > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/ocs%40ocs.cz > > This email sent to o...@ocs.cz _______ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Custom EOQualifier
Hi, I need a custom EOQualifier, which executes for Strings in an Oracle database WHERE UPPER(table.aStr) = UPPER(bStr) (compare both Strings in uppercases). A QualifierOperatorCaseInsensitiveLike will not work, because the Strings could contain "*", but these should not act as wildcards. How I can build such a class? Greetings André ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven Help
Hi Ted, On 28 Aug 2024, at 00:16, Theodore Petrosky via Webobjects-dev wrote: > I'm sorry I missed this what is this woot? > On 8/17/24, 6:19 PM, "Jesse Tayler via Webobjects-dev" > mailto:webobjects-dev@lists.apple.com>> > wrote: > > woot. I think the "woot" was just Jesse's expression of joy that you're creating new projects and getting back into WebObjects. As for this: >> On Aug 17, 2024, at 12:36 PM, Theodore Petrosky via Webobjects-dev >> mailto:webobjects-dev@lists.apple.com>> >> wrote: >> >> With Hugi’s help, I finally have the ability to create new WO/Wonder >> projects in Eclipse. Please can Ramsey be given permissions to update the >> Maven templates to create D2W and Frameworks? I have always put my database >> connections in its own Framework. I know he (Ramsey) has mentioned that he >> has them almost ready for prime-time. If I recall correctly, Ramsey is 'nullterminated', and he's on the Maven Committers team: https://github.com/orgs/wocommunity/teams/maven-committers He should be good to go. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ _______ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven Help
I'm sorry I missed this what is this woot? Theodore Petrosky | IT/Finance Director AgencySacks On 8/17/24, 6:19 PM, "Jesse Tayler via Webobjects-dev" mailto:webobjects-dev@lists.apple.com>> wrote: woot. > On Aug 17, 2024, at 12:36 PM, Theodore Petrosky via Webobjects-dev > mailto:webobjects-dev@lists.apple.com>> > wrote: > > With Hugi’s help, I finally have the ability to create new WO/Wonder projects > in Eclipse. Please can Ramsey be given permissions to update the Maven > templates to create D2W and Frameworks? I have always put my database > connections in its own Framework. I know he (Ramsey) has mentioned that he > has them almost ready for prime-time. > > I have fallen away from WO and I want to rejoin the fun. > > Yours in WO(e)! > > Ted > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com > <mailto:Webobjects-dev@lists.apple.com>) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com > <https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com> > > This email sent to jtay...@oeinc.com <mailto:jtay...@oeinc.com> ___________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com <mailto:Webobjects-dev@lists.apple.com>) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/tpetrosky%40agencysacks.com <https://lists.apple.com/mailman/options/webobjects-dev/tpetrosky%40agencysacks.com> This email sent to tpetro...@agencysacks.com <mailto:tpetro...@agencysacks.com> ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
Ramsey, > On 23. 8. 2024, at 16:10, Ramsey Gurley > wrote: > Check the startup logging in your app. I'm fairly sure a standard wonder app > dumps the entire classpath as part of the start of the startup logging. It does; that's where I've found my classpath is definitely OK. Alas, the bloody Java ignores the classpath and happily loads the JDBC driver from java.ext.dirs, regardless the classpath path :( Thanks, OC > > From: o...@ocs.cz > Sent: Friday, August 23, 2024 6:20 AM > To: Ramsey Gurley ; WebObjects-Dev List > > Subject: Re: FB JDBC version? > > Ramsey, > > looks like you are again right. Meantime I've investigated, and it looks like > - the bloody Java, despite having an explicit path to the proper driver on > classpath (I've checked in runtime logs, it's OK), still ignores it and loads > another driver from java.ext.dirs; > - where, I believe, a FrontBase driver should never be anyway, but some > proactive admin seems to have put the old version to. Ick! > > Is there a decent way for a given JAR to log out a path from which it has > been really loaded? I've tried to search Net, but did not found any. There > are ways to find a path for a known class (but I do not know which classes > there are in the FrontBase driver; and if I find a class they use now, it > might fail in future if they change the names), and even those, based on a > getProtectionDomain which might throw, are a bit complex to my liking... > > Thanks a lot! > OC > >> On 22. 8. 2024, at 22:51, Ramsey Gurley > <mailto:ramsey.gur...@practicemojo.com>> wrote: >> >> Are you sure you don't have more than one jdbc jar floating around in your >> application build path? With ant, I forget how it determines which jar wins. >> With maven, you can just open the pom.xml in eclipse and check in the >> Dependency Hierarchy tab. >> From: OCsite via Webobjects-dev > <mailto:webobjects-dev@lists.apple.com>> >> Sent: Thursday, August 22, 2024 2:54 PM >> To: WebObjects-Dev List > <mailto:webobjects-dev@lists.apple.com>> >> Subject: FB JDBC version? >> >> Hi there, >> >> how does one properly determine the current FB JDBC driver version? >> >> Lately we were not sure whether all our installations contain the newest >> release, and thus I've added a code to log out the version. The code I've >> found — is there another, better, and more reliable variant? — looks like >> this: >> >> === >> def eoa=EOAdaptor.adaptorWithModel(model) >> def pin=eoa.plugIn() >> logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" >> === >> >> The problem is, this code gives me different results (sometimes 2.5.10, >> sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be >> 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I >> overlook? >> >> Thanks, >> OC >> Confidentiality Notice: This email, including all attachments and replies >> thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. >> Sections 2510-2521 and are legally privileged. This information is >> confidential, and intended only for the use of the individuals or entities >> named above. If you are not the intended recipient, you are hereby notified >> that any disclosure, copying, distribution or the taking of any action in >> reliance on the contents of this transmitted information is strictly >> prohibited. Please notify us if you have received this transmission in >> error. Thank you. > > Confidentiality Notice: This email, including all attachments and replies > thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. > Sections 2510-2521 and are legally privileged. This information is > confidential, and intended only for the use of the individuals or entities > named above. If you are not the intended recipient, you are hereby notified > that any disclosure, copying, distribution or the taking of any action in > reliance on the contents of this transmitted information is strictly > prohibited. Please notify us if you have received this transmission in error. > Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
Check the startup logging in your app. I'm fairly sure a standard wonder app dumps the entire classpath as part of the start of the startup logging. From: o...@ocs.cz Sent: Friday, August 23, 2024 6:20 AM To: Ramsey Gurley ; WebObjects-Dev List Subject: Re: FB JDBC version? Ramsey, looks like you are again right. Meantime I've investigated, and it looks like - the bloody Java, despite having an explicit path to the proper driver on classpath (I've checked in runtime logs, it's OK), still ignores it and loads another driver from java.ext.dirs; - where, I believe, a FrontBase driver should never be anyway, but some proactive admin seems to have put the old version to. Ick! Is there a decent way for a given JAR to log out a path from which it has been really loaded? I've tried to search Net, but did not found any. There are ways to find a path for a known class (but I do not know which classes there are in the FrontBase driver; and if I find a class they use now, it might fail in future if they change the names), and even those, based on a getProtectionDomain which might throw, are a bit complex to my liking... Thanks a lot! OC On 22. 8. 2024, at 22:51, Ramsey Gurley mailto:ramsey.gur...@practicemojo.com>> wrote: Are you sure you don't have more than one jdbc jar floating around in your application build path? With ant, I forget how it determines which jar wins. With maven, you can just open the pom.xml in eclipse and check in the Dependency Hierarchy tab. ____ From: OCsite via Webobjects-dev mailto:webobjects-dev@lists.apple.com>> Sent: Thursday, August 22, 2024 2:54 PM To: WebObjects-Dev List mailto:webobjects-dev@lists.apple.com>> Subject: FB JDBC version? Hi there, how does one properly determine the current FB JDBC driver version? Lately we were not sure whether all our installations contain the newest release, and thus I've added a code to log out the version. The code I've found — is there another, better, and more reliable variant? — looks like this: === def eoa=EOAdaptor.adaptorWithModel(model) def pin=eoa.plugIn() logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" === The problem is, this code gives me different results (sometimes 2.5.10, sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I overlook? Thanks, OC Confidentiality Notice: This email, including all attachments and replies thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This information is confidential, and intended only for the use of the individuals or entities named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on the contents of this transmitted information is strictly prohibited. Please notify us if you have received this transmission in error. Thank you. Confidentiality Notice: This email, including all attachments and replies thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This information is confidential, and intended only for the use of the individuals or entities named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on the contents of this transmitted information is strictly prohibited. Please notify us if you have received this transmission in error. Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
Ramsey, looks like you are again right. Meantime I've investigated, and it looks like - the bloody Java, despite having an explicit path to the proper driver on classpath (I've checked in runtime logs, it's OK), still ignores it and loads another driver from java.ext.dirs; - where, I believe, a FrontBase driver should never be anyway, but some proactive admin seems to have put the old version to. Ick! Is there a decent way for a given JAR to log out a path from which it has been really loaded? I've tried to search Net, but did not found any. There are ways to find a path for a known class (but I do not know which classes there are in the FrontBase driver; and if I find a class they use now, it might fail in future if they change the names), and even those, based on a getProtectionDomain which might throw, are a bit complex to my liking... Thanks a lot! OC > On 22. 8. 2024, at 22:51, Ramsey Gurley > wrote: > > Are you sure you don't have more than one jdbc jar floating around in your > application build path? With ant, I forget how it determines which jar wins. > With maven, you can just open the pom.xml in eclipse and check in the > Dependency Hierarchy tab. > From: OCsite via Webobjects-dev > Sent: Thursday, August 22, 2024 2:54 PM > To: WebObjects-Dev List > Subject: FB JDBC version? > > Hi there, > > how does one properly determine the current FB JDBC driver version? > > Lately we were not sure whether all our installations contain the newest > release, and thus I've added a code to log out the version. The code I've > found — is there another, better, and more reliable variant? — looks like > this: > > === > def eoa=EOAdaptor.adaptorWithModel(model) > def pin=eoa.plugIn() > logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" > === > > The problem is, this code gives me different results (sometimes 2.5.10, > sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be > 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I > overlook? > > Thanks, > OC > Confidentiality Notice: This email, including all attachments and replies > thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. > Sections 2510-2521 and are legally privileged. This information is > confidential, and intended only for the use of the individuals or entities > named above. If you are not the intended recipient, you are hereby notified > that any disclosure, copying, distribution or the taking of any action in > reliance on the contents of this transmitted information is strictly > prohibited. Please notify us if you have received this transmission in error. > Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
Jesse, I might be wrong, but I understand this is not the driver version, but a JDBC compatibility level or something like that. Anyway, the FrontBase driver version is three-part (like 2.5.10), not just major.minor. Thanks! OC > On 22. 8. 2024, at 22:48, Jesse Tayler wrote: > > I happen to use a different API, perhaps results are different. > > java.sql.Driver driver = java.sql.DriverManager.getDriver(“my login string…”); > ERXApplication.log.info("Driver Version: " + driver.getMajorVersion() + "." + > driver.getMinorVersion()); > > >> On Aug 22, 2024, at 3:54 PM, OCsite via Webobjects-dev >> wrote: >> >> Hi there, >> >> how does one properly determine the current FB JDBC driver version? >> >> Lately we were not sure whether all our installations contain the newest >> release, and thus I've added a code to log out the version. The code I've >> found — is there another, better, and more reliable variant? — looks like >> this: >> >> === >> def eoa=EOAdaptor.adaptorWithModel(model) >> def pin=eoa.plugIn() >> logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" >> === >> >> The problem is, this code gives me different results (sometimes 2.5.10, >> sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be >> 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I >> overlook? >> >> Thanks, >> OC >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com >> >> This email sent to jtay...@oeinc.com > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
Are you sure you don't have more than one jdbc jar floating around in your application build path? With ant, I forget how it determines which jar wins. With maven, you can just open the pom.xml in eclipse and check in the Dependency Hierarchy tab. From: OCsite via Webobjects-dev Sent: Thursday, August 22, 2024 2:54 PM To: WebObjects-Dev List Subject: FB JDBC version? Hi there, how does one properly determine the current FB JDBC driver version? Lately we were not sure whether all our installations contain the newest release, and thus I've added a code to log out the version. The code I've found — is there another, better, and more reliable variant? — looks like this: === def eoa=EOAdaptor.adaptorWithModel(model) def pin=eoa.plugIn() logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" === The problem is, this code gives me different results (sometimes 2.5.10, sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I overlook? Thanks, OC Confidentiality Notice: This email, including all attachments and replies thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This information is confidential, and intended only for the use of the individuals or entities named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on the contents of this transmitted information is strictly prohibited. Please notify us if you have received this transmission in error. Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FB JDBC version?
I happen to use a different API, perhaps results are different. java.sql.Driver driver = java.sql.DriverManager.getDriver(“my login string…”); ERXApplication.log.info("Driver Version: " + driver.getMajorVersion() + "." + driver.getMinorVersion()); > On Aug 22, 2024, at 3:54 PM, OCsite via Webobjects-dev > wrote: > > Hi there, > > how does one properly determine the current FB JDBC driver version? > > Lately we were not sure whether all our installations contain the newest > release, and thus I've added a code to log out the version. The code I've > found — is there another, better, and more reliable variant? — looks like > this: > > === > def eoa=EOAdaptor.adaptorWithModel(model) > def pin=eoa.plugIn() > logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" > === > > The problem is, this code gives me different results (sometimes 2.5.10, > sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be > 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I > overlook? > > Thanks, > OC > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com > > This email sent to jtay...@oeinc.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
FB JDBC version?
Hi there, how does one properly determine the current FB JDBC driver version? Lately we were not sure whether all our installations contain the newest release, and thus I've added a code to log out the version. The code I've found — is there another, better, and more reliable variant? — looks like this: === def eoa=EOAdaptor.adaptorWithModel(model) def pin=eoa.plugIn() logln "using driver $eoa.plugInName ${pin.jdbcInfo['DRIVER_VER']}" === The problem is, this code gives me different results (sometimes 2.5.10, sometimes 2.5.9) for the very same frontbasejdbc.jar (which should really be 2.5.20 — 240643 bytes, md5 72266d135712d26c60bc5cc1e1dc7c94). What do I overlook? Thanks, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: overlapping R/Rs in same session
If you open a second tab, using cookies, they are shared. If you continue doing more than 30 actions or so in the second tab, and then later try to do 1 action in the first tab, it will break. The first tab will try to do something but the page is out of the backtrack cache already. Last tab wins. > On Aug 21, 2024, at 6:55 AM, OCsite wrote: > > Aaron, > >> On 21. 8. 2024, at 1:16, Aaron Rosenzweig wrote: >> Sounds like maybe your session is in the URL? > > Nope, we store them in cookies. > >> What if you put the session in a cookie? Then it’s not possible to have >> multiple tabs in the same browser. The last tab wins. > > Alas, that's not how the browser works. Pretty often, e.g., if one opens a > link by shift-cmd-click in a new tab, and in other cases too, more > tabs/windows simply share the same wosid cookie, i.e., the same session. > > Myself I use Safari exclusively, but based on > https://stackoverflow.com/questions/49687204/same-browser-but-different-windows-do-they-share-cookies > > <https://stackoverflow.com/questions/49687204/same-browser-but-different-windows-do-they-share-cookies> > it seems it is a customary behaviour in other browsers, too. > > Thanks, > OC > >> >>> On Aug 19, 2024, at 9:25 AM, ocs--- via Webobjects-dev >>> mailto:webobjects-dev@lists.apple.com>> >>> wrote: >>> >>> Hi there, >>> >>> looks like the main cause of those overlapping R/Rs which we ar clashing >>> with lately is that some users just open their session in more windows or >>> tabs, and work concurrently in those. Sigh. >>> >>> It's self-evident why it is a pretty bad idea from the technical POV, but I >>> am afraid we can't explain it to plain users. Worse, if we found a way to >>> prevent that (offhand, I am not sure whether it is technically possible, >>> but even if so), I am afraid the users would complain that they simply >>> insist on this terrible approach. >>> >>> Now though they complain some operations are “inexplicably” slow: “I >>> understand that operation A which I've launched in one of my windows is >>> complicated and thus takes many seconds, that's OK. But at the same moment >>> I've launched an operation B in another of my windows; operation B is >>> trivial and should be lightning fast, but it took an eternity! Fix your >>> broken application!“ >>> >>> Well you twit, op B took an eternity since it first waited many seconds >>> until the slow op A you yourself launched in the same session finished; >>> after that, A took about 100 ms of its own time. But this kind of >>> explanation would not do with plain users at all :( >>> >>> Could anybody see any practical solution? >>> >>> Note please that making _all_ R/R lightning fast is practically impossible >>> (we would have to refactor too heavily, not an option in a near future). >>> Besides I am afraid even if we somehow succeeded to make all R/R reliably >>> belong a second or so, they would still launch ten second-long operations >>> in ten windows plus one 100 ms in another, and then complain that the last >>> one took seconds too :( >>> >>> At this moment about the only solution very ugly work-around I can think of >>> would be to choose a couple of the trivial operations whose speed the users >>> consider most important, and re-write them without session (they would >>> still need to work with the session ID, but important things like the >>> current user etc. would have to be cached in the application in some kind >>> of static map without using the Session instance at all). Sigh. Darn >>> complex, but still worlds easier than attempting to make _all_ R/Rs >>> 100ms-or-less... >>> >>> Any better idea? >>> >>> Thanks and all the best, >>> OC >>> >>> _______ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>> <mailto:Webobjects-dev@lists.apple.com>) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >>> >>> <https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com> >>> >>> This email sent to aa...@chatnbike.com >> > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: overlapping R/Rs in same session
Aaron, > On 21. 8. 2024, at 1:16, Aaron Rosenzweig wrote: > Sounds like maybe your session is in the URL? Nope, we store them in cookies. > What if you put the session in a cookie? Then it’s not possible to have > multiple tabs in the same browser. The last tab wins. Alas, that's not how the browser works. Pretty often, e.g., if one opens a link by shift-cmd-click in a new tab, and in other cases too, more tabs/windows simply share the same wosid cookie, i.e., the same session. Myself I use Safari exclusively, but based on https://stackoverflow.com/questions/49687204/same-browser-but-different-windows-do-they-share-cookies it seems it is a customary behaviour in other browsers, too. Thanks, OC > >> On Aug 19, 2024, at 9:25 AM, ocs--- via Webobjects-dev >> mailto:webobjects-dev@lists.apple.com>> >> wrote: >> >> Hi there, >> >> looks like the main cause of those overlapping R/Rs which we ar clashing >> with lately is that some users just open their session in more windows or >> tabs, and work concurrently in those. Sigh. >> >> It's self-evident why it is a pretty bad idea from the technical POV, but I >> am afraid we can't explain it to plain users. Worse, if we found a way to >> prevent that (offhand, I am not sure whether it is technically possible, but >> even if so), I am afraid the users would complain that they simply insist on >> this terrible approach. >> >> Now though they complain some operations are “inexplicably” slow: “I >> understand that operation A which I've launched in one of my windows is >> complicated and thus takes many seconds, that's OK. But at the same moment >> I've launched an operation B in another of my windows; operation B is >> trivial and should be lightning fast, but it took an eternity! Fix your >> broken application!“ >> >> Well you twit, op B took an eternity since it first waited many seconds >> until the slow op A you yourself launched in the same session finished; >> after that, A took about 100 ms of its own time. But this kind of >> explanation would not do with plain users at all :( >> >> Could anybody see any practical solution? >> >> Note please that making _all_ R/R lightning fast is practically impossible >> (we would have to refactor too heavily, not an option in a near future). >> Besides I am afraid even if we somehow succeeded to make all R/R reliably >> belong a second or so, they would still launch ten second-long operations in >> ten windows plus one 100 ms in another, and then complain that the last one >> took seconds too :( >> >> At this moment about the only solution very ugly work-around I can think of >> would be to choose a couple of the trivial operations whose speed the users >> consider most important, and re-write them without session (they would still >> need to work with the session ID, but important things like the current user >> etc. would have to be cached in the application in some kind of static map >> without using the Session instance at all). Sigh. Darn complex, but still >> worlds easier than attempting to make _all_ R/Rs 100ms-or-less... >> >> Any better idea? >> >> Thanks and all the best, >> OC >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >> <mailto:Webobjects-dev@lists.apple.com>) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >> >> This email sent to aa...@chatnbike.com > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: overlapping R/Rs in same session
Sounds like maybe your session is in the URL? What if you put the session in a cookie? Then it’s not possible to have multiple tabs in the same browser. The last tab wins. > On Aug 19, 2024, at 9:25 AM, ocs--- via Webobjects-dev > wrote: > > Hi there, > > looks like the main cause of those overlapping R/Rs which we ar clashing with > lately is that some users just open their session in more windows or tabs, > and work concurrently in those. Sigh. > > It's self-evident why it is a pretty bad idea from the technical POV, but I > am afraid we can't explain it to plain users. Worse, if we found a way to > prevent that (offhand, I am not sure whether it is technically possible, but > even if so), I am afraid the users would complain that they simply insist on > this terrible approach. > > Now though they complain some operations are “inexplicably” slow: “I > understand that operation A which I've launched in one of my windows is > complicated and thus takes many seconds, that's OK. But at the same moment > I've launched an operation B in another of my windows; operation B is trivial > and should be lightning fast, but it took an eternity! Fix your broken > application!“ > > Well you twit, op B took an eternity since it first waited many seconds until > the slow op A you yourself launched in the same session finished; after that, > A took about 100 ms of its own time. But this kind of explanation would not > do with plain users at all :( > > Could anybody see any practical solution? > > Note please that making _all_ R/R lightning fast is practically impossible > (we would have to refactor too heavily, not an option in a near future). > Besides I am afraid even if we somehow succeeded to make all R/R reliably > belong a second or so, they would still launch ten second-long operations in > ten windows plus one 100 ms in another, and then complain that the last one > took seconds too :( > > At this moment about the only solution very ugly work-around I can think of > would be to choose a couple of the trivial operations whose speed the users > consider most important, and re-write them without session (they would still > need to work with the session ID, but important things like the current user > etc. would have to be cached in the application in some kind of static map > without using the Session instance at all). Sigh. Darn complex, but still > worlds easier than attempting to make _all_ R/Rs 100ms-or-less... > > Any better idea? > > Thanks and all the best, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com > > This email sent to aa...@chatnbike.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: overlapping R/Rs in same session
Hi OC, This is a very complex question with many possibles solutions having their owns problems... If you use auto-magic WO with auto generated url using actions bindings with complex pages, there is no safe way to support multiple concurrent tab or windows in the same browser for these components. You would need an infinite page cache to make sure the last used tab is not forgotten before its next interaction. If you can limit the contents allowed in "other" tabs, it is possible to have a safe solution by using only direct actions inside those allowed components and keep the main app in the easy for dev mode. I developed a way to detect other tab usage and bloc them (the last opened deactivate other one). If the user comme back to a previous one, an alert id displayed and it is possible to continue there but you are back to the app home page. This is mostly to help when they close the active tab to keep the active session. All session based server frameworks lock the session during a request to ensure the session data is coherent, this limit the processing to 1 concurrent request per session on the server. You can almost eliminate the pause effect for long requests by using LongResponsePage or other means to display a work in progress in a background thread. You start the long request in background and create an auto refreshed progress page and return it to the browser quickly, If you want to go full concurrent requests for a user, you need to get rid of the session and page cache, this can represent a huge amount of work, it would probably be better to switch to a full page JS frameworks for the UI but even those does not like multiple tabs with complex apps... I try to adjust my UI to reduce the need of those multiple tabs or windows, this is by far the easiest way to help users. Regards, Samuel > Le 19 août 2024 à 09:25, ocs--- via Webobjects-dev > a écrit : > > Hi there, > > looks like the main cause of those overlapping R/Rs which we ar clashing with > lately is that some users just open their session in more windows or tabs, > and work concurrently in those. Sigh. > > It's self-evident why it is a pretty bad idea from the technical POV, but I > am afraid we can't explain it to plain users. Worse, if we found a way to > prevent that (offhand, I am not sure whether it is technically possible, but > even if so), I am afraid the users would complain that they simply insist on > this terrible approach. > > Now though they complain some operations are “inexplicably” slow: “I > understand that operation A which I've launched in one of my windows is > complicated and thus takes many seconds, that's OK. But at the same moment > I've launched an operation B in another of my windows; operation B is trivial > and should be lightning fast, but it took an eternity! Fix your broken > application!“ > > Well you twit, op B took an eternity since it first waited many seconds until > the slow op A you yourself launched in the same session finished; after that, > A took about 100 ms of its own time. But this kind of explanation would not > do with plain users at all :( > > Could anybody see any practical solution? > > Note please that making _all_ R/R lightning fast is practically impossible > (we would have to refactor too heavily, not an option in a near future). > Besides I am afraid even if we somehow succeeded to make all R/R reliably > belong a second or so, they would still launch ten second-long operations in > ten windows plus one 100 ms in another, and then complain that the last one > took seconds too :( > > At this moment about the only solution very ugly work-around I can think of > would be to choose a couple of the trivial operations whose speed the users > consider most important, and re-write them without session (they would still > need to work with the session ID, but important things like the current user > etc. would have to be cached in the application in some kind of static map > without using the Session instance at all). Sigh. Darn complex, but still > worlds easier than attempting to make _all_ R/Rs 100ms-or-less... > > Any better idea? > > Thanks and all the best, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com > > This email sent to sam...@samkar.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
overlapping R/Rs in same session
Hi there, looks like the main cause of those overlapping R/Rs which we ar clashing with lately is that some users just open their session in more windows or tabs, and work concurrently in those. Sigh. It's self-evident why it is a pretty bad idea from the technical POV, but I am afraid we can't explain it to plain users. Worse, if we found a way to prevent that (offhand, I am not sure whether it is technically possible, but even if so), I am afraid the users would complain that they simply insist on this terrible approach. Now though they complain some operations are “inexplicably” slow: “I understand that operation A which I've launched in one of my windows is complicated and thus takes many seconds, that's OK. But at the same moment I've launched an operation B in another of my windows; operation B is trivial and should be lightning fast, but it took an eternity! Fix your broken application!“ Well you twit, op B took an eternity since it first waited many seconds until the slow op A you yourself launched in the same session finished; after that, A took about 100 ms of its own time. But this kind of explanation would not do with plain users at all :( Could anybody see any practical solution? Note please that making _all_ R/R lightning fast is practically impossible (we would have to refactor too heavily, not an option in a near future). Besides I am afraid even if we somehow succeeded to make all R/R reliably belong a second or so, they would still launch ten second-long operations in ten windows plus one 100 ms in another, and then complain that the last one took seconds too :( At this moment about the only solution very ugly work-around I can think of would be to choose a couple of the trivial operations whose speed the users consider most important, and re-write them without session (they would still need to work with the session ID, but important things like the current user etc. would have to be cached in the application in some kind of static map without using the Session instance at all). Sigh. Darn complex, but still worlds easier than attempting to make _all_ R/Rs 100ms-or-less... Any better idea? Thanks and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: fetches too often (was: weird locks) in faultWithPrimaryKeyValue
Hi, Using the same OSC for both the RR-WorkerThreads and long-response background threads may result in deadlocks in a heavier load scenario (which is bad for your karma) Using en extra OSC for every background task may consume too much memory. Fortunately there exists the combination of ERXFutureTask and ERXTask Instances. Each ERXTask object will be connected to one OSC of a OSC pool. The number of simultaneous ERXTask is limited to the size of OSC-pool, but the background tasks doesn't interfere with RR-Threads. I was very much inspired by the following screencast: https://www.wocommunity.org/podcasts/wowodc/2011/BackgroundTasks.mov Regards René Am 18.08.2024 um 15:22 schrieb Samuel Pelletier via Webobjects-dev : OC, I do not know your app and deployment setup but usually, I know that keeping things simple is usually a good thing and a single instance app can be very efficient with it's database by assuming it's cache is valid. Creating a complete EOF stack for a single request seems very overkill for me. EOF maintain a cache of snapshots and propagate changes, it is its main features and differences with other ORM out there. If you can use the snapshot cache, getting an EO from it's GID is very fast but you need this GID... EOF shine for interactive manipulation of large data structures when you manipulate 100s of objects in a single page like managing a production schedule for example. It is overkill for simple data manipulation like most rest like API where basic ORM with no caching will have better performance overall. If your app is like most app and most queries are very small and fast, do not bother to create OSC except for known long requests, use the exceptional tool for exceptional needs, not for the usual one. I benchmarked a ERRest app the save and issue simple etc with a H2 local database on a Mac Book Pro few years ago and was able to achieve more than 200 requests per second on a single instance app. If you have time sensitive parts distincts from more report like pages with unpredictable fetch complexity, you may split them in different app or use a distinct OSC for each kind of usage to maximize the snapshot cache benefits... If you want dedicated connection for those simple requests to isolate them from EOF, you will be better served with another ORM or by issuing direct SQL to a pooled DB connection. Do not forget that Insert and Update in the database will serialize access to the table if you want the latest values from your queries even if you use multiple connections. If your problem is creating GID and you have it's value, try this code instead of the utility method that usually issue a fetch: EOKeyGlobalID revisionGid = ERXEOGlobalIDUtilities.createGlobalID(ProduitFabriqueRevision.ENTITY_NAME, new Object[] {this.revisionId}); ProduitFabriqueRevision revision = (ProduitFabriqueRevision) ec.faultForGlobalID(revisionGid, ec); Regards, Samuel Le 18 août 2024 à 07:10, o...@ocs.cz a écrit : Samuel, On 17. 8. 2024, at 15:59, Samuel Pelletier mailto:sam...@samkar.com>> wrote: If you create a new OSC, you will have no snapshot cache (I may be wrong on this), so it is the expected behaviour. I might be missing something, but I understand each OSC has its own set of snapshots. Independent on other OSCs, of course, but should work normally inside an OSC. Was I wrong? I never create new OSC in my apps, why are you creating OSC like this ? To create an independent DB channnel, so that my fetches in this OSC do not need to wait for (potentially long) fetches in other OSCs. If your fetches are long, check your database indexes. They are fast, the problem is that they happen at all. I log EC, OSC, and SQL, and it looks like this (they run in the same thread just by a chance; each time, it's a new R/R loop, they get assigned the same thread just since I do nothing else in the app at the moment): === 18 12:58:34.815|WorkerThread2/TEMPLOG created ec EC:5e8666eb/OSC:69463522 12:58:34.816 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] 18 12:58:35.852|WorkerThread2 /TEMPLOG created ec EC:267a80b0/OSC:69463522 12:58:35.853 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] 18 12:58:36.863|WorkerThread2 /TEMPLOG created ec EC:7bcddf5b/OSC:69463522 12:58:36.880 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] === Note that each time a new EC is created (that's all right), but they a
Re: fetches too often (was: weird locks) in faultWithPrimaryKeyValue
OC, I do not know your app and deployment setup but usually, I know that keeping things simple is usually a good thing and a single instance app can be very efficient with it's database by assuming it's cache is valid. Creating a complete EOF stack for a single request seems very overkill for me. EOF maintain a cache of snapshots and propagate changes, it is its main features and differences with other ORM out there. If you can use the snapshot cache, getting an EO from it's GID is very fast but you need this GID... EOF shine for interactive manipulation of large data structures when you manipulate 100s of objects in a single page like managing a production schedule for example. It is overkill for simple data manipulation like most rest like API where basic ORM with no caching will have better performance overall. If your app is like most app and most queries are very small and fast, do not bother to create OSC except for known long requests, use the exceptional tool for exceptional needs, not for the usual one. I benchmarked a ERRest app the save and issue simple etc with a H2 local database on a Mac Book Pro few years ago and was able to achieve more than 200 requests per second on a single instance app. If you have time sensitive parts distincts from more report like pages with unpredictable fetch complexity, you may split them in different app or use a distinct OSC for each kind of usage to maximize the snapshot cache benefits... If you want dedicated connection for those simple requests to isolate them from EOF, you will be better served with another ORM or by issuing direct SQL to a pooled DB connection. Do not forget that Insert and Update in the database will serialize access to the table if you want the latest values from your queries even if you use multiple connections. If your problem is creating GID and you have it's value, try this code instead of the utility method that usually issue a fetch: EOKeyGlobalID revisionGid = ERXEOGlobalIDUtilities.createGlobalID(ProduitFabriqueRevision.ENTITY_NAME, new Object[] {this.revisionId}); ProduitFabriqueRevision revision = (ProduitFabriqueRevision) ec.faultForGlobalID(revisionGid, ec); Regards, Samuel > Le 18 août 2024 à 07:10, o...@ocs.cz a écrit : > > Samuel, > >> On 17. 8. 2024, at 15:59, Samuel Pelletier > <mailto:sam...@samkar.com>> wrote: >> If you create a new OSC, you will have no snapshot cache (I may be wrong on >> this), so it is the expected behaviour. > > I might be missing something, but I understand each OSC has its own set of > snapshots. Independent on other OSCs, of course, but should work normally > inside an OSC. Was I wrong? > >> I never create new OSC in my apps, why are you creating OSC like this ? > > To create an independent DB channnel, so that my fetches in this OSC do not > need to wait for (potentially long) fetches in other OSCs. > >> If your fetches are long, check your database indexes. > > They are fast, the problem is that they happen at all. I log EC, OSC, and > SQL, and it looks like this (they run in the same thread just by a chance; > each time, it's a new R/R loop, they get assigned the same thread just since > I do nothing else in the app at the moment): > > === > 18 12:58:34.815|WorkerThread2/TEMPLOG created ec EC:5e8666eb/OSC:69463522 > 12:58:34.816 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... > FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 > //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] > 18 12:58:35.852|WorkerThread2 /TEMPLOG created ec EC:267a80b0/OSC:69463522 > 12:58:35.853 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... > FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 > //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] > 18 12:58:36.863|WorkerThread2 /TEMPLOG created ec EC:7bcddf5b/OSC:69463522 > 12:58:36.880 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... > FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 > //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] > === > > Note that each time a new EC is created (that's all right), but they all > belong to the same OSC (69463522). Yet, each time there's a fetch of the same > object (1000147). I must be missing something of importance; I believe there > should be only the 1st one, while instead of the latter ones the fault should > get fired quickly through snapshots of the OSC without a DB roundtrip. > > Thanks, > OC > >>> Le 17 août 2024 à 08:48, ocs--- via Webobjects-dev >>> mailto:webobjects-dev@lists.apple.com>> a >>> écrit : >
Re: fetches too often (was: weird locks) in faultWithPrimaryKeyValue
Samuel, > On 17. 8. 2024, at 15:59, Samuel Pelletier wrote: > If you create a new OSC, you will have no snapshot cache (I may be wrong on > this), so it is the expected behaviour. I might be missing something, but I understand each OSC has its own set of snapshots. Independent on other OSCs, of course, but should work normally inside an OSC. Was I wrong? > I never create new OSC in my apps, why are you creating OSC like this ? To create an independent DB channnel, so that my fetches in this OSC do not need to wait for (potentially long) fetches in other OSCs. > If your fetches are long, check your database indexes. They are fast, the problem is that they happen at all. I log EC, OSC, and SQL, and it looks like this (they run in the same thread just by a chance; each time, it's a new R/R loop, they get assigned the same thread just since I do nothing else in the app at the moment): === 18 12:58:34.815|WorkerThread2/TEMPLOG created ec EC:5e8666eb/OSC:69463522 12:58:34.816 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] 18 12:58:35.852|WorkerThread2 /TEMPLOG created ec EC:267a80b0/OSC:69463522 12:58:35.853 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] 18 12:58:36.863|WorkerThread2 /TEMPLOG created ec EC:7bcddf5b/OSC:69463522 12:58:36.880 DEBUG "DBAuction"@453059304 expression took 1 ms: SELECT ... FROM "T_AUCTION" t0 WHERE t0."C_UID" = 1000147 //log:er.extensions.ERXAdaptorChannelDelegate.sqlLogging [WorkerThread2] === Note that each time a new EC is created (that's all right), but they all belong to the same OSC (69463522). Yet, each time there's a fetch of the same object (1000147). I must be missing something of importance; I believe there should be only the 1st one, while instead of the latter ones the fault should get fired quickly through snapshots of the OSC without a DB roundtrip. Thanks, OC >> Le 17 août 2024 à 08:48, ocs--- via Webobjects-dev >> a écrit : >> >> Hi there, >> >> (I've solved the locks — were caused by a stray background thread which I've >> completely forgot of; and Samuel — yes, it was related to logging. D'oh.) >> >> Now it works all right and reliably, but I observe very strange behaviour: >> with the separate OSC, the direct action is, in average, considerably >> slower; and the culprit seems are DB roundtrips. I hope I am missing >> something completely obvious again... >> >> When I create my local EC for my direct action this way: >> >> === >> if (!sharedosc) sharedosc=new EOObjectStoreCoordinator() >> localec=ERXEC.newEditingContext(sharedosc) >> === >> >> almost each time the fault created through this EC is accessed, there's a DB >> roundtrip. On the other hand, if I create it this way (without any other >> change) >> >> === >> if (!sharedosc) sharedosc=EOEditingContext.defaultParentObjectStore() >> localec=ERXEC.newEditingContext(sharedosc) >> === >> >> there are no roundtrips at all. >> >> I would understand the first fetch in the separate OSC, but subsequently, it >> should just use snapshots like the default root store does, should it not? >> What am I missing? >> >> Thanks, >> OC >> >>> On 16. 8. 2024, at 18:14, ocs--- via Webobjects-dev >>> mailto:webobjects-dev@lists.apple.com>> >>> wrote: >>> >>> Hi there, >>> >>> I've got a direct action, which sometimes needs to get an object with a >>> known PK, for which I use faultWithPrimaryKeyValue. Works well for years, >>> but lately the fetches went longer, so I decided to allow it to use a >>> separate OSC not to clash with the normal database requests. >>> >>> The result is weird: >>> - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning >>> fast, as presumed >>> - sometimes though, it never ends?!? :-O >>> >>> It does not lock once and then stay locked, the cases are intermittent. >>> Also, it never locks when I test myself at my development machine; happens >>> on the deployment site only, sigh. I have also reasons to believe that the >>> DA does not deadlock with another thread (essentially since at the moment >>> of the first lock, nothing at all ran in parallel). >>> >>
Re: fetches too often (was: weird locks) in faultWithPrimaryKeyValue
Hi, As Samuel wrote, I do create new OSC when I make large export / report without any editing. So, it creates a new dedicated connexion to the database and does not slow down the users using the shared editing context / main connexion. ERXObjectStoreCoordinator _tmpObjectStoreCoordinator = new ERXObjectStoreCoordinator(true); WOSession _localSession = new WOSession(_tmpObjectStoreCoordinator); _localSession.defaultEditingContext().setUndoManager(null); _localSession.defaultEditingContext().lock(); and after the process _localSession.defaultEditingContext().unlock(); _localSession.defaultEditingContext().dispose(); _localSession.terminate(); _tmpObjectStoreCoordinator.dispose(); Hope it helps, Jérémy Le 17 août 2024 à 15:59, Samuel Pelletier via Webobjects-dev a écrit : OC, If you create a new OSC, you will have no snapshot cache (I may be wrong on this), so it is the expected behaviour. I never create new OSC in my apps, why are you creating OSC like this ? The only real case I see is large report generations in background thread and even for this batching fetches do a good job. If your fetches are long, check your database indexes. Regards, Samuel Le 17 août 2024 à 08:48, ocs--- via Webobjects-dev mailto:webobjects-dev@lists.apple.com>> a écrit : Hi there, (I've solved the locks — were caused by a stray background thread which I've completely forgot of; and Samuel — yes, it was related to logging. D'oh.) Now it works all right and reliably, but I observe very strange behaviour: with the separate OSC, the direct action is, in average, considerably slower; and the culprit seems are DB roundtrips. I hope I am missing something completely obvious again... When I create my local EC for my direct action this way: === if (!sharedosc) sharedosc=new EOObjectStoreCoordinator() localec=ERXEC.newEditingContext(sharedosc) === almost each time the fault created through this EC is accessed, there's a DB roundtrip. On the other hand, if I create it this way (without any other change) === if (!sharedosc) sharedosc=EOEditingContext.defaultParentObjectStore() localec=ERXEC.newEditingContext(sharedosc) === there are no roundtrips at all. I would understand the first fetch in the separate OSC, but subsequently, it should just use snapshots like the default root store does, should it not? What am I missing? Thanks, OC On 16. 8. 2024, at 18:14, ocs--- via Webobjects-dev mailto:webobjects-dev@lists.apple.com>> wrote: Hi there, I've got a direct action, which sometimes needs to get an object with a known PK, for which I use faultWithPrimaryKeyValue. Works well for years, but lately the fetches went longer, so I decided to allow it to use a separate OSC not to clash with the normal database requests. The result is weird: - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning fast, as presumed - sometimes though, it never ends?!? :-O It does not lock once and then stay locked, the cases are intermittent. Also, it never locks when I test myself at my development machine; happens on the deployment site only, sigh. I have also reasons to believe that the DA does not deadlock with another thread (essentially since at the moment of the first lock, nothing at all ran in parallel). The code looks like this: === static sharedosc WOActionResults someAction() { try { boolean oscpolicy=ERXProperties.booleanForKey('ActionSpecificOSC') def localec, osc ... ... for (... a couple of times ...) { ... if (some-condition-which-says-I-need-to-fetch) { if (!localec) { if (oscpolicy && !sharedosc) sharedosc=new ERXObjectStoreCoordinator(true) (localec=ERXEC.newEditingContext(sharedosc?:EOEditingContext.defaultParentObjectStore())).lock() // 1 } log "/TEMP will fetch in $localec..." // 2 eo=EOUtilities.faultWithPrimaryKeyValue(localec ,'DBAuction', Integer.valueOf(map.eoprimarykey)) log "/TEMP ... did fetch in $localec" } ... } ... ... if (localec) localec.dispose() } catch (exc) { some-log-which-never-happens-thus-I-know-the-above-never-threw } } === When ActionSpecificOSC is off, it never ever locks. When it is on though, occasionally the “will fetch” log marked // 2 is the very last thing which the appropriate worker thread ever does. In other (intermittent) cases it all works well. Aside of moving the localec.dispose to finally, which would be safer, but in this case irrelevant for no exception ever happens, can you perhaps see a possible culprit? Side question: originally, my // 1 line looked like (localec=ERXEC.newEditingContext(osc)).lock(). Far as I can say, should work precisely same way as the above, but did not: when the osc was null, I've got an invalid EC with a null rootObjectStore. What the H.?!? Thanks and all the best, OC __
Re: Maven Help
woot. > On Aug 17, 2024, at 12:36 PM, Theodore Petrosky via Webobjects-dev > wrote: > > With Hugi’s help, I finally have the ability to create new WO/Wonder projects > in Eclipse. Please can Ramsey be given permissions to update the Maven > templates to create D2W and Frameworks? I have always put my database > connections in its own Framework. I know he (Ramsey) has mentioned that he > has them almost ready for prime-time. > > I have fallen away from WO and I want to rejoin the fun. > > Yours in WO(e)! > > 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: > https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com > > This email sent to jtay...@oeinc.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Maven Help
With Hugi’s help, I finally have the ability to create new WO/Wonder projects in Eclipse. Please can Ramsey be given permissions to update the Maven templates to create D2W and Frameworks? I have always put my database connections in its own Framework. I know he (Ramsey) has mentioned that he has them almost ready for prime-time. I have fallen away from WO and I want to rejoin the fun. Yours in WO(e)! 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: fetches too often (was: weird locks) in faultWithPrimaryKeyValue
OC, If you create a new OSC, you will have no snapshot cache (I may be wrong on this), so it is the expected behaviour. I never create new OSC in my apps, why are you creating OSC like this ? The only real case I see is large report generations in background thread and even for this batching fetches do a good job. If your fetches are long, check your database indexes. Regards, Samuel > Le 17 août 2024 à 08:48, ocs--- via Webobjects-dev > a écrit : > > Hi there, > > (I've solved the locks — were caused by a stray background thread which I've > completely forgot of; and Samuel — yes, it was related to logging. D'oh.) > > Now it works all right and reliably, but I observe very strange behaviour: > with the separate OSC, the direct action is, in average, considerably slower; > and the culprit seems are DB roundtrips. I hope I am missing something > completely obvious again... > > When I create my local EC for my direct action this way: > > === > if (!sharedosc) sharedosc=new EOObjectStoreCoordinator() > localec=ERXEC.newEditingContext(sharedosc) > === > > almost each time the fault created through this EC is accessed, there's a DB > roundtrip. On the other hand, if I create it this way (without any other > change) > > === > if (!sharedosc) sharedosc=EOEditingContext.defaultParentObjectStore() > localec=ERXEC.newEditingContext(sharedosc) > === > > there are no roundtrips at all. > > I would understand the first fetch in the separate OSC, but subsequently, it > should just use snapshots like the default root store does, should it not? > What am I missing? > > Thanks, > OC > >> On 16. 8. 2024, at 18:14, ocs--- via Webobjects-dev >> mailto:webobjects-dev@lists.apple.com>> >> wrote: >> >> Hi there, >> >> I've got a direct action, which sometimes needs to get an object with a >> known PK, for which I use faultWithPrimaryKeyValue. Works well for years, >> but lately the fetches went longer, so I decided to allow it to use a >> separate OSC not to clash with the normal database requests. >> >> The result is weird: >> - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning >> fast, as presumed >> - sometimes though, it never ends?!? :-O >> >> It does not lock once and then stay locked, the cases are intermittent. >> Also, it never locks when I test myself at my development machine; happens >> on the deployment site only, sigh. I have also reasons to believe that the >> DA does not deadlock with another thread (essentially since at the moment of >> the first lock, nothing at all ran in parallel). >> >> The code looks like this: >> === >> static sharedosc >> WOActionResults someAction() { >> try { >> boolean oscpolicy=ERXProperties.booleanForKey('ActionSpecificOSC') >> def localec, osc >> ... ... >> for (... a couple of times ...) { >> ... >> if (some-condition-which-says-I-need-to-fetch) { >> if (!localec) { >> if (oscpolicy && !sharedosc) sharedosc=new >> ERXObjectStoreCoordinator(true) >> >> (localec=ERXEC.newEditingContext(sharedosc?:EOEditingContext.defaultParentObjectStore())).lock() >> // 1 >> } >> log "/TEMP will fetch in $localec..." // 2 >> eo=EOUtilities.faultWithPrimaryKeyValue(localec ,'DBAuction', >> Integer.valueOf(map.eoprimarykey)) >> log "/TEMP ... did fetch in $localec" >> } >> ... >> } >> ... ... >> if (localec) localec.dispose() >> } catch (exc) { >> some-log-which-never-happens-thus-I-know-the-above-never-threw >> } >> } >> === >> >> When ActionSpecificOSC is off, it never ever locks. When it is on though, >> occasionally the “will fetch” log marked // 2 is the very last thing which >> the appropriate worker thread ever does. In other (intermittent) cases it >> all works well. >> >> Aside of moving the localec.dispose to finally, which would be safer, but in >> this case irrelevant for no exception ever happens, can you perhaps see a >> possible culprit? >> >> Side question: originally, my // 1 line looked like >> (localec=ERXEC.newEditingContext(osc)).lock(). Far as I can say, should work >> precisely same way as the above, but did not: when the osc was null, I've >> got an invalid EC with a null rootObjectStore. What the H.?!? >> >> Thanks and all the best, >> OC >> >>
fetches too often (was: weird locks) in faultWithPrimaryKeyValue
Hi there, (I've solved the locks — were caused by a stray background thread which I've completely forgot of; and Samuel — yes, it was related to logging. D'oh.) Now it works all right and reliably, but I observe very strange behaviour: with the separate OSC, the direct action is, in average, considerably slower; and the culprit seems are DB roundtrips. I hope I am missing something completely obvious again... When I create my local EC for my direct action this way: === if (!sharedosc) sharedosc=new EOObjectStoreCoordinator() localec=ERXEC.newEditingContext(sharedosc) === almost each time the fault created through this EC is accessed, there's a DB roundtrip. On the other hand, if I create it this way (without any other change) === if (!sharedosc) sharedosc=EOEditingContext.defaultParentObjectStore() localec=ERXEC.newEditingContext(sharedosc) === there are no roundtrips at all. I would understand the first fetch in the separate OSC, but subsequently, it should just use snapshots like the default root store does, should it not? What am I missing? Thanks, OC > On 16. 8. 2024, at 18:14, ocs--- via Webobjects-dev > wrote: > > Hi there, > > I've got a direct action, which sometimes needs to get an object with a known > PK, for which I use faultWithPrimaryKeyValue. Works well for years, but > lately the fetches went longer, so I decided to allow it to use a separate > OSC not to clash with the normal database requests. > > The result is weird: > - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning fast, > as presumed > - sometimes though, it never ends?!? :-O > > It does not lock once and then stay locked, the cases are intermittent. Also, > it never locks when I test myself at my development machine; happens on the > deployment site only, sigh. I have also reasons to believe that the DA does > not deadlock with another thread (essentially since at the moment of the > first lock, nothing at all ran in parallel). > > The code looks like this: > === > static sharedosc > WOActionResults someAction() { > try { > boolean oscpolicy=ERXProperties.booleanForKey('ActionSpecificOSC') > def localec, osc > ... ... > for (... a couple of times ...) { > ... > if (some-condition-which-says-I-need-to-fetch) { > if (!localec) { > if (oscpolicy && !sharedosc) sharedosc=new > ERXObjectStoreCoordinator(true) > > (localec=ERXEC.newEditingContext(sharedosc?:EOEditingContext.defaultParentObjectStore())).lock() > // 1 > } > log "/TEMP will fetch in $localec..." // 2 > eo=EOUtilities.faultWithPrimaryKeyValue(localec ,'DBAuction', > Integer.valueOf(map.eoprimarykey)) > log "/TEMP ... did fetch in $localec" > } > ... > } > ... ... > if (localec) localec.dispose() > } catch (exc) { > some-log-which-never-happens-thus-I-know-the-above-never-threw > } > } > === > > When ActionSpecificOSC is off, it never ever locks. When it is on though, > occasionally the “will fetch” log marked // 2 is the very last thing which > the appropriate worker thread ever does. In other (intermittent) cases it all > works well. > > Aside of moving the localec.dispose to finally, which would be safer, but in > this case irrelevant for no exception ever happens, can you perhaps see a > possible culprit? > > Side question: originally, my // 1 line looked like > (localec=ERXEC.newEditingContext(osc)).lock(). Far as I can say, should work > precisely same way as the above, but did not: when the osc was null, I've got > an invalid EC with a null rootObjectStore. What the H.?!? > > Thanks and all the best, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/ocs%40ocs.cz > > This email sent to o...@ocs.cz ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: weird locks in faultWithPrimaryKeyValue
Hi OC, Last week, I spend some time to optimise an app after seeing strange behaviour, the cpu usage of this app was growing with time with no logical explaination. Your case sound similar to me so I share my experience on this. During these high cpu usage period, the app had strange locking and No snapshot for gid errors I did not understood. At >120% cpu usage, the app was getting almost unusable. After a restart, everything went back to normal. After spending some time in console, I noticed that the heap allocation was growing and after some time, the app began to slow down. The VM was never doing "old generation" gc probably because the heap was not used enough to trigger it. After issuing a manual GC call (from console), the memory usage went down and the cpu usage dropped also. This problem was triggered by the addition of sensor logging in the system, about 175k entries each day saved in the database by a rest controller action. I suspect there is some weak reference usage inside EOF (probably for snapshots) that remains until the more aggressive GC do it's job. I solves my problem (at least it seems to works) with a periodic call to the commands by scheduling a task every hour : Runtime.getRuntime().gc(); Runtime.getRuntime().runFinalization(); I do not know if the second is required but it does not hurt. Hope this can help someone, Samuel > Le 16 août 2024 à 12:14, ocs--- via Webobjects-dev > a écrit : > > Hi there, > > I've got a direct action, which sometimes needs to get an object with a known > PK, for which I use faultWithPrimaryKeyValue. Works well for years, but > lately the fetches went longer, so I decided to allow it to use a separate > OSC not to clash with the normal database requests. > > The result is weird: > - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning fast, > as presumed > - sometimes though, it never ends?!? :-O > > It does not lock once and then stay locked, the cases are intermittent. Also, > it never locks when I test myself at my development machine; happens on the > deployment site only, sigh. I have also reasons to believe that the DA does > not deadlock with another thread (essentially since at the moment of the > first lock, nothing at all ran in parallel). > > The code looks like this: > === > static sharedosc > WOActionResults someAction() { > try { > boolean oscpolicy=ERXProperties.booleanForKey('ActionSpecificOSC') > def localec, osc > ... ... > for (... a couple of times ...) { > ... > if (some-condition-which-says-I-need-to-fetch) { > if (!localec) { > if (oscpolicy && !sharedosc) sharedosc=new > ERXObjectStoreCoordinator(true) > > (localec=ERXEC.newEditingContext(sharedosc?:EOEditingContext.defaultParentObjectStore())).lock() > // 1 > } > log "/TEMP will fetch in $localec..." // 2 > eo=EOUtilities.faultWithPrimaryKeyValue(localec ,'DBAuction', > Integer.valueOf(map.eoprimarykey)) > log "/TEMP ... did fetch in $localec" > } > ... > } > ... ... > if (localec) localec.dispose() > } catch (exc) { > some-log-which-never-happens-thus-I-know-the-above-never-threw > } > } > === > > When ActionSpecificOSC is off, it never ever locks. When it is on though, > occasionally the “will fetch” log marked // 2 is the very last thing which > the appropriate worker thread ever does. In other (intermittent) cases it all > works well. > > Aside of moving the localec.dispose to finally, which would be safer, but in > this case irrelevant for no exception ever happens, can you perhaps see a > possible culprit? > > Side question: originally, my // 1 line looked like > (localec=ERXEC.newEditingContext(osc)).lock(). Far as I can say, should work > precisely same way as the above, but did not: when the osc was null, I've got > an invalid EC with a null rootObjectStore. What the H.?!? > > Thanks and all the best, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com > > This email sent to sam...@samkar.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
weird locks in faultWithPrimaryKeyValue
Hi there, I've got a direct action, which sometimes needs to get an object with a known PK, for which I use faultWithPrimaryKeyValue. Works well for years, but lately the fetches went longer, so I decided to allow it to use a separate OSC not to clash with the normal database requests. The result is weird: - sometimes, faultWithPrimaryKeyValue in the dedicated OSC is lightning fast, as presumed - sometimes though, it never ends?!? :-O It does not lock once and then stay locked, the cases are intermittent. Also, it never locks when I test myself at my development machine; happens on the deployment site only, sigh. I have also reasons to believe that the DA does not deadlock with another thread (essentially since at the moment of the first lock, nothing at all ran in parallel). The code looks like this: === static sharedosc WOActionResults someAction() { try { boolean oscpolicy=ERXProperties.booleanForKey('ActionSpecificOSC') def localec, osc ... ... for (... a couple of times ...) { ... if (some-condition-which-says-I-need-to-fetch) { if (!localec) { if (oscpolicy && !sharedosc) sharedosc=new ERXObjectStoreCoordinator(true) (localec=ERXEC.newEditingContext(sharedosc?:EOEditingContext.defaultParentObjectStore())).lock() // 1 } log "/TEMP will fetch in $localec..." // 2 eo=EOUtilities.faultWithPrimaryKeyValue(localec ,'DBAuction', Integer.valueOf(map.eoprimarykey)) log "/TEMP ... did fetch in $localec" } ... } ... ... if (localec) localec.dispose() } catch (exc) { some-log-which-never-happens-thus-I-know-the-above-never-threw } } === When ActionSpecificOSC is off, it never ever locks. When it is on though, occasionally the “will fetch” log marked // 2 is the very last thing which the appropriate worker thread ever does. In other (intermittent) cases it all works well. Aside of moving the localec.dispose to finally, which would be safer, but in this case irrelevant for no exception ever happens, can you perhaps see a possible culprit? Side question: originally, my // 1 line looked like (localec=ERXEC.newEditingContext(osc)).lock(). Far as I can say, should work precisely same way as the above, but did not: when the osc was null, I've got an invalid EC with a null rootObjectStore. What the H.?!? Thanks and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Solved: awake-time long lags
Hello, Why not use a busy indicatior when « onclick » ? And hide it with the response. I use it on our web commerce app and it works well (exemple : https://www.cssscript.com/demo/minimal-busy-indicator-javascript-css3/) Jérémy Le 13 août 2024 à 17:26, OCsite via Webobjects-dev a écrit : D'oh! Further analysis proved that those R/Rs which sport a long lag awake-time are overlapping R/Rs of the same session. Since the default EC, far as I know, gets locked immediately before session awake (and unlocked just after session sleep), the mystery of long lags is no mystery anymore (and since it is pre-awake, not in-awake, the profiler revealed no awake method took long). Sigh. Now I wonder how to teach the users that if a R/R happens to be sorta slow, it definitely won't help to click at all the other links on the current page All the best, OC On 2. 8. 2024, at 2:32, ocs--- via Webobjects-dev wrote: Hi there, we are encountering another weird problem: a (very) long lag awake-time. We happen to log the application-level awake and some of the component-level awakes. Normally, the latter happen just a couple milliseconds from the former. Nevertheless _sometimes_ when the load gets higher and more R/R loops run concurrently, this lag grows up to a complete nonsense — tens or, in the worst cases, hundreds of seconds (between Application.awake and some Component.awake). The most obvious answer that either the session-level awake or some of the non-logged component-level awakes might take an eternity upon a higher load is still an open possibility, but quite improbable one: we have profiled our application when the problem did happen with a smaller load, a couple of times the lag grew up to about 5-7 s, and still none of the awake methods ever took more than 40 ms. Has perhaps anyone here encountered a similar problem and might suggest a solution or at least a reasonable way to find the culprit? Thanks and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/ocs%40ocs.cz This email sent to o...@ocs.cz ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/jeremy.deroyer%40ingencys.net This email sent to jeremy.dero...@ingencys.net ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Solved: awake-time long lags
D'oh! Further analysis proved that those R/Rs which sport a long lag awake-time are overlapping R/Rs of the same session. Since the default EC, far as I know, gets locked immediately before session awake (and unlocked just after session sleep), the mystery of long lags is no mystery anymore (and since it is pre-awake, not in-awake, the profiler revealed no awake method took long). Sigh. Now I wonder how to teach the users that if a R/R happens to be sorta slow, it definitely won't help to click at all the other links on the current page All the best, OC > On 2. 8. 2024, at 2:32, ocs--- via Webobjects-dev > wrote: > > Hi there, > > we are encountering another weird problem: a (very) long lag awake-time. > > We happen to log the application-level awake and some of the component-level > awakes. Normally, the latter happen just a couple milliseconds from the > former. Nevertheless _sometimes_ when the load gets higher and more R/R loops > run concurrently, this lag grows up to a complete nonsense — tens or, in the > worst cases, hundreds of seconds (between Application.awake and some > Component.awake). > > The most obvious answer that either the session-level awake or some of the > non-logged component-level awakes might take an eternity upon a higher load > is still an open possibility, but quite improbable one: we have profiled our > application when the problem did happen with a smaller load, a couple of > times the lag grew up to about 5-7 s, and still none of the awake methods > ever took more than 40 ms. > > Has perhaps anyone here encountered a similar problem and might suggest a > solution or at least a reasonable way to find the culprit? > > Thanks and all the best, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/ocs%40ocs.cz > > This email sent to o...@ocs.cz ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: find EO's PK without side-effects?
Hi, ERXGenericRecord has a primaryKey() method (which maps to ERXEOControlUtilities.primaryKeyStringForObject(this)). Maik > Am 05.08.2024 um 13:37 schrieb OCsite via Webobjects-dev > : > > Hi there, > > can I somehow get a PK of an EO without uglies like locking its EC and so > forth? > > Naïvely I thought that this specific information should be readily available > somewhere simply by reading from memory without any other ado (even for a > fault, not speaking of an in-memory EO), but self-evidently I was wrong; > lately I was bitten in tender parts by rawPrimaryKey auto-locking EC. > > Thanks, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag > > This email sent to m...@selbstdenker.ag 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
find EO's PK without side-effects?
Hi there, can I somehow get a PK of an EO without uglies like locking its EC and so forth? Naïvely I thought that this specific information should be readily available somewhere simply by reading from memory without any other ado (even for a fault, not speaking of an in-memory EO), but self-evidently I was wrong; lately I was bitten in tender parts by rawPrimaryKey auto-locking EC. Thanks, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: awake-time long lags
Aaron, > On 2. 8. 2024, at 2:33, Aaron Rosenzweig wrote: > How is your RAM headspace? Is it possible you are running out of runway? > Maybe it’s doing lots of garbage collection. Alas, not probably. I forgot to mention that at the very same time when _some_ R/Rs sport the terrible tens- or even hundreds-second lag, most _other_ ones run concurrently with that and work quite normally (their component-level logged-out awake comes just a couple of millis after the app-level one). Far as I understand Java, it suspends all threads while GCing, so all R/Rs would be affected the same way, would they not? Besides we happen to log the memory state, too, and most time (especially when the worst lag happened) we are well below 20 % of the max available Java memory (-Xmx), which itself is well below the physical RAM. Far as I can say, there was no other memory-consuming task at the same moment (but for FrontBase, I understand there's essentially nothing other of importance running on that machine than the WO app). Thanks a lot! OC > >> On Aug 1, 2024, at 8:32 PM, ocs--- via Webobjects-dev >> wrote: >> >> Hi there, >> >> we are encountering another weird problem: a (very) long lag awake-time. >> >> We happen to log the application-level awake and some of the component-level >> awakes. Normally, the latter happen just a couple milliseconds from the >> former. Nevertheless _sometimes_ when the load gets higher and more R/R >> loops run concurrently, this lag grows up to a complete nonsense — tens or, >> in the worst cases, hundreds of seconds (between Application.awake and some >> Component.awake). >> >> The most obvious answer that either the session-level awake or some of the >> non-logged component-level awakes might take an eternity upon a higher load >> is still an open possibility, but quite improbable one: we have profiled our >> application when the problem did happen with a smaller load, a couple of >> times the lag grew up to about 5-7 s, and still none of the awake methods >> ever took more than 40 ms. >> >> Has perhaps anyone here encountered a similar problem and might suggest a >> solution or at least a reasonable way to find the culprit? >> >> Thanks and all the best, >> OC >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >> >> This email sent to aa...@chatnbike.com > _______ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: awake-time long lags
How is your RAM headspace? Is it possible you are running out of runway? Maybe it’s doing lots of garbage collection. > On Aug 1, 2024, at 8:32 PM, ocs--- via Webobjects-dev > wrote: > > Hi there, > > we are encountering another weird problem: a (very) long lag awake-time. > > We happen to log the application-level awake and some of the component-level > awakes. Normally, the latter happen just a couple milliseconds from the > former. Nevertheless _sometimes_ when the load gets higher and more R/R loops > run concurrently, this lag grows up to a complete nonsense — tens or, in the > worst cases, hundreds of seconds (between Application.awake and some > Component.awake). > > The most obvious answer that either the session-level awake or some of the > non-logged component-level awakes might take an eternity upon a higher load > is still an open possibility, but quite improbable one: we have profiled our > application when the problem did happen with a smaller load, a couple of > times the lag grew up to about 5-7 s, and still none of the awake methods > ever took more than 40 ms. > > Has perhaps anyone here encountered a similar problem and might suggest a > solution or at least a reasonable way to find the culprit? > > Thanks and all the best, > OC > > _______ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com > > This email sent to aa...@chatnbike.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
awake-time long lags
Hi there, we are encountering another weird problem: a (very) long lag awake-time. We happen to log the application-level awake and some of the component-level awakes. Normally, the latter happen just a couple milliseconds from the former. Nevertheless _sometimes_ when the load gets higher and more R/R loops run concurrently, this lag grows up to a complete nonsense — tens or, in the worst cases, hundreds of seconds (between Application.awake and some Component.awake). The most obvious answer that either the session-level awake or some of the non-logged component-level awakes might take an eternity upon a higher load is still an open possibility, but quite improbable one: we have profiled our application when the problem did happen with a smaller load, a couple of times the lag grew up to about 5-7 s, and still none of the awake methods ever took more than 40 ms. Has perhaps anyone here encountered a similar problem and might suggest a solution or at least a reasonable way to find the culprit? Thanks and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Solved: Properties file not loading
NSProjectBundleEnabled is critical! I don’t rightly know what this setting is about. By the name of it, I’d figure if it was on and enabled it would make a bundle for ProjectBuilder and/or Xcode (back when Apple had not abandoned us). For an app to find properties in a framework the "WO" tab in a launch configuration must have: checked -DNSProjectBundleEnabled=true It’s the key difference between the new launch config and the old one that made it work. Also, if you happened to follow closely, I mentioned that one app I had was fine and the other wasn’t. The app that was fine (could see properties in the included framework) is a newer app and the launch config for it had NSProjectBundleEnabled both checked and true. The older app, did not. > On Jul 31, 2024, at 10:45 AM, Aaron Rosenzweig wrote: > > Thanks Ramsey, > > That’s a very insightful tip. My framework had it correct but both apps did > not. Namely, inside the tags of the pom.xml file should contain: > > > > Resources > false > Components > > > Resources > false > Resources > > > WebServerResources > false > WebServerResources > > > > But that didn’t help my situation of one app being the framework properties > and the other app not seeing them. Still, it makes sense to have that defined > in both the apps and the framework so glad you called it out! Thank you. > > Good news though, I’ve made some progress. If I make a completely new Eclipse > launch config (not a duplicate) I can launch the troublesome app and the > framework properties are visible to the app! > > Curiously, I don’t know what is significantly different between the new and > the old “.launch” config files. When I try to selectively make changes by > hand to the old file (while visually diffing with the new file) the result > doesn’t work. If copy/replace all the contents of the old with new, it works. > > The old .launch file is in git and shared by others. So right now I’m trying > to get things like VM arguments and other settings into it while keeping it > still finding the framework properties. > > Confused but getting there. > > Thank you Ramsey, Markus, and everyone :-) > >> On Jul 31, 2024, at 9:29 AM, Ramsey Gurley > <mailto:ramsey.gur...@practicemojo.com>> wrote: >> >> Maven by default checks src/main/resources whereas fluffy bunny layout by >> default looks at Resources. You can specify that maven should look in >> Resources in your pom.xml file if that is where you would like them located, >> which you probably do for zero conflicts with WOLips. See lines 52-70 here, >> https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml >> >> <https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml> >> >> >> From: Aaron Rosenzweig via Webobjects-dev > <mailto:webobjects-dev@lists.apple.com>> >> Sent: Tuesday, July 30, 2024 5:34 PM >> To: WebObjects-Dev List > <mailto:webobjects-dev@lists.apple.com>> >> Subject: Properties file not loading >> >> Anyone struggle with app not finding properties files when launching from >> Eclipse? >> >> I’m still trying to go form ANT -> Maven and there is a shared framework >> with a properties file in it that I want to be pulled into various apps. >> >> Curiously, app “A” is able to pull in the properties just fine but app “B” >> does not. >> >> I would have thought I could compare the two projects and determine a useful >> difference (since it works in one app) but I have struck out. Don’t see what >> the difference could be. >> >> Anyone have any insight or advice on what to look for? How can I get app “B” >> to see the properties file from the framework? >> >> Many thanks, >> — Aaron >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >> <mailto:Webobjects-dev@lists.apple.com>) >> Help/Unsubscribe/Update your Subscription: >> https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.apple.com%2Fmailman%2Foptions%2Fwebobjects-dev%2Framsey.gurley%2540practicemojo.com&data=05%7C02%7Cramsey.gurley%40practicemojo.com
Re: Properties file not loading
Thanks Ramsey, That’s a very insightful tip. My framework had it correct but both apps did not. Namely, inside the tags of the pom.xml file should contain: Resources false Components Resources false Resources WebServerResources false WebServerResources But that didn’t help my situation of one app being the framework properties and the other app not seeing them. Still, it makes sense to have that defined in both the apps and the framework so glad you called it out! Thank you. Good news though, I’ve made some progress. If I make a completely new Eclipse launch config (not a duplicate) I can launch the troublesome app and the framework properties are visible to the app! Curiously, I don’t know what is significantly different between the new and the old “.launch” config files. When I try to selectively make changes by hand to the old file (while visually diffing with the new file) the result doesn’t work. If copy/replace all the contents of the old with new, it works. The old .launch file is in git and shared by others. So right now I’m trying to get things like VM arguments and other settings into it while keeping it still finding the framework properties. Confused but getting there. Thank you Ramsey, Markus, and everyone :-) > On Jul 31, 2024, at 9:29 AM, Ramsey Gurley > wrote: > > Maven by default checks src/main/resources whereas fluffy bunny layout by > default looks at Resources. You can specify that maven should look in > Resources in your pom.xml file if that is where you would like them located, > which you probably do for zero conflicts with WOLips. See lines 52-70 here, > https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml > > <https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml> > > > From: Aaron Rosenzweig via Webobjects-dev > Sent: Tuesday, July 30, 2024 5:34 PM > To: WebObjects-Dev List > Subject: Properties file not loading > > Anyone struggle with app not finding properties files when launching from > Eclipse? > > I’m still trying to go form ANT -> Maven and there is a shared framework with > a properties file in it that I want to be pulled into various apps. > > Curiously, app “A” is able to pull in the properties just fine but app “B” > does not. > > I would have thought I could compare the two projects and determine a useful > difference (since it works in one app) but I have struck out. Don’t see what > the difference could be. > > Anyone have any insight or advice on what to look for? How can I get app “B” > to see the properties file from the framework? > > Many thanks, > — Aaron > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com > <mailto:Webobjects-dev@lists.apple.com>) > Help/Unsubscribe/Update your Subscription: > https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.apple.com%2Fmailman%2Foptions%2Fwebobjects-dev%2Framsey.gurley%2540practicemojo.com&data=05%7C02%7Cramsey.gurley%40practicemojo.com%7C25e56162b7b9400ce3dd08dcb0e7c671%7Cde0a512999d34d35a92809047a134775%7C0%7C0%7C638579756726673666%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=g%2BH%2FBhYmvb9eGeqBrRLtNBUFjAN2fg7DhlXZxrq4Fps%3D&reserved=0 > > <https://lists.apple.com/mailman/options/webobjects-dev/ramsey.gurley%40practicemojo.com> > > This email sent to ramsey.gur...@practicemojo.com > <mailto:ramsey.gur...@practicemojo.com> > Confidentiality Notice: This email, including all attachments and replies > thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. > Sections 2510-2521 and are legally privileged. This information is > confidential, and intended only for the use of the individuals or entities > named above. If you are not the intended recipient, you are hereby notified > that any disclosure, copying, distribution or the taking of any action in > reliance on the contents of this transmitted information is strictly > prohibited. Please notify us if you have received this transmission in error. > Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Properties file not loading
Maven by default checks src/main/resources whereas fluffy bunny layout by default looks at Resources. You can specify that maven should look in Resources in your pom.xml file if that is where you would like them located, which you probably do for zero conflicts with WOLips. See lines 52-70 here, https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml From: Aaron Rosenzweig via Webobjects-dev Sent: Tuesday, July 30, 2024 5:34 PM To: WebObjects-Dev List Subject: Properties file not loading Anyone struggle with app not finding properties files when launching from Eclipse? I’m still trying to go form ANT -> Maven and there is a shared framework with a properties file in it that I want to be pulled into various apps. Curiously, app “A” is able to pull in the properties just fine but app “B” does not. I would have thought I could compare the two projects and determine a useful difference (since it works in one app) but I have struck out. Don’t see what the difference could be. Anyone have any insight or advice on what to look for? How can I get app “B” to see the properties file from the framework? Many thanks, — Aaron ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.apple.com%2Fmailman%2Foptions%2Fwebobjects-dev%2Framsey.gurley%2540practicemojo.com&data=05%7C02%7Cramsey.gurley%40practicemojo.com%7C25e56162b7b9400ce3dd08dcb0e7c671%7Cde0a512999d34d35a92809047a134775%7C0%7C0%7C638579756726673666%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=g%2BH%2FBhYmvb9eGeqBrRLtNBUFjAN2fg7DhlXZxrq4Fps%3D&reserved=0<https://lists.apple.com/mailman/options/webobjects-dev/ramsey.gurley%40practicemojo.com> This email sent to ramsey.gur...@practicemojo.com Confidentiality Notice: This email, including all attachments and replies thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally privileged. This information is confidential, and intended only for the use of the individuals or entities named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on the contents of this transmitted information is strictly prohibited. Please notify us if you have received this transmission in error. Thank you. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Advisory: Eclipse bundless builds + maven = no está bien
On 31 Jul 2024, at 01:11, Aaron Rosenzweig via Webobjects-dev wrote: > Turns out, now with Maven, you cannot use bundless builds! If you do, you > won't see any errors/problems (no red) in Eclipse but you'll get runtime > errors when you launch. Most notable is a null mainBundleName. Great detective work Aaron. I'm glad you got it sorted. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Properties file not loading
Anyone struggle with app not finding properties files when launching from Eclipse? I’m still trying to go form ANT -> Maven and there is a shared framework with a properties file in it that I want to be pulled into various apps. Curiously, app “A” is able to pull in the properties just fine but app “B” does not. I would have thought I could compare the two projects and determine a useful difference (since it works in one app) but I have struck out. Don’t see what the difference could be. Anyone have any insight or advice on what to look for? How can I get app “B” to see the properties file from the framework? Many thanks, — Aaron ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Advisory: Eclipse bundless builds + maven = no está bien
I wasn't online yesterday, so maybe I'm too late to help here, but... I have a maven archetype (project template) for a webobjects application posted here, https://github.com/nullterminated/woarchetypes (I actually planned to make one for d2w and frameworks too, but I haven't gotten around to it) Anyway, the generated project does not require a WO installation at all. It just finds all the jars needed in your maven repo. It doesn't require you edit maven settings.xml at all. It lists the wocommunity things in the pom.xml so it can find those. You just create a project with it, and it works. It even has a profile where you can build a woapp in a docker container and push the image to AWS ECR if you're into that sort of thing. The only fiddly bits with that are 1) you need docker set up so you can use it without sudo, and 2) you have aws-cli installed and set up so you can push the image to ecr when given the commented properties in the pom.xml file. https://github.com/nullterminated/woarchetypes/blob/master/webobjects-app/src/main/resources/archetype-resources/pom.xml I should probably update it to Java 21 too, it's still on 17. It's based on that wodocker thing I was telling you about a while ago. It has ECR now and I fixed the ENTRYPOINT in the dockerfile so the woapp can run shutdown hooks properly when the container is killed. I think the healthcheck is new since then too, but that doesn't really do anything but hit /. ____ From: Aaron Rosenzweig via Webobjects-dev Sent: Tuesday, July 30, 2024 10:41 AM To: WebObjects-Dev List Subject: Advisory: Eclipse bundless builds + maven = no está bien Do you know there is a concept of “bundless builds” ? It works with ANT but not with Maven. If you try to use bundless builds with Maven you’ll get runtime errors when launching via Eclipse related to “null” for "NSProperties._mainBundleName()” I've been using Eclipse bundless builds for a very long time. It's an option in Eclipse WOLips (I'll tell you where in a moment). I think once upon a time, in Ant/Eclipse, it used to build .woa bundles and launch from that. It was ok but sometimes it would get sort of stuck and you'd have to manually delete the .woa to get a true build and it was a little slow to package up the .woa before launch. Other than those niggling issues, it was fine. But those issues were enough to bother some people in the WO community to question why we even needed a .woa bundle and if we could launch without it. I don't even know how that works but it was an option to go with a bundless build and that seemed to be more reliable, faster to launch, etc. Turns out, now with Maven, you cannot use bundless builds! If you do, you won't see any errors/problems (no red) in Eclipse but you'll get runtime errors when you launch. Most notable is a null mainBundleName. It now seems so obvious, I don't have a bundle name because I don't have a bundle (you can add "dumb ass" if you want). But I didn't need one for ANT and this was not at all obvious to me. It's one of those settings you make in your Eclipse workspace and forget about it. In Eclipse, if you go to "Preferences" in the top menu bar (I think it is OS specific, maybe under "Help" or "Eclipse") you get preferences for he entire workspace: 1. There you can open the triangle for "WOLips" 2. Now choose "Build" and you'll see many checkboxes. 3. Maven requires you to have this box checked "Generate bundles" 4. Restart Eclipse then clean the workspace, etc. When you do this, now inside the "target" folder where Maven puts compiled java class files, it now makes a .woa bundle and obviously uses that during launch from inside Eclipse. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.apple.com%2Fmailman%2Foptions%2Fwebobjects-dev%2Framsey.gurley%2540practicemojo.com&data=05%7C02%7Cramsey.gurley%40practicemojo.com%7C63a66abd468845b3ebeb08dcb0ae2e1b%7Cde0a512999d34d35a92809047a134775%7C0%7C0%7C638579509383822640%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=t4wkwNlhDcu0Hjv2%2F8vV3cf%2BILtGR2ttq9pDstLgwvE%3D&reserved=0<https://lists.apple.com/mailman/options/webobjects-dev/ramsey.gurley%40practicemojo.com> This email sent to ramsey.gur...@practicemojo.com Confidentiality Notice: This email, including all attachments and replies thereto, are covered by the Electronic Communications Privacy Act, 18 U.S.C. Sections 2510-2521 and are legally pr
Advisory: Eclipse bundless builds + maven = no está bien
Do you know there is a concept of “bundless builds” ? It works with ANT but not with Maven. If you try to use bundless builds with Maven you’ll get runtime errors when launching via Eclipse related to “null” for "NSProperties._mainBundleName()” I've been using Eclipse bundless builds for a very long time. It's an option in Eclipse WOLips (I'll tell you where in a moment). I think once upon a time, in Ant/Eclipse, it used to build .woa bundles and launch from that. It was ok but sometimes it would get sort of stuck and you'd have to manually delete the .woa to get a true build and it was a little slow to package up the .woa before launch. Other than those niggling issues, it was fine. But those issues were enough to bother some people in the WO community to question why we even needed a .woa bundle and if we could launch without it. I don't even know how that works but it was an option to go with a bundless build and that seemed to be more reliable, faster to launch, etc. Turns out, now with Maven, you cannot use bundless builds! If you do, you won't see any errors/problems (no red) in Eclipse but you'll get runtime errors when you launch. Most notable is a null mainBundleName. It now seems so obvious, I don't have a bundle name because I don't have a bundle (you can add "dumb ass" if you want). But I didn't need one for ANT and this was not at all obvious to me. It's one of those settings you make in your Eclipse workspace and forget about it. In Eclipse, if you go to "Preferences" in the top menu bar (I think it is OS specific, maybe under "Help" or "Eclipse") you get preferences for he entire workspace: 1. There you can open the triangle for "WOLips" 2. Now choose "Build" and you'll see many checkboxes. 3. Maven requires you to have this box checked "Generate bundles" 4. Restart Eclipse then clean the workspace, etc. When you do this, now inside the "target" folder where Maven puts compiled java class files, it now makes a .woa bundle and obviously uses that during launch from inside Eclipse. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Summary: modern maven requires secure HTTPS
I haven’t figured out all my ant -> maven conversion issues but wanted to summarize one finding. Newer maven installations require HTTPS (with an “S” for “secure”) for your connections to things such as the wocommunity repos. It wasn’t always this way and following community tutorials you might cut and paste and not realize the difference between http: and https: You might see lines like this when working with maven: Using mirror maven-default-http-blocker (http://0.0.0.0/) for wocommunity.releases (http://maven.wocommunity.org/content/groups/public). That’s because there is a default settings file in a location like this one if you are using home-brew: /usr/local/Cellar/maven/3.9.5/libexec/conf/settings.xml And the following definition there ruins your day: maven-default-http-blocker external:http:* Pseudo repository to mirror external repositories initially using HTTP. http://0.0.0.0/ true The good news is the fix is simple, be sure you always use “https:” (with the “s” on the end) whenever you need a resource. Inside your local ~/.m2/settings.xml you probably need something like this: https://maven.apache.org/POM/4.0.0"; xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd";> org.objectstyle.woproject.maven2 default true wocommunity.releases WOCommunity Releases Repository https://maven.wocommunity.org/content/groups/public true false wocommunity.snapshots WOCommunity Snapshots Repository https://maven.wocommunity.org/content/groups/public-snapshots false true wocommunity.releases WOCommunity Releases Repository https://maven.wocommunity.org/content/groups/public true false wocommunity.snapshots WOCommunity Snapshots Repository https://maven.wocommunity.org/content/groups/public-snapshots false true ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Hi Markus, I'm still getting a similar error when I do "mvn build" from terminal -> [ERROR] Unresolveable build extension: Plugin org.wocommunity:wolifecycle-maven-plugin:2.6-SNAPSHOT or one of its dependencies could not be resolved I'm referring to the 2.6-SNAPSHOT from the pom.xml file like so: org.wocommunity wolifecycle-maven-plugin 2.6-SNAPSHOT true true Not sure what I'm missing, maybe the group id is wrong? But it doesn't complain in Eclipse. I'm really confused! Thanks for helping me. > On Jul 29, 2024, at 12:52 PM, Markus Stoll, junidas GmbH > wrote: > > as its a snapshot, its here > > Index of > /repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT > maven.wocommunity.org > > > <https://maven.wocommunity.org/content/repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT/>Index > of > /repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT > <https://maven.wocommunity.org/content/repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT/> > maven.wocommunity.org > <https://maven.wocommunity.org/content/repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT/> > > <https://maven.wocommunity.org/content/repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT/> > > 2.6 has some small but important changes (at least to me) > > Markus > >> Am 29.07.2024 um 18:47 schrieb Aaron Rosenzweig : >> >> Hi Markus, >> >> The latest I see is 2.5 for the lifecycle plugin here: >> https://mvnrepository.com/artifact/org.wocommunity/wolifecycle-maven-plugin >> <https://mvnrepository.com/artifact/org.wocommunity/wolifecycle-maven-plugin> >> >> Where is 2.6? >> >>> On Jul 29, 2024, at 12:45 PM, Aaron Rosenzweig >> <mailto:aa...@chatnbike.com>> wrote: >>> >>> Thanks Markus, >>> >>> I was using this to refer to the plugin: >>> >>> >>> org.wocommunity >>> wolifecycle-maven-plugin >>> 2.5 >>> true >>> >>> true >>> >>> >>> >>> I’ll try 2.6-SNAPSHOT :-) >>> >>>> On Jul 29, 2024, at 12:17 PM, Markus Stoll, junidas GmbH >>>> mailto:markus.st...@junidas.de>> wrote: >>>> >>>> you should use version 2.6-SNAPSHOT for wolifecycle-maven-plugin, which is >>>> the current one and do you refer to the wocommunity repository for >>>> obtaining the plugin? >>>> >>>> I strongly suggest to first fix the maven standalone build. Once this is >>>> building and running, do a new import as maven project into eclipse. >>>> >>>> Regards >>>> Markus >>>> >>>> >>>>> Am 29.07.2024 um 18:07 schrieb Aaron Rosenzweig >>>> <mailto:aa...@chatnbike.com>>: >>>>> >>>>> Inside the WO app’s folder from terminal I tried: mvn build >>>>> >>>>> It says: Unresolveable build extension: Plugin >>>>> org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies >>>>> could not be resolved: Failed to read artifact descriptor for >>>>> org.wocommunity:wolifecycle-maven-plugin:jar:2.5: >>>>> >>>>> That’s interesting, I don’t see errors like that within Eclipse. >>>>> >>>>>> On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig >>>>> <mailto:aa...@chatnbike.com>> wrote: >>>>>> >>>>>> Hi Markus thanks for the quick reply! >>>>>> >>>>>> Good question, I don’t know. I haven’t run from command line, hadn’t >>>>>> done it with Ant and also haven’t tried it with Maven. It’s an >>>>>> interesting idea to try if I can figure it out. Maybe it will show a >>>>>> difference that leads to discovery. >>>>>> >>>>>>> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >>>>>>> mailto:markus.st...@junidas.de>> wrote: >>>>>>> >>>>>>> Hi Aaron, >>>>>>> >>>>>>> I did the very thing just recently without any problems >>>>>>> >>>>>>> does the maven build run outside eclipse (standalone)? So does the >>
Re: Maven build - no main bundle name
as its a snapshot, its here https://maven.wocommunity.org/content/repositories/snapshots/org/wocommunity/wolifecycle-maven-plugin/2.6-SNAPSHOT/ 2.6 has some small but important changes (at least to me) Markus > Am 29.07.2024 um 18:47 schrieb Aaron Rosenzweig : > > Hi Markus, > > The latest I see is 2.5 for the lifecycle plugin here: > https://mvnrepository.com/artifact/org.wocommunity/wolifecycle-maven-plugin > > Where is 2.6? > >> On Jul 29, 2024, at 12:45 PM, Aaron Rosenzweig > <mailto:aa...@chatnbike.com>> wrote: >> >> Thanks Markus, >> >> I was using this to refer to the plugin: >> >> >> org.wocommunity >> wolifecycle-maven-plugin >> 2.5 >> true >> >> true >> >> >> >> I’ll try 2.6-SNAPSHOT :-) >> >>> On Jul 29, 2024, at 12:17 PM, Markus Stoll, junidas GmbH >>> mailto:markus.st...@junidas.de>> wrote: >>> >>> you should use version 2.6-SNAPSHOT for wolifecycle-maven-plugin, which is >>> the current one and do you refer to the wocommunity repository for >>> obtaining the plugin? >>> >>> I strongly suggest to first fix the maven standalone build. Once this is >>> building and running, do a new import as maven project into eclipse. >>> >>> Regards >>> Markus >>> >>> >>>> Am 29.07.2024 um 18:07 schrieb Aaron Rosenzweig >>> <mailto:aa...@chatnbike.com>>: >>>> >>>> Inside the WO app’s folder from terminal I tried: mvn build >>>> >>>> It says: Unresolveable build extension: Plugin >>>> org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies >>>> could not be resolved: Failed to read artifact descriptor for >>>> org.wocommunity:wolifecycle-maven-plugin:jar:2.5: >>>> >>>> That’s interesting, I don’t see errors like that within Eclipse. >>>> >>>>> On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig >>>> <mailto:aa...@chatnbike.com>> wrote: >>>>> >>>>> Hi Markus thanks for the quick reply! >>>>> >>>>> Good question, I don’t know. I haven’t run from command line, hadn’t done >>>>> it with Ant and also haven’t tried it with Maven. It’s an interesting >>>>> idea to try if I can figure it out. Maybe it will show a difference that >>>>> leads to discovery. >>>>> >>>>>> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >>>>>> mailto:markus.st...@junidas.de>> wrote: >>>>>> >>>>>> Hi Aaron, >>>>>> >>>>>> I did the very thing just recently without any problems >>>>>> >>>>>> does the maven build run outside eclipse (standalone)? So does the >>>>>> problem occur only when started from eclipse? >>>>>> >>>>>> Regards >>>>>> Markus >>>>>> >>>>>>> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >>>>>>> >>>>>> <mailto:webobjects-dev@lists.apple.com>>: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I’m trying to convert an ANT based webobjects application into a Maven >>>>>>> build. At the moment It’s building in Eclipse without errors but when I >>>>>>> try to launch within the Eclipse environment I get errors due to not >>>>>>> finding the main bundle. >>>>>>> >>>>>>> Specifically the following call inside of ERXApplication returns null: >>>>>>> NSProperties._mainBundleName() >>>>>>> >>>>>>> It should return something, but it doesn’t. Has anyone any advice on >>>>>>> what the issue might be? >>>>>>> >>>>>>> Many thanks, >>>>>>> — Aaron >>>>>>> ___ >>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>>>>> <mailto:Webobjects-dev@lists.apple.com>) >>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >>>>>>> >>>>>>> This email sent to markus.st...@junidas.de >>>>>>> <mailto:markus.st...@junidas.de> >>>>>> >>>>>> >>>>> >>>> >>> >>> Mit freundlichen Grüßen >>> >>> Markus Stoll >>> >>> -- >>> Dr. Markus Stoll (Geschäftsführer) >>> markus.st...@junidas.de <mailto:markus.st...@junidas.de> >>> >>> Junidas GmbH, Aixheimer Str. 12, 70619 Stuttgart >>> Tel. +49 (711) 4599799-13, Fax +49 (711) 4599799-10 >>> Geschäftsführer: Dr. Markus Stoll, Matthias Zepf >>> Amtsgericht Stuttgart, HRB 21939 >>> >> > 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Hi Markus, The latest I see is 2.5 for the lifecycle plugin here: https://mvnrepository.com/artifact/org.wocommunity/wolifecycle-maven-plugin <https://mvnrepository.com/artifact/org.wocommunity/wolifecycle-maven-plugin> Where is 2.6? > On Jul 29, 2024, at 12:45 PM, Aaron Rosenzweig wrote: > > Thanks Markus, > > I was using this to refer to the plugin: > > > org.wocommunity > wolifecycle-maven-plugin > 2.5 > true > > true > > > > I’ll try 2.6-SNAPSHOT :-) > >> On Jul 29, 2024, at 12:17 PM, Markus Stoll, junidas GmbH >> mailto:markus.st...@junidas.de>> wrote: >> >> you should use version 2.6-SNAPSHOT for wolifecycle-maven-plugin, which is >> the current one and do you refer to the wocommunity repository for obtaining >> the plugin? >> >> I strongly suggest to first fix the maven standalone build. Once this is >> building and running, do a new import as maven project into eclipse. >> >> Regards >> Markus >> >> >>> Am 29.07.2024 um 18:07 schrieb Aaron Rosenzweig >> <mailto:aa...@chatnbike.com>>: >>> >>> Inside the WO app’s folder from terminal I tried: mvn build >>> >>> It says: Unresolveable build extension: Plugin >>> org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies >>> could not be resolved: Failed to read artifact descriptor for >>> org.wocommunity:wolifecycle-maven-plugin:jar:2.5: >>> >>> That’s interesting, I don’t see errors like that within Eclipse. >>> >>>> On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig >>> <mailto:aa...@chatnbike.com>> wrote: >>>> >>>> Hi Markus thanks for the quick reply! >>>> >>>> Good question, I don’t know. I haven’t run from command line, hadn’t done >>>> it with Ant and also haven’t tried it with Maven. It’s an interesting idea >>>> to try if I can figure it out. Maybe it will show a difference that leads >>>> to discovery. >>>> >>>>> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >>>>> mailto:markus.st...@junidas.de>> wrote: >>>>> >>>>> Hi Aaron, >>>>> >>>>> I did the very thing just recently without any problems >>>>> >>>>> does the maven build run outside eclipse (standalone)? So does the >>>>> problem occur only when started from eclipse? >>>>> >>>>> Regards >>>>> Markus >>>>> >>>>>> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >>>>>> mailto:webobjects-dev@lists.apple.com>>: >>>>>> >>>>>> Hi, >>>>>> >>>>>> I’m trying to convert an ANT based webobjects application into a Maven >>>>>> build. At the moment It’s building in Eclipse without errors but when I >>>>>> try to launch within the Eclipse environment I get errors due to not >>>>>> finding the main bundle. >>>>>> >>>>>> Specifically the following call inside of ERXApplication returns null: >>>>>> NSProperties._mainBundleName() >>>>>> >>>>>> It should return something, but it doesn’t. Has anyone any advice on >>>>>> what the issue might be? >>>>>> >>>>>> Many thanks, >>>>>> — Aaron >>>>>> ___ >>>>>> Do not post admin requests to the list. They will be ignored. >>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>>>> <mailto:Webobjects-dev@lists.apple.com>) >>>>>> Help/Unsubscribe/Update your Subscription: >>>>>> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >>>>>> >>>>>> <https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de> >>>>>> >>>>>> This email sent to markus.st...@junidas.de >>>>>> <mailto:markus.st...@junidas.de> >>>>> >>>>> >>>> >>> >> >> Mit freundlichen Grüßen >> >> Markus Stoll >> >> -- >> Dr. Markus Stoll (Geschäftsführer) >> markus.st...@junidas.de <mailto:markus.st...@junidas.de> >> >> Junidas GmbH, Aixheimer Str. 12, 70619 Stuttgart >> Tel. +49 (711) 4599799-13, Fax +49 (711) 4599799-10 >> Geschäftsführer: Dr. Markus Stoll, Matthias Zepf >> Amtsgericht Stuttgart, HRB 21939 >> > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Thanks Markus, I was using this to refer to the plugin: org.wocommunity wolifecycle-maven-plugin 2.5 true true I’ll try 2.6-SNAPSHOT :-) > On Jul 29, 2024, at 12:17 PM, Markus Stoll, junidas GmbH > wrote: > > you should use version 2.6-SNAPSHOT for wolifecycle-maven-plugin, which is > the current one and do you refer to the wocommunity repository for obtaining > the plugin? > > I strongly suggest to first fix the maven standalone build. Once this is > building and running, do a new import as maven project into eclipse. > > Regards > Markus > > >> Am 29.07.2024 um 18:07 schrieb Aaron Rosenzweig : >> >> Inside the WO app’s folder from terminal I tried: mvn build >> >> It says: Unresolveable build extension: Plugin >> org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies >> could not be resolved: Failed to read artifact descriptor for >> org.wocommunity:wolifecycle-maven-plugin:jar:2.5: >> >> That’s interesting, I don’t see errors like that within Eclipse. >> >>> On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig >> <mailto:aa...@chatnbike.com>> wrote: >>> >>> Hi Markus thanks for the quick reply! >>> >>> Good question, I don’t know. I haven’t run from command line, hadn’t done >>> it with Ant and also haven’t tried it with Maven. It’s an interesting idea >>> to try if I can figure it out. Maybe it will show a difference that leads >>> to discovery. >>> >>>> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >>>> mailto:markus.st...@junidas.de>> wrote: >>>> >>>> Hi Aaron, >>>> >>>> I did the very thing just recently without any problems >>>> >>>> does the maven build run outside eclipse (standalone)? So does the problem >>>> occur only when started from eclipse? >>>> >>>> Regards >>>> Markus >>>> >>>>> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >>>>> mailto:webobjects-dev@lists.apple.com>>: >>>>> >>>>> Hi, >>>>> >>>>> I’m trying to convert an ANT based webobjects application into a Maven >>>>> build. At the moment It’s building in Eclipse without errors but when I >>>>> try to launch within the Eclipse environment I get errors due to not >>>>> finding the main bundle. >>>>> >>>>> Specifically the following call inside of ERXApplication returns null: >>>>> NSProperties._mainBundleName() >>>>> >>>>> It should return something, but it doesn’t. Has anyone any advice on what >>>>> the issue might be? >>>>> >>>>> Many thanks, >>>>> — Aaron >>>>> ___ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>>> <mailto:Webobjects-dev@lists.apple.com>) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >>>>> >>>>> <https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de> >>>>> >>>>> This email sent to markus.st...@junidas.de >>>>> <mailto:markus.st...@junidas.de> >>>> >>>> >>> >> > > Mit freundlichen Grüßen > > Markus Stoll > > -- > Dr. Markus Stoll (Geschäftsführer) > markus.st...@junidas.de > > Junidas GmbH, Aixheimer Str. 12, 70619 Stuttgart > Tel. +49 (711) 4599799-13, Fax +49 (711) 4599799-10 > Geschäftsführer: Dr. Markus Stoll, Matthias Zepf > Amtsgericht Stuttgart, HRB 21939 > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
you should use version 2.6-SNAPSHOT for wolifecycle-maven-plugin, which is the current one and do you refer to the wocommunity repository for obtaining the plugin? I strongly suggest to first fix the maven standalone build. Once this is building and running, do a new import as maven project into eclipse. Regards Markus > Am 29.07.2024 um 18:07 schrieb Aaron Rosenzweig : > > Inside the WO app’s folder from terminal I tried: mvn build > > It says: Unresolveable build extension: Plugin > org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies could > not be resolved: Failed to read artifact descriptor for > org.wocommunity:wolifecycle-maven-plugin:jar:2.5: > > That’s interesting, I don’t see errors like that within Eclipse. > >> On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig > <mailto:aa...@chatnbike.com>> wrote: >> >> Hi Markus thanks for the quick reply! >> >> Good question, I don’t know. I haven’t run from command line, hadn’t done it >> with Ant and also haven’t tried it with Maven. It’s an interesting idea to >> try if I can figure it out. Maybe it will show a difference that leads to >> discovery. >> >>> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >>> mailto:markus.st...@junidas.de>> wrote: >>> >>> Hi Aaron, >>> >>> I did the very thing just recently without any problems >>> >>> does the maven build run outside eclipse (standalone)? So does the problem >>> occur only when started from eclipse? >>> >>> Regards >>> Markus >>> >>>> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >>>> mailto:webobjects-dev@lists.apple.com>>: >>>> >>>> Hi, >>>> >>>> I’m trying to convert an ANT based webobjects application into a Maven >>>> build. At the moment It’s building in Eclipse without errors but when I >>>> try to launch within the Eclipse environment I get errors due to not >>>> finding the main bundle. >>>> >>>> Specifically the following call inside of ERXApplication returns null: >>>> NSProperties._mainBundleName() >>>> >>>> It should return something, but it doesn’t. Has anyone any advice on what >>>> the issue might be? >>>> >>>> Many thanks, >>>> — Aaron >>>> ___ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>>> <mailto:Webobjects-dev@lists.apple.com>) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >>>> >>>> This email sent to markus.st...@junidas.de <mailto:markus.st...@junidas.de> >>> >>> >> > Mit freundlichen Grüßen Markus Stoll -- Dr. Markus Stoll (Geschäftsführer) markus.st...@junidas.de Junidas GmbH, Aixheimer Str. 12, 70619 Stuttgart Tel. +49 (711) 4599799-13, Fax +49 (711) 4599799-10 Geschäftsführer: Dr. Markus Stoll, Matthias Zepf Amtsgericht Stuttgart, HRB 21939 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Inside the WO app’s folder from terminal I tried: mvn build It says: Unresolveable build extension: Plugin org.wocommunity:wolifecycle-maven-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.wocommunity:wolifecycle-maven-plugin:jar:2.5: That’s interesting, I don’t see errors like that within Eclipse. > On Jul 29, 2024, at 12:02 PM, Aaron Rosenzweig wrote: > > Hi Markus thanks for the quick reply! > > Good question, I don’t know. I haven’t run from command line, hadn’t done it > with Ant and also haven’t tried it with Maven. It’s an interesting idea to > try if I can figure it out. Maybe it will show a difference that leads to > discovery. > >> On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH >> mailto:markus.st...@junidas.de>> wrote: >> >> Hi Aaron, >> >> I did the very thing just recently without any problems >> >> does the maven build run outside eclipse (standalone)? So does the problem >> occur only when started from eclipse? >> >> Regards >> Markus >> >>> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >>> mailto:webobjects-dev@lists.apple.com>>: >>> >>> Hi, >>> >>> I’m trying to convert an ANT based webobjects application into a Maven >>> build. At the moment It’s building in Eclipse without errors but when I try >>> to launch within the Eclipse environment I get errors due to not finding >>> the main bundle. >>> >>> Specifically the following call inside of ERXApplication returns null: >>> NSProperties._mainBundleName() >>> >>> It should return something, but it doesn’t. Has anyone any advice on what >>> the issue might be? >>> >>> Many thanks, >>> — Aaron >>> ___ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com >>> <mailto:Webobjects-dev@lists.apple.com>) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >>> >>> <https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de> >>> >>> This email sent to markus.st...@junidas.de >> >> > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Hi Markus thanks for the quick reply! Good question, I don’t know. I haven’t run from command line, hadn’t done it with Ant and also haven’t tried it with Maven. It’s an interesting idea to try if I can figure it out. Maybe it will show a difference that leads to discovery. > On Jul 29, 2024, at 11:58 AM, Markus Stoll, junidas GmbH > wrote: > > Hi Aaron, > > I did the very thing just recently without any problems > > does the maven build run outside eclipse (standalone)? So does the problem > occur only when started from eclipse? > > Regards > Markus > >> Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev >> : >> >> Hi, >> >> I’m trying to convert an ANT based webobjects application into a Maven >> build. At the moment It’s building in Eclipse without errors but when I try >> to launch within the Eclipse environment I get errors due to not finding the >> main bundle. >> >> Specifically the following call inside of ERXApplication returns null: >> NSProperties._mainBundleName() >> >> It should return something, but it doesn’t. Has anyone any advice on what >> the issue might be? >> >> Many thanks, >> — Aaron >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de >> >> This email sent to markus.st...@junidas.de > > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Maven build - no main bundle name
Hi Aaron, I did the very thing just recently without any problems does the maven build run outside eclipse (standalone)? So does the problem occur only when started from eclipse? Regards Markus > Am 29.07.2024 um 17:49 schrieb Aaron Rosenzweig via Webobjects-dev > : > > Hi, > > I’m trying to convert an ANT based webobjects application into a Maven build. > At the moment It’s building in Eclipse without errors but when I try to > launch within the Eclipse environment I get errors due to not finding the > main bundle. > > Specifically the following call inside of ERXApplication returns null: > NSProperties._mainBundleName() > > It should return something, but it doesn’t. Has anyone any advice on what the > issue might be? > > Many thanks, > — Aaron > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/markus.stoll%40junidas.de > > This email sent to markus.st...@junidas.de 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Maven build - no main bundle name
Hi, I’m trying to convert an ANT based webobjects application into a Maven build. At the moment It’s building in Eclipse without errors but when I try to launch within the Eclipse environment I get errors due to not finding the main bundle. Specifically the following call inside of ERXApplication returns null: NSProperties._mainBundleName() It should return something, but it doesn’t. Has anyone any advice on what the issue might be? Many thanks, — Aaron ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: FrontBase speed, feels weird.
Hi OC, Your problem description smell like an IO contention. BTW, this is not FB exclusive, all database will have the same kind of behaviour. If the is no index for the where condition, you force a table scan (read all the table rows to validate the condition). If the row data in memory, this is fast, if it need to be read from disk, speed can vary a lot depending on the precise amount of data in cache and disk usage art this moment. The size of your row data can also create an amplification of this problem (few int VS many timestamps and char columns for example or if you fetch large blob). If you are on very fast PCIe SSD, it is usually very fast but regular HDs have a very limited IO capacity. Regards, Samuel > Le 15 juill. 2024 à 09:33, OCsite via Webobjects-dev > a écrit : > > Hi there, > > for years and years, we happily use FrontBase. Lately though we are bumping > into somewhat weird behaviour: we observe inexplicably long fetches, even > with tables which are not extremely big, no joins, trivial conditions. What's > even more intriguing is that in sql92, it was much faster. Even so, the > problem was at the FB (not application) side, for an index did help > tremendously. Does not make really sense to me, and I wonder whether there > might be some weird problem in the FB itself, which might raise its head soon > and bite us hard. > > - the table contains about 16 000 rows, that's not too many; > - the fetch condition is trivial, just WHERE SOME_BOOLEAN_COLUMN = false; > - the number of found rows is only 13 currently (and never exceeded 100). > > These fetches took seconds — usually about 1200 ms, not once below 1000, > occasionally almost 3000 ms. > > When I've tried the very same fetch in sql92, it was instantaneous, which > feels pretty weird too and lead me to a suspicion that the problem is at the > application side. > > Nevertheless it was not: I just have added an index for the column, and the > fetches are ways quicker now (usually below 30 ms). > > What intrigues me and the reason I write this mail, it does not seem to me > reasonable that a plain fetch from a table of ~16K rows which yields > (considerably) less than 100 result rows, without any join and with a > completely trivial condition, could (without an index) take that long. Does > it make any sense to you, who understand SQL/FB better than me? Is that > normal? There are other fetches from the same table, with considerably more > complex conditions, taking at worst a couple tenths of second; that seems > normal to me. > > Thanks and all the best, > OC > > _______ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com > > This email sent to sam...@samkar.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
FrontBase speed, feels weird.
Hi there, for years and years, we happily use FrontBase. Lately though we are bumping into somewhat weird behaviour: we observe inexplicably long fetches, even with tables which are not extremely big, no joins, trivial conditions. What's even more intriguing is that in sql92, it was much faster. Even so, the problem was at the FB (not application) side, for an index did help tremendously. Does not make really sense to me, and I wonder whether there might be some weird problem in the FB itself, which might raise its head soon and bite us hard. - the table contains about 16 000 rows, that's not too many; - the fetch condition is trivial, just WHERE SOME_BOOLEAN_COLUMN = false; - the number of found rows is only 13 currently (and never exceeded 100). These fetches took seconds — usually about 1200 ms, not once below 1000, occasionally almost 3000 ms. When I've tried the very same fetch in sql92, it was instantaneous, which feels pretty weird too and lead me to a suspicion that the problem is at the application side. Nevertheless it was not: I just have added an index for the column, and the fetches are ways quicker now (usually below 30 ms). What intrigues me and the reason I write this mail, it does not seem to me reasonable that a plain fetch from a table of ~16K rows which yields (considerably) less than 100 result rows, without any join and with a completely trivial condition, could (without an index) take that long. Does it make any sense to you, who understand SQL/FB better than me? Is that normal? There are other fetches from the same table, with considerably more complex conditions, taking at worst a couple tenths of second; that seems normal to me. Thanks and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WOAjaxCollapsibleComponentContent ???
I agree about the examples - But . . . some are so nondescript that even finding out what issue they try to cover is more or less impossible unless you already know what you are looking for. It is so fascinating and powerful what is available in Wonder and at the same time so frustrating realizing that something might be there, finding it and making sense of things. Time to write a successor to Learning The Wonders. Oh wait, was is “time” ? Is that what I am constantly short of 😇? ---markus--- > On 27 Jun 2024, at 02:20, Aaron Rosenzweig wrote: > > Hi Markus :-) > > Glad that worked out for you. I think there is an AjaxExamples project in > WOnder which is an app you can run and see a few things. > > You pick up on things after toiling with it for a while. > > >> On Jun 26, 2024, at 7:34 AM, mailinglists wrote: >> >> Thanks Aaron, works perfectly. >> >> Other than looking at the code how would one discover what AjaxHyperlink and >> friends can do? The documentation / JavaDoc is not very revealing. >> >> ---markus--- >> >>> On 23 Jun 2024, at 17:43, Aaron Rosenzweig wrote: >>> >>> Hi Markus, >>> >>> To use like you envision you need to add some >>> scaffolding. >>> >>> Realize that the ajax link and the ajax submit button can be given a named >>> function. When you do that, they don’t render, put provide a name you can >>> call on the client side that will do a round trip to the server. So you >>> need to consider if you have a form (or not) and if you want to synchronize >>> bindings (or not) to choose between them. But let’s assume you just want a >>> “click” without form values going across. You’ll need to place an element >>> like this near your : >>> >>> >> ERXWOContext.safeIdentifierName(context(), true /*willCache*/); >>> } >>> return _toggleFunctionName; >>> } >>> >>> public WOActionResults toggle() { >>> setIsOpen( ! isOpen()); >>> return null; >>> } >>> >>> >>> Then you’ll need to build your summary tag as a container element and >>> listen to click events like so: >>> >>> >> return code; >>> } >>> >>> Or if there is a lot of complex stuff going on and race conditions with JS >>> events maybe you need a hack to invoke Ajax on a delay >>> public String onclickJavascript(){ >>> String code = "setTimeout(" + toggleFunctionName() + ", 500); return >>> true;"; >>> return code; >>> } >>> >>> Notice that there is no update container specified on the AjaxHyperlink. >>> That’s because you don’t need to refresh anything, you only need to tell >>> the server the state of open/close. >>> >>> >>>> On Jun 23, 2024, at 7:28 AM, mailinglists via Webobjects-dev >>>> wrote: >>>> >>>> Anyone using this component? It has bindings that seem not to be used. >>>> Does this work at all? I cannot make sense of it. >>>> >>>> Alternatively has anyone made proper use of the html construct >>>> ? It works nicely but I cannot preserve “open” state >>>> when updating an enclosing container because I have not found a way to >>>> call back into the server when the summary is clicked to open/close. This >>>> action is pure client side performed by the browser itself. Any way to tap >>>> into it? >>>> >>>> Any other usable component around for such a hide/reveal functionality? >>>> >>>> Thanks for your ideas >>>> ---markus--- >>>> >>>> >>>> ___ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >>>> >>>> This email sent to aa...@chatnbike.com >>> >> > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WOAjaxCollapsibleComponentContent ???
Hi Markus :-) Glad that worked out for you. I think there is an AjaxExamples project in WOnder which is an app you can run and see a few things. You pick up on things after toiling with it for a while. > On Jun 26, 2024, at 7:34 AM, mailinglists wrote: > > Thanks Aaron, works perfectly. > > Other than looking at the code how would one discover what AjaxHyperlink and > friends can do? The documentation / JavaDoc is not very revealing. > > ---markus--- > >> On 23 Jun 2024, at 17:43, Aaron Rosenzweig wrote: >> >> Hi Markus, >> >> To use like you envision you need to add some >> scaffolding. >> >> Realize that the ajax link and the ajax submit button can be given a named >> function. When you do that, they don’t render, put provide a name you can >> call on the client side that will do a round trip to the server. So you need >> to consider if you have a form (or not) and if you want to synchronize >> bindings (or not) to choose between them. But let’s assume you just want a >> “click” without form values going across. You’ll need to place an element >> like this near your : >> >> > ERXWOContext.safeIdentifierName(context(), true /*willCache*/); >> } >> return _toggleFunctionName; >> } >> >> public WOActionResults toggle() { >> setIsOpen( ! isOpen()); >> return null; >> } >> >> >> Then you’ll need to build your summary tag as a container element and listen >> to click events like so: >> >> > return code; >> } >> >> Or if there is a lot of complex stuff going on and race conditions with JS >> events maybe you need a hack to invoke Ajax on a delay >> public String onclickJavascript(){ >> String code = "setTimeout(" + toggleFunctionName() + ", 500); return >> true;"; >> return code; >> } >> >> Notice that there is no update container specified on the AjaxHyperlink. >> That’s because you don’t need to refresh anything, you only need to tell the >> server the state of open/close. >> >> >>> On Jun 23, 2024, at 7:28 AM, mailinglists via Webobjects-dev >>> wrote: >>> >>> Anyone using this component? It has bindings that seem not to be used. >>> Does this work at all? I cannot make sense of it. >>> >>> Alternatively has anyone made proper use of the html construct >>> ? It works nicely but I cannot preserve “open” state when >>> updating an enclosing container because I have not found a way to call back >>> into the server when the summary is clicked to open/close. This action is >>> pure client side performed by the browser itself. Any way to tap into it? >>> >>> Any other usable component around for such a hide/reveal functionality? >>> >>> Thanks for your ideas >>> ---markus--- >>> >>> >>> _______ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >>> >>> This email sent to aa...@chatnbike.com >> > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WOAjaxCollapsibleComponentContent ???
Thanks Aaron, works perfectly. Other than looking at the code how would one discover what AjaxHyperlink and friends can do? The documentation / JavaDoc is not very revealing. ---markus--- > On 23 Jun 2024, at 17:43, Aaron Rosenzweig wrote: > > Hi Markus, > > To use like you envision you need to add some scaffolding. > > Realize that the ajax link and the ajax submit button can be given a named > function. When you do that, they don’t render, put provide a name you can > call on the client side that will do a round trip to the server. So you need > to consider if you have a form (or not) and if you want to synchronize > bindings (or not) to choose between them. But let’s assume you just want a > “click” without form values going across. You’ll need to place an element > like this near your : > > ERXWOContext.safeIdentifierName(context(), true /*willCache*/); >} >return _toggleFunctionName; > } > > public WOActionResults toggle() { >setIsOpen( ! isOpen()); >return null; > } > > > Then you’ll need to build your summary tag as a container element and listen > to click events like so: > > return code; > } > > Or if there is a lot of complex stuff going on and race conditions with JS > events maybe you need a hack to invoke Ajax on a delay > public String onclickJavascript(){ >String code = "setTimeout(" + toggleFunctionName() + ", 500); return > true;"; >return code; > } > > Notice that there is no update container specified on the AjaxHyperlink. > That’s because you don’t need to refresh anything, you only need to tell the > server the state of open/close. > > >> On Jun 23, 2024, at 7:28 AM, mailinglists via Webobjects-dev >> wrote: >> >> Anyone using this component? It has bindings that seem not to be used. Does >> this work at all? I cannot make sense of it. >> >> Alternatively has anyone made proper use of the html construct >> ? It works nicely but I cannot preserve “open” state when >> updating an enclosing container because I have not found a way to call back >> into the server when the summary is clicked to open/close. This action is >> pure client side performed by the browser itself. Any way to tap into it? >> >> Any other usable component around for such a hide/reveal functionality? >> >> Thanks for your ideas >> ---markus--- >> >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com >> >> This email sent to aa...@chatnbike.com > ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WOAjaxCollapsibleComponentContent ???
Hi Markus, To use like you envision you need to add some scaffolding. Realize that the ajax link and the ajax submit button can be given a named function. When you do that, they don’t render, put provide a name you can call on the client side that will do a round trip to the server. So you need to consider if you have a form (or not) and if you want to synchronize bindings (or not) to choose between them. But let’s assume you just want a “click” without form values going across. You’ll need to place an element like this near your : On Jun 23, 2024, at 7:28 AM, mailinglists via Webobjects-dev > wrote: > > Anyone using this component? It has bindings that seem not to be used. Does > this work at all? I cannot make sense of it. > > Alternatively has anyone made proper use of the html construct > ? It works nicely but I cannot preserve “open” state when > updating an enclosing container because I have not found a way to call back > into the server when the summary is clicked to open/close. This action is > pure client side performed by the browser itself. Any way to tap into it? > > Any other usable component around for such a hide/reveal functionality? > > Thanks for your ideas > ---markus--- > > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com > > This email sent to aa...@chatnbike.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
WOAjaxCollapsibleComponentContent ???
Anyone using this component? It has bindings that seem not to be used. Does this work at all? I cannot make sense of it. Alternatively has anyone made proper use of the html construct ? It works nicely but I cannot preserve “open” state when updating an enclosing container because I have not found a way to call back into the server when the summary is clicked to open/close. This action is pure client side performed by the browser itself. Any way to tap into it? Any other usable component around for such a hide/reveal functionality? Thanks for your ideas ---markus--- ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Hi John, On 21 Jun 2024, at 17:33, John Pollard wrote: > Also Paul, what instance type are you using; Amazon offer their own Graviton > instance types more cheaply and with higher performance, but I am on > t3.xlarge currently. Should I be looking at graviton versions? Is there a WO > adaptor built for them that can be grabbed? Any other considerations in > deploying to Graviton? We use really only the T3 family—haven't looked into using Graviton. Building the WO adaptor from source is very straightforward, though. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Also Paul, what instance type are you using; Amazon offer their own Graviton instance types more cheaply and with higher performance, but I am on t3.xlarge currently. Should I be looking at graviton versions? Is there a WO adaptor built for them that can be grabbed? Any other considerations in deploying to Graviton? Thanks John > On 19 Jun 2024, at 10:05, John Pollard via Webobjects-dev > wrote: > > Thanks again Paul > I use Java Web Start, so I don’t think corretto will work for me. > I do use cron yes. > John > >> On 19 Jun 2024, at 00:34, Paul Hoadley via Webobjects-dev >> wrote: >> >> Hi John, >> >> On 18 Jun 2024, at 19:15, John Pollard wrote: >> >>> Thanks Paul, that’s really helpful. >>> >>> java -version >>> openjdk version "1.8.0_402" >>> OpenJDK Runtime Environment (build 1.8.0_402-b06) >>> OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode) >>> >>> Will I need to change to corretto? >> >> Short answer is: I don't know. Corretto is certainly the easiest way to get >> a JRE/JDK for Amazon Linux, and it should be a drop-in replacement for >> anything else you're using. >> >>> Sounds like I will need to look into cronie, thanks for the heads up. >> >> Only if you need cron. We use it to periodically post some measurements to >> CloudWatch in some circumstances. If not, don't worry about it. >> >>> Is the WO apache adaptor going to work as is? >> >> Yep. >> >>> And wotaskd and javamonitor should be fine I guess as just java apps. >> >> And yep. >> >> >> -- >> Paul Hoadley >> https://logicsquad.net/ >> https://www.linkedin.com/company/logic-squad/ >> >> >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/john%40pollardweb.com >> >> This email sent to j...@pollardweb.com > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/john%40pollardweb.com > > This email sent to j...@pollardweb.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Thanks again Paul I use Java Web Start, so I don’t think corretto will work for me. I do use cron yes. John > On 19 Jun 2024, at 00:34, Paul Hoadley via Webobjects-dev > wrote: > > Hi John, > > On 18 Jun 2024, at 19:15, John Pollard wrote: > >> Thanks Paul, that’s really helpful. >> >> java -version >> openjdk version "1.8.0_402" >> OpenJDK Runtime Environment (build 1.8.0_402-b06) >> OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode) >> >> Will I need to change to corretto? > > Short answer is: I don't know. Corretto is certainly the easiest way to get a > JRE/JDK for Amazon Linux, and it should be a drop-in replacement for anything > else you're using. > >> Sounds like I will need to look into cronie, thanks for the heads up. > > Only if you need cron. We use it to periodically post some measurements to > CloudWatch in some circumstances. If not, don't worry about it. > >> Is the WO apache adaptor going to work as is? > > Yep. > >> And wotaskd and javamonitor should be fine I guess as just java apps. > > And yep. > > > -- > Paul Hoadley > https://logicsquad.net/ > https://www.linkedin.com/company/logic-squad/ > > > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/john%40pollardweb.com > > This email sent to j...@pollardweb.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Hi John, On 18 Jun 2024, at 19:15, John Pollard wrote: > Thanks Paul, that’s really helpful. > > java -version > openjdk version "1.8.0_402" > OpenJDK Runtime Environment (build 1.8.0_402-b06) > OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode) > > Will I need to change to corretto? Short answer is: I don't know. Corretto is certainly the easiest way to get a JRE/JDK for Amazon Linux, and it should be a drop-in replacement for anything else you're using. > Sounds like I will need to look into cronie, thanks for the heads up. Only if you need cron. We use it to periodically post some measurements to CloudWatch in some circumstances. If not, don't worry about it. > Is the WO apache adaptor going to work as is? Yep. > And wotaskd and javamonitor should be fine I guess as just java apps. And yep. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Thanks Paul, that’s really helpful. java -version openjdk version "1.8.0_402" OpenJDK Runtime Environment (build 1.8.0_402-b06) OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode) Will I need to change to corretto? Sounds like I will need to look into cronie, thanks for the heads up. Is the WO apache adaptor going to work as is? And wotaskd and javamonitor should be fine I guess as just java apps. John > On 18 Jun 2024, at 00:25, Paul Hoadley via Webobjects-dev > wrote: > > Hi John, > > On 17 Jun 2024, at 20:09, John Pollard via Webobjects-dev > wrote: > >> I am deployed to Amazon Linux 2 and need to move to Amazon Linux 2023 by >> March 2025. >> >> Was anyone else in this boat / has already done this migration? >> >> If so, is there anything I should be aware of before I start, or smooth >> sailing? > > On the whole, smooth sailing. Looking at the changes to our appserver setup > script here, I can see: > > * Change in how to install JREs: the "amazon-linux-extras" step has gone, > looks like Corretto JREs are available immediately using yum. > > * Looks like postfix is no longer started automatically: our script used to > kill this, and no longer does. > > * Looks like cron is no longer provided, and we're installing cronie. > > Obviously whether or not any of these are relevant to you will depend on how > you set up your appservers. > > > -- > Paul Hoadley > https://logicsquad.net/ > https://www.linkedin.com/company/logic-squad/ > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/john%40pollardweb.com > > This email sent to j...@pollardweb.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
Hi John, On 17 Jun 2024, at 20:09, John Pollard via Webobjects-dev wrote: > I am deployed to Amazon Linux 2 and need to move to Amazon Linux 2023 by > March 2025. > > Was anyone else in this boat / has already done this migration? > > If so, is there anything I should be aware of before I start, or smooth > sailing? On the whole, smooth sailing. Looking at the changes to our appserver setup script here, I can see: * Change in how to install JREs: the "amazon-linux-extras" step has gone, looks like Corretto JREs are available immediately using yum. * Looks like postfix is no longer started automatically: our script used to kill this, and no longer does. * Looks like cron is no longer provided, and we're installing cronie. Obviously whether or not any of these are relevant to you will depend on how you set up your appservers. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Amazon Linux 2023
I’ve been using containers which are helpful in controlling the administration without need of knowing much about the host environment. > On Jun 17, 2024, at 6:39 AM, John Pollard via Webobjects-dev > wrote: > > Hello, > > I am deployed to Amazon Linux 2 and need to move to Amazon Linux 2023 by > March 2025. > > Was anyone else in this boat / has already done this migration? > > If so, is there anything I should be aware of before I start, or smooth > sailing? > > I have a very manual deployment, but have extensive notes from moving between > AL1 and AL2 so hoping that should help. > > Many thanks, > John > > > John Pollard > 077 4221 0024 > > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com > > This email sent to jtay...@oeinc.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Amazon Linux 2023
Hello, I am deployed to Amazon Linux 2 and need to move to Amazon Linux 2023 by March 2025. Was anyone else in this boat / has already done this migration? If so, is there anything I should be aware of before I start, or smooth sailing? I have a very manual deployment, but have extensive notes from moving between AL1 and AL2 so hoping that should help. Many thanks, John John Pollard 077 4221 0024 ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [POSSIBLY SOLVED]: Cannot obtain globalId for an object which is registered in an other than the databaseContext's active editingContext
Just a quick followup: I've tested further, and alas, looks like the very same problem may happen regardless the fetchTimestamp due to inverse flattened M:N relationships. Test case same as below, just without 1/4, but with a flattened M:N two-side relationship; culprit in (vii) very slightly different — the original relationship gets filled from the snapshot without any problem, but the inverse may (quite probably) need to be fetched, with precisely the same outcome. Sigh. > On 9. 6. 2024, at 2:46, ocs--- via Webobjects-dev > wrote: > > Hi there again, > > I was eventually able to repeat the problem and it sort of stinks by a bug in > EOF (or I am doing something wrong, of course, as so often :)) My test code > is just a wee bit at the convoluted side, based on my own model and besides > written in Groovy, thus there's no point in quoting it; but the gist is this: > > 1. create an EC1, assign it a fetchTimestamp in future (something like > System.currentTimeMillis()+1500 should suffice) > 2. lock EC1 > 3. fetch into EC1 an object with a :N relationship and change that > relationship, not saving the changes > 4. wait until the fetchTimestamp expires > 5. in a separate thread with its own EC2 (locked) change the same > relationship of the same object (localInstanceIn(EC2) of course) > 6. save the changes in EC2 > 7. back in the original thread, wait until the thread with steps 5 and 6 > ends. Then unlock EC1 > 8. finally, in an unrelated EC3 insert some unrelated new object and > saveChanges... > > ... and at least at my side, I get “Cannot obtain globalId for an object > which is registered in an other than the databaseContext's active > editingContext“ exception all right! > > I believe the steps above are completely valid and should not cause problems, > or do I overlook something here? > > I might be wrong, it is a bit at the complex side, but I think this is what > happens under the hood: > (i) EC3 saveChanges of step 8 just calls > EOObjectStoreCoordinator.saveChangesInEditingContext ... > (ii) which first makes sure there's a proper source (happens to be > EODatabaseContext) for each inserted object in its _sources; this > EODatabaseContext happens to be the only shared EODatabaseContext a simple > application like this one uses (no more OSCs, no concurrent DB access) > (iii) each _source gets _willPrepareForSave and then each _source gets > prepareForSaveWithCoordinator — and this sets its _editingContext to EC3! > (iv) furthermore each _source gets recordChangesInEditingContext, > performChanges, and eventually commitChanges > (v) inside of commitChanges, EODatabaseContext finds that some changes really > happened and posts EOGlobalIDChangedNotification > (vi) EC1, which up to this moment was dormant, observes this notification and > through _globalIDChanged, _sendOrEnqueueNotification, yadda yadda, eventually > gets to merge the change into its own object > (vii) which change includes checking the current relationship value. Since > the fetchTimestamp is already in the past, this involves re-fetching the > relationship in EC1 ... > (viii) ... which goes through the one and only shared EODatabaseContext we > have. That EODatabaseContext though still has its _editingContext set to EC3 > from the step (iii))! > > Hilarity ensues, the “Cannot obtain globalId for an object which is > registered in an other...” exception gets thrown (if this did not happen, the > EODatabaseContext's _editingContext would get nulled at the very end of > commitChanges, too late for us). > > Do I overlook something of importance? Seems me not to; I guess anyone can > repeat the test code 1-8 outlined above (just beware logs — they might fire > the fault prematurely; also I've found essentially each localInstanceIn locks > ECs and thus disrupts the normal processing — best to prepare all the ECs and > all their local instances at the very start, around the step 1). > > What would be the best fix/work-around? I can't see any simple one; and I > would rather not override and re-implement the complete and rather > non-trivial commitChanges method. > > Thanks and all the best, > OC > >> On 8. 6. 2024, at 4:38, ocs--- via Webobjects-dev >> mailto:webobjects-dev@lists.apple.com>> >> wrote: >> >> Hi there, >> >> again in about 2 years the $subject did happen: >> >> “Cannot obtain globalId for an object which is registered in an other than >> the databaseContext's active editingContext, object: >> [USER#1000175@EC:34ea315d/OSC:77b7ffa4], databaseContext: >> com.webobjects.eoaccess.EODatabaseContext@512d92b, object's editingContext:
[POSSIBLY SOLVED]: Cannot obtain globalId for an object which is registered in an other than the databaseContext's active editingContext
Hi there again, I was eventually able to repeat the problem and it sort of stinks by a bug in EOF (or I am doing something wrong, of course, as so often :)) My test code is just a wee bit at the convoluted side, based on my own model and besides written in Groovy, thus there's no point in quoting it; but the gist is this: 1. create an EC1, assign it a fetchTimestamp in future (something like System.currentTimeMillis()+1500 should suffice) 2. lock EC1 3. fetch into EC1 an object with a :N relationship and change that relationship, not saving the changes 4. wait until the fetchTimestamp expires 5. in a separate thread with its own EC2 (locked) change the same relationship of the same object (localInstanceIn(EC2) of course) 6. save the changes in EC2 7. back in the original thread, wait until the thread with steps 5 and 6 ends. Then unlock EC1 8. finally, in an unrelated EC3 insert some unrelated new object and saveChanges... ... and at least at my side, I get “Cannot obtain globalId for an object which is registered in an other than the databaseContext's active editingContext“ exception all right! I believe the steps above are completely valid and should not cause problems, or do I overlook something here? I might be wrong, it is a bit at the complex side, but I think this is what happens under the hood: (i) EC3 saveChanges of step 8 just calls EOObjectStoreCoordinator.saveChangesInEditingContext ... (ii) which first makes sure there's a proper source (happens to be EODatabaseContext) for each inserted object in its _sources; this EODatabaseContext happens to be the only shared EODatabaseContext a simple application like this one uses (no more OSCs, no concurrent DB access) (iii) each _source gets _willPrepareForSave and then each _source gets prepareForSaveWithCoordinator — and this sets its _editingContext to EC3! (iv) furthermore each _source gets recordChangesInEditingContext, performChanges, and eventually commitChanges (v) inside of commitChanges, EODatabaseContext finds that some changes really happened and posts EOGlobalIDChangedNotification (vi) EC1, which up to this moment was dormant, observes this notification and through _globalIDChanged, _sendOrEnqueueNotification, yadda yadda, eventually gets to merge the change into its own object (vii) which change includes checking the current relationship value. Since the fetchTimestamp is already in the past, this involves re-fetching the relationship in EC1 ... (viii) ... which goes through the one and only shared EODatabaseContext we have. That EODatabaseContext though still has its _editingContext set to EC3 from the step (iii))! Hilarity ensues, the “Cannot obtain globalId for an object which is registered in an other...” exception gets thrown (if this did not happen, the EODatabaseContext's _editingContext would get nulled at the very end of commitChanges, too late for us). Do I overlook something of importance? Seems me not to; I guess anyone can repeat the test code 1-8 outlined above (just beware logs — they might fire the fault prematurely; also I've found essentially each localInstanceIn locks ECs and thus disrupts the normal processing — best to prepare all the ECs and all their local instances at the very start, around the step 1). What would be the best fix/work-around? I can't see any simple one; and I would rather not override and re-implement the complete and rather non-trivial commitChanges method. Thanks and all the best, OC > On 8. 6. 2024, at 4:38, ocs--- via Webobjects-dev > wrote: > > Hi there, > > again in about 2 years the $subject did happen: > > “Cannot obtain globalId for an object which is registered in an other than > the databaseContext's active editingContext, object: > [USER#1000175@EC:34ea315d/OSC:77b7ffa4], databaseContext: > com.webobjects.eoaccess.EODatabaseContext@512d92b, object's editingContext: > EC:34ea315d/OSC:77b7ffa4, databaseContext's active editingContext: > EC:7de5b11a/OSC:77b7ffa4“ > > (ECs are my subclasses which log out the appropriate OSC, too; did that when > I've hunted for bugs in multi-OSC environment. Unimportant here, in this case > all OSCs are same.) > > Again, as before, the cause were the changes previously stored for later in > another EC (since when they actually happened, the EC was locked). The > important stack items (far as I can say) are here (full stack at the end of > the message, should it help): > > - EODatabaseContext._globalIDForObject(EODatabaseContext.java:4660) # failed, > since this._editingContext=EC:7de5b11a, object.editingContext=EC:34ea315d > - EOCustomObject.includeObjectIntoPropertyWithKey(EOCustomObject.java:904) # > pretty sure both were in the same EC, 34ea315d > - EOEditingContext._processNotificationQueue(EOEditingContext.java:4741) # > should be EC:34ea315d,
Cannot obtain globalId for an object which is registered in an other than the databaseContext's active editingContext
ecification(EODatabaseChannel.java:227) - EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3055) - EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195) - EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:488) - EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4069) - ERXEC.objectsWithFetchSpecification(ERXEC.java:1307) - EODatabaseContext.objectsForSourceGlobalID(EODatabaseContext.java:4084) - EOObjectStoreCoordinator.objectsForSourceGlobalID(EOObjectStoreCoordinator.java:634) - EOEditingContext.objectsForSourceGlobalID(EOEditingContext.java:3923) - ERXEC.objectsForSourceGlobalID(ERXEC.java:1267) - EODatabaseContext._fireArrayFault(EODatabaseContext.java:4245) - EOAccessArrayFaultHandler.completeInitializationOfObject(EOAccessArrayFaultHandler.java:77) - _EOCheapCopyMutableArray.willRead(_EOCheapCopyMutableArray.java:39) - _EOCheapCopyMutableArray.count(_EOCheapCopyMutableArray.java:99) - NSArray.containsObject(NSArray.java:459) - EOCustomObject.includeObjectIntoPropertyWithKey(EOCustomObject.java:904) - ERXGenericRecord.includeObjectIntoPropertyWithKey(ERXGenericRecord.java:1291) - ERXGenericRecord$includeObjectIntoPropertyWithKey$6.callCurrent(:-1) - ERXGenericRecord$includeObjectIntoPropertyWithKey$6.callCurrent(:-1) - _DBUser.addToAuctionAccess(_DBUser.groovy:277) - NSSelector._safeInvokeMethod(NSSelector.java:122) - EOCustomObject.addObjectToPropertyWithKey(EOCustomObject.java:940) - EOEditingContext._mergeValueForKey(EOEditingContext.java:660) - EOEditingContext._mergeObjectWithChanges(EOEditingContext.java:3457) - EOEditingContext._processObjectStoreChanges(EOEditingContext.java:3546) - ERXEC._processObjectStoreChanges(ERXEC.java:1555) - OCSEC.super$4$_processObjectStoreChanges(OCSEnterpriseObject.groovy:-1) - OCSEC._processObjectStoreChanges(OCSEnterpriseObject.groovy:137) - NSSelector.invoke(NSSelector.java:358) - NSSelector._safeInvokeSelector(NSSelector.java:110) - EOEditingContext._processNotificationQueue(EOEditingContext.java:4741) - EOEditingContext.lock(EOEditingContext.java:4620) - ERXEC.lock(ERXEC.java:568) - OCSEC.super$4$lock(OCSEnterpriseObject.groovy:-1) - OCSEC.lock(OCSEnterpriseObject.groovy:224) - EOEditingContext.tryLock(EOEditingContext.java:4632) - EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4705) - EOEditingContext._globalIDChanged(EOEditingContext.java:2038) - NSSelector._safeInvokeMethod(NSSelector.java:122) - NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588) - NSNotificationCenter.postNotification(NSNotificationCenter.java:532) - NSNotificationCenter.postNotification(NSNotificationCenter.java:562) - EOObjectStoreCoordinator._globalIDsChangedInSubStore(EOObjectStoreCoordinator.java:698) - NSSelector._safeInvokeMethod(NSSelector.java:122) - NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588) - NSNotificationCenter.postNotification(NSNotificationCenter.java:532) - NSNotificationCenter.postNotification(NSNotificationCenter.java:562) - EODatabaseContext.commitChanges(EODatabaseContext.java:6377) - EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:386) - EOEditingContext.saveChanges(EOEditingContext.java:3192) - ERXEC._saveChanges(ERXEC.java:1178) - ERXEC.saveChanges(ERXEC.java:1099) - OCSEC.super$4$saveChanges(OCSEnterpriseObject.groovy:-1) - OCSEC.saveChanges(OCSEnterpriseObject.groovy:106) - OCSEC$saveChanges.call(:-1) ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Memory Adaptor
Hi, I try to use the Memory adaptor for an EOModel. But on ec.saveChanges() I get an exception because the EREntityStore (er.memoryadaptor.ERMemoryEntityStore) cannot be instantiated within the EREntityStoreFactory. How can I solve that problem? I have created the EOModel with "Memory" as adaptor, then I lock my EC and create some EOs and execute ec.saveChanges(). Should I configure more things? Thanks André java.lang.IllegalArgumentException: Attempt to insert null object into an com.webobjects.foundation.NSMutableDictionary. at com.webobjects.foundation.NSMutableDictionary.setObjectForKey(NSMutableDictionary.java:206) at er.memoryadaptor.EREntityStoreFactory._entityStoreForExternalName(EREntityStoreFactory.java:108) at er.memoryadaptor.EREntityStoreFactory._entityStoreForEntity(EREntityStoreFactory.java:84) at er.memoryadaptor.ERMemoryAdaptorContext._entityStoreForEntity(ERMemoryAdaptorContext.java:69) at er.memoryadaptor.ERMemoryAdaptorContext._newPrimaryKey(ERMemoryAdaptorContext.java:74) at com.webobjects.eoaccess.EODatabaseContext._primaryKeyForObject(EODatabaseContext.java:4609) at com.webobjects.eoaccess.EODatabaseContext.prepareForSaveWithCoordinator(EODatabaseContext.java:5688) at com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:370) at com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192) ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: re/store context somehow? (OCsite)
On 19 May 2024, at 5:55 am, o...@ocs.cz wrote: > Hmmm... can you recall please some scenarios, which lead to the spectacular > failure? I'm talking only about ERPersistentSessionStorage.framework, and runtime failures occur whenever it hits something in the object graph rooted at your Session that isn't Java-serializable for any reason (including EOs, components, objects from Wonder, objects from your codebase). The most recent thread on this seems to be "WOSession serialisation redux" started by me on 19 May 2015. Ramsey thought at the time that he'd made Wonder-side fixes to bring it all "about 95% there". Of course, there's now 9 years of additional commits and bit-rot, but maybe it's still around that mark. Then there's your code, everything in your Sessions, EOs, and components. You can always give it a try and see what happens, but if you're only "about 95% there", that's a lot of unrecoverable, runtime failures to store your sessions. I wasn't talking about anything you're doing below. > Based on the ER source code and some Ramsey suggestionst (thanks again!) I've > found a way which so far, tested just for a short time only at my side, seems > to work reasonably well — here's the gist, without error checking, logging > and other cosmetics: > > === > class OCSSession extends ERXSession { > WOContext lastContext > void sleep { > if (context.page) lastContext=context.clone() > super.sleep() > } > } > > class OCSDirectAction extends ERXDirectAction { > WOActionResults restorePreviousStateAction { > Session ss=session() > if (ss.lastContext) { // code essentially stolen from > ERD2WDirectAction > String cid=ss.lastContext.request.stringFormValueForKey('__cid') > if (cid) return ss.restorePageForContextID(cid) > if (ss.lastContext.page) return ss.lastContext.page > } > pageWithName(MainPage.class.name) > } > } > === > > If you can foresee case(s) when it would fail, I'd be grateful for some > hints, so that I test them here and update my code appropriately. > > Thanks again and all the best, > OC -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: re/store context somehow? (OCsite)
Thanks a lot, also to all others! > On 18. 5. 2024, at 4:06, Paul Hoadley via Webobjects-dev > wrote: > On 18 May 2024, at 6:26 am, Amedeo Mantica via Webobjects-dev > mailto:webobjects-dev@lists.apple.com>> > wrote: >> I no longer use WO but I recall this framework in wonder: >> ERPersistentSessionStorage > > That framework is a fantastic proof of concept, but in practice the approach > can be quite brittle. It works by Java-serializing the object graph rooted at > the WOSession, so if any object in that graph isn't serializable, it's game > over for that session. By all means try it out, but in our experience (and > we've sunk many hours into experimentation with it), it works brilliantly > right up until it fails spectacularly. Hmmm... can you recall please some scenarios, which lead to the spectacular failure? Based on the ER source code and some Ramsey suggestionst (thanks again!) I've found a way which so far, tested just for a short time only at my side, seems to work reasonably well — here's the gist, without error checking, logging and other cosmetics: === class OCSSession extends ERXSession { WOContext lastContext void sleep { if (context.page) lastContext=context.clone() super.sleep() } } class OCSDirectAction extends ERXDirectAction { WOActionResults restorePreviousStateAction { Session ss=session() if (ss.lastContext) { // code essentially stolen from ERD2WDirectAction String cid=ss.lastContext.request.stringFormValueForKey('__cid') if (cid) return ss.restorePageForContextID(cid) if (ss.lastContext.page) return ss.lastContext.page } pageWithName(MainPage.class.name) } } === If you can foresee case(s) when it would fail, I'd be grateful for some hints, so that I test them here and update my code appropriately. Thanks again and all the best, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: re/store context somehow? (OCsite)
On 18 May 2024, at 6:26 am, Amedeo Mantica via Webobjects-dev wrote: > I no longer use WO but I recall this framework in wonder: > ERPersistentSessionStorage That framework is a fantastic proof of concept, but in practice the approach can be quite brittle. It works by Java-serializing the object graph rooted at the WOSession, so if any object in that graph isn't serializable, it's game over for that session. By all means try it out, but in our experience (and we've sunk many hours into experimentation with it), it works brilliantly right up until it fails spectacularly. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: re/store context somehow? (OCsite)
Your best bet is likely to store the entire WOComponent as an ivar in the session. You can get it from context().page() That way wen they return and the session is still alive you can return that ivar to render where they were and what they were doing. So you’ll need to store it in the session in something like the end of appendToResponse() and then maybe have a link in the top left corner to “restore prior page" > On May 17, 2024, at 4:56 PM, Amedeo Mantica via Webobjects-dev > wrote: > > I no longer use WO but I recall this framework in wonder: > ERPersistentSessionStorage > > Amedeo > > >> On 17 May 2024, at 22:01, Martino Limido via Webobjects-dev >> mailto:webobjects-dev@lists.apple.com>> >> wrote: >> >> Hi there, >> >> it’s important to note that the `WOContext` object in WebObjects ends with >> the lifecycle of the request and response. This means that simply storing >> the `WOContext` object is not feasible as it will no longer be available >> after the request is completed. >> >> ### Possibility of Implementation: >> >> 1. **Context Serialization**: >> - While WebObjects does not natively support serializing the entire >> `WOContext`, it is possible to manually serialize the essential parts of the >> context. This includes capturing the state of components, user inputs, and >> any relevant session information. >> - You can use `context().clone()` in `Session.sleep()` to clone the context >> state. However, ensure that all referenced objects within the context are >> serializable. This might involve customizing the serialization process for >> complex objects. >> >> 2. **State Storage**: >> - Store the serialized state in a persistent format, such as a database or >> a session file. The storage mechanism should be robust enough to handle the >> complexity of the serialized data and ensure it can be accurately retrieved >> later. >> >> 3. **State Restoration**: >> - In the `restorePreviousAction` DirectAction, implement a mechanism to >> deserialize and reintegrate the previously saved state. This involves >> reconstructing the `WOContext` and ensuring all components and user states >> are accurately restored. >> - This might require a custom deserialization logic to handle complex >> objects and ensure they are correctly linked within the session. >> >> ### Challenges: >> - **Complexity**: Serializing complex objects and managing cross-references >> can significantly increase code complexity. WebObjects' inherent >> statefulness and deep object graph make this particularly challenging. >> - **Data Integrity**: Ensuring data consistency during the serialization and >> deserialization process is critical. Any mismatch can lead to errors or >> inconsistent application states. >> - **Performance**: Serialization and deserialization can impact performance, >> especially if the context is large or complex. It’s important to optimize >> this process to minimize the performance overhead. >> >> ### Recommendation: >> Given the complexities and potential issues with this approach, it might be >> better to rethink the application design. Consider structuring the >> application to use DirectActions with simpler states that are easier to >> restore. This could involve: >> - Breaking down complex states into smaller, more manageable parts that can >> be easily serialized and deserialized. >> - Ensuring that each DirectAction has a well-defined and minimal state that >> can be captured and restored without requiring the entire context. >> - Leveraging stateless designs where possible, and using session storage >> judiciously to maintain essential state information. >> >> ### Conclusion: >> Implementing this functionality is technically possible but requires >> significant effort and a deep understanding of the object lifecycle in >> WebObjects. Given that the `WOContext` object ends with the request/response >> cycle, manually serializing and restoring its state is complex and >> potentially error-prone. >> >> >> Best regards, >> Martino >> >>> Il giorno 17 mag 2024, alle ore 21:00, webobjects-dev- >>> >>> 1. re/store context somehow? (OCsite) >>> >>> >>> -- >>> >>> Message: 1 >>> Date: Thu, 16 May 2024 21:14:39 +0200 >>> From: OCsite >>> To: OCsite via Webobjects-dev >>> Subject: re/store context som
Re: re/store context somehow? (OCsite)
I no longer use WO but I recall this framework in wonder: ERPersistentSessionStorage Amedeo > On 17 May 2024, at 22:01, Martino Limido via Webobjects-dev > wrote: > > Hi there, > > it’s important to note that the `WOContext` object in WebObjects ends with > the lifecycle of the request and response. This means that simply storing the > `WOContext` object is not feasible as it will no longer be available after > the request is completed. > > ### Possibility of Implementation: > > 1. **Context Serialization**: > - While WebObjects does not natively support serializing the entire > `WOContext`, it is possible to manually serialize the essential parts of the > context. This includes capturing the state of components, user inputs, and > any relevant session information. > - You can use `context().clone()` in `Session.sleep()` to clone the context > state. However, ensure that all referenced objects within the context are > serializable. This might involve customizing the serialization process for > complex objects. > > 2. **State Storage**: > - Store the serialized state in a persistent format, such as a database or > a session file. The storage mechanism should be robust enough to handle the > complexity of the serialized data and ensure it can be accurately retrieved > later. > > 3. **State Restoration**: > - In the `restorePreviousAction` DirectAction, implement a mechanism to > deserialize and reintegrate the previously saved state. This involves > reconstructing the `WOContext` and ensuring all components and user states > are accurately restored. > - This might require a custom deserialization logic to handle complex > objects and ensure they are correctly linked within the session. > > ### Challenges: > - **Complexity**: Serializing complex objects and managing cross-references > can significantly increase code complexity. WebObjects' inherent statefulness > and deep object graph make this particularly challenging. > - **Data Integrity**: Ensuring data consistency during the serialization and > deserialization process is critical. Any mismatch can lead to errors or > inconsistent application states. > - **Performance**: Serialization and deserialization can impact performance, > especially if the context is large or complex. It’s important to optimize > this process to minimize the performance overhead. > > ### Recommendation: > Given the complexities and potential issues with this approach, it might be > better to rethink the application design. Consider structuring the > application to use DirectActions with simpler states that are easier to > restore. This could involve: > - Breaking down complex states into smaller, more manageable parts that can > be easily serialized and deserialized. > - Ensuring that each DirectAction has a well-defined and minimal state that > can be captured and restored without requiring the entire context. > - Leveraging stateless designs where possible, and using session storage > judiciously to maintain essential state information. > > ### Conclusion: > Implementing this functionality is technically possible but requires > significant effort and a deep understanding of the object lifecycle in > WebObjects. Given that the `WOContext` object ends with the request/response > cycle, manually serializing and restoring its state is complex and > potentially error-prone. > > > Best regards, > Martino > >> Il giorno 17 mag 2024, alle ore 21:00, webobjects-dev- >> >> 1. re/store context somehow? (OCsite) >> >> >> -- >> >> Message: 1 >> Date: Thu, 16 May 2024 21:14:39 +0200 >> From: OCsite >> To: OCsite via Webobjects-dev >> Subject: re/store context somehow? >> Message-ID: <1d450aeb-ded8-4b1a-8438-59039f31b...@ocs.cz> >> Content-Type: text/plain; charset="utf-8" >> >> Hi there, >> >> my client made a somewhat weird request: wants me to store ?the last context >> the user worked in? in his session, and restore it when the user comes to >> the application through a specific Direct Action (and the session still >> lives). >> >> In other words, suppose the user works in the app for awhile, and then >> closes his browser, remembering just the session ID, nothing else. >> >> Next thing he does, he opens >> .../OurApp.woa/wa/restorePrevious?wosid=prevSessionID ? and wow, he finds >> the browser window in precisely the same state it was when he closed the >> browser some time ago. (Far as possible of cours
Re: re/store context somehow? (OCsite)
Hi there, it’s important to note that the `WOContext` object in WebObjects ends with the lifecycle of the request and response. This means that simply storing the `WOContext` object is not feasible as it will no longer be available after the request is completed. ### Possibility of Implementation: 1. **Context Serialization**: - While WebObjects does not natively support serializing the entire `WOContext`, it is possible to manually serialize the essential parts of the context. This includes capturing the state of components, user inputs, and any relevant session information. - You can use `context().clone()` in `Session.sleep()` to clone the context state. However, ensure that all referenced objects within the context are serializable. This might involve customizing the serialization process for complex objects. 2. **State Storage**: - Store the serialized state in a persistent format, such as a database or a session file. The storage mechanism should be robust enough to handle the complexity of the serialized data and ensure it can be accurately retrieved later. 3. **State Restoration**: - In the `restorePreviousAction` DirectAction, implement a mechanism to deserialize and reintegrate the previously saved state. This involves reconstructing the `WOContext` and ensuring all components and user states are accurately restored. - This might require a custom deserialization logic to handle complex objects and ensure they are correctly linked within the session. ### Challenges: - **Complexity**: Serializing complex objects and managing cross-references can significantly increase code complexity. WebObjects' inherent statefulness and deep object graph make this particularly challenging. - **Data Integrity**: Ensuring data consistency during the serialization and deserialization process is critical. Any mismatch can lead to errors or inconsistent application states. - **Performance**: Serialization and deserialization can impact performance, especially if the context is large or complex. It’s important to optimize this process to minimize the performance overhead. ### Recommendation: Given the complexities and potential issues with this approach, it might be better to rethink the application design. Consider structuring the application to use DirectActions with simpler states that are easier to restore. This could involve: - Breaking down complex states into smaller, more manageable parts that can be easily serialized and deserialized. - Ensuring that each DirectAction has a well-defined and minimal state that can be captured and restored without requiring the entire context. - Leveraging stateless designs where possible, and using session storage judiciously to maintain essential state information. ### Conclusion: Implementing this functionality is technically possible but requires significant effort and a deep understanding of the object lifecycle in WebObjects. Given that the `WOContext` object ends with the request/response cycle, manually serializing and restoring its state is complex and potentially error-prone. Best regards, Martino > Il giorno 17 mag 2024, alle ore 21:00, webobjects-dev- > > 1. re/store context somehow? (OCsite) > > > -- > > Message: 1 > Date: Thu, 16 May 2024 21:14:39 +0200 > From: OCsite > To: OCsite via Webobjects-dev > Subject: re/store context somehow? > Message-ID: <1d450aeb-ded8-4b1a-8438-59039f31b...@ocs.cz> > Content-Type: text/plain; charset="utf-8" > > Hi there, > > my client made a somewhat weird request: wants me to store ?the last context > the user worked in? in his session, and restore it when the user comes to the > application through a specific Direct Action (and the session still lives). > > In other words, suppose the user works in the app for awhile, and then closes > his browser, remembering just the session ID, nothing else. > > Next thing he does, he opens > .../OurApp.woa/wa/restorePrevious?wosid=prevSessionID ? and wow, he finds the > browser window in precisely the same state it was when he closed the browser > some time ago. (Far as possible of course, let's assume for simplicity the > internal app/session/DB state did not change meantime.) > > I guess most probably I need to save context().clone() into session each time > in Session.sleep(), that's not difficult. But then in my > DirectAction.restorePreviousAction I need to resurrect the saved context > somehow, but I can't find a way to do that. Does anybody know how to? > > 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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
re/store context somehow?
Hi there, my client made a somewhat weird request: wants me to store “the last context the user worked in” in his session, and restore it when the user comes to the application through a specific Direct Action (and the session still lives). In other words, suppose the user works in the app for awhile, and then closes his browser, remembering just the session ID, nothing else. Next thing he does, he opens .../OurApp.woa/wa/restorePrevious?wosid=prevSessionID — and wow, he finds the browser window in precisely the same state it was when he closed the browser some time ago. (Far as possible of course, let's assume for simplicity the internal app/session/DB state did not change meantime.) I guess most probably I need to save context().clone() into session each time in Session.sleep(), that's not difficult. But then in my DirectAction.restorePreviousAction I need to resurrect the saved context somehow, but I can't find a way to do that. Does anybody know how to? Thanks! OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
webserverresources path for older versions
Hi there, on our testing site, we often install more applications served by different builds, so that testers can easily compare the changes. E.g., two applications “Test2” and “Test3” are configured in JavaMonitor with paths “/Local/WOApps/Test/build2/Test.woa/Test” and “/Local/WOApps/Test/build3/Test.woa/Test” (and different log paths, yadda yadda). Works like a charm... but for the web server resources; they are, of course, by default shared and all builds automatically use the latest installed copy. It would help if we could somehow force an application (the one based on an older build) to consistently provide resources from the application folder, effectively ignoring split install, like it happens with direct connect, generating URLs like “/cgi-bin/WebObjects/Test.woa/wr/wodata=/the-current-app-path/Test.woa/Contents/WebServerResources/SomeFile.css” instead of those standard split-install “/WebObjects/Test.woa/Contents/WebServerResources/SomeFile.css” ones. Is there a setting or another trick to enforce that? I've tried to set “-WODirectConnectEnabled YES” for an application served by an older build, but to no avail, it still keeps generating the normal split-install URLs. Or is there another easy trick to do that? Of course I could use the “href” binding in my “ERXStyleSheet” and similar tags instead of “filename” (and tweak all the “additionalCSSFiles” in a similar way, yadda...) and compute the paths programmatically based on something like “WOApplication.application().path()”, but that could get sorta ugly soon... and besides, I'd much rather exploit the framework power than to skip it and DIY :) Thanks! OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
Hi Francois! > On May 3, 2024, at 20:57, Francois BIENTZ wrote: > > Hi Hugi > > Ah yes the missing "natures" alert can be stopped in the Eclipses > preferences . Ah, excellent. I guess we should really just fix that thing with WO requiring that nature… I somehow doubt cease-and-desist orders will start streaming in from Apple if we decompile NSStandardProjectBundle in ERFoundation, change that nature string and just drop it into Wonder. > I have to learn lots of things from maven before being able to use your > Wonder-slim. Don't hesitate to ask if you hit problems. The transition has usually been easy, and I think the community has already bumped into all the potentially sharp corners and knows the solutions. Here's a transition guide that Paul has contributed as well (and that's been on it's way to the Wiki for years now). https://gist.github.com/hugithordarson/3c269a3196d0c4f2da486f1109c16d42 > Thank you for your new link to "Let’s set it up". > > If I understand well , you use Wonder-slim (Wo and Wonder parts) for the web > parts and Cayenne replaces EOF. Yes, I use WO/Slim for all web work. And if I need to speak to a DB and can choose the library to use, I usually use Cayenne. Cheers, - hugi > > Francois > >> Le 1 mai 2024 à 23:38, Francois BIENTZ a écrit : >> >> Hi Hugi >> >> Thank you >> When I import wonder-slim in eclipse I get the "your IDE is missing natures >> to properly support your project " >> In your wonder-slim README the link after "Let’s set it up" seems broken. >> May be is something wrong in my Wo / Maven configuration. >> I can’t find the testapp in the repository to "play around ". >> >> Francois >> >>> Le 1 mai 2024 à 16:31, Hugi Thordarson via Webobjects-dev >>> a écrit : >>> >>> Hi Ricardo, >>> >>> https://github.com/undur/wonder-slim >>> >>> in short, it's a fork of Wonder that removes everything except >>> ERExtensions, WOOGNL and JavaWOExtensions (which are all combined in a >>> single framework, since they're usually all required and present in WO >>> projects) plus Ajax.framework. So basically, a small subset of Project >>> Wonder. >>> >>> It also: >>> >>> * Has >a lot< of stuff removed, reorganized, refactored and cleaned up to >>> make it cleaner, nicer and easier to understand and maintain >>> * Based on JDK 21 >>> * Has all logging moved to slf4j-api and log4j specific stuff moved to a >>> separate framework (which replaces log4j with reload4j). >>> * Replaces proprietary APIs and library usage with the standard methods >>> we've gained from modern JDKs (so the only 3rd party dependency it pulls in >>> is slf4j-api) >>> * Assumes it's running on the last released version of WO (5.4.3), removing >>> workarounds for older versions >>> * And a lot more… That's just off the top of my head >>> >>> I initially started it mostly as an experiment to learn Wonder's insides, >>> see how it could be cleaned up, better organized and even split up, >>> planning to eventually backport some of the cleanup work. But eventually it >>> just got out of hand and I now just use it in all of my projects :). >>> >>> A point to keep in mind is that it also removes everything related to EOF, >>> since in my world EOF is legacy (and yes, please don't be insulted, I'm >>> well aware that that's a subjective view from a Cayenne user. For actual >>> EOF users I know EOF is fine and in full use). But that means — if you're >>> currently using Wonder/EOF in your projects, I would not recommend Slim >>> since you're probably dependent on both Wonder's APIs, patches and fixes to >>> EOF. >>> >>> A side project was splitting off the deployment tools into a separate >>> project (where I haven't done as much work yet, but that's soon to come). >>> Just feels like these tools deserve their own effort. >>> >>> https://github.com/undur/wonder-deployment >>> >>> All in all, this is really something of a niche project and I wouldn't >>> consider it essential for anyone currently using Wonder. But for someone >>> like me, who uses WO only for it's web framework features, and just wants >>> some of the basics and fixes Wonder adds in that area, it's turned out nice. >>> >>> Cheers
.wo parser/validator?
Hi, is there a commandline tool which would parse and validate a .wo, so that I could include it into my toolchain and get warnings and errors for malformed html templates build-time, instead of run-time when the appropriate page is opened? Thanks! OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WoCommunity list
Hi Francois, On 3 May 2024, at 01:29, Francois BIENTZ via Webobjects-dev wrote: > Howto subscribe to > https://lists.wocommunity.org/Lists/webobjects-dev/List.html ? There are several subscribe links right at the bottom of that page. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/ ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
WoCommunity list
Hi all Howto subscribe to https://lists.wocommunity.org/Lists/webobjects-dev/List.html <https://lists.wocommunity.org/Lists/webobjects-dev/List.html> ? the https://www.mail-archive.com/webobjects-dev@lists.apple.com/ <https://www.mail-archive.com/webobjects-dev@lists.apple.com/> seems not want to work each day for me ... ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
Thank you Hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
> On May 1, 2024, at 21:37, Francois BIENTZ wrote: > > Hi Hugi > > Thank you > When I import wonder-slim in eclipse I get the "your IDE is missing natures > to properly support your project " Ah, just tried importing in a new Eclipse worksoace and I get the same message. It seems to be complaining about the "org.maven.ide.eclipse.maven2Nature", so just click "Cancel" and you should be fine. That project nature is deprecated and is in there only for WO, so it won't matter to you or Eclipse. (the project also has the modern equivalent nature "org.eclipse.m2e.core.maven2Nature" which is for Eclipse). > In your wonder-slim README the link after "Let’s set it up" seems broken. May > be is something wrong in my Wo / Maven configuration. Ah, sorry — haven't looked at that README in ages :). I've corrected the URL, it's https://gist.github.com/hugithordarson/d2ba6da9e4942f4ece95d7a721159cd1 . > I can’t find the testapp in the repository to "play around ". I probably deleted that app pretty early on. It was really just an empty application I think, so you can achieve the same by creating one of those (or adding wonder-slim to one of your existing projects). Cheers, - hugi > > Francois > >> Le 1 mai 2024 à 16:31, Hugi Thordarson via Webobjects-dev >> a écrit : >> >> Hi Ricardo, >> >> https://github.com/undur/wonder-slim >> >> in short, it's a fork of Wonder that removes everything except ERExtensions, >> WOOGNL and JavaWOExtensions (which are all combined in a single framework, >> since they're usually all required and present in WO projects) plus >> Ajax.framework. So basically, a small subset of Project Wonder. >> >> It also: >> >> * Has >a lot< of stuff removed, reorganized, refactored and cleaned up to >> make it cleaner, nicer and easier to understand and maintain >> * Based on JDK 21 >> * Has all logging moved to slf4j-api and log4j specific stuff moved to a >> separate framework (which replaces log4j with reload4j). >> * Replaces proprietary APIs and library usage with the standard methods >> we've gained from modern JDKs (so the only 3rd party dependency it pulls in >> is slf4j-api) >> * Assumes it's running on the last released version of WO (5.4.3), removing >> workarounds for older versions >> * And a lot more… That's just off the top of my head >> >> I initially started it mostly as an experiment to learn Wonder's insides, >> see how it could be cleaned up, better organized and even split up, planning >> to eventually backport some of the cleanup work. But eventually it just got >> out of hand and I now just use it in all of my projects :). >> >> A point to keep in mind is that it also removes everything related to EOF, >> since in my world EOF is legacy (and yes, please don't be insulted, I'm well >> aware that that's a subjective view from a Cayenne user. For actual EOF >> users I know EOF is fine and in full use). But that means — if you're >> currently using Wonder/EOF in your projects, I would not recommend Slim >> since you're probably dependent on both Wonder's APIs, patches and fixes to >> EOF. >> >> A side project was splitting off the deployment tools into a separate >> project (where I haven't done as much work yet, but that's soon to come). >> Just feels like these tools deserve their own effort. >> >> https://github.com/undur/wonder-deployment >> >> All in all, this is really something of a niche project and I wouldn't >> consider it essential for anyone currently using Wonder. But for someone >> like me, who uses WO only for it's web framework features, and just wants >> some of the basics and fixes Wonder adds in that area, it's turned out nice. >> >> Cheers, >> - hugi >> >> >>> On May 1, 2024, at 13:54, Ricardo Parada wrote: >>> >>> Hi all, >>> >>> I’m just curious, what is Wonder-slim? >>> >>> Thanks >>> Ricardo >>> >>> >>>>> On Apr 29, 2024, at 4:57 PM, Hugi Thordarson via Webobjects-dev >>>>> wrote: >>>> >>>> Hi Francois, >>>> I'm pretty sure I'm the only one using it at the moment :). If you're >>>> considering using it, I'd be more than happy to start making actual >>>> releases. As the only user, I've been lazy enough to just work from >>>> snapshot releases which i
Re: Wonder-slim
Hi Hugi Thank you When I import wonder-slim in eclipse I get the "your IDE is missing natures to properly support your project " In your wonder-slim README the link after "Let’s set it up" seems broken. May be is something wrong in my Wo / Maven configuration. I can’t find the testapp in the repository to "play around ". Francois > Le 1 mai 2024 à 16:31, Hugi Thordarson via Webobjects-dev > a écrit : > > Hi Ricardo, > > https://github.com/undur/wonder-slim > > in short, it's a fork of Wonder that removes everything except ERExtensions, > WOOGNL and JavaWOExtensions (which are all combined in a single framework, > since they're usually all required and present in WO projects) plus > Ajax.framework. So basically, a small subset of Project Wonder. > > It also: > > * Has >a lot< of stuff removed, reorganized, refactored and cleaned up to > make it cleaner, nicer and easier to understand and maintain > * Based on JDK 21 > * Has all logging moved to slf4j-api and log4j specific stuff moved to a > separate framework (which replaces log4j with reload4j). > * Replaces proprietary APIs and library usage with the standard methods we've > gained from modern JDKs (so the only 3rd party dependency it pulls in is > slf4j-api) > * Assumes it's running on the last released version of WO (5.4.3), removing > workarounds for older versions > * And a lot more… That's just off the top of my head > > I initially started it mostly as an experiment to learn Wonder's insides, see > how it could be cleaned up, better organized and even split up, planning to > eventually backport some of the cleanup work. But eventually it just got out > of hand and I now just use it in all of my projects :). > > A point to keep in mind is that it also removes everything related to EOF, > since in my world EOF is legacy (and yes, please don't be insulted, I'm well > aware that that's a subjective view from a Cayenne user. For actual EOF users > I know EOF is fine and in full use). But that means — if you're currently > using Wonder/EOF in your projects, I would not recommend Slim since you're > probably dependent on both Wonder's APIs, patches and fixes to EOF. > > A side project was splitting off the deployment tools into a separate project > (where I haven't done as much work yet, but that's soon to come). Just feels > like these tools deserve their own effort. > > https://github.com/undur/wonder-deployment > > All in all, this is really something of a niche project and I wouldn't > consider it essential for anyone currently using Wonder. But for someone like > me, who uses WO only for it's web framework features, and just wants some of > the basics and fixes Wonder adds in that area, it's turned out nice. > > Cheers, > - hugi > > >> On May 1, 2024, at 13:54, Ricardo Parada wrote: >> >> Hi all, >> >> I’m just curious, what is Wonder-slim? >> >> Thanks >> Ricardo >> >> >>>> On Apr 29, 2024, at 4:57 PM, Hugi Thordarson via Webobjects-dev >>>> wrote: >>> >>> Hi Francois, >>> I'm pretty sure I'm the only one using it at the moment :). If you're >>> considering using it, I'd be more than happy to start making actual >>> releases. As the only user, I've been lazy enough to just work from >>> snapshot releases which is pretty far from best practice, so it's about >>> time. >>> >>> Cheers, >>> - hugi >>> >>> >>>> On Apr 28, 2024, at 22:06, Francois BIENTZ via Webobjects-dev >>>> wrote: >>>> >>>> Someone using Wonder-slim ? >>>> ___ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >>>> >>>> This email sent to h...@karlmenn.is >>> >>> ___ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/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: > https://lists.apple.com/mailman/options/webobjects-dev/f.bientz%40laposte.net > > This email sent to f.bie...@laposte.net ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
Hi Ricardo, https://github.com/undur/wonder-slim in short, it's a fork of Wonder that removes everything except ERExtensions, WOOGNL and JavaWOExtensions (which are all combined in a single framework, since they're usually all required and present in WO projects) plus Ajax.framework. So basically, a small subset of Project Wonder. It also: * Has >a lot< of stuff removed, reorganized, refactored and cleaned up to make it cleaner, nicer and easier to understand and maintain * Based on JDK 21 * Has all logging moved to slf4j-api and log4j specific stuff moved to a separate framework (which replaces log4j with reload4j). * Replaces proprietary APIs and library usage with the standard methods we've gained from modern JDKs (so the only 3rd party dependency it pulls in is slf4j-api) * Assumes it's running on the last released version of WO (5.4.3), removing workarounds for older versions * And a lot more… That's just off the top of my head I initially started it mostly as an experiment to learn Wonder's insides, see how it could be cleaned up, better organized and even split up, planning to eventually backport some of the cleanup work. But eventually it just got out of hand and I now just use it in all of my projects :). A point to keep in mind is that it also removes everything related to EOF, since in my world EOF is legacy (and yes, please don't be insulted, I'm well aware that that's a subjective view from a Cayenne user. For actual EOF users I know EOF is fine and in full use). But that means — if you're currently using Wonder/EOF in your projects, I would not recommend Slim since you're probably dependent on both Wonder's APIs, patches and fixes to EOF. A side project was splitting off the deployment tools into a separate project (where I haven't done as much work yet, but that's soon to come). Just feels like these tools deserve their own effort. https://github.com/undur/wonder-deployment All in all, this is really something of a niche project and I wouldn't consider it essential for anyone currently using Wonder. But for someone like me, who uses WO only for it's web framework features, and just wants some of the basics and fixes Wonder adds in that area, it's turned out nice. Cheers, - hugi > On May 1, 2024, at 13:54, Ricardo Parada wrote: > > Hi all, > > I’m just curious, what is Wonder-slim? > > Thanks > Ricardo > > >> On Apr 29, 2024, at 4:57 PM, Hugi Thordarson via Webobjects-dev >> wrote: >> >> Hi Francois, >> I'm pretty sure I'm the only one using it at the moment :). If you're >> considering using it, I'd be more than happy to start making actual >> releases. As the only user, I've been lazy enough to just work from snapshot >> releases which is pretty far from best practice, so it's about time. >> >> Cheers, >> - hugi >> >> >>> On Apr 28, 2024, at 22:06, Francois BIENTZ via Webobjects-dev >>> wrote: >>> >>> Someone using Wonder-slim ? >>> ___ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >>> >>> This email sent to h...@karlmenn.is >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
Hi all, I’m just curious, what is Wonder-slim? Thanks Ricardo > On Apr 29, 2024, at 4:57 PM, Hugi Thordarson via Webobjects-dev > wrote: > > Hi Francois, > I'm pretty sure I'm the only one using it at the moment :). If you're > considering using it, I'd be more than happy to start making actual releases. > As the only user, I've been lazy enough to just work from snapshot releases > which is pretty far from best practice, so it's about time. > > Cheers, > - hugi > > >> On Apr 28, 2024, at 22:06, Francois BIENTZ via Webobjects-dev >> wrote: >> >> Someone using Wonder-slim ? >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >> >> This email sent to h...@karlmenn.is > > _______ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/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: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Wonder-slim
Hi Francois, I'm pretty sure I'm the only one using it at the moment :). If you're considering using it, I'd be more than happy to start making actual releases. As the only user, I've been lazy enough to just work from snapshot releases which is pretty far from best practice, so it's about time. Cheers, - hugi > On Apr 28, 2024, at 22:06, Francois BIENTZ via Webobjects-dev > wrote: > > Someone using Wonder-slim ? > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is > > This email sent to h...@karlmenn.is ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Wonder-slim
Someone using Wonder-slim ? ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Debug frameworks with maven project
So, a little late addendum to this discussion... While posting a video on YouTube yesterday I noticed a video I created last year (and had totally forgotten about) that illustrates this exact issue: https://www.youtube.com/watch?v=c2-YxVDYu_8 In short, the reason I'm not having problems with linking between projects is that for a long time I've been running my WO applications as plain java applications, not as WOApplications. The reason I did this initially is that WOApplication launch configurations generate a totally botched class path for maven projects, as described here: https://github.com/wocommunity/wolips/issues/153. So, yeah... If you're using maven and want a correct classpath and proper inter-project relationships, run your applications as Java applications, not WOApplications. Cheers, - hugi > On Apr 16, 2024, at 05:28, Hugi Thordarson via Webobjects-dev > wrote: > > I don't think I've ever had to attach sources of maven projects manually in > Eclipse (although I recall hitting something like this in a far past). And > given the second problem, it kind of sounds like the link between the app > project and the libraries/frameworks is completely broken. > > Paul's suggestions are good, also, if you close all your projects and then > open the main (application) project, does Eclipse offer to open "related > projects" and open them for you? > > Cheers, > - hugi > > >> On Apr 16, 2024, at 02:16, Paul Hoadley via Webobjects-dev >> wrote: >> >> Hi Samuel, >> >> On 11 Apr 2024, at 03:45, Samuel Pelletier via Webobjects-dev >> wrote: >> >>> I created a new workspace with the latest Eclipse to migrate my project to >>> maven. My projects run and I can debug the application code (set >>> breakpoint, click on exception stack trace to open project source) but all >>> debug functions are not working for frameworks. I set breakpoint in code >>> but Eclipse open class from a jar instead of my source. >> >> I hadn't noticed this before, but you're right. You need to tell Eclipse >> where to find the source. See: >> >> https://stackoverflow.com/a/22934568/18493 >> >>> Also, I have to restart the app to test for my code change in frameworks >>> even with an hot swap enable JRE. Seems Eclipse does not figure out the >>> maven dependencies code is in the current workspace. >> >> This I cannot reproduce. Possible explanations: >> >> 1. Maven versions have to match precisely, obviously. That is, the version >> your application POM is asking for must match the version the project open >> in the workspace is providing. >> >> 2. You have to launch the app using "Debug As...". >> >> 3. There are certain changes that hot code replacement won't allow, though >> these are usually flagged by Eclipse when you try. What type of change were >> you making? >> >> >> -- >> Paul Hoadley >> https://logicsquad.net/ >> https://www.linkedin.com/company/logic-squad/ >> >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >> >> This email sent to h...@karlmenn.is > > _______ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is > > This email sent to h...@karlmenn.is ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: action in a sub-component?
Hugi, thanks, works like a charm! (So far I bumped into no problem without setCurrentComponent( parent() ). Somewhat weird, but well, far as it works... :)) Thanks and all the best, OC > On 26. 4. 2024, at 22:19, Hugi Thordarson via Webobjects-dev > wrote: > > I've never done this, but it's such a nice brain-teaser I had to try :). And > what I did _seems_ to work. > > https://gist.github.com/hugithordarson/37d03336de17cfcf3ac399f6325e0ff2 > > The key is making the child component non-synchronizing, otherwise the parent > action will get invoked during the pulling of binding values. And it should > be quite OK if the action method returns null, that just means the same as > returning null from any action invocation, i.e. "I'm working within and > returning the current page instance". > > I'm thinking… It kind of feels like one would have to setCurrentComponent( > parent() ) in the child before performing the action invocation and then > reset it back to itself afterwards (since we're really invoking an action > within the context of the parent component), but I might be wrong, this seems > to work without it. > > Cheers, > - hugi > > > >> On Apr 26, 2024, at 19:47, ocs--- via Webobjects-dev >> wrote: >> >> Hi there, >> >> I've got a sub-component which uses performParentAction; the appropriate >> binding is something like . Works >> perfectly. >> >> Purely for aesthetic reasons (and, well, for consistency), I would prefer if >> I could use the sub-component precisely same way one uses wo:hyperlink, >> i.e., like this: >> >> Is there a trick to achieve that? Looks like in this case when I try >> valueForBinding('action'), I get NULL :( >> >> Thanks, >> OC >> >> _______ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >> >> This email sent to h...@karlmenn.is > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/ocs%40ocs.cz > > This email sent to o...@ocs.cz ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: action in a sub-component?
I've never done this, but it's such a nice brain-teaser I had to try :). And what I did _seems_ to work. https://gist.github.com/hugithordarson/37d03336de17cfcf3ac399f6325e0ff2 The key is making the child component non-synchronizing, otherwise the parent action will get invoked during the pulling of binding values. And it should be quite OK if the action method returns null, that just means the same as returning null from any action invocation, i.e. "I'm working within and returning the current page instance". I'm thinking… It kind of feels like one would have to setCurrentComponent( parent() ) in the child before performing the action invocation and then reset it back to itself afterwards (since we're really invoking an action within the context of the parent component), but I might be wrong, this seems to work without it. Cheers, - hugi > On Apr 26, 2024, at 19:47, ocs--- via Webobjects-dev > wrote: > > Hi there, > > I've got a sub-component which uses performParentAction; the appropriate > binding is something like . Works > perfectly. > > Purely for aesthetic reasons (and, well, for consistency), I would prefer if > I could use the sub-component precisely same way one uses wo:hyperlink, i.e., > like this: > > Is there a trick to achieve that? Looks like in this case when I try > valueForBinding('action'), I get NULL :( > > Thanks, > OC > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is > > This email sent to h...@karlmenn.is ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
action in a sub-component?
Hi there, I've got a sub-component which uses performParentAction; the appropriate binding is something like . Works perfectly. Purely for aesthetic reasons (and, well, for consistency), I would prefer if I could use the sub-component precisely same way one uses wo:hyperlink, i.e., like this: Is there a trick to achieve that? Looks like in this case when I try valueForBinding('action'), I get NULL :( Thanks, OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: enumerating sessions?
Hi, As Hugi wrote, you can access the list via the session store. Be careful with access to objects inside those sessions, especially EOs since you are outside their normal RR loop request. I have a standard way to list active users and keep track of last access inside session by adding those attributes: private long lastSleepDate; private long lastUserRequestDate; private boolean isRequestFromUser; and adding those overrides... @Override public void awake() { super.awake(); isRequestFromUser = true; } @Override public void sleep() { lastSleepDate = System.currentTimeMillis(); if (isRequestFromUser) { lastUserRequestDate = lastSleepDate; } super.sleep(); } public void setRequestIsPing() { isRequestFromUser = false; } The setRequestIsPing is to discriminate auto refresh ping request in my page wrapper use to keep session alive when the app is displayed. I have this in the template: And this in the component java class: public String pingString() { if (ERXApplication.isAjaxRequest(context().request())) { session().setRequestIsPing(); } return null; } And this to list active sessions (SessionInfo is POJO): WOServerSessionStore sessionStore = (WOServerSessionStore) WOApplication.application().sessionStore(); @SuppressWarnings("unchecked") NSArray sessions = sessionStore._sessions().allValues(); NSMutableArray sessionInfos = new NSMutableArray<>(); for (Session session : sessions) { SessionInfo info = new SessionInfo(); info.hashCode = session.hashCode(); info.lastSleepDatetime = session.lastSleepDatetime(); info.lastUserRequestDate = session.lastUserRequestDate(); info.timeOut = session.timeOutMillis(); info.usager = session.userAccessService().currentUser(); sessionInfos.add(info); } new ERXKey("lastUserRequestDate").desc().sort(sessionInfos); Regards, Samuel > Le 26 avr. 2024 à 08:48, Hugi Thordarson via Webobjects-dev > a écrit : > > Hi, > if you're using WO's standard session store (WOServerSessionStore) you should > be able to access the active sessions using: > > ((WOServerSessionStore)WOApplication.application().sessionStore())._sessions() > > It will return a dictionary consisting of sessionID -> Session. > > Not using it though, I'm achieving this myself by using the notifications > posted by session management (SessionDidRestoreNotification, > SessionDidCreateNotification and SessionDidTimeOutNotification), so I can > keep track of more info (like when the session was last touched). > > Cheers, > - hugi > > >> On Apr 26, 2024, at 12:33, OCsite via Webobjects-dev >> wrote: >> >> Hi there, >> >> is there a way to enumerate sessions which are alive inside of a >> WO/ERXApplication? >> >> I guess I can create such a list myself, adding new ones in session.awake, >> keeping it weak not to prevent old sessions to be destroyed (or perhaps >> storing just session IDs), yadda yadda, but it would be much easier and less >> error-prone just to use a WO/nder service, if there's one. >> >> The purpose is that we need to allow an app administrator to list all the >> normal users which are currently logged in, and be able to force-logout >> selected ones. >> >> Thanks! >> OC >> ___ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >> >> This email sent to h...@karlmenn.is > > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com > > This email sent to sam...@samkar.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: enumerating sessions?
Hi, if you're using WO's standard session store (WOServerSessionStore) you should be able to access the active sessions using: ((WOServerSessionStore)WOApplication.application().sessionStore())._sessions() It will return a dictionary consisting of sessionID -> Session. Not using it though, I'm achieving this myself by using the notifications posted by session management (SessionDidRestoreNotification, SessionDidCreateNotification and SessionDidTimeOutNotification), so I can keep track of more info (like when the session was last touched). Cheers, - hugi > On Apr 26, 2024, at 12:33, OCsite via Webobjects-dev > wrote: > > Hi there, > > is there a way to enumerate sessions which are alive inside of a > WO/ERXApplication? > > I guess I can create such a list myself, adding new ones in session.awake, > keeping it weak not to prevent old sessions to be destroyed (or perhaps > storing just session IDs), yadda yadda, but it would be much easier and less > error-prone just to use a WO/nder service, if there's one. > > The purpose is that we need to allow an app administrator to list all the > normal users which are currently logged in, and be able to force-logout > selected ones. > > Thanks! > OC > _______ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is > > This email sent to h...@karlmenn.is ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: enumerating sessions?
Off the top of my head? I’d not use sessions for that — I’ve done some bank apps where only one session is allowed and some other stuff, but we avoided relying on or tracking sessions, rather we build a login scheme that tracked this concept specifically and we let session and cookies stuff be. Keep us posted. > On Apr 26, 2024, at 8:33 AM, OCsite via Webobjects-dev > wrote: > > Hi there, > > is there a way to enumerate sessions which are alive inside of a > WO/ERXApplication? > > I guess I can create such a list myself, adding new ones in session.awake, > keeping it weak not to prevent old sessions to be destroyed (or perhaps > storing just session IDs), yadda yadda, but it would be much easier and less > error-prone just to use a WO/nder service, if there's one. > > The purpose is that we need to allow an app administrator to list all the > normal users which are currently logged in, and be able to force-logout > selected ones. > > Thanks! > OC > ___ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com > > This email sent to jtay...@oeinc.com _______ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
enumerating sessions?
Hi there, is there a way to enumerate sessions which are alive inside of a WO/ERXApplication? I guess I can create such a list myself, adding new ones in session.awake, keeping it weak not to prevent old sessions to be destroyed (or perhaps storing just session IDs), yadda yadda, but it would be much easier and less error-prone just to use a WO/nder service, if there's one. The purpose is that we need to allow an app administrator to list all the normal users which are currently logged in, and be able to force-logout selected ones. Thanks! OC ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com