Archives pour: Novembre 2006

30.11.06

Permalink Categories: Eclipse, BPM   English (EU)

BPMN in Eclipse SOA Tools Platform

A eclipse based visual editor for BPMN.

29.11.06

Permalink Categories: Developpement   English (EU)

OpenFTS

An Open Source PostgreSQL Full Text Search engine.

Permalink Categories: XML, Java   English (EU)

ServingXML XML Pipeline Framework

ServingXML is an open source, Apache 2.0 licensed, framework for flat/XML data transformations. It defines an extensible markup vocabulary for expressing flat-XML, XML-flat, flat-flat, and XML-XML processing in pipelines. ServingXML currently comes with a console app, and also documents an API for imbedding the software in a standard Java or J2EE application.

Permalink Categories: Java   English (EU)

Patterns and Best Practices for Enterprise Integration

A site filled with high quality articles and MOM oriented enterprise design patterns.

Permalink Categories: Java   English (EU)

Remoting streams with JBoss Remoting

JBoss remoting includes support for remoting streams, which means that when reading the stream on server side, it will actually drive the reading of the client side stream.

It is important to note that this feature DOES NOT copy the stream data directly from the client to the server, but is a true on demand stream. Although this is obviously slower than reading from a stream on the server that has been copied locally, it does allow for true streaming on the server. It also for better memory control by the user (verses the framework trying to copy a 3 Gig file into memory and blowing up :) ).

This is awesome ! and fully documented :).

Permalink Categories: Java   English (EU)

MantaRay JMS stream bodies

MantaRay JMS provider seems to take special care when dealing with JMS messages whose body is a stream.

This is very interesting, because, you generally use streams when you need to process an unknown and unbounded amount of data which can be very large.

In that scenario, it is very important to make sure that the amount of memory required to process the data is bounded, so if you need your stream to go through a JMS Queue or Topic and the JMS provider sucks at dealing with streams then you're screwed. Typically, this means that even if you're dealing with a stream, the whole data is gonna be loaded in memory and this is bad when you deal with very large documents !

I need to take the time to run a memory profile of that JMS provider.

Permalink Categories: Java   English (EU)

ObjectLab Kit - Date calculations library

ObjectLab Kit came out of our frustration to have to re-do the same kind of code over and over each time we joined a new company and Bank. Most banks will require basic Date calculation, we did spot another open source project for this but their licence forbids most financial institution from using it. This one is released under the business-friendly Apache 2.0 license.

Permalink Catégories: Spring   French (FR)

Jacn - Seamless JSF and Spring (without XML)

Faut que je jette un coup d'oeil à ça :)

27.11.06

Permalink Categories: Eclipse, Spring   English (EU)

Create Lightweight Spring Plug-Ins—à la Eclipse

A very interesting article that explains how to add a simple eclipse like extension point feature to a Spring application.

Permalink Categories: Eclipse   English (EU)

Necessitas - Ivy Eclipse classpath container

Very handy for iy projects. Same would be great for Maven 2 projects ... ;)

24.11.06

Permalink Categories: XML, Java   English (EU)

XStream - Mappingless Java/XML Binder

This is yet another Java/XML binding framework, but its main advantage is its ability to work without any mapping or metadata whatsoever which makes it a good candidate for transparent configuration mapping.

And indeed, it is used in Maven 2, for pom.xml 's plugins' configuration elements to Java objects unmarshalling amongst other things.

23.11.06

Permalink Categories: GUI   English (EU)

HCIL IHM Research projects

Impressive, some might even be usefull ;)

21.11.06

Permalink Categories: Java, Maven   English (EU)

Dependency Finder

An alternate solution to Classdep with a GUI ;)

Permalink Categories: Java, Maven   English (EU)

Easing third party jar mavenization with Classdep

Maven 2 is a great tool, but one of the boring parts of working with a maven managed project is that often you need to reference that third party JAR which is not itself mavenized and you therefore need to mavenize it yourself. You can do that the dirty way, which is writing a minimalist POM without all the dependencies but you lose all the point of Maven.

I want to do it the right way but I got fed up of the guess work involved with identifying dependencies of such a third party JAR so I studied how to ease that process.

The first part involves listing the JAR external dependency classes. I used a tool called Classdep from the JINI project.

I'm describing the process with JBoss Seam 1.1.0-BETA2. First of all, I unjared %SEAM_HOME%\jboss-seam.jar in %SEAM_HOME%\jboss-seam\ because Classdep seems to be able to work only on class files, not on a jar.

So to list Seam's dependency classes:

Code:

java -jar %JINI_HOME%\lib\classdep.jar 
    -cp %SEAM_HOME%\jboss-seam\ 
    %SEAM_HOME%\jboss-seam\ 
    -in org.jboss.seam 
    -edges 

The command returns on standard output:

Code:

com.sun.el.ExpressionFactoryImpl 
java.beans.BeanInfo 
java.beans.IntrospectionException 
java.beans.Introspector 
java.beans.PropertyDescriptor 
java.beans.PropertyEditor 
java.beans.PropertyEditorManager 
java.io.BufferedReader 
java.io.ByteArrayOutputStream 
java.io.DataInputStream 
java.io.File 
java.io.IOException 
java.io.InputStream 
java.io.InputStreamReader 
java.io.ObjectInputStream 
java.io.OutputStream 
java.io.PrintStream 
java.io.Serializable 
java.io.StringReader 
java.io.UnsupportedEncodingException 
java.lang.Boolean 
java.lang.Byte 
java.lang.Character 
java.lang.Class 
java.lang.ClassLoader 
java.lang.ClassNotFoundException 
java.lang.Comparable 
java.lang.Double 
java.lang.Enum 
java.lang.Error 
java.lang.Exception 
java.lang.Float 
java.lang.IllegalAccessException 
java.lang.IllegalArgumentException 
java.lang.IllegalStateException 
java.lang.InstantiationException 
java.lang.Integer 
java.lang.InterruptedException 
java.lang.Iterable 
java.lang.Long 
java.lang.NoClassDefFoundError 
java.lang.NoSuchFieldError 
java.lang.NoSuchFieldException 
java.lang.NoSuchMethodException 
java.lang.NumberFormatException 
java.lang.Object 
java.lang.Runnable 
java.lang.RuntimeException 
java.lang.SecurityException 
java.lang.Short 
java.lang.String 
java.lang.StringBuffer 
java.lang.StringBuilder 
java.lang.System 
java.lang.Thread 
java.lang.ThreadLocal 
java.lang.Throwable 
java.lang.UnsupportedOperationException 
java.lang.Void 
java.lang.annotation.Annotation 
java.lang.reflect.AnnotatedElement 
java.lang.reflect.Array 
java.lang.reflect.Constructor 
java.lang.reflect.Field 
java.lang.reflect.InvocationTargetException 
java.lang.reflect.Method 
java.lang.reflect.Modifier 
java.lang.reflect.ParameterizedType 
java.lang.reflect.Type 
java.math.BigDecimal 
java.math.BigInteger 
java.net.URL 
java.net.URLDecoder 
java.net.URLEncoder 
java.rmi.RemoteException 
java.security.Permissions 
java.security.Principal 
java.security.acl.Acl 
java.security.acl.AclEntry 
java.security.acl.Group 
java.security.acl.LastOwnerException 
java.security.acl.NotOwnerException 
java.security.acl.Permission 
java.sql.Date 
java.sql.Time 
java.sql.Timestamp 
java.text.DateFormat 
java.text.MessageFormat 
java.text.ParseException 
java.text.SimpleDateFormat 
java.util.AbstractMap 
java.util.ArrayList 
java.util.Arrays 
java.util.Collection 
java.util.Collections 
java.util.Comparator 
java.util.Date 
java.util.Enumeration 
java.util.HashMap 
java.util.HashSet 
java.util.Hashtable 
java.util.Iterator 
java.util.LinkedList 
java.util.List 
java.util.ListIterator 
java.util.Locale 
java.util.Map 
java.util.Map$Entry 
java.util.MissingResourceException 
java.util.NoSuchElementException 
java.util.Properties 
java.util.Queue 
java.util.ResourceBundle 
java.util.Set 
java.util.SortedSet 
java.util.StringTokenizer 
java.util.TimeZone 
java.util.TreeSet 
java.util.UUID 
java.util.concurrent.Callable 
java.util.concurrent.TimeUnit 
java.util.concurrent.atomic.AtomicInteger 
java.util.concurrent.locks.ReentrantLock 
java.util.zip.ZipEntry 
java.util.zip.ZipException 
java.util.zip.ZipFile 
javassist.bytecode.AnnotationsAttribute 
javassist.bytecode.ClassFile 
javax.ejb.ApplicationException 
javax.ejb.EJBContext 
javax.ejb.EJBException 
javax.ejb.NoSuchObjectLocalException 
javax.ejb.Remove 
javax.ejb.Timer 
javax.ejb.TimerHandle 
javax.el.BeanELResolver 
javax.el.CompositeELResolver 
javax.el.ELContext 
javax.el.ELContextListener 
javax.el.ELException 
javax.el.ELResolver 
javax.el.ExpressionFactory 
javax.el.ListELResolver 
javax.el.MapELResolver 
javax.el.ResourceBundleELResolver 
javax.el.ValueExpression 
javax.faces.FacesException 
javax.faces.application.Application 
javax.faces.application.FacesMessage 
javax.faces.application.FacesMessage$Severity 
javax.faces.application.NavigationHandler 
javax.faces.application.StateManager 
javax.faces.application.StateManager$SerializedView 
javax.faces.application.ViewHandler 
javax.faces.component.UIComponent 
javax.faces.component.UIViewRoot 
javax.faces.context.ExternalContext 
javax.faces.context.FacesContext 
javax.faces.convert.Converter 
javax.faces.el.EvaluationException 
javax.faces.el.MethodBinding 
javax.faces.el.ValueBinding 
javax.faces.event.PhaseEvent 
javax.faces.event.PhaseId 
javax.faces.model.DataModel 
javax.faces.model.SelectItem 
javax.interceptor.InvocationContext 
javax.jms.JMSException 
javax.jms.Message 
javax.jms.ObjectMessage 
javax.jms.Queue 
javax.jms.QueueConnection 
javax.jms.QueueConnectionFactory 
javax.jms.QueueSender 
javax.jms.QueueSession 
javax.jms.TextMessage 
javax.jms.Topic 
javax.jms.TopicConnection 
javax.jms.TopicConnectionFactory 
javax.jms.TopicPublisher 
javax.jms.TopicSession 
javax.jms.TopicSubscriber 
javax.naming.InitialContext 
javax.naming.NameNotFoundException 
javax.naming.NamingException 
javax.persistence.Entity 
javax.persistence.EntityManager 
javax.persistence.EntityManagerFactory 
javax.persistence.Id 
javax.persistence.Persistence 
javax.persistence.Query 
javax.portlet.ActionResponse 
javax.portlet.PortletRequest 
javax.portlet.PortletSession 
javax.security.auth.Subject 
javax.security.auth.callback.Callback 
javax.security.auth.callback.CallbackHandler 
javax.security.auth.callback.NameCallback 
javax.security.auth.callback.PasswordCallback 
javax.security.auth.callback.UnsupportedCallbackException 
javax.security.auth.login.AppConfigurationEntry 
javax.security.auth.login.AppConfigurationEntry$LoginModuleControlFlag 
javax.security.auth.login.Configuration 
javax.security.auth.login.LoginContext 
javax.security.auth.login.LoginException 
javax.security.auth.spi.LoginModule 
javax.servlet.ServletContext 
javax.servlet.ServletException 
javax.servlet.ServletRequest 
javax.servlet.http.Cookie 
javax.servlet.http.HttpServletRequest 
javax.servlet.http.HttpServletResponse 
javax.servlet.http.HttpSession 
javax.servlet.http.HttpSessionActivationListener 
javax.transaction.SystemException 
javax.transaction.TransactionManager 
javax.transaction.UserTransaction 
net.sf.cglib.proxy.Enhancer 
net.sf.cglib.proxy.Factory 
net.sf.cglib.proxy.MethodInterceptor 
net.sf.cglib.proxy.MethodProxy 
org.apache.commons.logging.Log 
org.apache.commons.logging.LogFactory 
org.dom4j.Document 
org.dom4j.DocumentException 
org.dom4j.Element 
org.dom4j.io.SAXReader 
org.drools.RuleBase 
org.drools.RuleBaseFactory 
org.drools.WorkingMemory 
org.drools.compiler.DrlParser 
org.drools.compiler.PackageBuilder 
org.drools.compiler.PackageBuilderConfiguration 
org.hibernate.Filter 
org.hibernate.FlushMode 
org.hibernate.Query 
org.hibernate.Session 
org.hibernate.SessionFactory 
org.hibernate.cfg.AnnotationConfiguration 
org.hibernate.cfg.Configuration 
org.hibernate.collection.PersistentCollection 
org.hibernate.lob.ReaderInputStream 
org.hibernate.util.ReflectHelper 
org.hibernate.validator.ClassValidator 
org.hibernate.validator.InvalidValue 
org.jboss.cache.PropertyConfigurator 
org.jboss.cache.aop.PojoCache 
org.jboss.ejb3.embedded.EJB3StandaloneBootstrap 
org.jboss.ejb3.embedded.EJB3StandaloneDeployer 
org.jboss.kernel.plugins.bootstrap.standalone.StandaloneBootstrap 
org.jboss.resource.adapter.jdbc.local.LocalTxDataSource 
org.jboss.resource.connectionmanager.CachedConnectionManager 
org.jboss.resource.connectionmanager.CachedConnectionManagerReference 
org.jboss.resource.connectionmanager.TransactionSynchronizer 
org.jboss.security.auth.callback.UsernamePasswordHandler 
org.jboss.tm.TransactionManagerLocator 
org.jboss.tm.usertx.client.ServerVMClientUserTransaction 
org.jboss.util.naming.NonSerializableFactory 
org.jbpm.JbpmConfiguration 
org.jbpm.JbpmContext 
org.jbpm.context.exe.ContextInstance 
org.jbpm.db.GraphSession 
org.jbpm.db.TaskMgmtSession 
org.jbpm.graph.def.Node 
org.jbpm.graph.def.ProcessDefinition 
org.jbpm.graph.exe.ExecutionContext 
org.jbpm.graph.exe.ProcessInstance 
org.jbpm.graph.exe.Token 
org.jbpm.jpdl.el.ELException 
org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator 
org.jbpm.persistence.db.DbPersistenceServiceFactory 
org.jbpm.taskmgmt.def.Task 
org.jbpm.taskmgmt.exe.TaskInstance 
org.jbpm.taskmgmt.exe.TaskMgmtInstance 
org.jbpm.util.ClassLoaderUtil 
org.xml.sax.EntityResolver 
org.xml.sax.InputSource 

and on error output some stuff which can safely be ignored:

Code:

couldn't find: org.jboss.seam.actionparam.ActionParamMethodBinding: No file for: MethodBinding 
couldn't find: org.jboss.seam.actionparam.ActionParamValueBinding: No file for: ValueBinding 
couldn't find: org.jboss.seam.util.UnifiedELValueBinding: No file for: ValueBinding 
couldn't find: org.jboss.seam.util.UnifiedELMethodBinding: No file for: MethodBinding 
couldn't find: org.jboss.seam.pageflow.Page: No file for: Node 
couldn't find: org.jboss.seam.pageflow.PageflowParser: No file for: JpdlXmlReader 
couldn't find: org.jboss.seam.jbpm.SeamVariableResolver: No file for: VariableResolver 
couldn't find: org.jboss.seam.core.Dispatcher: No file for: TimerHandle 
couldn't find: org.jboss.seam.core.ManagedJbpmContext: No file for: Synchronization 
couldn't find: org.jboss.seam.core.TaskInstance$1: No file for: TaskInstance 
couldn't find: org.jboss.seam.core.ProcessInstance$1: No file for: ProcessInstance 
couldn't find: org.jboss.seam.intercept.ClientSideInterceptor: No file for: MethodInterceptor 
couldn't find: org.jboss.seam.intercept.JavaBeanInterceptor: No file for: MethodInterceptor 
couldn't find: org.jboss.seam.intercept.EJBInvocationContext: No file for: InvocationContext 
couldn't find: org.jboss.seam.intercept.EE5SeamInvocationContext: No file for: InvocationContext 
couldn't find: org.jboss.seam.core.Dispatcher. Asynchronous 
couldn't find: org.jboss.seam.core.Dispatcher. AsynchronousEvent 
couldn't find: org.jboss.seam.core.Dispatcher. AsynchronousInvocation 
couldn't find: org.jboss.seam.core.Dispatcher. TimerHandleProxy 
couldn't find: org.jboss.seam.core.Dispatcher. TimerProxy 
couldn't find: org.jboss.seam.core.Dispatcher$TimerProxy: No file for: Timer 
couldn't find: org.jboss.seam.core.ManagedHibernateSession: No file for: HttpSessionActivationListener 
couldn't find: org.jboss.seam.core.ManagedPersistenceContext: No file for: HttpSessionActivationListener 
couldn't find: org.jboss.seam.core.UiComponent$1: No file for: UIComponent 
couldn't find: org.jboss.seam.jsf.ListDataModel: No file for: ListDataModel 
couldn't find: org.jboss.seam.jsf.ArrayDataModel: No file for: ArrayDataModel 
couldn't find: org.jboss.seam.jsf.MapDataModel: No file for: DataModel 
couldn't find: org.jboss.seam.jsf.SetDataModel: No file for: DataModel 
couldn't find: org.jboss.seam.drools.DroolsActionHandler: No file for: ActionHandler 
couldn't find: org.jboss.seam.drools.DroolsAssignmentHandler: No file for: AssignmentHandler 
couldn't find: org.jboss.seam.drools.DroolsDecisionHandler: No file for: DecisionHandler 
couldn't find: org.jboss.seam.remoting.messaging.SubscriptionRegistry$1: No file for: ExceptionListener 
couldn't find: org.jboss.seam.jsf.AbstractSeamPhaseListener: No file for: PhaseListener 
couldn't find: org.jboss.seam.jsf.SeamApplication11: No file for: Application 
couldn't find: org.jboss.seam.jsf.SeamApplicationFactory: No file for: ApplicationFactory 
couldn't find: org.jboss.seam.jsf.SeamELResolver: No file for: ELResolver 
couldn't find: org.jboss.seam.jsf.SeamNavigationHandler: No file for: NavigationHandler 
couldn't find: org.jboss.seam.jsf.SeamStateManager: No file for: StateManager 
couldn't find: org.jboss.seam.jsf.SeamVariableResolver: No file for: VariableResolver 
couldn't find: org.jboss.seam.jsf.SeamViewHandler: No file for: ViewHandler 
couldn't find: org.jboss.seam.mock.MockApplication: No file for: Application 
couldn't find: org.jboss.seam.mock.MockExternalContext: No file for: ExternalContext 
couldn't find: org.jboss.seam.mock.MockFacesContext: No file for: FacesContext 
couldn't find: org.jboss.seam.mock.MockHttpServletRequest: No file for: HttpServletRequest 
couldn't find: org.jboss.seam.mock.MockHttpSession: No file for: HttpSession 
couldn't find: org.jboss.seam.mock.MockLifecycle: No file for: Lifecycle 
couldn't find: org.jboss.seam.mock.MockNavigationHandler: No file for: NavigationHandler 
couldn't find: org.jboss.seam.mock.MockRenderKit: No file for: RenderKit 
couldn't find: org.jboss.seam.mock.MockResponseStateManager: No file for: ResponseStateManager 
couldn't find: org.jboss.seam.mock.MockServletContext: No file for: ServletContext 
couldn't find: org.jboss.seam.mock.MockStateManager: No file for: StateManager 
couldn't find: org.jboss.seam.mock.MockViewHandler: No file for: ViewHandler 
couldn't find: org.jboss.seam.remoting.SeamRemotingServlet: No file for: HttpServlet 
couldn't find: org.jboss.seam.security.filter.SeamSecurityFilter: No file for: Filter 
couldn't find: org.jboss.seam.servlet.SeamCharacterEncodingFilter: No file for: Filter 
couldn't find: org.jboss.seam.servlet.SeamExceptionFilter: No file for: Filter 
couldn't find: org.jboss.seam.servlet.SeamListener: No file for: ServletContextListener 
couldn't find: org.jboss.seam.servlet.SeamRedirectFilter$1: No file for: HttpServletResponseWrapper 
couldn't find: org.jboss.seam.servlet.SeamRedirectFilter: No file for: Filter 
couldn't find: org.jboss.seam.servlet.SeamServletFilter: No file for: Filter 
couldn't find: org.jboss.seam.util.EL$1: No file for: ELContext 

Now I'm using the first output as is to guess what JAR provides them but this is because I know them quite well.

This might not be always that easy, so an automatic way to find what Maven artifact provides those would be great :)

19.11.06

Permalink Categories: XML, Java   English (EU)

Preserving lexical information when modifying an XML document

When modifying an existing document, the easiest solution is to load it from storage (DOM, SAX or STaX), modify it and write it back to storage, but that process destroys original XML layout, comments, white spaces, etc ...

SAX2's property http://xml.org/sax/properties/lexical-handler allows to catch lexical events such as whitespaces. It might allow to preserve lexical information when writing back a modified XML document.

Code:

// Set the lexical handler 
saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", 
lexicalInformationPreserverHandler); 

I'll have to try that when I find the time ;)

14.11.06

Permalink Categories: IoC, Spring   English (EU)

Spring-Annotation

An independant initiative to add support for annotation based configuration to Spring.

Despite the 1.0 version tag, it is not very mature yet. It should be based on the new Spring DSL framework but is not.

Looking forward for it though.

Permalink Categories: Java   English (EU)

Finally Java in GPL ...

It has been on every one in IT business's wish list for a while and finally there it is ... Java GPLed.

That's great news for the IT industry in general even if in my own professionnal experience, Java not being GPLed has never been an issue.

Nonetheless, congrats !

DraK's Klog

Novembre 2006
Lun Mar Mer Jeu Ven Sam Dim
<< < Courant > >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

Rechercher

Catégories

Linkblog

Friends

Other

Syndiquez ce blog XML

Qu'est-ce que RSS?

powered by
b2evolution