SourceForge logo
SourceForge logo
Menu

springframework-cvs — CVS Commit Notification List

You can subscribe to this list here.

2006 Jan
Feb
Mar
Apr
(387)
May
(1066)
Jun
(689)
Jul
(504)
Aug
(697)
Sep
(660)
Oct
(591)
Nov
(393)
Dec
(324)
2007 Jan
(567)
Feb
(448)
Mar
(461)
Apr
(368)
May
(887)
Jun
(243)
Jul
(429)
Aug
(670)
Sep
(648)
Oct
(684)
Nov
(599)
Dec
(317)
2008 Jan
(388)
Feb
(400)
Mar
(323)
Apr
(214)
May
(228)
Jun
(120)
Jul
(168)
Aug
(64)
Sep
(78)
Oct
(127)
Nov
(28)
Dec
2009 Jan
Feb
(1)
Mar
(22)
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
(1)
2017 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec

Showing results of 13782

1 2 3 .. 552 > >> (Page 1 of 552)
From: Thomas R. <tri...@us...> - 2009年03月19日 18:51:24
Update of /cvsroot/springframework/spring
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17753
Modified Files:
	changelog.txt 
Log Message:
updated changelog
Index: changelog.txt
===================================================================
RCS file: /cvsroot/springframework/spring/changelog.txt,v
retrieving revision 1.741
retrieving revision 1.742
diff -C2 -d -r1.741 -r1.742
*** changelog.txt	19 Feb 2009 15:15:22 -0000	1.741
--- changelog.txt	19 Mar 2009 18:51:04 -0000	1.742
***************
*** 9,12 ****
--- 9,29 ----
 Package org.springframework.jdbc
 * added sort to all error code categories for SQLErrorCodes (SPR-5272)
+ * added custom SQLExceptionTranslator to provide customized translation for any SQLException (SPR-4899 backport)
+ * added a DuplicatKeyException catagory for SQLException translation (SPR-5125 backport)
+ * added a concrete GenericSqlQuery class to make it possible to configure in application context (SPR-3986 backport)
+ * added a concrete GenericStoredProcedure class to make it possible to configure using application context (SPR-3987 backport)
+ 
+ Package org.springframework.jms
+ * fixed JmsUtils.buildExceptionMessage to avoid potential NPE (SPR-5275)
+ * fixed MessageListenerAdapter's "getSubscriptionName()" to work without delegate as well (SPR-5309 backport)
+ 
+ Package org.springframework.orm
+ * AnnotationSessionFactoryBean now properly scans subpackages as well (SPR-5324)
+ 
+ Package org.springframework.remoting
+ * fixed HTTP invoker to support resolution of multi-level primitive array classes again (SPR-5473 backport)
+ 
+ Package org.springframework.transaction
+ * WebSphereUowTransactionManager preserves original exception in case of rollback (SPR-5270 backport)
 
 
Update of /cvsroot/springframework/spring/test/org/springframework/remoting/httpinvoker
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv9918/test/org/springframework/remoting/httpinvoker
Modified Files:
	HttpInvokerTests.java 
Log Message:
removed autoboxing
Index: HttpInvokerTests.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/remoting/httpinvoker/HttpInvokerTests.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** HttpInvokerTests.java	19 Mar 2009 15:17:39 -0000	1.7
--- HttpInvokerTests.java	19 Mar 2009 16:21:19 -0000	1.8
***************
*** 98,107 ****
 		proxy.setStringArray(new String[] {"str1", "str2"});
 		assertTrue(Arrays.equals(new String[] {"str1", "str2"}, proxy.getStringArray()));
! 		proxy.setSomeIntegerArray(new Integer[] {1, 2, 3});
! 		assertTrue(Arrays.equals(new Integer[] {1, 2, 3}, proxy.getSomeIntegerArray()));
! 		proxy.setNestedIntegerArray(new Integer[][] {{1, 2, 3}, {4, 5, 6}});
 		Integer[][] integerArray = proxy.getNestedIntegerArray();
! 		assertTrue(Arrays.equals(new Integer[] {1, 2, 3}, integerArray[0]));
! 		assertTrue(Arrays.equals(new Integer[] {4, 5, 6}, integerArray[1]));
 		proxy.setSomeIntArray(new int[] {1, 2, 3});
 		assertTrue(Arrays.equals(new int[] {1, 2, 3}, proxy.getSomeIntArray()));
--- 98,109 ----
 		proxy.setStringArray(new String[] {"str1", "str2"});
 		assertTrue(Arrays.equals(new String[] {"str1", "str2"}, proxy.getStringArray()));
! 		proxy.setSomeIntegerArray(new Integer[] {new Integer(1), new Integer(2), new Integer(3)});
! 		assertTrue(Arrays.equals(new Integer[] {new Integer(1), new Integer(2), new Integer(3)},
! 				proxy.getSomeIntegerArray()));
! 		proxy.setNestedIntegerArray(new Integer[][] {{new Integer(1), new Integer(2), new Integer(3)},
! 				{new Integer(4), new Integer(5), new Integer(6)}});
 		Integer[][] integerArray = proxy.getNestedIntegerArray();
! 		assertTrue(Arrays.equals(new Integer[] {new Integer(1), new Integer(2), new Integer(3)}, integerArray[0]));
! 		assertTrue(Arrays.equals(new Integer[] {new Integer(4), new Integer(5), new Integer(6)}, integerArray[1]));
 		proxy.setSomeIntArray(new int[] {1, 2, 3});
 		assertTrue(Arrays.equals(new int[] {1, 2, 3}, proxy.getSomeIntArray()));
Update of /cvsroot/springframework/spring/test/org/springframework/remoting/httpinvoker
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28750/test/org/springframework/remoting/httpinvoker
Modified Files:
	HttpInvokerTests.java 
Log Message:
fixed HTTP invoker to support resolution of multi-level primitive array classes again
Index: HttpInvokerTests.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/remoting/httpinvoker/HttpInvokerTests.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** HttpInvokerTests.java	13 Jan 2007 19:31:20 -0000	1.6
--- HttpInvokerTests.java	19 Mar 2009 15:17:39 -0000	1.7
***************
*** 1,4 ****
 /*
! * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 98,101 ****
--- 98,113 ----
 		proxy.setStringArray(new String[] {"str1", "str2"});
 		assertTrue(Arrays.equals(new String[] {"str1", "str2"}, proxy.getStringArray()));
+ 		proxy.setSomeIntegerArray(new Integer[] {1, 2, 3});
+ 		assertTrue(Arrays.equals(new Integer[] {1, 2, 3}, proxy.getSomeIntegerArray()));
+ 		proxy.setNestedIntegerArray(new Integer[][] {{1, 2, 3}, {4, 5, 6}});
+ 		Integer[][] integerArray = proxy.getNestedIntegerArray();
+ 		assertTrue(Arrays.equals(new Integer[] {1, 2, 3}, integerArray[0]));
+ 		assertTrue(Arrays.equals(new Integer[] {4, 5, 6}, integerArray[1]));
+ 		proxy.setSomeIntArray(new int[] {1, 2, 3});
+ 		assertTrue(Arrays.equals(new int[] {1, 2, 3}, proxy.getSomeIntArray()));
+ 		proxy.setNestedIntArray(new int[][] {{1, 2, 3}, {4, 5, 6}});
+ 		int[][] intArray = proxy.getNestedIntArray();
+ 		assertTrue(Arrays.equals(new int[] {1, 2, 3}, intArray[0]));
+ 		assertTrue(Arrays.equals(new int[] {4, 5, 6}, intArray[1]));
 
 		try {
Update of /cvsroot/springframework/spring/test/org/springframework/beans
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28750/test/org/springframework/beans
Modified Files:
	TestBean.java ITestBean.java 
Log Message:
fixed HTTP invoker to support resolution of multi-level primitive array classes again
Index: ITestBean.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/beans/ITestBean.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** ITestBean.java	27 Mar 2007 20:04:37 -0000	1.12
--- ITestBean.java	19 Mar 2009 15:17:39 -0000	1.13
***************
*** 1,4 ****
 /*
! * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 34,38 ****
 	void setAge(int age);
 
! 	String getName(); 
 
 	void setName(String name);
--- 34,38 ----
 	void setAge(int age);
 
! 	String getName();
 
 	void setName(String name);
***************
*** 48,51 ****
--- 48,67 ----
 	void setStringArray(String[] stringArray);
 
+ 	Integer[][] getNestedIntegerArray();
+ 
+ 	Integer[] getSomeIntegerArray();
+ 
+ 	void setSomeIntegerArray(Integer[] someIntegerArray);
+ 
+ 	void setNestedIntegerArray(Integer[][] nestedIntegerArray);
+ 
+ 	int[] getSomeIntArray();
+ 
+ 	void setSomeIntArray(int[] someIntArray);
+ 
+ 	int[][] getNestedIntArray();
+ 
+ 	void setNestedIntArray(int[][] someNestedArray);
+ 
 	/**
 	 * Throws a given (non-null) exception.
Index: TestBean.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/beans/TestBean.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** TestBean.java	15 Mar 2008 00:19:51 -0000	1.36
--- TestBean.java	19 Mar 2009 15:17:39 -0000	1.37
***************
*** 1,4 ****
 /*
! * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 67,70 ****
--- 67,76 ----
 	private Integer[] someIntegerArray;
 
+ 	private Integer[][] nestedIntegerArray;
+ 
+ 	private int[] someIntArray;
+ 
+ 	private int[][] nestedIntArray;
+ 
 	private Date date = new Date();
 
***************
*** 247,250 ****
--- 253,280 ----
 	}
 
+ 	public Integer[][] getNestedIntegerArray() {
+ 		return nestedIntegerArray;
+ 	}
+ 
+ 	public void setNestedIntegerArray(Integer[][] nestedIntegerArray) {
+ 		this.nestedIntegerArray = nestedIntegerArray;
+ 	}
+ 
+ 	public int[] getSomeIntArray() {
+ 		return someIntArray;
+ 	}
+ 
+ 	public void setSomeIntArray(int[] someIntArray) {
+ 		this.someIntArray = someIntArray;
+ 	}
+ 
+ 	public int[][] getNestedIntArray() {
+ 		return nestedIntArray;
+ 	}
+ 
+ 	public void setNestedIntArray(int[][] nestedIntArray) {
+ 		this.nestedIntArray = nestedIntArray;
+ 	}
+ 
 	public Date getDate() {
 		return date;
***************
*** 368,374 ****
 
 
- 	/**
- 	 * @see ITestBean#exceptional(Throwable)
- 	 */
 	public void exceptional(Throwable t) throws Throwable {
 		if (t != null) {
--- 398,401 ----
***************
*** 380,393 ****
 		throw new IOException();
 	}
! 	/**
! 	 * @see ITestBean#returnsThis()
! 	 */
 	public Object returnsThis() {
 		return this;
 	}
 
- 	/**
- 	 * @see IOther#absquatulate()
- 	 */
 	public void absquatulate() {
 	}
--- 407,415 ----
 		throw new IOException();
 	}
! 
 	public Object returnsThis() {
 		return this;
 	}
 
 	public void absquatulate() {
 	}
From: Juergen H. <jho...@us...> - 2009年03月19日 15:17:51
Update of /cvsroot/springframework/spring/src/org/springframework/util
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28750/src/org/springframework/util
Modified Files:
	ClassUtils.java 
Log Message:
fixed HTTP invoker to support resolution of multi-level primitive array classes again
Index: ClassUtils.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/util/ClassUtils.java,v
retrieving revision 1.77
retrieving revision 1.78
diff -C2 -d -r1.77 -r1.78
*** ClassUtils.java	16 Sep 2008 20:09:21 -0000	1.77
--- ClassUtils.java	19 Mar 2009 15:17:38 -0000	1.78
***************
*** 1,4 ****
 /*
! * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 52,57 ****
 	public static final String ARRAY_SUFFIX = "[]";
 
! 	/** Prefix for internal array class names: "[L" */
! 	private static final String INTERNAL_ARRAY_PREFIX = "[L";
 
 	/** The package separator character '.' */
--- 52,60 ----
 	public static final String ARRAY_SUFFIX = "[]";
 
! 	/** Prefix for internal array class names: "[" */
! 	private static final String INTERNAL_ARRAY_PREFIX = "[";
! 
! 	/** Prefix for internal non-primitive array class names: "[L" */
! 	private static final String NON_PRIMITIVE_ARRAY_PREFIX = "[L";
 
 	/** The package separator character '.' */
***************
*** 192,205 ****
 
 		// "[Ljava.lang.String;" style arrays
! 		int internalArrayMarker = name.indexOf(INTERNAL_ARRAY_PREFIX);
! 		if (internalArrayMarker != -1 && name.endsWith(";")) {
! 			String elementClassName = null;
! 			if (internalArrayMarker == 0) {
! 				elementClassName = name.substring(INTERNAL_ARRAY_PREFIX.length(), name.length() - 1);
! 			}
! 			else if (name.startsWith("[")) {
! 				elementClassName = name.substring(1);
! 			}
! 			Class elementClass = forName(elementClassName, classLoader);
 			return Array.newInstance(elementClass, 0).getClass();
 		}
--- 195,208 ----
 
 		// "[Ljava.lang.String;" style arrays
! 		if (name.startsWith(NON_PRIMITIVE_ARRAY_PREFIX) && name.endsWith(";")) {
! 			String elementName = name.substring(NON_PRIMITIVE_ARRAY_PREFIX.length(), name.length() - 1);
! 			Class elementClass = forName(elementName, classLoader);
! 			return Array.newInstance(elementClass, 0).getClass();
! 		}
! 
! 		// "[[I" or "[[Ljava.lang.String;" style arrays
! 		if (name.startsWith(INTERNAL_ARRAY_PREFIX)) {
! 			String elementName = name.substring(INTERNAL_ARRAY_PREFIX.length());
! 			Class elementClass = forName(elementName, classLoader);
 			return Array.newInstance(elementClass, 0).getClass();
 		}
Update of /cvsroot/springframework/spring/src/org/springframework/transaction/jta
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22109/src/org/springframework/transaction/jta
Modified Files:
	WebSphereUowTransactionManager.java 
Log Message:
WebSphereUowTransactionManager preserves original exception in case of rollback (SPR-5270 backport)
Index: WebSphereUowTransactionManager.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/transaction/jta/WebSphereUowTransactionManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** WebSphereUowTransactionManager.java	18 Dec 2007 15:18:40 -0000	1.4
--- WebSphereUowTransactionManager.java	19 Mar 2009 14:50:39 -0000	1.5
***************
*** 38,41 ****
--- 38,42 ----
 import org.springframework.transaction.support.TransactionCallback;
 import org.springframework.transaction.support.TransactionSynchronizationManager;
+ import org.springframework.util.ReflectionUtils;
 
 /**
***************
*** 289,292 ****
--- 290,295 ----
 		private Object result;
 
+ 		private Throwable exception;
+ 
 		public UOWActionAdapter(TransactionDefinition definition, TransactionCallback callback,
 				boolean actualTransaction, boolean newTransaction, boolean newSynchronization, boolean debug) {
***************
*** 307,310 ****
--- 310,316 ----
 				triggerBeforeCommit(status);
 			}
+ 			catch (Throwable ex) {
+ 				this.exception = ex;
+ 			}
 			finally {
 				if (status.isLocalRollbackOnly()) {
***************
*** 324,327 ****
--- 330,336 ----
 
 		public Object getResult() {
+ 			if (this.exception != null) {
+ 				ReflectionUtils.rethrowRuntimeException(this.exception);
+ 			}
 			return this.result;
 		}
Update of /cvsroot/springframework/spring/tiger/src/org/springframework/ejb/interceptor
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20521/tiger/src/org/springframework/ejb/interceptor
Modified Files:
	SpringBeanAutowiringInterceptor.java 
Log Message:
made SpringBeanAutowiringInterceptor callback signature compatible with WebSphere
Index: SpringBeanAutowiringInterceptor.java
===================================================================
RCS file: /cvsroot/springframework/spring/tiger/src/org/springframework/ejb/interceptor/SpringBeanAutowiringInterceptor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** SpringBeanAutowiringInterceptor.java	28 Aug 2008 09:00:22 -0000	1.3
--- SpringBeanAutowiringInterceptor.java	19 Mar 2009 14:45:52 -0000	1.4
***************
*** 1,4 ****
 /*
! * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 22,25 ****
--- 22,26 ----
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
+ import javax.ejb.EJBException;
 import javax.ejb.PostActivate;
 import javax.ejb.PrePassivate;
***************
*** 94,100 ****
 	@PostConstruct
 	@PostActivate
! 	public void autowireBean(InvocationContext invocationContext) throws Exception {
 		doAutowireBean(invocationContext.getTarget());
! 		invocationContext.proceed();
 	}
 
--- 95,110 ----
 	@PostConstruct
 	@PostActivate
! 	public void autowireBean(InvocationContext invocationContext) {
 		doAutowireBean(invocationContext.getTarget());
! 		try {
! 			invocationContext.proceed();
! 		}
! 		catch (RuntimeException ex) {
! 			throw ex;
! 		}
! 		catch (Exception ex) {
! 			// Cannot declare a checked exception on WebSphere here - so we need to wrap.
! 			throw new EJBException(ex);
! 		}
 	}
 
***************
*** 184,190 ****
 	@PreDestroy
 	@PrePassivate
! 	public void releaseBean(InvocationContext invocationContext) throws Exception {
 		doReleaseBean(invocationContext.getTarget());
! 		invocationContext.proceed();
 	}
 
--- 194,209 ----
 	@PreDestroy
 	@PrePassivate
! 	public void releaseBean(InvocationContext invocationContext) {
 		doReleaseBean(invocationContext.getTarget());
! 		try {
! 			invocationContext.proceed();
! 		}
! 		catch (RuntimeException ex) {
! 			throw ex;
! 		}
! 		catch (Exception ex) {
! 			// Cannot declare a checked exception on WebSphere here - so we need to wrap.
! 			throw new EJBException(ex);
! 		}
 	}
 
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/object
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22732/test/org/springframework/jdbc/object
Modified Files:
	GenericStoredProcedureTests-context.xml 
	GenericStoredProcedureTests.java 
Log Message:
removed autoboxing (SPR-3986 SPR-3987)
Index: GenericStoredProcedureTests-context.xml
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/jdbc/object/GenericStoredProcedureTests-context.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** GenericStoredProcedureTests-context.xml	17 Mar 2009 15:30:18 -0000	1.1
--- GenericStoredProcedureTests-context.xml	17 Mar 2009 21:37:36 -0000	1.2
***************
*** 16,20 ****
 					<constructor-arg index="1">
 						<util:constant static-field="java.sql.Types.INTEGER"/>
! 					</constructor-arg> 
 				</bean>
 				<bean class="org.springframework.jdbc.core.SqlParameter">
--- 16,20 ----
 					<constructor-arg index="1">
 						<util:constant static-field="java.sql.Types.INTEGER"/>
! 					</constructor-arg>
 				</bean>
 				<bean class="org.springframework.jdbc.core.SqlParameter">
Index: GenericStoredProcedureTests.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/jdbc/object/GenericStoredProcedureTests.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** GenericStoredProcedureTests.java	17 Mar 2009 15:30:18 -0000	1.1
--- GenericStoredProcedureTests.java	17 Mar 2009 21:37:36 -0000	1.2
***************
*** 101,106 ****
 		StoredProcedure adder = (StoredProcedure) bf.getBean("genericProcedure");
 		Map in = new HashMap(2);
! 		in.put("amount", amount);
! 		in.put("custid", custid);
 		Map out = adder.execute(in);
 		Integer id = (Integer) out.get("newid");
--- 101,106 ----
 		StoredProcedure adder = (StoredProcedure) bf.getBean("genericProcedure");
 		Map in = new HashMap(2);
! 		in.put("amount", new Integer(amount));
! 		in.put("custid", new Integer(custid));
 		Map out = adder.execute(in);
 		Integer id = (Integer) out.get("newid");
Update of /cvsroot/springframework/spring/src/org/springframework/jms/listener/adapter
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11768/src/org/springframework/jms/listener/adapter
Modified Files:
	MessageListenerAdapter.java 
Log Message:
fixed MessageListenerAdapter's "getSubscriptionName()" to work without delegate as well (SPR-5309 backport)
Index: MessageListenerAdapter.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jms/listener/adapter/MessageListenerAdapter.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** MessageListenerAdapter.java	15 Oct 2008 14:42:00 -0000	1.18
--- MessageListenerAdapter.java	17 Mar 2009 20:45:48 -0000	1.19
***************
*** 1,4 ****
 /*
! * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 18,22 ****
 
 import java.lang.reflect.InvocationTargetException;
- 
 import javax.jms.Destination;
 import javax.jms.InvalidDestinationException;
--- 18,21 ----
***************
*** 367,375 ****
 
 	public String getSubscriptionName() {
! 		if (this.delegate instanceof SubscriptionNameProvider) {
! 			return ((SubscriptionNameProvider) this.delegate).getSubscriptionName();
 		}
 		else {
! 			return this.delegate.getClass().getName();
 		}
 	}
--- 366,375 ----
 
 	public String getSubscriptionName() {
! 		Object delegate = getDelegate();
! 		if (delegate != this && delegate instanceof SubscriptionNameProvider) {
! 			return ((SubscriptionNameProvider) delegate).getSubscriptionName();
 		}
 		else {
! 			return delegate.getClass().getName();
 		}
 	}
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/object
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18305/test/org/springframework/jdbc/object
Added Files:
	CustomerMapper.java GenericSqlQueryTests-context.xml 
	GenericSqlQueryTests.java 
Log Message:
added a concrete GenericSqlQuery class to make it possible to configure in application context (SPR-3986 backport)
--- NEW FILE: CustomerMapper.java ---
package org.springframework.jdbc.object;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.Customer;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CustomerMapper implements RowMapper {
	private static final String[] COLUMN_NAMES = new String[] {"id", "forename"};
	
	public Object mapRow(ResultSet rs, int rownum) throws SQLException {
		Customer cust = new Customer();
		cust.setId(rs.getInt(COLUMN_NAMES[0]));
		cust.setForename(rs.getString(COLUMN_NAMES[1]));
		return cust;
	}
}
--- NEW FILE: GenericSqlQueryTests-context.xml ---
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
	<bean id="dataSource" class="org.springframework.jdbc.datasource.TestDataSourceWrapper"/>
	<bean id="queryWithPlaceHolders" class="org.springframework.jdbc.object.GenericSqlQuery">
		<property name="dataSource" ref="dataSource"/>
		<property name="sql" value="select id, forename from custmr where id = ? and country = ?"/>
		<property name="parameters">
			<list>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="amount"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.INTEGER"/>
					</constructor-arg> 
				</bean>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="custid"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.VARCHAR"/>
					</constructor-arg>
				</bean>
			</list>
		</property>
 <property name="rowMapperClass" value="org.springframework.jdbc.object.CustomerMapper"/>
	</bean>
	<bean id="queryWithNamedParameters" class="org.springframework.jdbc.object.GenericSqlQuery">
		<property name="dataSource" ref="dataSource"/>
		<property name="sql" value="select id, forename from custmr where id = :id and country = :country"/>
		<property name="parameters">
			<list>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="id"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.INTEGER"/>
					</constructor-arg>
				</bean>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="country"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.VARCHAR"/>
					</constructor-arg>
				</bean>
			</list>
		</property>
 <property name="rowMapperClass" value="org.springframework.jdbc.object.CustomerMapper"/>
	</bean>
</beans>
--- NEW FILE: GenericSqlQueryTests.java ---
/*
 * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.object;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.easymock.MockControl;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.AbstractJdbcTests;
import org.springframework.jdbc.Customer;
import org.springframework.jdbc.datasource.TestDataSourceWrapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
/**
 * @author Thomas Risberg
 */
public class GenericSqlQueryTests extends AbstractJdbcTests {
	private static final String SELECT_ID_FORENAME_NAMED_PARAMETERS_PARSED =
		"select id, forename from custmr where id = ? and country = ?";
	private final boolean debugEnabled = LogFactory.getLog(JdbcTemplate.class).isDebugEnabled();
	private MockControl ctrlPreparedStatement;
	private PreparedStatement mockPreparedStatement;
	private MockControl ctrlResultSet;
	private ResultSet mockResultSet;
	private BeanFactory bf;
	
	protected void setUp() throws Exception {
		super.setUp();
		ctrlPreparedStatement =	MockControl.createControl(PreparedStatement.class);
		mockPreparedStatement =	(PreparedStatement) ctrlPreparedStatement.getMock();
		ctrlResultSet = MockControl.createControl(ResultSet.class);
		mockResultSet = (ResultSet) ctrlResultSet.getMock();
		this.bf = new XmlBeanFactory(
				new ClassPathResource("org/springframework/jdbc/object/GenericSqlQueryTests-context.xml"));
		TestDataSourceWrapper testDataSource = (TestDataSourceWrapper) bf.getBean("dataSource");
		testDataSource.setTarget(mockDataSource);
	}
	protected void tearDown() throws Exception {
		super.tearDown();
		if (shouldVerify()) {
			ctrlPreparedStatement.verify();
			ctrlResultSet.verify();
		}
	}
	protected void replay() {
		super.replay();
		ctrlPreparedStatement.replay();
		ctrlResultSet.replay();
	}
	public void testPlaceHoldersCustomerQuery() throws SQLException {
		SqlQuery query = (SqlQuery) bf.getBean("queryWithPlaceHolders");
		testCustomerQuery(query, false);
	}
	public void testNamedParameterCustomerQuery() throws SQLException {
		SqlQuery query = (SqlQuery) bf.getBean("queryWithNamedParameters");
		testCustomerQuery(query, true);
	}
	private void testCustomerQuery(SqlQuery query, boolean namedParameters) throws SQLException {
		mockResultSet.next();
		ctrlResultSet.setReturnValue(true);
		mockResultSet.getInt("id");
		ctrlResultSet.setReturnValue(1);
		mockResultSet.getString("forename");
		ctrlResultSet.setReturnValue("rod");
		mockResultSet.next();
		ctrlResultSet.setReturnValue(false);
		mockResultSet.close();
		ctrlResultSet.setVoidCallable();
		mockPreparedStatement.setObject(1, new Integer(1), Types.INTEGER);
		ctrlPreparedStatement.setVoidCallable();
		mockPreparedStatement.setString(2, "UK");
		ctrlPreparedStatement.setVoidCallable();
		mockPreparedStatement.executeQuery();
		ctrlPreparedStatement.setReturnValue(mockResultSet);
		if (debugEnabled) {
			mockPreparedStatement.getWarnings();
			ctrlPreparedStatement.setReturnValue(null);
		}
		mockPreparedStatement.close();
		ctrlPreparedStatement.setVoidCallable();
		mockConnection.prepareStatement(SELECT_ID_FORENAME_NAMED_PARAMETERS_PARSED);
		ctrlConnection.setReturnValue(mockPreparedStatement);
		replay();
		List l = null;
		if (namedParameters) {
			Map params = new HashMap(2);
			params.put("id", new Integer(1));
			params.put("country", "UK");
			l = query.executeByNamedParam(params);
		}
		else {
			Object[] params = new Object[] {new Integer(1), "UK"};
			l = query.execute(params);
		}
		assertTrue("Customer was returned correctly", l.size() == 1);
		Customer cust = (Customer) l.get(0);
		assertTrue("Customer id was assigned correctly", cust.getId() == 1);
		assertTrue("Customer forename was assigned correctly", cust.getForename().equals("rod"));
	}
}
Update of /cvsroot/springframework/spring/src/org/springframework/jdbc/object
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18305/src/org/springframework/jdbc/object
Added Files:
	GenericSqlQuery.java 
Log Message:
added a concrete GenericSqlQuery class to make it possible to configure in application context (SPR-3986 backport)
--- NEW FILE: GenericSqlQuery.java ---
/*
 * Copyright 2002-2009 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.object;
import java.util.Map;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.util.Assert;
import org.springframework.dao.InvalidDataAccessResourceUsageException;
public class GenericSqlQuery extends SqlQuery {
	Class rowMapperClass;
	RowMapper rowMapper;
	public void setRowMapperClass(Class rowMapperClass)
			throws IllegalAccessException, InstantiationException {
		this.rowMapperClass = rowMapperClass;
		if (!RowMapper.class.isAssignableFrom(rowMapperClass))
			throw new IllegalStateException("The specified class '" + 
					rowMapperClass.getName() + " is not a sub class of " +
					"'org.springframework.jdbc.core.RowMapper'");
	}
	public void afterPropertiesSet() {
		super.afterPropertiesSet();
		Assert.notNull(rowMapperClass, "The 'rowMapperClass' property is required");
	}
	protected RowMapper newRowMapper(Object[] parameters, Map context) {
		try {
			return (RowMapper) rowMapperClass.newInstance();
		}
		catch (InstantiationException e) {
			throw new InvalidDataAccessResourceUsageException("Unable to instantiate RowMapper", e);
		}
		catch (IllegalAccessException e) {
			throw new InvalidDataAccessResourceUsageException("Unable to instantiate RowMapper", e);
		}
	}
}
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/object
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17574/test/org/springframework/jdbc/object
Added Files:
	GenericStoredProcedureTests-context.xml 
	GenericStoredProcedureTests.java 
Log Message:
added a concrete GenericStoredProcedure class to make it possible to configure using application context (SPR-3987 backport)
--- NEW FILE: GenericStoredProcedureTests-context.xml ---
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
	<bean id="dataSource" class="org.springframework.jdbc.datasource.TestDataSourceWrapper"/>
	<bean id="genericProcedure" class="org.springframework.jdbc.object.GenericStoredProcedure">
		<property name="dataSource" ref="dataSource"/>
		<property name="sql" value="add_invoice"/>
		<property name="parameters">
			<list>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="amount"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.INTEGER"/>
					</constructor-arg> 
				</bean>
				<bean class="org.springframework.jdbc.core.SqlParameter">
					<constructor-arg index="0" value="custid"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.INTEGER"/>
					</constructor-arg>
				</bean>
				<bean class="org.springframework.jdbc.core.SqlOutParameter">
					<constructor-arg index="0" value="newid"/>
					<constructor-arg index="1">
						<util:constant static-field="java.sql.Types.INTEGER"/>
					</constructor-arg>
				</bean>
			</list>
		</property>
	</bean>
</beans>
--- NEW FILE: GenericStoredProcedureTests.java ---
/*
 * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.object;
import java.sql.CallableStatement;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import org.easymock.MockControl;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.AbstractJdbcTests;
import org.springframework.jdbc.datasource.TestDataSourceWrapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
/**
 * @author Thomas Risberg
 */
public class GenericStoredProcedureTests extends AbstractJdbcTests {
	private final boolean debugEnabled = LogFactory.getLog(JdbcTemplate.class).isDebugEnabled();
	private MockControl ctrlCallable;
	private CallableStatement mockCallable;
	private BeanFactory bf;
	protected void setUp() throws Exception {
		super.setUp();
		ctrlCallable = MockControl.createControl(CallableStatement.class);
		mockCallable = (CallableStatement) ctrlCallable.getMock();
		this.bf = new XmlBeanFactory(
				new ClassPathResource("org/springframework/jdbc/object/GenericStoredProcedureTests-context.xml"));
		TestDataSourceWrapper testDataSource = (TestDataSourceWrapper) bf.getBean("dataSource");
		testDataSource.setTarget(mockDataSource);
	}
	protected void tearDown() throws Exception {
		super.tearDown();
		if (shouldVerify()) {
			ctrlCallable.verify();
		}
	}
	protected void replay() {
		super.replay();
		ctrlCallable.replay();
	}
	public void testAddInvoices() throws Exception {
		mockCallable.setObject(1, new Integer(1106), Types.INTEGER);
		ctrlCallable.setVoidCallable();
		mockCallable.setObject(2, new Integer(3), Types.INTEGER);
		ctrlCallable.setVoidCallable();
		mockCallable.registerOutParameter(3, Types.INTEGER);
		ctrlCallable.setVoidCallable();
		mockCallable.execute();
		ctrlCallable.setReturnValue(false);
		mockCallable.getUpdateCount();
		ctrlCallable.setReturnValue(-1);
		mockCallable.getObject(3);
		ctrlCallable.setReturnValue(new Integer(4));
		if (debugEnabled) {
			mockCallable.getWarnings();
			ctrlCallable.setReturnValue(null);
		}
		mockCallable.close();
		ctrlCallable.setVoidCallable();
		mockConnection.prepareCall("{call " + "add_invoice" + "(?, ?, ?)}");
		ctrlConnection.setReturnValue(mockCallable);
		replay();
		testAddInvoice(1106, 3);
	}
	private void testAddInvoice(final int amount, final int custid)
		throws Exception {
		StoredProcedure adder = (StoredProcedure) bf.getBean("genericProcedure");
		Map in = new HashMap(2);
		in.put("amount", amount);
		in.put("custid", custid);
		Map out = adder.execute(in);
		Integer id = (Integer) out.get("newid");
		assertEquals(4, id.intValue());
	}
}
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/datasource
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17574/test/org/springframework/jdbc/datasource
Added Files:
	TestDataSourceWrapper.java 
Log Message:
added a concrete GenericStoredProcedure class to make it possible to configure using application context (SPR-3987 backport)
--- NEW FILE: TestDataSourceWrapper.java ---
package org.springframework.jdbc.datasource;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
public class TestDataSourceWrapper extends AbstractDataSource {
	private DataSource target;
	public void setTarget(DataSource target) {
		this.target = target;
	}
	public Connection getConnection() throws SQLException {
		return target.getConnection();
	}
	public Connection getConnection(String username, String password) throws SQLException {
		return target.getConnection(username, password);
	}
}
Update of /cvsroot/springframework/spring/src/org/springframework/jdbc/object
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17574/src/org/springframework/jdbc/object
Added Files:
	GenericStoredProcedure.java 
Log Message:
added a concrete GenericStoredProcedure class to make it possible to configure using application context (SPR-3987 backport)
--- NEW FILE: GenericStoredProcedure.java ---
/*
 * Copyright 2002-2009 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.object;
import org.springframework.jdbc.object.StoredProcedure;
public class GenericStoredProcedure extends StoredProcedure {
}
Update of /cvsroot/springframework/spring/src/org/springframework/jdbc/support
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16163/src/org/springframework/jdbc/support
Modified Files:
	SQLErrorCodeSQLExceptionTranslator.java SQLErrorCodes.java 
Log Message:
added the option of providing a database specific custom SQLExceptionTranslator to provide customized translation for any SQLException before the error codes translation happens (SPR-4899 backport)
Index: SQLErrorCodes.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/support/SQLErrorCodes.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** SQLErrorCodes.java	17 Mar 2009 15:12:21 -0000	1.18
--- SQLErrorCodes.java	17 Mar 2009 15:20:29 -0000	1.19
***************
*** 39,42 ****
--- 39,44 ----
 	private boolean useSqlStateForTranslation = false;
 
+ 	private SQLExceptionTranslator customSqlExceptionTranslator = null;
+ 
 	private String[] badSqlGrammarCodes = new String[0];
 
***************
*** 98,101 ****
--- 100,124 ----
 	}
 
+ 	public SQLExceptionTranslator getCustomSqlExceptionTranslator() {
+ 		return customSqlExceptionTranslator;
+ 	}
+ 
+ 	public void setCustomSqlExceptionTranslatorClass(Class customSqlExceptionTranslatorClass) {
+ 		if (customSqlExceptionTranslatorClass != null) {
+ 			try {
+ 				this.customSqlExceptionTranslator =
+ 						(SQLExceptionTranslator) customSqlExceptionTranslatorClass.newInstance();
+ 			}
+ 			catch (InstantiationException e) {
+ 				throw new InvalidDataAccessResourceUsageException(
+ 						"Unable to instantiate " + customSqlExceptionTranslatorClass.getName(), e);
+ 			}
+ 			catch (IllegalAccessException e) {
+ 				throw new InvalidDataAccessResourceUsageException(
+ 						"Unable to instantiate " + customSqlExceptionTranslatorClass.getName(), e);
+ 			}
+ 		}
+ 	}
+ 
 	public void setBadSqlGrammarCodes(String[] badSqlGrammarCodes) {
 		this.badSqlGrammarCodes = StringUtils.sortStringArray(badSqlGrammarCodes);
Index: SQLErrorCodeSQLExceptionTranslator.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/support/SQLErrorCodeSQLExceptionTranslator.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** SQLErrorCodeSQLExceptionTranslator.java	17 Mar 2009 15:12:21 -0000	1.33
--- SQLErrorCodeSQLExceptionTranslator.java	17 Mar 2009 15:20:29 -0000	1.34
***************
*** 188,191 ****
--- 188,202 ----
 		}
 
+ 		// Next, try the custom SQLException translator, if available.
+ 		if (this.sqlErrorCodes != null) {
+ 			SQLExceptionTranslator customTranslator = this.sqlErrorCodes.getCustomSqlExceptionTranslator();
+ 			if (customTranslator != null) {
+ 				DataAccessException customDex = customTranslator.translate(task, sql, sqlEx);
+ 				if (customDex != null) {
+ 					return customDex;
+ 				}
+ 			}
+ 		}
+ 
 		// Check SQLErrorCodes with corresponding error code, if available.
 		if (this.sqlErrorCodes != null) {
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/support
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16163/test/org/springframework/jdbc/support
Added Files:
	SQLExceptionCustomTranslatorTests.java 
	CustomSqlExceptionTranslator.java 
Log Message:
added the option of providing a database specific custom SQLExceptionTranslator to provide customized translation for any SQLException before the error codes translation happens (SPR-4899 backport)
--- NEW FILE: SQLExceptionCustomTranslatorTests.java ---
/*
 * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.support;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.TransientDataAccessResourceException;
import org.springframework.jdbc.BadSqlGrammarException;
import java.sql.SQLException;
import junit.framework.TestCase;
/**
 * Class to test custom SQLException translation.
 *
 * @author Thomas Risberg
 */
public class SQLExceptionCustomTranslatorTests extends TestCase {
	private static SQLErrorCodes ERROR_CODES = new SQLErrorCodes();
	static {
		ERROR_CODES.setBadSqlGrammarCodes(new String[] { "1" });
		ERROR_CODES.setDataAccessResourceFailureCodes(new String[] { "2" });
		ERROR_CODES.setCustomSqlExceptionTranslatorClass(CustomSqlExceptionTranslator.class);
	}
	public void testCustomErrorCodeTranslation() {
		SQLExceptionTranslator sext = new SQLErrorCodeSQLExceptionTranslator(ERROR_CODES);
		SQLException dataIntegrityViolationEx = SQLExceptionSubclassFactory.newSQLDataException("", "", 1);
		DataAccessException daeex = sext.translate("task", "SQL", dataIntegrityViolationEx);
		assertEquals(dataIntegrityViolationEx, daeex.getCause());
		assertTrue(daeex instanceof BadSqlGrammarException);
		SQLException dataAccessResourceEx = SQLExceptionSubclassFactory.newSQLDataException("", "", 2);
		DataAccessException darex = sext.translate("task", "SQL", dataAccessResourceEx);
		assertEquals(dataIntegrityViolationEx, daeex.getCause());
		assertTrue(darex instanceof TransientDataAccessResourceException);
	}
}
--- NEW FILE: CustomSqlExceptionTranslator.java ---
/*
 * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.jdbc.support;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.TransientDataAccessResourceException;
import java.sql.SQLException;
/**
 * Custom SQLException translation for testing.
 *
 * @author Thomas Risberg
 */
public class CustomSqlExceptionTranslator implements SQLExceptionTranslator {
	public DataAccessException translate(String task, String sql, SQLException ex) {
		if (ex.getErrorCode() == 2) {
			return new TransientDataAccessResourceException("Custom", ex);
		}
		return null;
	}
}
Update of /cvsroot/springframework/spring/src/org/springframework/jdbc/support
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14903/src/org/springframework/jdbc/support
Modified Files:
	SQLErrorCodeSQLExceptionTranslator.java SQLErrorCodes.java 
	sql-error-codes.xml 
Log Message:
added a DuplicatKeyException catagory for SQLException translation (SPR-5125 backport)
Index: SQLErrorCodes.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/support/SQLErrorCodes.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** SQLErrorCodes.java	7 Nov 2008 20:22:24 -0000	1.17
--- SQLErrorCodes.java	17 Mar 2009 15:12:21 -0000	1.18
***************
*** 18,21 ****
--- 18,22 ----
 
 import org.springframework.util.StringUtils;
+ import org.springframework.dao.InvalidDataAccessResourceUsageException;
 
 /**
***************
*** 42,45 ****
--- 43,48 ----
 	private String[] invalidResultSetAccessCodes = new String[0];
 
+ 	private String[] duplicateKeyCodes = new String[0];
+ 
 	private String[] dataIntegrityViolationCodes = new String[0];
 
***************
*** 58,62 ****
 	private CustomSQLErrorCodesTranslation[] customTranslations;
 
- 
 	/**
 	 * Set this property if the database name contains spaces,
--- 61,64 ----
***************
*** 96,100 ****
 	}
 
- 
 	public void setBadSqlGrammarCodes(String[] badSqlGrammarCodes) {
 		this.badSqlGrammarCodes = StringUtils.sortStringArray(badSqlGrammarCodes);
--- 98,101 ----
***************
*** 113,116 ****
--- 114,125 ----
 	}
 
+ 	public String[] getDuplicateKeyCodes() {
+ 		return duplicateKeyCodes;
+ 	}
+ 
+ 	public void setDuplicateKeyCodes(String[] duplicateKeyCodes) {
+ 		this.duplicateKeyCodes = duplicateKeyCodes;
+ 	}
+ 
 	public void setDataIntegrityViolationCodes(String[] dataIntegrityViolationCodes) {
 		this.dataIntegrityViolationCodes = StringUtils.sortStringArray(dataIntegrityViolationCodes);
Index: sql-error-codes.xml
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/support/sql-error-codes.xml,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** sql-error-codes.xml	16 Oct 2008 19:17:16 -0000	1.32
--- sql-error-codes.xml	17 Mar 2009 15:12:21 -0000	1.33
***************
*** 22,27 ****
 			<value>-007,-029,-097,-104,-109,-115,-128,-199,-204,-206,-301,-408,-441,-491</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>-407,-530,-531,-532,-543,-544,-545,-603,-667,-803</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 22,30 ----
 			<value>-007,-029,-097,-104,-109,-115,-128,-199,-204,-206,-301,-408,-441,-491</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>-803</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>-407,-530,-531,-532,-543,-544,-545,-603,-667</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 46,51 ****
 			<value>42802,42821,42X01,42X02,42X03,42X04,42X05,42X06,42X07,42X08</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>22001,22005,23502,23503,23505,23513,X0Y32</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 49,57 ----
 			<value>42802,42821,42X01,42X02,42X03,42X04,42X05,42X06,42X07,42X08</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>23505</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>22001,22005,23502,23503,23513,X0Y32</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 64,69 ****
 			<value>42000,42001,42101,42102,42111,42112,42121,42122,42132</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>22003,22012,22025,23000,23001</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 70,78 ----
 			<value>42000,42001,42101,42102,42111,42112,42121,42122,42132</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>23001</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>22003,22012,22025,23000</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 79,82 ****
--- 88,94 ----
 			<value>-22,-28</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>-104</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
 			<value>-9</value>
***************
*** 94,99 ****
 			<value>-201,-217,-696</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>-239,-268,-692,-11030</value>
 		</property>
 	</bean>
--- 106,114 ----
 			<value>-201,-217,-696</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>-239,-268,-6017</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>-692,-11030</value>
 		</property>
 	</bean>
***************
*** 109,114 ****
 			<value>229</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>544,2601,2627,8114,8115</value>
 		</property>
 		<property name="cannotAcquireLockCodes">
--- 124,132 ----
 			<value>229</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>2601,2627</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>544,8114,8115</value>
 		</property>
 		<property name="cannotAcquireLockCodes">
***************
*** 124,129 ****
 			<value>1054,1064,1146</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>630,839,840,893,1062,1169,1215,1216,1217,1451,1452,1557</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 142,150 ----
 			<value>1054,1064,1146</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>1062</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>630,839,840,893,1169,1215,1216,1217,1451,1452,1557</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 145,150 ****
 			<value>17003</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>1,1400,1722,2291,2292</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 166,174 ----
 			<value>17003</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>1</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>1400,1722,2291,2292</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 169,174 ****
 			<value>03000,42000,42601,42602,42622,42804,42P01</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>23000,23502,23503,23505,23514</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
--- 193,201 ----
 			<value>03000,42000,42601,42602,42622,42804,42P01</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>23505</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>23000,23502,23503,23514</value>
 		</property>
 		<property name="dataAccessResourceFailureCodes">
***************
*** 197,202 ****
 			<value>101,102,103,104,105,106,107,108,109,110,111,112,113,116,120,121,123,207,208,213,257,512</value>
 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>233,423,511,515,530,547,2601,2615,2714</value>
 		</property>
 		<property name="transientDataAccessResourceCodes">
--- 224,232 ----
 			<value>101,102,103,104,105,106,107,108,109,110,111,112,113,116,120,121,123,207,208,213,257,512</value>
 		</property>
+ 		<property name="duplicateKeyCodes">
+ 			<value>2601</value>
+ 		</property>
 		<property name="dataIntegrityViolationCodes">
! 			<value>233,423,511,515,530,547,2615,2714</value>
 		</property>
 		<property name="transientDataAccessResourceCodes">
Index: SQLErrorCodeSQLExceptionTranslator.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/support/SQLErrorCodeSQLExceptionTranslator.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** SQLErrorCodeSQLExceptionTranslator.java	16 Oct 2008 19:17:16 -0000	1.32
--- SQLErrorCodeSQLExceptionTranslator.java	17 Mar 2009 15:12:21 -0000	1.33
***************
*** 33,36 ****
--- 33,37 ----
 import org.springframework.dao.PermissionDeniedDataAccessException;
 import org.springframework.dao.TransientDataAccessResourceException;
+ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.jdbc.BadSqlGrammarException;
 import org.springframework.jdbc.InvalidResultSetAccessException;
***************
*** 228,231 ****
--- 229,236 ----
 					return new DataIntegrityViolationException(buildMessage(task, sql, sqlEx), sqlEx);
 				}
+ 				else if (Arrays.binarySearch(this.sqlErrorCodes.getDuplicateKeyCodes(), errorCode) >= 0) {
+ 					logTranslation(task, sql, sqlEx, false);
+ 					return new DuplicateKeyException(buildMessage(task, sql, sqlEx), sqlEx);
+ 				}
 				else if (Arrays.binarySearch(this.sqlErrorCodes.getPermissionDeniedCodes(), errorCode) >= 0) {
 					logTranslation(task, sql, sqlEx, false);
Update of /cvsroot/springframework/spring/src/org/springframework/dao
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14903/src/org/springframework/dao
Added Files:
	DuplicateKeyException.java 
Log Message:
added a DuplicatKeyException catagory for SQLException translation (SPR-5125 backport)
--- NEW FILE: DuplicateKeyException.java ---
/*
 * Copyright 2002-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.dao;
/**
 * Exception thrown when an attempt to insert or update data
 * results in violation of an primary key or unique constraint.
 * Note that this is not necessarily a purely relational concept;
 * unique primary keys are required by most database types.
 *
 * @author Thomas Risberg
 */
public class DuplicateKeyException extends DataIntegrityViolationException {
	/**
	 * Constructor for DuplicateKeyException.
	 * @param msg the detail message
	 */
	public DuplicateKeyException(String msg) {
		super(msg);
	}
	/**
	 * Constructor for DuplicateKeyException.
	 * @param msg the detail message
	 * @param cause the root cause from the data access API in use
	 */
	public DuplicateKeyException(String msg, Throwable cause) {
		super(msg, cause);
	}
}
Update of /cvsroot/springframework/spring/test/org/springframework/jdbc/support
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14903/test/org/springframework/jdbc/support
Modified Files:
	SQLErrorCodeSQLExceptionTranslatorTests.java 
Log Message:
added a DuplicatKeyException catagory for SQLException translation (SPR-5125 backport)
Index: SQLErrorCodeSQLExceptionTranslatorTests.java
===================================================================
RCS file: /cvsroot/springframework/spring/test/org/springframework/jdbc/support/SQLErrorCodeSQLExceptionTranslatorTests.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** SQLErrorCodeSQLExceptionTranslatorTests.java	29 Aug 2007 21:00:48 -0000	1.9
--- SQLErrorCodeSQLExceptionTranslatorTests.java	17 Mar 2009 15:12:22 -0000	1.10
***************
*** 28,31 ****
--- 28,32 ----
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.DeadlockLoserDataAccessException;
+ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.jdbc.BadSqlGrammarException;
 import org.springframework.jdbc.InvalidResultSetAccessException;
***************
*** 40,43 ****
--- 41,45 ----
 		ERROR_CODES.setBadSqlGrammarCodes(new String[] { "1", "2" });
 		ERROR_CODES.setInvalidResultSetAccessCodes(new String[] { "3", "4" });
+ 		ERROR_CODES.setDuplicateKeyCodes(new String[] {"10"});
 		ERROR_CODES.setDataAccessResourceFailureCodes(new String[] { "5" });
 		ERROR_CODES.setDataIntegrityViolationCodes(new String[] { "6" });
***************
*** 65,68 ****
--- 67,76 ----
 		checkTranslation(sext, 8, DeadlockLoserDataAccessException.class);
 		checkTranslation(sext, 9, CannotSerializeTransactionException.class);
+ 		checkTranslation(sext, 10, DuplicateKeyException.class);
+ 
+ 		SQLException dupKeyEx = new SQLException("", "", 10);
+ 		DataAccessException dksex = sext.translate("task", "SQL", dupKeyEx);
+ 		assertTrue("Not instance of DataIntegrityViolationException",
+ 				DataIntegrityViolationException.class.isAssignableFrom(dksex.getClass()));
 
 		// Test fallback. We assume that no database will ever return this error code,
Update of /cvsroot/springframework/spring/osgi/bundlor
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv27861/osgi/bundlor
Modified Files:
 Tag: branch-2-5-6-p1
	org.springframework.aspects.mf 
	org.springframework.transaction.mf 
	org.springframework.web.struts.mf org.springframework.beans.mf 
	org.springframework.web.mf org.springframework.web.servlet.mf 
	org.springframework.test.mf org.springframework.orm.mf 
	org.springframework.jms.mf org.springframework.context.mf 
	org.springframework.context.support.mf 
	org.springframework.jdbc.mf org.springframework.aop.mf 
	org.springframework.web.portlet.mf 
Log Message:
fix for garbage collection issue
Index: org.springframework.jdbc.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.jdbc.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.jdbc.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.jdbc.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 16,25 ****
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.enhydra.jdbc.*;version="[1.5.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.dao.*;version="[2.5.6, 2.5.6]",
! org.springframework.jndi.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 16,25 ----
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.enhydra.jdbc.*;version="[1.5.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.dao.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.jndi.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.test.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.test.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.test.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.test.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 15,19 ****
 org.aspectj.weaver.*;version="[1.5.4, 2.0.0)";resolution:=optional,
 org.junit.*;version="[4.4.0, 5.0.0)";resolution:=optional,
! org.springframework.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 org.testng.*;version="[5.8.0, 6.0.0)";resolution:=optional
 Unversioned-Imports: 
--- 15,19 ----
 org.aspectj.weaver.*;version="[1.5.4, 2.0.0)";resolution:=optional,
 org.junit.*;version="[4.4.0, 5.0.0)";resolution:=optional,
! org.springframework.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 org.testng.*;version="[5.8.0, 6.0.0)";resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.orm.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.orm.mf,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -d -r1.5 -r1.5.2.1
*** org.springframework.orm.mf	28 Oct 2008 17:12:08 -0000	1.5
--- org.springframework.orm.mf	16 Mar 2009 12:42:31 -0000	1.5.2.1
***************
*** 50,65 ****
 org.hibernate.usertype;version="[3.2.6.ga, 4.0.0)";resolution:=optional,
 org.hibernate.util;version="[3.2.6.ga, 4.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.dao.*;version="[2.5.6, 2.5.6]",
! org.springframework.instrument.classloading.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jdbc.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
--- 50,65 ----
 org.hibernate.usertype;version="[3.2.6.ga, 4.0.0)";resolution:=optional,
 org.hibernate.util;version="[3.2.6.ga, 4.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.dao.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.instrument.classloading.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jdbc.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
Index: org.springframework.aop.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.aop.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.aop.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.aop.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 10,16 ****
 org.apache.commons.pool.*;version="[1.3.0, 2.0.0)";resolution:=optional,
 org.aspectj.*;version="[1.5.4, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 10,16 ----
 org.apache.commons.pool.*;version="[1.3.0, 2.0.0)";resolution:=optional,
 org.aspectj.*;version="[1.5.4, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.transaction.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.transaction.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.transaction.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.transaction.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 7,11 ****
 com.ibm.ws.Transaction;resolution:=optional,
 oracle.j2ee.transaction;resolution:=optional,
! org.springframework.stereotype;version="[2.5.6, 2.5.6]";resolution:=optional,
 weblogic.transaction;resolution:=optional
 Import-Template: 
--- 7,11 ----
 com.ibm.ws.Transaction;resolution:=optional,
 oracle.j2ee.transaction;resolution:=optional,
! org.springframework.stereotype;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 weblogic.transaction;resolution:=optional
 Import-Template: 
***************
*** 17,28 ****
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.objectweb.jotm.*;version="[2.0.10, 3.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.metadata.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 17,28 ----
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.objectweb.jotm.*;version="[2.0.10, 3.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.metadata.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.web.portlet.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.web.portlet.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.web.portlet.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.web.portlet.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 8,19 ****
 org.apache.commons.fileupload.*;version="[1.2.0, 2.0.0)";resolution:=optional,
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.stereotype;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.validation.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 8,19 ----
 org.apache.commons.fileupload.*;version="[1.2.0, 2.0.0)";resolution:=optional,
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.stereotype;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.validation.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.beans.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.beans.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.beans.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.beans.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 7,12 ****
 net.sf.cglib.*;version="[2.1.3, 2.2.0)";resolution:=optional,
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 7,12 ----
 net.sf.cglib.*;version="[2.1.3, 2.2.0)";resolution:=optional,
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.web.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.web.mf,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -d -r1.5 -r1.5.2.1
*** org.springframework.web.mf	30 Oct 2008 14:45:16 -0000	1.5
--- org.springframework.web.mf	16 Mar 2009 12:42:31 -0000	1.5.2.1
***************
*** 19,29 ****
 org.apache.log4j.*;version="[1.2.15, 2.0.0)";resolution:=optional,
 org.apache.taglibs.*;version="[1.1.2, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.remoting.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 19,29 ----
 org.apache.log4j.*;version="[1.2.15, 2.0.0)";resolution:=optional,
 org.apache.taglibs.*;version="[1.1.2, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.remoting.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.context.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.context.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.context.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.context.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 5,9 ****
 Import-Package: 
 javax.persistence;version="[1.0.0, 2.0.0)";resolution:=optional,
! org.springframework.orm.jpa.support;version="[2.5.6, 2.5.6]";resolution:=optional,
 com.ibm.websphere.management;resolution:=optional
 Import-Template: 
--- 5,9 ----
 Import-Package: 
 javax.persistence;version="[1.0.0, 2.0.0)";resolution:=optional,
! org.springframework.orm.jpa.support;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 com.ibm.websphere.management;resolution:=optional
 Import-Template: 
***************
*** 25,34 ****
 org.codehaus.groovy.*;version="[1.5.1, 2.0.0)";resolution:=optional,
 org.jruby.*;version="[1.1.0, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.instrument.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.metadata.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
--- 25,34 ----
 org.codehaus.groovy.*;version="[1.5.1, 2.0.0)";resolution:=optional,
 org.jruby.*;version="[1.1.0, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.instrument.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.metadata.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
Index: org.springframework.web.struts.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.web.struts.mf,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -d -r1.3 -r1.3.2.1
*** org.springframework.web.struts.mf	28 Oct 2008 13:04:32 -0000	1.3
--- org.springframework.web.struts.mf	16 Mar 2009 12:42:31 -0000	1.3.2.1
***************
*** 8,14 ****
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.apache.struts.*;version="[1.2.9, 2.0.0)",
! org.springframework.beans.*;version="[2.5.6, 2.5.6]",
! org.springframework.context.*;version="[2.5.6, 2.5.6]",
! org.springframework.util.*;version="[2.5.6, 2.5.6]",
! org.springframework.validation.*;version="[2.5.6, 2.5.6]",
! org.springframework.web.*;version="[2.5.6, 2.5.6]"
--- 8,14 ----
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.apache.struts.*;version="[1.2.9, 2.0.0)",
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.validation.*;version="[2.5.6, 2.5.6.PR01]",
! org.springframework.web.*;version="[2.5.6, 2.5.6.PR01]"
Index: org.springframework.context.support.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.context.support.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.context.support.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.context.support.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 14,25 ****
 org.apache.velocity.*;version="[1.5.0, 2.0.0)";resolution:=optional,
 org.quartz.*;version="[1.6.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jdbc.datasource.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 14,25 ----
 org.apache.velocity.*;version="[1.5.0, 2.0.0)";resolution:=optional,
 org.quartz.*;version="[1.6.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jdbc.datasource.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Index: org.springframework.web.servlet.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.web.servlet.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.web.servlet.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.web.servlet.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 4,8 ****
 Bundle-ManifestVersion: 2
 Import-Package: 
! org.springframework.stereotype;version="[2.5.6, 2.5.6]";resolution:=optional,
 org.apache.tiles.definition;version="[2.0.5.osgi, 3.0.0)";resolution:=optional,
 org.apache.tiles.jsp.context;version="[2.0.5, 3.0.0)";resolution:=optional
--- 4,8 ----
 Bundle-ManifestVersion: 2
 Import-Package: 
! org.springframework.stereotype;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 org.apache.tiles.definition;version="[2.0.5.osgi, 3.0.0)";resolution:=optional,
 org.apache.tiles.jsp.context;version="[2.0.5, 3.0.0)";resolution:=optional
***************
*** 36,46 ****
 org.apache.velocity.tools.generic;version="[1.4.0, 2.0.0)";resolution:=optional,
 org.apache.velocity.tools.view.*;version="[1.4.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.validation.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
--- 36,46 ----
 org.apache.velocity.tools.generic;version="[1.4.0, 2.0.0)";resolution:=optional,
 org.apache.velocity.tools.view.*;version="[1.4.0, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.ui.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.validation.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.web.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional,
 Unversioned-Imports: 
Index: org.springframework.aspects.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.aspects.mf,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -d -r1.3 -r1.3.2.1
*** org.springframework.aspects.mf	28 Oct 2008 13:04:32 -0000	1.3
--- org.springframework.aspects.mf	16 Mar 2009 12:42:31 -0000	1.3.2.1
***************
*** 6,9 ****
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.aspectj.*;version="[1.5.4, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6]";resolution:=optional
--- 6,9 ----
 org.apache.commons.logging.*;version="[1.0.4, 2.0.0)",
 org.aspectj.*;version="[1.5.4, 2.0.0)";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional
Index: org.springframework.jms.mf
===================================================================
RCS file: /cvsroot/springframework/spring/osgi/bundlor/org.springframework.jms.mf,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** org.springframework.jms.mf	28 Oct 2008 17:12:08 -0000	1.4
--- org.springframework.jms.mf	16 Mar 2009 12:42:31 -0000	1.4.2.1
***************
*** 9,22 ****
 org.apache.commons.logging;version="[1.0.4, 2.0.0)",
 org.apache.commons.pool.*;version="[1.3.0, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jca.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.remoting.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
--- 9,22 ----
 org.apache.commons.logging;version="[1.0.4, 2.0.0)",
 org.apache.commons.pool.*;version="[1.3.0, 2.0.0)";resolution:=optional,
! org.springframework.aop.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.beans.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.context.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.core.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jca.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.jndi.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.remoting.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.scheduling.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.transaction.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
! org.springframework.util.*;version="[2.5.6, 2.5.6.PR01]";resolution:=optional,
 *;resolution:=optional
 Unversioned-Imports: 
Update of /cvsroot/springframework/spring/src/org/springframework/core
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14208/src/org/springframework/core
Modified Files:
 Tag: branch-2-5-6-p1
	GenericTypeResolver.java 
Log Message:
fix for garbage collection issue
Index: GenericTypeResolver.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/core/GenericTypeResolver.java,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -d -r1.3 -r1.3.2.1
*** GenericTypeResolver.java	8 May 2008 10:58:34 -0000	1.3
--- GenericTypeResolver.java	15 Mar 2009 18:44:28 -0000	1.3.2.1
***************
*** 22,25 ****
--- 22,27 ----
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+ import java.lang.ref.WeakReference;
+ import java.lang.ref.Reference;
 import java.util.Collections;
 import java.util.HashMap;
***************
*** 143,147 ****
 	 */
 	static Map getTypeVariableMap(Class clazz) {
! 		Map typeVariableMap = (Map) typeVariableCache.get(clazz);
 
 		if (typeVariableMap == null) {
--- 145,150 ----
 	 */
 	static Map getTypeVariableMap(Class clazz) {
! 		Reference ref = (Reference) typeVariableCache.get(clazz);
! 		Map typeVariableMap = (Map) (ref != null ? ref.get() : null);
 
 		if (typeVariableMap == null) {
***************
*** 175,179 ****
 			}
 
! 			typeVariableCache.put(clazz, typeVariableMap);
 		}
 
--- 178,182 ----
 			}
 
! 			typeVariableCache.put(clazz, new WeakReference(typeVariableMap));
 		}
 
From: Thomas R. <tri...@us...> - 2009年03月15日 18:44:44
Update of /cvsroot/springframework/spring
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14208
Modified Files:
 Tag: branch-2-5-6-p1
	project.properties 
Log Message:
fix for garbage collection issue
Index: project.properties
===================================================================
RCS file: /cvsroot/springframework/spring/project.properties,v
retrieving revision 1.160
retrieving revision 1.160.2.1
diff -C2 -d -r1.160 -r1.160.2.1
*** project.properties	23 Oct 2008 22:37:22 -0000	1.160
--- project.properties	15 Mar 2009 18:44:28 -0000	1.160.2.1
***************
*** 15,19 ****
 # Spring OSGi version, to be used in version information
 # '-' is explicitly disallowed
! spring-version-osgi=2.5.6
 
 # Compile with debug code
--- 15,19 ----
 # Spring OSGi version, to be used in version information
 # '-' is explicitly disallowed
! spring-version-osgi=2.5.6.PR01
 
 # Compile with debug code
From: Thomas R. <tri...@us...> - 2009年02月19日 15:15:35
Update of /cvsroot/springframework/spring
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20258
Modified Files:
	changelog.txt 
Log Message:
updated changelog
Index: changelog.txt
===================================================================
RCS file: /cvsroot/springframework/spring/changelog.txt,v
retrieving revision 1.740
retrieving revision 1.741
diff -C2 -d -r1.740 -r1.741
*** changelog.txt	31 Oct 2008 16:29:43 -0000	1.740
--- changelog.txt	19 Feb 2009 15:15:22 -0000	1.741
***************
*** 4,7 ****
--- 4,14 ----
 
 
+ Changes in 2.5.x maintenance branch
+ -----------------------------------
+ 
+ Package org.springframework.jdbc
+ * added sort to all error code categories for SQLErrorCodes (SPR-5272)
+ 
+ 
 Changes in version 2.5.6 (2008年10月31日)
 -------------------------------------
Update of /cvsroot/springframework/spring/tiger/src/org/springframework/orm/hibernate3/annotation
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2424/tiger/src/org/springframework/orm/hibernate3/annotation
Modified Files:
	AnnotationSessionFactoryBean.java 
Log Message:
properly scan subpackages as well (SPR-5324)
Index: AnnotationSessionFactoryBean.java
===================================================================
RCS file: /cvsroot/springframework/spring/tiger/src/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** AnnotationSessionFactoryBean.java	14 Jul 2008 12:48:28 -0000	1.5
--- AnnotationSessionFactoryBean.java	28 Nov 2008 14:07:54 -0000	1.6
***************
*** 79,83 ****
 public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implements ResourceLoaderAware {
 
! 	private static final String RESOURCE_PATTERN = "**/*.class";
 
 
--- 79,83 ----
 public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implements ResourceLoaderAware {
 
! 	private static final String RESOURCE_PATTERN = "/**/*.class";
 
 
From: Juergen H. <jho...@us...> - 2008年11月28日 12:18:20
Update of /cvsroot/springframework/spring/src/org/springframework/core/style
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20615/src/org/springframework/core/style
Modified Files:
	ToStringCreator.java 
Log Message:
polishing
Index: ToStringCreator.java
===================================================================
RCS file: /cvsroot/springframework/spring/src/org/springframework/core/style/ToStringCreator.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ToStringCreator.java	31 Jan 2007 11:24:53 -0000	1.5
--- ToStringCreator.java	28 Nov 2008 12:17:53 -0000	1.6
***************
*** 1,4 ****
 /*
! * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
--- 1,4 ----
 /*
! * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
***************
*** 107,137 ****
 
 	/**
! 	 * Append a float field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, float value) {
! 		return append(fieldName, new Float(value));
 	}
 
 	/**
! 	 * Append a double field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, double value) {
! 		return append(fieldName, new Double(value));
 	}
 
 	/**
! 	 * Append a long field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, long value) {
! 		return append(fieldName, new Long(value));
 	}
 
--- 107,137 ----
 
 	/**
! 	 * Append a long field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, long value) {
! 		return append(fieldName, new Long(value));
 	}
 
 	/**
! 	 * Append a float field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, float value) {
! 		return append(fieldName, new Float(value));
 	}
 
 	/**
! 	 * Append a double field value.
 	 * @param fieldName the name of the field, usually the member variable name
 	 * @param value the field value
 	 * @return this, to support call-chaining
 	 */
! 	public ToStringCreator append(String fieldName, double value) {
! 		return append(fieldName, new Double(value));
 	}
 
***************
*** 143,147 ****
 	 */
 	public ToStringCreator append(String fieldName, boolean value) {
! 		return append(fieldName, value ? Boolean.TRUE : Boolean.FALSE);
 	}
 
--- 143,147 ----
 	 */
 	public ToStringCreator append(String fieldName, boolean value) {
! 		return append(fieldName, Boolean.valueOf(value));
 	}
 
13 messages has been excluded from this view by a project administrator.

Showing results of 13782

1 2 3 .. 552 > >> (Page 1 of 552)
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /