Re: Work on Release 2.5: Maven Archetype and Tutorial Examples
Karl Wettin <[email protected]> Fri, 18 Jan 2013 03:31:27 +0100
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <[email protected]> |
I just committed updates to the site (javadocs and new links): <http://prevayler.org/> the examples to the git repo: <https://github.com/jsampson/prevayler/tree/master/demos/tutorial/src/test/java/org/prevayler/examples> and a stand alone maven project I'll convert to a Maven archetype as soon as I get around to it: <https://github.com/jsampson/prevayler/tree/master/demos/prevayler-maven-archetype> I suppose that makes 2.6 good enough for a public announcement? Comments? karl zzZZzz 13 jan 2013 kl. 19:15 skrev Klaus Wuestefeld: > OK > > On Sun, Jan 13, 2013 at 12:07 PM, Karl Wettin <[email protected]> wrote: >> Actually, it's 2.6 :-) >> >> I didn't find time to fix the examples, I'll do that and move them to the >> Prevayler git; create the archetype and update the website, sometime next >> week. >> >> I did however just released 2.6. The git repo is updated and targets should >> be available via Maven central >> <http://repo1.maven.org/maven2/org/prevayler/> within a few minutes, hours, >> days or so. Let's not "go public" until everything above is fixed. >> >> >> >> karl >> >> 10 jan 2013 kl. 04:24 skrev Klaus Wuestefeld: >> >> Karl, lets simply put the examples in Prevayler's test folder? >> >> >> On Thu, Jan 10, 2013 at 1:16 AM, Klaus Wuestefeld >> <[email protected]> wrote: >>> >>> Hi, >>> >>> Below is a conversation I had with Karl Wettin, edited for brevity. >>> >>> Klaus >>> >>> >>> ---- >>> >>> Karl Wettin: i'll try to release 2.5 this weekend >>> >>> Klaus Wuestefeld: Hi :) >>> Klaus Wuestefeld: Whats in 2.5 again? >>> >>> Karl Wettin: mainly Prevalyer<PrevalenceBase> and no food taster >>> >>> Klaus Wuestefeld: ah nice >>> >>> Karl Wettin: and I'll write something on the website how to set up using >>> maven. perhaps even create an archetype that creates a maven project for you >>> Karl Wettin: feel free to take a look at the examples i wrote in november >>> if there is somehitng you think is missing, and if you want me to move it to >>> the git. >>> >>> Klaus Wuestefeld: maven archetype? how does that work? >>> >>> Karl Wettin: https://github.com/karlwettin/prevayler-examples >>> Karl Wettin: >>> http://maven.apache.org/guides/introduction/introduction-to-archetypes.html >>> Karl Wettin: basically you type >>> mvn archetype-prevayler:generate >>> Karl Wettin: and it will set up the project for you, create pom.xml, deps, >>> directories, example code etc >>> >>> Klaus Wuestefeld: Very nice! >>> Klaus Wuestefeld: Im looking at the examples again now >>> Klaus Wuestefeld: Why are they in the test folder? >>> https://github.com/karlwettin/prevayler-examples/tree/master/src/test >>> >>> Karl Wettin: because they are all demonstrated as unit tests with >>> assertions etc >>> Karl Wettin: but i'm listening if you have comments >>> >>> Klaus Wuestefeld: Yes. I think it would be nice to have the examples in >>> Prevayler's git >>> Klaus Wuestefeld: Comments: >>> Klaus Wuestefeld: e101 is too abstract >>> Klaus Wuestefeld: People might think they have to use an "Entity" class or >>> extend Entity or something like that. >>> Klaus Wuestefeld: "Entity" is a kind of class you would expect in an >>> implementation of a persistence framework. Not in app code. That will >>> confuse people. >>> Klaus Wuestefeld: Please take a look at 2.2 Storing Objects, for example: >>> http://community.versant.com/Documentation/Reference/db4o-7.12/java/tutorial/ >>> Klaus Wuestefeld: 2) Lets make all tests pass, even the ones that "fail". >>> Klaus Wuestefeld: With @Test(expected = Exception.class) //Note this test >>> expects an exception >>> Klaus Wuestefeld: Im talking about this: >>> https://github.com/karlwettin/prevayler-examples/blob/master/src/test/java/org/prevayler/examples/e102/E102Test.java >>> Klaus Wuestefeld: 3) Lets mention the possible sources of non-determinism: >>> using new Date(), currenTimeMillis(), nanoTime(), hashCode(), etc. >>> Klaus Wuestefeld: >>> https://github.com/karlwettin/prevayler-examples/blob/master/src/test/java/org/prevayler/examples/e102/README.md >>> Klaus Wuestefeld: I like the way you present each caveat as a test. >>> Klaus Wuestefeld: 4) >>> https://github.com/karlwettin/prevayler-examples/tree/master/src/test/java/org/prevayler/examples/e103 >>> Klaus Wuestefeld: "that your transactions shouldn't contain actual >>> business objects, only their identities." >>> Klaus Wuestefeld: "identities" is bad wording. Identity (as opposed to >>> equality) often refers to the object itself. Lets change it to "...only a >>> way to query for them, such as an id for example." >>> Klaus Wuestefeld: preavlent -> prevalent >>> Klaus Wuestefeld: "an aggregate of an business object to another business >>> object" is too abstract. Lets choose a metaphor and run with it: "a pilot to >>> a car", "a pet to the petstore", for example. >>> Klaus Wuestefeld: Please, lets change the wording from "baptism problem" >>> to "initiation problem". It's more religion-neutral. >>> Klaus Wuestefeld: user is baptised -> user is initiated >>> >>> Karl Wettin: +1 >>> Karl Wettin: coming from a godless country and all, i've considered that >>> before. >>> >>> Klaus Wuestefeld: Is that the only comment you agree on? :D >>> >>> Karl Wettin: hehe no, all great comments >>> Karl Wettin: i'll fix them all >>> >>> Klaus Wuestefeld: 5) On the sources of non determinism in E102 you can >>> say: "See E104 on using timestamps" >>> Klaus Wuestefeld: 6) E104: Not a caveat. It is a feature to help you cope >>> with caveat E102 so you dont have to put your own timestamps in your >>> transactions. >>> Klaus Wuestefeld: 7) >>> https://github.com/karlwettin/prevayler-examples/blob/master/src/test/java/org/prevayler/examples/e103/E103Test.java >>> Do we need AbstractTest as a class? Cant it just be a method receiving the >>> BaptismProblemUpdateEntityAggregate and UpdateEntityAggregate transaction >>> objects? >>> Klaus Wuestefeld: 8) >>> https://github.com/karlwettin/prevayler-examples/tree/master/src/test/java/org/prevayler/examples >>> "e102, Problems with non deterministic features in transactions." >>> Klaus Wuestefeld: -> "e102, Problems with non deterministic features in >>> business code." >>> Klaus Wuestefeld: Same here: >>> https://github.com/karlwettin/prevayler-examples/tree/master/src/test/java/org/prevayler/examples/e102 >>> Klaus Wuestefeld: 9) You can use assertSame() >>> Klaus Wuestefeld: 10) finally: please delete E105. It is too alarming. In >>> the end, it is the same as E101: You have to use transactions. Simply add a >>> line of text to the description of E101: "If you change business objects >>> directly without using transactions, those changes will not be persistent. >>> You could, in theory, take a snapshot after every change but that is much >>> slower." >>> Klaus Wuestefeld: 11) Lets delete Prevayler demo1 (prime numbers) if it >>> still exists. >>> Klaus Wuestefeld: 12) Lets incorporate Prevayler demo2 (Bank Demo) in your >>> examples project somehow, maybe in the main folder (instead of tests) >>> Klaus Wuestefeld: 13) Lets remove javamatch from demo2 (Bank Demo) if we >>> have not already done so. >>> Klaus Wuestefeld: ------------------------------------------ >>> Klaus Wuestefeld: Very nice :) >> >> >> ------------------------------------------------------------------------------ >> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, >> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current >> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft >> MVPs and experts. ON SALE this month only -- learn more at: >> http://p.sf.net/sfu/learnmore_122712_______________________________________________ >> To unsubscribe go to the end of this page: >> http://lists.sourceforge.net/lists/listinfo/prevayler-discussion >> _______________________________________________ >> "Databases in Memoriam" -- http://www.prevayler.org >> >> >> >> ------------------------------------------------------------------------------ >> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, >> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current >> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft >> MVPs and experts. ON SALE this month only -- learn more at: >> http://p.sf.net/sfu/learnmore_123012 >> _______________________________________________ >> To unsubscribe go to the end of this page: >> http://lists.sourceforge.net/lists/listinfo/prevayler-discussion >> _______________________________________________ >> "Databases in Memoriam" -- http://www.prevayler.org >> > > > > -- > Valeu, Klaus. > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. ON SALE this month only -- learn more at: > http://p.sf.net/sfu/learnmore_123012 > _______________________________________________ > To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion > _______________________________________________ > "Databases in Memoriam" -- http://www.prevayler.org ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org