As of revision 5.1.1, the <xweld/> Financial Application JDK now leverages the power of the Spring 4+ Framework. The integration of <xweld/> with the Spring ecosystem makes the combination even more powerful and enables developers to jump start enterprise development efforts even faster.
One of the design goals of <xweld/> Tools is to support secure, auditable configuration management for enterprise applications and support the configuration of multiple environments. Historically, weld implemented this type of configuration usign a custom suite of JPA entities and services. In Spring version 3.1 the abstraction of Environments and Profiles across the container was introduced, a framework that is almost identical to xweld's legacy configuration management. For this reason, the configuration features of <xweld/> applications have been replaced with a Spring-based implementation. The resulting code base supports the setup and configuration of multiple environments, such as "production", "development" and "testing" and allows the deployment to switch between them using Spring's active profile mechanism.
All configuration information remains secure in the JPA database, is fully auditable and is retrievable by dependency injection. As before, this means applications can be preconfigured once, and quickly deployed to a different context specific to each defined profile. It's as simple as adding the following lines you your Spring beans.xml file:
<bean name="CommonsConfigurationFactoryBean" class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean"> <constructor-arg ref="AuditableConfiguration" /> </bean> <bean name="AuditableConfiguration" class="com.xweld.configuration.AuditableConfiguration"></bean>
The redirection of the configuration bean to use xweld's auditable configuration over JPA is all that is needed and your Spring application will auotmatically obtain all environment information via JPA. For more information, please contact us.
Major Changes in this version include:
- the configration mechanism was simplified over previous releases to move to the 'properties' single table model.
- extended the list of default converters to include primitive types.
- added coherence grid-cache implementation.
- refactored JDBC Data Reader to support parameters that can be any serializable object, not just strings.
- added the resolver framework to core/persistence
- added methods in ClassUtils to support serialized objects to/from base 64 representaiton
- fixed issues starting and stopping servers/services inside J2EE containers, such as the Tomcat class loader issue.
Changes in this version include:
- extended Xmlization support for expressions so they can be converted to/from Xml and fixed a few bugs related to the order in which expressions are constructed, this change means that context objects need to implement Serializabe and the API was changed to enforce this at compile time. This had an impact to the security module for context based permissions.
- Persistence manager now works with any JPA entity, and the IIDentiable interface that was considered cumbersome has been removed.
- ExpressionPermission was renamed ContextPermission
- added Tenor class and TenorCode, StubRule enums
- added Party class
- added cipher manager that supports encryption algorithms PBEWithMD5AndDES, TripeDES and PBEWithMD5AndTripleDES using
- properties "com.xweld.cryptography.passphrase" that sets the passphrase you want to use, and "com.xweld.cryptography.algorithm" that sets one of the above algorithms
- no longer store plain text passwords in the database, use the cipher manager
- minor bug fixes to the ExpressionBuilder and additional test cases to ensure expressions can be symmetrically constructed
- added named RuntimeContext and the ContextFactory that supports persistent storage of the injector framework and system properties grouped under a common name so applications can established named environments are runtime by setting a system property
- Configurations now have a name and group. so that names may be re-used across groups.the configuration group is used to collect configurations of the same name into runtime contexts.
- the types import com.xweld.persistence.IIdentifiable,com.xweld.persistence.IIdentifier and com.xweld.persistence.LongIdentifier have been removed from the core.
- fixed issue with JMS topic/queue reader using multiple @PrePersist annotations
- fixed issue with duplicate table annotation on QuotedPrice class
- currency conversions are pluggable. You can override the instance of the default currency converter by two methods: setting the property com.xweld.finance.currency.converter or via injection. the default implementation is com.xweld.finance.currency.DefaultCurrencyConverter. The class CurrencyConverter is not non public.
- quote manager and exchange rates are now explicitly converted to UTC time
- added slight optimization to PersistenceManager implementation so that a new transaction is not allocated every time begin is called, and cached the transaction reference in the thread local variable with the JPA entity Manager
- added non ISO 4217 currency codes CNH and CNT to CurrencyCode enum, to represent the exchange rate of RMB that trades offshore in Hong Kong and the trade-settlement currency exchange rate to which offshore= corporates have access respectively
- added back the old multi-threaded JDBC reader and configuration class
- updated the MS SQL jdbc driver to 3.0
- added created attribute to User, changed Date attributes to Calendars @ UTC
- removed redundant interface IKeyValue map since it was a subset of Map.
- added the old JDBC Writer class and test program
- added constants to MoneyFactory so that it makes it easier to switch between implementations of IMoney, as well as a representation independent representation of the amount as a String
- HolidayCalendars and Periods now use the xweld Date class for Dates
- Timezone from Date pushed down to Timestamp
- QuoteType renamed to QuoteSide to be consistent with CurveSide, new enum QuoteTpe added
- Quote Services (services that return quoted values other than fx rates) are pluggable using the factory QuoteServiceFactory and the property com.xweld.finance.quote.service
Version 3.2.3-FINAL has been promoted to production-ready status and is available for distribution to licensed parties.
Changes in this version include:
- dates now have a time zone
- added hashCode and equals to Region and Business Center
- added SPOT to quote type
- deprecated the BinaryData class from workflow, changed BinaryAttachement to use byte
- added the @Column annotation on JPA uses of byte  to force the creation of the correct length so JDBC does not default it to 255.
- added check to Money constructor and methods that the amount/value cannot be null.
- expressions now support calling zero argument methods by reflection
- added JPA 2.0 method to IPersistenceManager:
<T> TypedQuery<T> createNamedQuery(java.lang.String name, java.lang.Class<T> resultClass);
- deprecated cleanEntityManager in favour of just using close(), which no longer does a close on the factory,
- ensure every reference to UTC is changed to GMT for consistency.
- workflow changes to make state a property of workflow item so obtaining the current state is potentially less expensive than making an engine call
- modified conversions betwen calendars and XML gregorian calendars to they are symetric w.r.t. conversion to/from strings. ConverterTest in core demonstrates the idea.
- changes to the JMS queue/topic readers to handle (a) multiple sessions/consumers per connection and (b) automatic reconnection attempts after a lost connection. Both of the these changes are configurable in the JMS configuration objects/tables. Created a new abstract class ‘JmsReader’ to minimize the duplication of the multiple session and reconnection code between the queue and topic readers. Also updated the reader’s shutdown methods to fully close the connection.
- changes to the xweld JMS writers to handle automatic reconnect if the connection is lost. The queue and topic writer configurations have inherited two new attributes ‘reconnectAttempts’ and ‘reconnectWaitInterval’ from JmsWriterConfiguration. reconnectAttempts specifies the number of times the writer will attempt to reconnect to the JMS provider if the connection is lost – the default is 0. reconnectWaitInterval specifies the time in ms to wait between reconnect attempts after the first reconnect attempt.
- added message log failure helpter method to Reader
- multithreaded implementation of DirectoryReader.DirectoryReaderConfiguration now has a new attribute 'readerThreads' that specifies how many reader threads will be created for each DirectoryReader. When reading the contents of a directory the filename of each file in the directory is placed on a blocking queue which is listened to by the reader threads. Once a reader thread gets a filename from the queue it processes it using the same logic that DirectoryReader used before this change.
Welcome to the <xweld/> Community
The <xweld/> Community project page is online and registration is available for licensed parties.
Also available in: Atom