You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Andrus Adamchik <an...@objectstyle.org> on 2017/03/06 17:43:31 UTC

[ANN] Cayenne 4.0.M5 is released

I am glad to announce that the fifth milestone of Cayenne 4.0 has been released and is now available from the download page [1] and from Maven Central. Some release highlights:

* New fluent API for SQL functions (including long-awaited aggregate functions).
* Auto-loading of additional Cayenne modules.
* New JCache module that allows to easily include any compatible cache provider.
* Further improvements and stabilization of database reverse-engineering tools.
* Fixes bugs, updates docs, etc.

This is another step taking us closer to 4.0 Beta. All the major (and most of the potentially breaking) features are in. While an intermediate M6 release is not entirely out of the question, I think we have been successful so far at fighting against the scope creep that could've delayed the Beta.

Please check out a full release announcement [2], try M5 and keep giving us feedback.

Andrus


[1] http://cayenne.apache.org/download.html
[2] http://cayenne.apache.org/2017/03/cayenne-40M5-released.html

Re: ServerRuntime.builder problem

Posted by Andrus Adamchik <an...@objectstyle.org>.
Thanks for the test case. I think Cayenne got confused by the name "aCasa.test.xml". It usually expects "cayenne-xyz.xml" pattern for the file name, from which it extracts the project name. I just jira'd this to ensure we pick some default name when we can't get it from the project file:

https://issues.apache.org/jira/browse/CAY-2265

Andrus

> On Mar 11, 2017, at 12:27 PM, Alexander Frei <le...@gmail.com> wrote:
> 
> Hi Andrus,
> 
> this is the jUnit test case (TestUnitGroupList.class):
> 
> @Test
> public void test() {
> 
>       ServerRuntime cayenneRuntime = ServerRuntime.builder()
>               .addConfig("aCasa.test.xml")
>               .build();
>       ObjectContext context = cayenneRuntime.newContext();
>       cayenneRuntime.shutdown();
> }
> 
> If I pass a non empty String as argument to builder() then everything works as expected.
> 
> And this is the stack trace without passing a string argument:
> 
> java.lang.IllegalArgumentException: DataRowStore name can't be null.
>     at org.apache.cayenne.access.DataRowStore.<init>(DataRowStore.java:101)
>     at org.apache.cayenne.access.DataDomain.nonNullSharedSnapshotCache(DataDomain.java:328)
>     at org.apache.cayenne.access.DataDomain.getSharedSnapshotCache(DataDomain.java:316)
>     at org.apache.cayenne.configuration.server.DataContextFactory.createdFromDataDomain(DataContextFactory.java:116)
>     at org.apache.cayenne.configuration.server.DataContextFactory.createContext(DataContextFactory.java:61)
>     at org.apache.cayenne.configuration.CayenneRuntime.newContext(CayenneRuntime.java:124)
>     at cayenne.TestUnitGroupList.test(TestUnitGroupList.java:48)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>     at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>     at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
>     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> 
> I'm working on Eclipse Version: Neon.2 Release (4.6.2)
> 
> Thanks
> Alex
> 
> 
> 
> 2017-03-10 20:31 GMT+01:00 Andrus Adamchik <an...@objectstyle.org>:
> Hi Alex,
> 
> (cc'ying to your email, as it doesn't appear that you are subscribed to the list).
> 
> > Apache Cayenne is getting better and better, thank you.
> 
> Thanks! :)
> 
> > Tried the new version today and just wanted to point out that ServerRuntime.builder() doesn't work without an argument for the symbolic name, at least not in my case.
> > According to the javadoc the parameter is optional, but I can't get it running without passing a String.
> > So the example shown in the Getting Started guide does not work.
> > http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html
> 
> It seems to work for me (not in the tutorial, but my regular apps). Do you have any details (like an exception stack trace)?
> 
> Thanks,
> Andrus
> 
> 
> > On Mar 10, 2017, at 10:10 PM, Alexander Frei <le...@gmail.com> wrote:
> >
> > Hi,
> >
> > Apache Cayenne is getting better and better, thank you.
> >
> > Here is some feedback:
> > Tried the new version today and just wanted to point out that ServerRuntime.builder() doesn't work without an argument for the symbolic name, at least not in my case.
> > According to the javadoc the parameter is optional, but I can't get it running without passing a String.
> > So the example shown in the Getting Started guide does not work.
> > http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html
> >
> > Alex
> >
> 
> 


Re: ServerRuntime.builder problem

Posted by Alexander Frei <le...@gmail.com>.
Hi Andrus,

this is the jUnit test case (TestUnitGroupList.class):

@Test
public void test() {

      ServerRuntime cayenneRuntime = ServerRuntime.builder()
              .addConfig("aCasa.test.xml")
              .build();
      ObjectContext context = cayenneRuntime.newContext();
      cayenneRuntime.shutdown();
}

If I pass a non empty String as argument to builder() then everything works
as expected.

And this is the stack trace without passing a string argument:

java.lang.IllegalArgumentException: DataRowStore name can't be null.
    at org.apache.cayenne.access.DataRowStore.<init>(DataRowStore.java:101)
    at
org.apache.cayenne.access.DataDomain.nonNullSharedSnapshotCache(DataDomain.java:328)
    at
org.apache.cayenne.access.DataDomain.getSharedSnapshotCache(DataDomain.java:316)
    at
org.apache.cayenne.configuration.server.DataContextFactory.createdFromDataDomain(DataContextFactory.java:116)
    at
org.apache.cayenne.configuration.server.DataContextFactory.createContext(DataContextFactory.java:61)
    at
org.apache.cayenne.configuration.CayenneRuntime.newContext(CayenneRuntime.java:124)
    at cayenne.TestUnitGroupList.test(TestUnitGroupList.java:48)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

I'm working on Eclipse Version: Neon.2 Release (4.6.2)

Thanks
Alex



2017-03-10 20:31 GMT+01:00 Andrus Adamchik <an...@objectstyle.org>:

> Hi Alex,
>
> (cc'ying to your email, as it doesn't appear that you are subscribed to
> the list).
>
> > Apache Cayenne is getting better and better, thank you.
>
> Thanks! :)
>
> > Tried the new version today and just wanted to point out that
> ServerRuntime.builder() doesn't work without an argument for the symbolic
> name, at least not in my case.
> > According to the javadoc the parameter is optional, but I can't get it
> running without passing a String.
> > So the example shown in the Getting Started guide does not work.
> > http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html
>
> It seems to work for me (not in the tutorial, but my regular apps). Do you
> have any details (like an exception stack trace)?
>
> Thanks,
> Andrus
>
>
> > On Mar 10, 2017, at 10:10 PM, Alexander Frei <le...@gmail.com> wrote:
> >
> > Hi,
> >
> > Apache Cayenne is getting better and better, thank you.
> >
> > Here is some feedback:
> > Tried the new version today and just wanted to point out that
> ServerRuntime.builder() doesn't work without an argument for the symbolic
> name, at least not in my case.
> > According to the javadoc the parameter is optional, but I can't get it
> running without passing a String.
> > So the example shown in the Getting Started guide does not work.
> > http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html
> >
> > Alex
> >
>
>

Re: ServerRuntime.builder problem

Posted by Andrus Adamchik <an...@objectstyle.org>.
Hi Alex,

(cc'ying to your email, as it doesn't appear that you are subscribed to the list).

> Apache Cayenne is getting better and better, thank you.

Thanks! :)

> Tried the new version today and just wanted to point out that ServerRuntime.builder() doesn't work without an argument for the symbolic name, at least not in my case.
> According to the javadoc the parameter is optional, but I can't get it running without passing a String.
> So the example shown in the Getting Started guide does not work.
> http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html

It seems to work for me (not in the tutorial, but my regular apps). Do you have any details (like an exception stack trace)? 

Thanks,
Andrus


> On Mar 10, 2017, at 10:10 PM, Alexander Frei <le...@gmail.com> wrote:
> 
> Hi,
> 
> Apache Cayenne is getting better and better, thank you.
> 
> Here is some feedback:
> Tried the new version today and just wanted to point out that ServerRuntime.builder() doesn't work without an argument for the symbolic name, at least not in my case.
> According to the javadoc the parameter is optional, but I can't get it running without passing a String.
> So the example shown in the Getting Started guide does not work.
> http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html
> 
> Alex
> 


ServerRuntime.builder problem

Posted by Alexander Frei <le...@gmail.com>.
Hi,

Apache Cayenne is getting better and better, thank you.

Here is some feedback:
Tried the new version today and just wanted to point out that ServerRuntime.builder() doesn't work without an argument for the symbolic name, at least not in my case.
According to the javadoc the parameter is optional, but I can't get it running without passing a String.
So the example shown in the Getting Started guide does not work.
http://cayenne.apache.org/docs/4.0/tutorial/getting-started-part3.html

Alex