📄 changelog.txt
字号:
Changes in version 2.5.1 (2008-01-09)
-------------------------------------
General
* refined PDF formatting settings for the reference documentation
* added coverage of JAX-WS support to the reference documentation
* added section on J2EE RAR deployment to the reference documentation
* moved "org.springframework.web.bind/multipart" packages from spring-web.jar to spring-webmvc.jar
* updated AspectJ jar in "-with-dependencies" distribution to AspectJ 1.5.4
* updated Groovy jar in "-with-dependencies" distribution to Groovy 1.5.1
* updated Hessian jar in "-with-dependencies" distribution to Hessian 3.1.3
* updated iText jar in "-with-dependencies" distribution to iText 2.0.7
* updated POI jar in "-with-dependencies" distribution to POI 3.0.1
Package org.springframework.aop
* ProxyFactory caches CGLIB proxies only when underlying (Smart)ClassLoader does not indicate a reloadable Class
* added "logTargetClassInvocation" property to AbstractMonitoringInterceptor, for logging the target invocation trace
Package org.springframework.beans
* ConfigurablePropertyAccessor extends the TypeConverter interface (moved up from BeanWrapper interface)
* BeanWrapper supports well-known collection implementation types for generic element conversion again (like Spring 2.0)
* TypeConverterDelegate protects its text conversion step against PropertyEditors which don't support "setValue" calls
* factored out FactoryBeanRegistrySupport base class from AbstractBeanFactory and AbstractAutowireCapableBeanFactory
* optimized AbstractBeanFactory's access to cached FactoryBean-exposed objects, avoiding unnecessary locks
* ConstructorResolver prefers concrete class matches over interface matches at the same level when checking arguments
* revised accidental public exposure of "isPrimary" method in ConfigurableListableBeanFactory/DefaultListableBeanFactory
* moved "resolveDependency" implementation from AbstractAutowireCapableBeanFactory down to DefaultListableBeanFactory
* revised DefaultListableBeanFactory's "resolveDependency" exceptions with respect to clarity and context inclusion
* DefaultListableBeanFactory does not eagerly initialize FactoryBeans for type checks even with factory-bean reference
* DefaultListableBeanFactory throws descriptive exception in case of factory-bean circular reference
* DefaultListableBeanFactory supports ObjectFactory indirection for resolvable dependencies
* DefaultListableBeanFactory always resolves bean class before checking a bean definition as autowire candidate
* AbstractBeanDefinition stores and exposes the originating Resource (rather than just the resource description)
* XmlBeanDefinitionReader detects recursive loading of the same resource (e.g. through import cycles)
* DefaultBeanDefinitionDocumentReader sends ImportDefinition events containing the actually resolved Resource objects
* DefaultDocumentLoader includes the JAXP IllegalArgumentException in the rethrown ParserConfigurationException
* ClassPathBeanDefinitionScanner marks default init/destroy methods as not enforced (accepting beans without those)
* SingletonBeanFactoryLocator falls back to a single bean of type BeanFactory (if any) when given a null locator key
* SingletonBeanFactoryLocator removes bean factory group definition if its initialization fails
* factored out protected "getTargetBean" method in ObjectFactoryCreatingFactoryBean (for easier overriding)
* revised BeanConfigurerSupport to allow for usage as a delegate as well, not just as a base class
* revised BeanConfigurerSupport to re-initialize its default BeanWiringInfoResolver for each context refresh
* fixed AutowiredAnnotationBeanPostProcessor to properly cache dependencies that do not correspond to a registered bean
* annotation processors detect already managed methods/fields, avoiding double invocation in case of multiple processors
* explicit annotation processors override implicit default processors (as built by annotation-config / component-scan)
Package org.springframework.cache
* added "cacheManagerName" property to EhCacheManagerFactoryBean
Package org.springframework.context
* fixed AbstractApplicationContext to only send ContextStoppedEvent in case of "stop()" (i.e. not for "close()")
* fixed AbstractApplicationContext to always detect LoadTimeWeaverAwareProcessor in the local ClassLoader (for OSGi)
* ClassPath/FileSystemXmlApplicationContext perform early check for null elements in config location array
* added "addMessages(Map, Locale)" method to StaticMessageSource, for bulk adding messages
* ContextTypeMatchClassLoader does not generally exclude classes in the "org.springframework" package anymore
* DefaultContextLoadTimeWeaver only chooses GlassFishLoadTimeWeaver when running in the EAR ClassLoader
* DefaultContextLoadTimeWeaver removes all registered transformers from the VM Instrumentation object (if applicable)
* CommonAnnotationBeanPostProcessor properly ignores @Resource-annotated JAX-WS WebServiceContext references
* AnnotationBeanNameGenerator (used by "context:component-scan") detects default name values in custom annotation types
* ClassPathScanningCandidateComponentProvider ("context:component-scan") ignores non-static inner and local classes
* "context:property-placeholder" configuration element does not require a "location" attribute (for system properties)
Package org.springframework.core
* introduced SmartClassLoader marker interface, declaring a "boolean isClassReloadable(Class clazz)" operation
* OverridingClassLoader excludes the "oracle." package by default as well (e.g. for TopLink's custom annotations)
* MethodParameter uses reflection to obtain parameter annotations (for compatibility with the IBM 1.4.2 VM's debug mode)
* LocalVariableTableParameterNameDiscoverer caches parameter names per method and obtained ASM ClassReaders per class
* added "getEnclosingClassName()", "hasEnclosingClass()" and "isIndependent()" methods to ClassMetadata interface
Package org.springframework.ejb
* "jee:local-slsb" and "jee:remote-slsb" work for EJB3 Session Beans as well (as alternative to "jee:jndi-lookup")
* introduced EJB3-compliant SpringBeanAutowiringInterceptor for processing Spring's @Autowired in EJB3 SBs/MDBs
Package org.springframework.instrument
* InstrumentationLoadTimeWeaver allows for operating on a pre-defined ClassLoader and for removing transformers again
* TomcatInstrumentableClassLoader always passes local ClassLoader into ClassFileTransformers (makes AspectJ LTW work)
* ShadowingClassLoader excludes the "com.ibm." package by default as well (for IBM JDK classes, DB2 JDBC driver, etc)
Package org.springframework.jdbc
* fixed JdbcUtils to not access the DatabaseMetaData implementation class for "extractDatabaseMetaData" calls
* TransactionAwareDataSourceProxy obtains target Connections lazily when the first call comes in on the Connection proxy
* added "reobtainTransactionalConnections" flag to TransactionAwareDataSourceProxy (for Connection handles on JBoss)
* WebSphereDataSourceAdapter, JBossNativeJdbcExtractor and CommonsDbcpNativeJdbcExtractor propagate SQLExceptions as-is
Package org.springframework.jms
* JmsUtils protects against misbehaving JMS providers (such as ActiveMQ) when closing an interrupted MessageConsumer
* JmsTemplate's standard "execute(ProducerCallback)" pre-initializes producer with default destination (if available)
* added overloaded execute methods with Destination/destination name and ProducerCallback to JmsOperations/JmsTemplate
* added various "browse"/"browseSelected" methods JmsOperations/JmsTemplate, for browsing a queue with a BrowserCallback
* DelegatingConnectionFactory adapts specific create(Queue/Topic)Connection calls to a generic JMS 1.1 ConnectionFactory
* JmsInvokerClientInterceptor accepts any JMS 1.1 ConnectionFactory, not insisting on a QueueConnectionFactory anymore
* MethodListenerAdapter uses type difference weight algorithm to choose between ambiguous listener methods
* DefaultMessageListenerContainer catches TaskRejectedException and pauses affected tasks for subsequent resuming
* DefaultMessageListenerContainer exposes listener Session as thread-bound resource for JmsTemplate calls
* ServerSessionMessageListenerContainer always establishes a shared Connection (even if autoStart="false")
* CommonsPoolServerSessionFactory removes specific ServerSessionPool on close (for proper reuse on stop and restart)
* "jms:listener-container" tag supports a concurrency range (e.g. "3-5"), for specifying a minimum number of consumers
Package org.springframework.jmx
* added "getServer()" method to MBeanRegistrationSupport (MBeanExporter), exposing the underlying JMX MBeanServer
Package org.springframework.jndi
* JndiTemplate prepares a specific Hashtable for the InitialContext, exposing default environment properties as well
Package org.springframework.mail
* fixed potential NPE in MailSendException
Package org.springframework.mock
* MockRequestDispatcher stores forwarded/included URL in MockHttpServletResponse even in case of wrapped response
Package org.springframework.orm
* LocalSessionFactoryBean uses LocalJtaDataSourceConnectionProvider (supporting aggressive release) in case of JTA TM
* LocalSessionFactoryBean supports Connection release mode "after_statement" without "useTransactionAwareDataSource" too
* LocalSessionFactoryBean eagerly compiles registered mappings, for availability in the post-processing phase
* added "cacheProvider" property to LocalSessionFactoryBean, allowing for a Spring-managed CacheProvider instance
* added overloaded "delete" methods with "entityName" argument to HibernateOperations and HibernateTemplate
* added "earlyFlushBeforeCommit" flag to HibernateTransactionManager, allowing to enforce a flush before synchronization
* fixed Jpa/JdoTransactionManager to correctly nest a REQUIRES_NEW transaction within a SUPPORTS scope with early access
* JPA PersistenceUnitReader supports location patterns for the "jar-file" attribute in "persistence.xml" files
* PersistenceAnnotationBeanPostProcessor accepts vendor-specific EntityManager interfaces for @PersistenceContext again
Package org.springframework.remoting
* HessianClientInterceptor/ProxyFactoryBean supports "debug", "chunkedPost", "readTimeout" and "hessian2" properties
* HessianServiceExporter supports "debug" property analogous to Hessian 3.1.3's HessianServlet
* HessianServiceExporter and BurlapServiceExporter expose the bean ClassLoader as thread context CL (if necessary)
* factored out stream-based HessianExporter and BurlapExporter classes
* factored out abstract RemoteInvocationSerializingExporter base class from HttpInvokerServiceExporter
* introduced SimpleHttpInvokerServiceExporter and SimpleHessian/BurlapServiceExporter as HttpHandlers for Sun JRE 1.6
* introduced SimpleHttpServerFactoryBean for Spring-style set-up of a Sun JRE 1.6 HttpServer
Package org.springframework.samples
* PetClinic's JPA version showcases AspectJ load-time weaving, including @Transactional handling in AspectJ mode
* PetClinic's JPA EntityManagerClinic uses explicit flushing and id assigning to make sure that the id is available
Package org.springframework.scheduling
* ThreadPoolTaskExecutor supports Java 6's "allowCoreThreadTimeOut" feature (for both native and backport-concurrent)
Package org.springframework.scripting
* fixed ScriptFactoryPostProcessor to avoid NPE in case of script that produces null value and no interfaces specified
* StaticScriptSource exposes "StaticScript" as toString result, in order for Groovy to derive a valid class name from it
* GroovyScriptFactory caches a temporarily created result object from "getScriptedObjectType" until "getScriptedObject"
* GroovyScriptFactory exposes "getGroovyClassLoader()" method and lazily initializes the GroovyClassLoader
* "lang:groovy/jruby/bsh" does not insist on an id for a scripted bean anymore (i.e. allows for anonymous scripts)
Package org.springframework.test
* fixed AbstractContextLoader to detect and accept "classpath*:" URLs as well
* AbstractTestNGSpringContextTests does not define a "SpringTestContext" group anymore (for ease of using custom groups)
Package org.springframework.transaction
* added "validateExistingTransaction" property to AbstractPlatformTransactionManager, for isolation level checks
* added "prepareForCommit" template method to AbstractPlatformTransactionManager, called before commit synchronization
* JtaTransactionManager consistently throws TransactionSystemException in case of unexpected internal transaction state
* JtaTransactionManager detects JBoss 4.2 trans
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -