[jira] [Commented] (ARIES-1234) Recreate Aries JPA 2.0 support

2014-09-27 Thread Giuseppe Gerla (JIRA)

[ 
https://issues.apache.org/jira/browse/ARIES-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14150676#comment-14150676
 ] 

Giuseppe Gerla commented on ARIES-1234:
---

I can suggest you following code:

  try{  
Object res = method.invoke(delegate, args);
  } catch(IllegalArgumentException e) {
throws new PersistenceException("Method " + method.getName() + " is 
not implemented by " + delegate + ". Probably you want use JPA 2.1 but you are 
installed JPA 2.0 caontainer.")
  }

>From JavaDoc IllegalArgumentException is raised if the method is an instance 
>method and the specified object argument is not an instance of the class or 
>interface declaring the underlying method (or of a subclass or implementor 
>thereof); if the number of actual and formal parameters differ; if an 
>unwrapping conversion for primitive arguments fails; or if, after possible 
>unwrapping, a parameter value cannot be converted to the corresponding formal 
>parameter type by a method invocation conversion.

> Recreate Aries JPA 2.0 support
> --
>
> Key: ARIES-1234
> URL: https://issues.apache.org/jira/browse/ARIES-1234
> Project: Aries
>  Issue Type: Bug
>  Components: JPA
>Affects Versions: 0.4
>Reporter: Mark Nuttall
>Assignee: Mark Nuttall
>
> Aries-1047 moved the JPA support up to JPA 2.1. However classes that 
> implement the JPA 2.1 API cannot work against the JPA 2.0 API. 
> For example, javax.persistence.EntityManager has gained a number of new 
> methods such as createStoredProcedureQuery() which return an object of class 
> javax.persistence.StoredProcedureQuery. The class _does not exist_ in JPA 
> 2.0. 
> A class that implements the 2.1 version of EntityManager can not be loaded 
> under the JPA 2.0 API. 
> org.apache.aries.jpa.container.impl.EntityManagerWrapper implements 
> javax.persistence.EntityManager. This means that it now has public API 
> methods with class signatures that can not possibly work in a JPA 2.0 
> environment. Attempts to do so yield errors of the form, 
> java.lang.ClassNotFoundException: javax.persistence.StoredProcedureQuery 
> cannot be found by org.apache.aries.jpa.container.context. 
> We need the JPA 2.0 code back. This will first be achieved by restoring the 
> JPA container code to /trunk/jpa20/... at the svn level before the commit 
> that broke it, http://svn.apache.org/viewvc?view=revision&revision=1610718. 
> Most of the code remains common, but will require additional effort to 
> refactor: this can be done, if desired, under future JIRAs. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ARIES-1234) Recreate Aries JPA 2.0 support

2014-09-27 Thread Christian Schneider (JIRA)

[ 
https://issues.apache.org/jira/browse/ARIES-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14150649#comment-14150649
 ] 

Christian Schneider commented on ARIES-1234:


Sounds good. Even better would be to avoid that a 2.1 client can connect to a 
2.0 persistence provider. Not sure how to do it but I guess it is possible.

> Recreate Aries JPA 2.0 support
> --
>
> Key: ARIES-1234
> URL: https://issues.apache.org/jira/browse/ARIES-1234
> Project: Aries
>  Issue Type: Bug
>  Components: JPA
>Affects Versions: 0.4
>Reporter: Mark Nuttall
>Assignee: Mark Nuttall
>
> Aries-1047 moved the JPA support up to JPA 2.1. However classes that 
> implement the JPA 2.1 API cannot work against the JPA 2.0 API. 
> For example, javax.persistence.EntityManager has gained a number of new 
> methods such as createStoredProcedureQuery() which return an object of class 
> javax.persistence.StoredProcedureQuery. The class _does not exist_ in JPA 
> 2.0. 
> A class that implements the 2.1 version of EntityManager can not be loaded 
> under the JPA 2.0 API. 
> org.apache.aries.jpa.container.impl.EntityManagerWrapper implements 
> javax.persistence.EntityManager. This means that it now has public API 
> methods with class signatures that can not possibly work in a JPA 2.0 
> environment. Attempts to do so yield errors of the form, 
> java.lang.ClassNotFoundException: javax.persistence.StoredProcedureQuery 
> cannot be found by org.apache.aries.jpa.container.context. 
> We need the JPA 2.0 code back. This will first be achieved by restoring the 
> JPA container code to /trunk/jpa20/... at the svn level before the commit 
> that broke it, http://svn.apache.org/viewvc?view=revision&revision=1610718. 
> Most of the code remains common, but will require additional effort to 
> refactor: this can be done, if desired, under future JIRAs. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ARIES-1234) Recreate Aries JPA 2.0 support

2014-09-27 Thread Giuseppe Gerla (JIRA)

[ 
https://issues.apache.org/jira/browse/ARIES-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14150486#comment-14150486
 ] 

Giuseppe Gerla commented on ARIES-1234:
---

It seems good.
The only change that i can suggest is to check that the class of delegate 
implements the method to invoke. For example if the client call a method of JPA 
2.1 using a JPA 2.0 implementation.
Now, in this case the invoke method throws an IllegalArgumentException. It 
could be better to have a message that explain  to use different version of 
Aries JPA.

> Recreate Aries JPA 2.0 support
> --
>
> Key: ARIES-1234
> URL: https://issues.apache.org/jira/browse/ARIES-1234
> Project: Aries
>  Issue Type: Bug
>  Components: JPA
>Affects Versions: 0.4
>Reporter: Mark Nuttall
>Assignee: Mark Nuttall
>
> Aries-1047 moved the JPA support up to JPA 2.1. However classes that 
> implement the JPA 2.1 API cannot work against the JPA 2.0 API. 
> For example, javax.persistence.EntityManager has gained a number of new 
> methods such as createStoredProcedureQuery() which return an object of class 
> javax.persistence.StoredProcedureQuery. The class _does not exist_ in JPA 
> 2.0. 
> A class that implements the 2.1 version of EntityManager can not be loaded 
> under the JPA 2.0 API. 
> org.apache.aries.jpa.container.impl.EntityManagerWrapper implements 
> javax.persistence.EntityManager. This means that it now has public API 
> methods with class signatures that can not possibly work in a JPA 2.0 
> environment. Attempts to do so yield errors of the form, 
> java.lang.ClassNotFoundException: javax.persistence.StoredProcedureQuery 
> cannot be found by org.apache.aries.jpa.container.context. 
> We need the JPA 2.0 code back. This will first be achieved by restoring the 
> JPA container code to /trunk/jpa20/... at the svn level before the commit 
> that broke it, http://svn.apache.org/viewvc?view=revision&revision=1610718. 
> Most of the code remains common, but will require additional effort to 
> refactor: this can be done, if desired, under future JIRAs. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)