# Release Notes - TomEE - Version 1.7.3
                

        Release Notes - TomEE - Version 1.7.3
                                
<h2>        Bug
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1465'>TOMEE-1465</a>] -         org.apache.openejb.util.PropertyPlaceHolderHelper.PropertiesLookup caches properties
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1585'>TOMEE-1585</a>] -         org.apache.openejb.core.ivm.BaseEjbProxyHandler.ProxyRegistry#liveHandleRegistry not thread safe
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1587'>TOMEE-1587</a>] -         merge arquillian tomee ear support from 7.x to 1.7.x
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1590'>TOMEE-1590</a>] -         WsFactory: ClassCastException: java.util.HashSet cannot be cast to java.util.List
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1596'>TOMEE-1596</a>] -         AutoDeployer buggy is not using hot deploy
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1610'>TOMEE-1610</a>] -         [OSGi] Version range problem in openejb-core on bean-asm5
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1614'>TOMEE-1614</a>] -         Netbeans Tomcat Plugin Integration Does Not Detected TomeeStarted
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1622'>TOMEE-1622</a>] -         TomEE SystemInstance unsafely iterates over the System.getProperties()
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1631'>TOMEE-1631</a>] -         Basic Rotating JUL Handler
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1636'>TOMEE-1636</a>] -         BrokerXmlConfig xbean:file: does not accept a relative path
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1638'>TOMEE-1638</a>] -         tomee:exec on Windows produces invalid tomee.zip due to backslash directory separators
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1655'>TOMEE-1655</a>] -         ApplicationComposers not isolating @Configuration for each test class.
</li>
</ul>
    
<h2>        Dependency upgrade
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1611'>TOMEE-1611</a>] -         Tomcat 7.0.63
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1678'>TOMEE-1678</a>] -         Tomcat 7.0.65
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1633'>TOMEE-1633</a>] -         upgrade javamail to 1.9.0-alpha-2
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1673'>TOMEE-1673</a>] -         Upgrade commons-collections to 3.2.2
</li>
</ul>
                    
<h2>        Improvement
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1428'>TOMEE-1428</a>] -         improve the performance of TempClassLoader$ResourceComparator
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1455'>TOMEE-1455</a>] -         for resource local pu try to guess if datasource is configured in persistence unit properties
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1461'>TOMEE-1461</a>] -         Need a machine global mechanism for &#39;get next available port&#39; to prevent &#39;address in use&#39; issues
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1547'>TOMEE-1547</a>] -         Use application classloader for resources defined in resources.xml
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1557'>TOMEE-1557</a>] -         Support AMQ plugin config on amq5factory
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1642'>TOMEE-1642</a>] -         Would be nice that tomee logs JAXRS configuration in use (was: sends an INFO when not found the relative class for pojo-deployment in configuration [openejb-jar.xml])
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1662'>TOMEE-1662</a>] -         Ensure dangling JMS connections are closed on shutdown
</li>
</ul>
            
<h2>        New Feature
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1442'>TOMEE-1442</a>] -         Show list of deployed applications (including EARs) in the console
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1456'>TOMEE-1456</a>] -         Support endorsed libs in the TomEE Maven Plugin
</li>
</ul>
                                                                
<h2>        Test
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1412'>TOMEE-1412</a>] -         Extra unversioned context displayed when using parallel deployment
</li>
</ul>
        