Weaving is different than Dynamic join point interception. Farrukh
On 2012-07-11, at 10:40 PM, John Huss <[email protected]> wrote: > My understanding is that AOP requires "weaving" or rewriting of the bytecode. > If so, this is not allowed by the license - it prohibits modification. But > people may not care about that. Decompiling whole classes to fix bugs has > been done before. It makes me quesy though. > > On Wed, Jul 11, 2012 at 1:12 PM, Farrukh Ijaz > <[email protected]> wrote: > Hi, > > In past I've used AOP to address issues of closed source. This I believe if > carefully used can help convert the EOF from single to multi threaded and/or > solve other bottleneck problems. Having said this doesn't mean I'm against > Cayane. However if the current EOF issues get fixed with AOP patched code > would be better for those who don't want to or for some reasons can't switch > to Cayane. > > Farrukh > > Chuck Hill <[email protected]> wrote: > > >I agree that we need to more closely examine Cayenne before jumping in with > >both feet. How mature are the tools? What is the functionality gap? How > >important is the missing functionality? How costly is adding any needed > >functionality? Will the missing functionality fit in with the Cayenne > >architecture? How stable is it? How well does it scale (scaling is more > >than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do > >we do about the presentation layer? Getting rid of 2/3 of WO still leaves > >you with WO. > > > > > >Chuck > > > >On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: > > > >> > >> Hurray someone actually started talking about this. > >> > >> > >> I want to add my two cents without starting a "this is better than that" > >> conversation. > >> > >> If Cayenne is to be utilized, someone in the know must look not only at > >> the current state of Cayenne, but at the developers. What is/was their > >> philosophy behind what they write/wrote? If we don't, it will be a very > >> short and costly marriage. Costly, because we either buck up and foot the > >> bill to rewrite Webobjects or continue in a bad relationship. > >> > >> I am writing this not as a diatribe but because I am concerned that in the > >> excitement of looking at Cayenne, the obvious impact of differing > >> philosophies of the original authors may be ignored. BTW, I say original > >> authors because the person that wrote the first line of code left his/her > >> imprint on the direction of all code that follows. > >> > >> JMHO (i mean that sincerely). > >> > >> Ted > >> > >>> Message: 4 > >>> Date: Wed, 11 Jul 2012 10:09:08 -0500 > >>> From: John Huss <[email protected]> > >>> To: WebObjects-Dev Mailing List List <[email protected]> > >>> Subject: Migrating from EOF to Cayenne > >>> Message-ID: > >>> > >>> <CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com> > >>> Content-Type: text/plain; charset="windows-1252" > >>> > >>> At WOWODC there was a lot of interest in migrating from EOF > >>> to Cayenne, and > >>> even entirely rebasing Wonder to run on top of Cayenne > >>> instead of EOF. > >>> > >>> *Why would anyone want to do this? * > >>> > >>> 1. Cayenne is open-source and is actively > >>> being developed > >>> 2. Cayenne has great concurrency support > >>> which is in stark contrast to > >>> EOF single-threaded architecture > >>> 3. Cayenne is conceptually very similar to > >>> EOF so the transition is > >>> fairly straightforward > >>> > >>> For those reasons it is a much better long term solution > >>> than EOF, which is > >>> now frozen in time. Cayenne can be used inside a WO > >>> application as an EOF > >>> replacement while continuing to use the rest of WebObjects. > >>> > >>> *I'm interested. Now what?* > >>> > >>> - Learn about Cayenne. The best source of > >>> information for comparing EOF > >>> and Cayenne is on the > >>> wiki<http://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne>. > >>> In addition, you can look at the > >>> documentation<http://cayenne.apache.org/>for > >>> Cayenne. > >>> - Use Cayenne in your new projects. > >>> Cayenne runs just fine inside a > >>> WebObjects application. Wonder has > >>> the ERCayenne framework and > >>> ERCayenneExample to help you get started. > >>> I suggest working with the trunk > >>> of the Cayenne source (and Wonder too) > >>> since some things are just being > >>> added to make this easier. > >>> - Help work on easing and automating the > >>> migration from EOF to Cayenne. > >>> It is possible to automate a large part of > >>> the work involved in moving from > >>> EOF to Cayenne. But it requires effort. > >>> ERCayenne in Wonder has a class > >>> that will convert an EOModel to a Cayenne > >>> model (the class is > >>> CayenneConverter). This works well, but > >>> could be improved. I've started > >>> working on an Eclipse refactoring script > >>> that will convert from one API to > >>> the other. Yes, you may not have known (I > >>> didn't) that Eclipse can record a > >>> series of refactorings and save it as a > >>> script. The bulk of the migration > >>> work is creating refactoring scripts in > >>> Eclipse by performing refactorings > >>> on a stubbed out version of the EOF API to > >>> convert the API into the > >>> equivalent Cayenne API. After performing > >>> the refactorings, a script can be > >>> exported using Refactor->"Create > >>> Script". For EOF methods that do not have > >>> a direct Cayenne equivalent, helper > >>> methods (or classes) will need to be > >>> written that can serve as a direct > >>> replacement. > >>> > >>> *How can I help specifically with the migration effort?* > >>> > >>> - CayenneConverter in ERCayenne (for > >>> converting the model) does not > >>> convert the connection dictionaries in the > >>> EOModel yet. > >>> - CayenneConverter does a poor job > >>> converting fetch specs defined in the > >>> model currently. > >>> - We need to create new subclasses of > >>> Cayenne's DbAdapter that use the > >>> Wonder naming convention for primary key > >>> generators/sequences. This is done > >>> by subclassing classes like > >>> PostgresPkGenerator and overriding > >>> sequenceName. This is necessary to > >>> support existing databases created with > >>> EOF. > >>> - An Wonder-like entity template is > >>> already in ERCayenneExample. This > >>> needs to be examined and any missing > >>> functions from WonderEntity need to be > >>> added. For example, I know some the > >>> .deleteAllXXXXRelationships and > >>> .createXXXX(…) methods are missing. > >>> - More refactorings need to created. For > >>> example, a refactoring script > >>> should be made that changes NSArray and > >>> NSDictionary methods to the > >>> equivalent List or Map APIs (since Cayenne > >>> doesn't use these classes for > >>> relationships or fetch results you > >>> probably want to minimize the places you > >>> need them). > >>> - Submit code to Cayenne or create > >>> Jira<https://issues.apache.org/jira/browse/CAY>issues > >>> > >>> Any questions? :-) > >>> > >>> John > >> > >> > >> _______________________________________________ > >> Do not post admin requests to the list. They will be ignored. > >> Webobjects-dev mailing list ([email protected]) > >> Help/Unsubscribe/Update your Subscription: > >> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net > >> > >> This email sent to [email protected] > > > >-- > >Chuck Hill Senior Consultant / VP Development > > > >Practical WebObjects - for developers who want to increase their overall > >knowledge of WebObjects or who are trying to solve specific problems. > >http://www.global-village.net/gvc/practical_webobjects > > > > > > > > > > > > > > > > > > > > _______________________________________________ > >Do not post admin requests to the list. They will be ignored. > >Webobjects-dev mailing list ([email protected]) > >Help/Unsubscribe/Update your Subscription: > >https://lists.apple.com/mailman/options/webobjects-dev/farrukh.ijaz%40fuegodigitalmedia.com > > > >This email sent to [email protected] > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/johnthuss%40gmail.com > > This email sent to [email protected] >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
