Hi Maik, Thanks for the information, and especially for the nudge towards using annotations. I think I like that idea better, better than even my current scheme of using the userInfo dictionary in the model. I don’t know how hard it will be, or even if it will work for me, but it is definitely an avenue that I’m going to start looking into.
Regards, F -- Faizel Dakri list...@dakri.com <mailto:list...@dakri.com> On Mar 18, 2019, at 9:11 AM, Maik Musall <m...@selbstdenker.ag <mailto:m...@selbstdenker.ag>> wrote: > Hi Faizel, > > the EOF model importer wasn't perfect. Quite a few steps on the way to > Cayenne involve manually dealing with edge cases around the lesser-used > features of EOF, and I suppose this is one of them. I didn't make important > use of the userInfo dictionaries in EOF, so I can't really offer something > from experience on that specific topic. (Maybe someone else can?) > > AFAIK, the Cayenne model doesn't support attaching arbitrary key-value data > to entities, and Cayenne experts will probably point out that the model > should be as purely that as it can be, and that other info should be stored > elsewhere, like e.g. in Annotations on the subclasses or something. > > Maik > >> Am 18.03.2019 um 05:50 schrieb Faizel Dakri <list...@dakri.com >> <mailto:list...@dakri.com>>: >> >> Hi Maik, >> >> In your conversion from EOF to Cayenne, did you have any issues with >> metadata embedded inside your EOModel userInfo dictionaries and if so, how >> you did you go about solving them? I’ve been looking at Cayenne as a >> replacement for EOF and one roadblock I am running into at the moment is >> support for a userInfo type structure in the Cayenne datamap. Admittedly, >> it’s been about 6 months or so since I’ve looked, but from what I could >> tell, this appeared to be an open issue with Cayenne. It looked like there >> might be some idea on how to implement it at one point, but I did not see >> any resolution or implementation of it. >> >> I make extensive use of the EOModel userInfo dictionary (primarily on >> entities, but also on properties) to identify things that are configured at >> runtime. For example, I have a key named “taggable” that drives the template >> generation of my _EOEntity.java files. I also use userInfo entries to >> specify information for my auditing framework (e.g. being able to specify >> whether or an entity is audited, which keys to audit, etc.) or my custom >> filtering framework (e.g. to be able to turn on custom searches for an >> entity and to identify the keys that can be used in custom searches). These >> are just a few examples. My current thinking is to separate this metadata >> from the model and move it into its own configuration file, but that opens >> up the risk of the metadata getting out of sync with the model. It also >> seems a little dirty to me. >> >> Curious if anyone else is in a similar position, or has already solved such >> an issue? >> >> Regards, >> >> F >> >> -- >> Faizel Dakri >> list...@dakri.com <mailto:list...@dakri.com> >> >> >> >>> On Mar 15, 2019, at 10:18 AM, Maik Musall <m...@selbstdenker.ag >>> <mailto:m...@selbstdenker.ag>> wrote: >>> >>> Hi Mark, >>> >>> In 2017, Hugi and I converted a large project (>800.000 lines) from EOF to >>> Cayenne, within a few months. Had parallel branches for a while and then >>> switched in production, never looked back. Cayenne is similar enough that >>> most of the work is either boilerplate conversion or actually making use of >>> the newly-gained benefits. Very few hard problems encountered, and all >>> solved. >>> >>> Let's have a talk in Frankfurt about what your EOF specifics actually are. >>> >>> Maik >>> >>> >>>> Am 15.03.2019 um 15:34 schrieb Morris, Mark <mark.mor...@experian.com >>>> <mailto:mark.mor...@experian.com>>: >>>> >>>> Just to throw our 2¢ in, we have an extremely large codebase that is very >>>> heavily invested in EOF, using it in several ways that dive deep into its >>>> bowels. ;-) Of course, we also use the WOF part of WO, and all of Wonder. >>>> >>>> Regards, >>>> Mark >>>> >>>>> On Mar 15, 2019, at 5:51 AM, Hugi Thordarson <h...@karlmenn.is >>>>> <mailto:h...@karlmenn.is>> wrote: >>>>> >>>>> Hi all. >>>>> In preparation for the coming WODay in Frankfurt, I'd love it if you'd be >>>>> open to having a discussion on the status and future of WO, so we can >>>>> enter the coming work prepared. >>>>> >>>>> I'd like to begin by sharing my own thoughts on the matter, based on my >>>>> current stack and experience. It's a rehash of something I posted to our >>>>> Slack yesterday, may sound revolutionary and will no doubt be >>>>> controversial, but I think some outside-the-box thinking is required at >>>>> this time. This is lengthy, sorry about that… >>>>> >>>>> -- >>>>> >>>>> In the past few years I've been working towards minimising the use and >>>>> effect of WO/Wonder on my stack, so when and if The Time comes, I and my >>>>> customers have a migration path forward. Among the things I've done is >>>>> move from EOF to Cayenne and from Ant to Maven (to make using 3rd party >>>>> jars, including Cayenne easier), both of which have turned out to have >>>>> been very happy decisions which I wholeheartedly recommend, regardless of >>>>> anything else you do. >>>>> >>>>> I love working with my WO/Cayenne stack, which is currently only >>>>> "polluted" by the following frameworks: >>>>> >>>>> -- WO: >>>>> * JavaFoundation (indirectly through WO, I never use foundation classes >>>>> in my code unless absolutely required by WO) >>>>> * JavaWebObjects >>>>> >>>>> -- Wonder (I consider Wonder "polluted" since it depends on WO/EOF) >>>>> * ERExtensions (only the WO stuff, not the EOF stuff) >>>>> • Ajax >>>>> • WOOgnl (indirectly for parsing Wonder-style inline templates) >>>>> …and of course then there's the deployment stuff (JavaMonitor,wotaskd, >>>>> adaptors). >>>>> >>>>> Given this, here's my proposal for a way forward: >>>>> * We abandon EOF (and, in fact, any ORM—this is not meant to be a full >>>>> stack effort, initially at least) >>>>> * We re-implement JavaWebObjects as required (and the absolutely >>>>> necessary parts of JavaFoundation, such as KVC and NSBundle) as a single >>>>> framework >>>>> * We separate the necessary WO stuff from the EOF/D2W stuff in Wonder (as >>>>> well as other totally unrelated things like mail sending frameworks, >>>>> other utility frameworks and "useful applications") and include it in our >>>>> re-implementation >>>>> * We create a fork of WOLips that knows how to live within the New >>>>> Universe >>>>> * We rule the world >>>>> >>>>> Ideally, what we end with is Just a Web Framework™ with IDE integration >>>>> (and nothing else) that can serve as a basis for future development. >>>>> While re-implementing WO may sound like a huge undertaking, I actually >>>>> think it's smaller than rewriting all of my solutions that depend on it. >>>>> This probably applies to more of you. >>>>> >>>>> Now, looking at my own stack I know this proposal might sound a bit >>>>> self-serving, but I'd like to hear other opinions. I believe it's a >>>>> realistic way forward with (comparatively) minimal development effort. >>>>> Turns out that WOF itself is the only part of the WO/Wonder stack that I >>>>> really just don't want to live without. >>>>> >>>>> This is something I'd like to do, and if anyone likes the idea and is >>>>> willing to participate, I'm confident we can make this work! Doing stuff >>>>> alone sucks. >>>>> >>>>> Cheers, >>>>> - hugi >>>>> _______________________________________________ >>>>> 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/mark.morris%40experian.com >>>>> >>>>> <https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com> >>>>> >>>>> This email sent to mark.mor...@experian.com >>>>> <mailto:mark.mor...@experian.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/maik%40selbstdenker.ag >>>> >>>> <https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag> >>>> >>>> This email sent to m...@selbstdenker.ag <mailto:m...@selbstdenker.ag> >>> _______________________________________________ >>> 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/listfez%40dakri.com >>> <https://lists.apple.com/mailman/options/webobjects-dev/listfez%40dakri.com> >>> >>> This email sent to list...@dakri.com <mailto:list...@dakri.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