You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Grégory Joseph <gr...@magnolia-cms.com> on 2010/02/01 13:50:41 UTC
Re: [31392] MAGNOLIA-2988 ntReg.getNodeTypeDef() has a different return type in jackrabbit 2.0, so this causes a binary incompatibility if we compile the provider class with jackrabbit 1 .6
Why don't we use a different implementation and module for this instead ?
-g
On Jan 31, 2010, at 10:07 PM, svn@magnolia-cms.com wrote:
> Revision
> 31392
> Author
> fgiust
> Date
> 2010-01-31 22:07:49 +0100 (Sun, 31 Jan 2010)
> Log Message
>
> MAGNOLIA-2988 ntReg.getNodeTypeDef() has a different return type in jackrabbit 2.0, so this causes a binary incompatibility if we compile the provider class with jackrabbit 1.6
> Modified Paths
>
> • community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java
> Diff
>
> Modified: community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java (31391 => 31392)
>
> --- community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java 2010-01-31 18:15:13 UTC (rev 31391)
> +++ community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java 2010-01-31 21:07:49 UTC (rev 31392)
>
> @@ -73,6 +73,7 @@
>
> import java.io.FileNotFoundException;
>
> import java.io.IOException;
>
> import java.io.InputStream;
>
> +import java.lang.reflect.InvocationTargetException;
>
> import java.lang.reflect.Method;
>
> import java.util.Hashtable;
>
> import java.util.Iterator;
>
> @@ -333,18 +334,45 @@
>
> }
>
>
>
> try {
>
> - ntReg.getNodeTypeDef(ntname);
>
> +
> + // return value has changed in jackrabbit 2, we still have to use reflection here
> + // ntReg.getNodeTypeDef(ntname);
> +
> + Method method = ntReg.getClass().getMethod("getNodeTypeDef", Name.class);
> + method.invoke(ntReg, ntname);
>
> }
>
> - catch (NoSuchNodeTypeException nsne) {
> - log.info("Registering nodetype {}", ntname); //$NON-NLS-1$
>
> + catch (IllegalArgumentException e)
> + {
> + throw new RepositoryException(e.getMessage(), e);
> + }
> + catch (IllegalAccessException e)
> + {
> + throw new RepositoryException(e.getMessage(), e);
> + }
> + catch (SecurityException e)
> + {
> + throw new RepositoryException(e.getMessage(), e);
> + }
> + catch (NoSuchMethodException e)
> + {
> + throw new RepositoryException(e.getMessage(), e);
> + }
> + catch (InvocationTargetException ite)
> + {
> + if (ite.getTargetException() instanceof NoSuchNodeTypeException)
> + {
> + log.info("Registering nodetype {}", ntname); //$NON-NLS-1$
>
>
>
> - try {
> - // reflection for jackrabbit 1+2 compatibility
> - getMethod(NodeTypeRegistry.class, "registerNodeType").invoke(ntReg, new Object[]{def});
>
> + try
> + {
> + // reflection for jackrabbit 1+2 compatibility
> + getMethod(NodeTypeRegistry.class, "registerNodeType").invoke(ntReg, new Object[]{def });
> + }
> + catch (Exception e)
> + {
> + throw new RepositoryException(e.getMessage(), e);
> + }
>
> }
>
> - catch (Exception e) {
> - throw new RepositoryException(e.getMessage(), e);
> - }
>
> }
>
> }
>
>
>
>
>
> ----------------------------------------------------------------
> For list details see
> http://www.magnolia-cms.com/home/community/mailing-lists.html
> To unsubscribe, E-mail to: <sv...@magnolia-cms.com>
> ----------------------------------------------------------------
Re: [31392] MAGNOLIA-2988 ntReg.getNodeTypeDef() has a different return type in jackrabbit 2.0, so this causes a binary incompatibility if we compile the provider class with jackrabbit 1 .6
Posted by Grégory Joseph <gr...@magnolia-cms.com>.
Sorry, wrong list, obviously.
On Feb 1, 2010, at 1:50 PM, Grégory Joseph wrote:
> Why don't we use a different implementation and module for this instead ?
>
> -g
>
> On Jan 31, 2010, at 10:07 PM, svn@magnolia-cms.com wrote:
>
>> Revision
>> 31392
>> Author
>> fgiust
>> Date
>> 2010-01-31 22:07:49 +0100 (Sun, 31 Jan 2010)
>> Log Message
>>
>> MAGNOLIA-2988 ntReg.getNodeTypeDef() has a different return type in jackrabbit 2.0, so this causes a binary incompatibility if we compile the provider class with jackrabbit 1.6
>> Modified Paths
>>
>> • community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java
>> Diff
>>
>> Modified: community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java (31391 => 31392)
>>
>> --- community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java 2010-01-31 18:15:13 UTC (rev 31391)
>> +++ community/magnolia/trunk/magnolia-core/src/main/java/info/magnolia/jackrabbit/ProviderImpl.java 2010-01-31 21:07:49 UTC (rev 31392)
>>
>> @@ -73,6 +73,7 @@
>>
>> import java.io.FileNotFoundException;
>>
>> import java.io.IOException;
>>
>> import java.io.InputStream;
>>
>> +import java.lang.reflect.InvocationTargetException;
>>
>> import java.lang.reflect.Method;
>>
>> import java.util.Hashtable;
>>
>> import java.util.Iterator;
>>
>> @@ -333,18 +334,45 @@
>>
>> }
>>
>>
>>
>> try {
>>
>> - ntReg.getNodeTypeDef(ntname);
>>
>> +
>> + // return value has changed in jackrabbit 2, we still have to use reflection here
>> + // ntReg.getNodeTypeDef(ntname);
>> +
>> + Method method = ntReg.getClass().getMethod("getNodeTypeDef", Name.class);
>> + method.invoke(ntReg, ntname);
>>
>> }
>>
>> - catch (NoSuchNodeTypeException nsne) {
>> - log.info("Registering nodetype {}", ntname); //$NON-NLS-1$
>>
>> + catch (IllegalArgumentException e)
>> + {
>> + throw new RepositoryException(e.getMessage(), e);
>> + }
>> + catch (IllegalAccessException e)
>> + {
>> + throw new RepositoryException(e.getMessage(), e);
>> + }
>> + catch (SecurityException e)
>> + {
>> + throw new RepositoryException(e.getMessage(), e);
>> + }
>> + catch (NoSuchMethodException e)
>> + {
>> + throw new RepositoryException(e.getMessage(), e);
>> + }
>> + catch (InvocationTargetException ite)
>> + {
>> + if (ite.getTargetException() instanceof NoSuchNodeTypeException)
>> + {
>> + log.info("Registering nodetype {}", ntname); //$NON-NLS-1$
>>
>>
>>
>> - try {
>> - // reflection for jackrabbit 1+2 compatibility
>> - getMethod(NodeTypeRegistry.class, "registerNodeType").invoke(ntReg, new Object[]{def});
>>
>> + try
>> + {
>> + // reflection for jackrabbit 1+2 compatibility
>> + getMethod(NodeTypeRegistry.class, "registerNodeType").invoke(ntReg, new Object[]{def });
>> + }
>> + catch (Exception e)
>> + {
>> + throw new RepositoryException(e.getMessage(), e);
>> + }
>>
>> }
>>
>> - catch (Exception e) {
>> - throw new RepositoryException(e.getMessage(), e);
>> - }
>>
>> }
>>
>> }
>>
>>
>>
>>
>>
>> ----------------------------------------------------------------
>> For list details see
>> http://www.magnolia-cms.com/home/community/mailing-lists.html
>> To unsubscribe, E-mail to: <sv...@magnolia-cms.com>
>> ----------------------------------------------------------------
>
>