Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.
Monday, November 14, 2005
The most significant recently added to jetspeed are translations, portlet api compliance, statistics and page manager implementations.
Sunday, November 13, 2005
Just follow the ndiswrapper guide and it should work.
Wednesday, November 09, 2005
- MapServer Software
- Geographic Data
- MapServer Configuration
- Apache Portlet Bridge for MapServer
- Jetspeed Configuration
MapServer is a C program therfore you must obtain the proper version for your target operating system. Linux and Unix users will find that downloading the source and compiling it is the simplest alternative. Listed here are links to MapServer source and its required dependencies. Build each of these packages using the ./configure, make, and sudo make install commands. Building MapServer will tell you which dependencies are missing on your system.
MapServer-4.6.1 source code
GD-2.0.33 source code
Freetype-2.1.10 source code
Jpeg-6b source code
Png-1.2.8 source code
Windows users can use the ms4w package provided by maptools.org.
Mac OS users will find help here.
Geographic Data
The MapServer demo includes some sample geographic data.
MapServer Configuration
MapServer is configured using a MapFile. The demo configuration file is itasca.map.
Apache Portal Bridge for MapServer
A contribution to the Apache Portal Bridges project yeilded a component capable of executing the MapServer program. This bridge uses the portlet initalization parameters to determine the inital map. MapScript for Java is on the roadmap.
Jetspeed Configuration
A simple modification to any existing portlet.xml is enough to deploy a new MapServer map. See the attachment in the Jira issue.
Thursday, November 03, 2005
Tuesday, October 25, 2005
./mapserv QUERY_STRING="layer=Citylimits&layer=Citywards&zoomdir=1&zoomsize=2&map=%2Fms4w%2FApache%2Fhtdocs%2Fmap%2FMorganCo.map&program=%2Fcgi-bin%2Fmapserv&root=%2Fmap&map_web_imagepath=%2Ftmp%2F&map_web_imageurl=%2Fmap%2Ftmp%2F&map_web_template=map.html"
The parameter program will be replaced by a servlet mapping. Therefore all request to the url, /browse/map, will be redirected to the mapserver.
The template will have all
htmland
bodytags removed so that it is an html page fragment.
A MapServerPortlet class will implement the doView method and encapsulate the mapserv binary execution. The portlet requires the following settings, the location of the mapserv binary, the location of the map file, the initial layer to display, the template to use, the absolute uri to the servlet mapping, the temporary image directory, the temporary image uri, the zoom mode, the zoom value.
A Jetspeed bridge is required. It is based on the Perl bridge which was too busy for the mapserver needs, so I just adapted it to the simplicity of mapserver.
- Create a mapserver object using mapserv.c.loadParams and mapserv.c.loadMap
- Parse parameters mapserv.c.loadForm
- Determine the mode. One of three are know to me, browse,query, and nquery. This is determined by the msObj.Mode property. Most of this logic is in mapserv.c.main.
- Extent, scale, and query files are evaluated using mapserv.c.setExtent mapserv.c.checkWebScale and mapserv.c.msLoadQuery
- Images are generated using maptemplate.c.msGenerateImages
- Map is drawn using mapdraw.c.msDrawMap
- Map is drawn using mapdraw.c.msDrawQueryMap
- Legend is drawn using maplegend.c.msDrawLegend
- Scalebar is drawn using mapscale.c.msDrawScalebar
- Reference map is drawn using mapraster.c.msDrawReferenceMap
- Two maps on one page.
Sunday, October 23, 2005
Saturday, October 22, 2005
CreateYourOwnSimpleServletPortal
= The portlet.xml =
Add a new portlet tag to one of the existing portlet applications. The security application is know to work.
{{{
edit $JETSPEED2_SRC/applications/security/src/webapps/WEB-INF/portlets.xml
}}}
The portlet tag can be placed anywhere inside the root element called portlet-app.
{{{
}}}
= The psml =
Add a fragment tag to one of the psml files. The default page is appropriate.
{{{
edit $JETSPEED2_SRC/src/webapp/WEB-INF/pages/default-page.psml
}}}
Note that the id must be unique. Using the same id twice will confuse Jetspeed. There is no error handling regarding this point so be creative.
{{{
}}}
= The JSP =
We did say that this is a simple servlet portlet, so the JSP will be simple.
{{{
edit $JETSPEED2_SRC/applications/security/src/webapps/WEB-INF/security/login/simple.jsp
}}}
Here are the contents of a very simple JSP.
{{{
<%@page import="java.util.Date"%>
The time is <%=(new Date()).toString()%>
}}}
Friday, October 21, 2005
To simplify this document $JS2_PAGES will represent the directory path src/webapp/WEB-INF/pages of the Jetspeed 2 source code.
= Jetspeed Portlet Layout =
The Jetspeed portlet layout is defined by a number of mechanisms. The $JS2_PAGES file structure has an effect on the layout. Here are some modifications you can do without breaking the build.
== Change the Default Page ==
Modify the column and row indexes for some or all of the portlets on the welcome page($JS2_PAGES/default-page.psml).
== Add Additional Links ==
Create a file called myLink.link in the directory $JS2_PAGES. Refer to or copy one of the other .link files for the proper syntax.
== Create a New Tab ==
Tabs can be created by simply creating a psml file in the $JS2_PAGES directory. Copy $JS2_PAGES/default-page.psml to $JS2_PAGES/my-page.psml. Note that the security-constraint tag in psml defines the roles authorized to view this page.
== Modify the Menu ==
The left menu is defined in the folder.metadata file of each directory of the $JS2_PAGES directory.
security-constraint defines a list of web resources (urls) protected by web security and a list of roles authorized to access these resources.
login-config defines the authentication method and the realm name. Optionally a login page and a error page can be defined.
The security-role tag must appear if this is a custom role that does not already exist in the container.
Tuesday, October 18, 2005
Requirements
JDK 1.4.1 or higher
Maven 1.0.2
Tomcat 5.5.12
Set the following environment variables.
Linux and Unix
export MAVEN_HOME=/home/opensource/apache-maven-1.0.2/
export CATALINA_HOME=/home/opensource/apache-tomcat-5.5.12/
export JETSPEED2_SRC=/home/opensource/jetspeed-2/
Windows
set MAVEN_HOME=/home/opensource/apache-maven-1.0.2/
set CATALINA_HOME=/home/opensource/apache-tomcat-5.5.12/
set JETSPEED2_SRC=/home/opensource/jetspeed-2/
Modify Tomcat's tomcat-users.xml to contain the following lines
<role rolename="manager">
<user username="j2deployer" password="j2deployer" roles="manager">
Building
maven -Dorg.apache.jetspeed.server.home=$CATALINA_HOME -Dorg.apache.jetspeed.server.shared=$CATALINA_HOME/shared/lib -Dorg.apache.jetspeed.deploy.war.dir=$CATALINA_HOME/webapps -Dorg.apache.jetspeed.services.autodeployment.user=j2deployer -Dorg.apache.jetspeed.services.autodeployment.password=j2deployer -Dorg.apache.jetspeed.catalina.version.major=5.5 -Dorg.apache.jetspeed.project.home=$JETSPEED2_SRC initMavenPlugin
maven -Dorg.apache.jetspeed.server.home=$CATALINA_HOME -Dorg.apache.jetspeed.server.shared=$CATALINA_HOME/shared/lib -Dorg.apache.jetspeed.deploy.war.dir=$CATALINA_HOME/webapps -Dorg.apache.jetspeed.services.autodeployment.user=j2deployer -Dorg.apache.jetspeed.services.autodeployment.password=j2deployer -Dorg.apache.jetspeed.catalina.version.major=5.5 -Dorg.apache.jetspeed.project.home=$JETSPEED2_SRC j2:start.test.server
maven -Dorg.apache.jetspeed.server.home=$CATALINA_HOME -Dorg.apache.jetspeed.server.shared=$CATALINA_HOME/shared/lib -Dorg.apache.jetspeed.deploy.war.dir=$CATALINA_HOME/webapps -Dorg.apache.jetspeed.services.autodeployment.user=j2deployer -Dorg.apache.jetspeed.services.autodeployment.password=j2deployer -Dorg.apache.jetspeed.catalina.version.major=5.5 -Dorg.apache.jetspeed.project.home=$JETSPEED2_SRC allClean allBuild
Running
maven -Dorg.apache.jetspeed.server.home=$CATALINA_HOME -Dorg.apache.jetspeed.server.shared=$CATALINA_HOME/shared/lib -Dorg.apache.jetspeed.deploy.war.dir=$CATALINA_HOME/webapps -Dorg.apache.jetspeed.services.autodeployment.user=j2deployer -Dorg.apache.jetspeed.services.autodeployment.password=j2deployer -Dorg.apache.jetspeed.catalina.version.major=5.5 -Dorg.apache.jetspeed.project.home=$JETSPEED2_SRC j2:start.production.server
maven -Dorg.apache.jetspeed.server.home=$CATALINA_HOME -Dorg.apache.jetspeed.server.shared=$CATALINA_HOME/shared/lib -Dorg.apache.jetspeed.deploy.war.dir=$CATALINA_HOME/webapps -Dorg.apache.jetspeed.services.autodeployment.user=j2deployer -Dorg.apache.jetspeed.services.autodeployment.password=j2deployer -Dorg.apache.jetspeed.catalina.version.major=5.5 -Dorg.apache.jetspeed.project.home=$JETSPEED2_SRC j2:quickStart
I don't understand why the org.apache.jetspeed.project.home is required. Can't this be obtained from Maven.
Tomcat 5.5 is telling me that "[/jetspeed] startup failed due to previous errors". The errors and warnings are in order of appearance.
WARNING: A docBase /home/opensource/soft/bin/apache-tomcat-5.5.12/webapps/jetspeed inside the host appBase has been specified, and will be ignored
INFO: WARNING: Security role name admin used in an
SEVERE: Error filterStart
Tuesday, August 16, 2005
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsProfile.java
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsUtils.java
See the metafacades directory for classes that represent uml profiles.
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsAttributeLogicImpl.java
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsJspLogicImpl.java
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsManageableEntityAttributeLogicImpl.java
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsParameterLogicImpl.java
cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsUseCaseLogicImpl.java
Monday, August 15, 2005
Friday, July 22, 2005
Tuesday, July 19, 2005
Tuesday, July 12, 2005
Thursday, June 30, 2005
- cglib (resolves 1% of the errors)
- mx4j and mx4j remote (resolves less than 2% of the errors)
- log4j (resolves less than 1% of the errors)
- xml-resolver (resolves less than 1% of the errors)
- junit (25% of the errors) and is only required for the tests
- xmlbeans (resolves 51% of the errors)
- concurrent (2%)
- exolab castor 0.9.5.3 (6%)
- axis 1.3 (4%)
- howl (%)
- activeio
- ant
- antlr
- commons-collections
- commons-cli
- commons-fileupload
- commons-httpclient
- commons-io
- commons-jelly
- commons-logging
- commons-modeler
- commons-primatives
- maven
- regexps
- velocity
- hsqldb
- openejb
- openorb
Security is now compiling.
- axiondb
- axis scout
- bountycastle
- catalina
- derby
- jetty
- mockobjects
- objectweb asm
- spring
- xfire
- xstream
- geronimo-axis-builder-1.0-SNAPSHOT.jar
- geronimo-client-builder-1.0-SNAPSHOT.jar
- geronimo-connector-builder-1.0-SNAPSHOT.jar
- geronimo-j2ee-builder-1.0-SNAPSHOT.jar
- geronimo-j2ee-schema-1.0-SNAPSHOT.jar
- geronimo-jetty-builder-1.0-SNAPSHOT.jar
- geronimo-naming-1.0-SNAPSHOT.jar
- geronimo-naming-builder-1.0-SNAPSHOT.jar
- geronimo-security-builder-1.0-SNAPSHOT.jar
- geronimo-service-builder-1.0-SNAPSHOT.jar
- geronimo-spring-builder-1.0-SNAPSHOT.jar
- geronimo-tomcat-builder-1.0-SNAPSHOT.jar
- openejb-builder-1.0-SNAPSHOT.jar
The remaining errors were caused by duplicate class files. I deleted them to move forward.
This is where it gets interesting. The server is started using the org.apache.geronimo.system.main.Daemon class in the system module. It requires the server.jar to be on the classpath. It is found in the modules/assembly/target/geronimo-1.0-SNAPSHOT/bin directory. Debugging this now. There are several errors that need to be work out.
Wednesday, June 29, 2005
Tuesday, June 21, 2005
Tuesday, June 07, 2005
Monday, June 06, 2005
Wednesday, June 01, 2005
Thursday, May 26, 2005
Friday, May 20, 2005
Thursday, April 21, 2005
Wednesday, April 20, 2005
Software methodology = modeling language + software process
Agent technology software system characteristics = situation awarness + intelligent behavior + distributed + mobility + nomadic users
SODA = Societies in Open Distributed Agent spaces = agent societies + agent environments + inter-agent aspects.
Agent methodology = external viewpoint (Services Purpose and Responsibitities) + internal viewpoint (Beliefs Goals and Plans).
See MESSAGE, Tropos, Prometheus, and JACK.
See section 3.1 of James Odell's paper.
MDA is the process of converting UML to an deployable application.
The UML models that are used by MDA are in two categories. Structural Diagrams = Static Aspects. Behavioral Diagrams = Dynamic Aspects.
Structural Diagrams = class + object + composition + component + deployment
Behavioral Diagrams = use case + activity + state + sequence + communication + interaction
Generating deployable applications is the final stage of MDA. It requires these models: Computational Independent Model (CIM), Platform Independent Model (PIM), and the Platform Specific Model (PSM). These are the models created during generation. See AndroMDA for more information on MDA. See Agentis for more information on Agent technology.
Friday, April 15, 2005
Testing requires SVN, Java, Maven, and the ActiveMQ source code. These are the quick start commands,
svn co svn://svn.activemq.org/activemq/scm/trunk/activemq
cd activemq
maven
cd modules/assembly
maven server
maven producer
maven consumer
More to come on customizing and integrating this configuration.
References :
http://activemq.codehaus.org/Examples
http://activemq.codehaus.org/SVN
http://maven.apache.org/
http://java.sun.com/
Friday, April 08, 2005
Wednesday, April 06, 2005
Tuesday, April 05, 2005
Wednesday, March 30, 2005
java -jar bin/server.jar org/apache/geronimo/DebugConsole org/apache/geronimo/RuntimeDeployer org/apache/geronimo/DefaultDatabase org/apache/geronimo/SystemJMS
The Debug, Deployer, JMS, and Database GBeans are started. As stated var/config/config.list contains the last stable config therefore subsequent restart is done using this command,
java -jar bin/server.jar
Geronimo EAR Deployment is done using this command,
java -jar bin/deployer.jar deploy ~/agentis/agentis/Agentis370_350IDE/work/SimpleProjectTest/dist/SimpleProjectTest-agent.ear
Tuesday, March 29, 2005
Tuesday, March 08, 2005
Wednesday, March 02, 2005
Sunday, February 27, 2005
Wednesday, February 23, 2005
Tuesday, February 22, 2005
Monday, February 14, 2005
Thursday, February 03, 2005
java.sql.SQLException: Table not found: DECISION_ITEM in statement [select decisionit0_.ID as ID, decisionit0_.class as class, decisionit0_.ROOT_ITEM as ROOT_ITEM, decisionit0_.YES_SUCCESSOR_FK as YES_SUCC4_, decisionit0_.NO_SUCCESSOR_FK as NO_SUCCE5_, decisionit0_.NAME as NAME, decisionit0_.PROMPT_STRING as PROMPT_S7_ from DECISION_ITEM decisionit0_ where (decisionit0_.ROOT_ITEM=true )]
at org.hsqldb.jdbc.jdbcUtil.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.prepareStatement(BaseWrapperManagedConnection.java:355)
at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:205)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:257)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:232)
at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65)
at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:779)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:265)
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
at org.andromda.samples.animalquiz.decisiontree.DecisionItemFactory.findRoot(DecisionItemFactory.java:43)
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBeanImpl.handleGetFirstQuestion(DecisionServiceBeanImpl.java:17)
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBean.getFirstQuestion(DecisionServiceBean.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:856)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy122.getFirstQuestion(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
at org.apache.axis.providers.java.EJBProvider.invokeMethod(EJBProvider.java:459)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
00:42:24,330 ERROR [LogInterceptor] EJBException in method: public abstract org.andromda.samples.animalquiz.decisiontree.VODecisionItem org.andromda.samples.animalquiz.decisiontree.DecisionService.getFirstQuestion() throws org.andromda.samples.animalquiz.decisiontree.DecisionException,java.rmi.RemoteException:
javax.ejb.EJBException: DecisionServiceBean.getFirstQuestion: javax.ejb.EJBException: null; CausedByException is:
Could not execute query
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBean.getFirstQuestion(DecisionServiceBean.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:856)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy122.getFirstQuestion(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
at org.apache.axis.providers.java.EJBProvider.invokeMethod(EJBProvider.java:459)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
Monday, January 10, 2005
RESUME - PHILIP MARK DONAGHY - Professional consultant for the following (open source) technologies. PostgreSQL MySQL Oracle and IBM DB2 DBMS. Apache AXIS Geronimo LDAP Samba and Tomcat servers. GML JDOM JAXP SAX and XERCES XML specifications. AndroMDA Velocity and XDoclet code generators. Linux Solaris and Win OS. Struts MVC II design pattern. JSP Struts Tiles Struts Validator and DisplayTag presentation layers. J2EE EJB JDBC JMS JMX JNDI JSSE JSTL JTA JTX Java Thread Java beans Java IO Java Lang Java Net Java RMI Java Security Java SQL Java Text Java Util Javax Naming Javax SQL Javax XML w3c DOM XML SAX and JavaMail Java 2 SDK APIs. J2SDK Ant Maven Eclipse JBuilder Log4J Apache Jakarta Commons Clay DBCP Taglibs DisplayTag Easy Struts Lomboz Oxygen and CVS development platforms. ArcIMS GRASS PostGIS and MapServer GIS. OpenSSL SSH SSL HTTP SOAP and DNS BIND protocols. I use object-oriented analysis & design (OOAD), l'Unified Modeling Language (UML), Enterprise JavaBeans (EJBs), JavaServer Pages (JSPs), Java Server Faces (JSFs), Data Access Objects (DAOs). I support open source and the Java Community Process (JCP).
159 rue du Fbg Poissonnià re
75009 Paris France
Tel. : +33 (0)1 48 74 23 80
Mobile : +33 (0)6 20 83 22 62
Email : philipmarkdonaghy 0 yahoo 0 com
Website : donaghy.blogspot.com
Born the 8th of August 1972
Married
Nationality : American
French Resident
( working permit )
EDUCATION
1996. San Diego State University. Bachelors of Science in General Geology and Bachelors of Science in Computer Science.
LANGUAGES
English : Mother tongue
French : Read, written, and spoken
PROFESSIONAL EXPERIENCE
May 2004. GISIG. Paris (75). Apache Architect
Responsabilities
Produce an Apache compile farm
Application Functionalities
Compile Ant 1.6.1, Junit 3.8.1, MX4J 2.0.1, Apache Commons Lang
Technolgies
Linux 2.4.20, CVS 1.11.2
October 2003 to April 2004. Acadomia. Alten SI. Paris (75). Web Application Architect.
Responsabilities
Establish a framework for a mission critical web application
Define a security mechanism for user authentification and authorization
Determine the data acess requirements and create a code generator from JDBC connection which provides acces to a persitant data layer
Separate the data access layer from the business logic layer and the java bean and presentation layers
Establish an error mechanism using the Java exception technology
Train eight engineers to use the Struts actions, form beans, validator, tiles, and controller technologies
Assure the sychronisation of data using web services
Integrate common paging and tab panes tag libraries into the presentation layer
Application Functionalities
Intranet used for the managment of the Acadomia organisation and their client database
User interfaces permiting the creation of agencies, families, students, and tutors
Application controled security customized using the application back office administrator
References
February 2003 to September 2003. AirportSmart. Alten SI. LGS France. IBM Global Services. Paris (92). Web Application Architect.
Responsabilities
Responsable for the architecture and development of a intranet whos space is dedicated to buyers and suppliers of the airport industry.
Perform system administration for developer, preproduction, and production servers.
Install and configure Linux, Samba, Apache, Tomcat, IBM DB2, J2SDK, Struts, Ant, JBuilder, Log4J, OpenSSL, LDAP, PHP, CVS, JNDI, JDBC, JavaMail, TagLibs (JSTL), Apache Commons, Tiles, Velocity templates, Email Servers.
Train and provide assistance to eight other engineers.
The application is executed using multiple servers installed with the Linux Red Hat distribution.
The servers use the Java 2 Enterprise Platform to communicate between data sources most of which are based on Open Source products. LDAP Secureway and IBM DB2
Application Functionalities
The functionalities of the web application are supported in any language.
Internationalization is at the core of the application, which includes graphical interfaces for activating new languages, and for translating data.
References
December 2002 to May 2003. ATEC. Cachan (94). Project Manager Internet.
Responsabilities
Produce a web application for an office of Construction Economists.
References
August 2001 to July 2002. Egencia. Paris, France. Lead Java Developer.
Responsabilities
Development of travel portal using Java technology.
Responsible for implementing J2EE ( Java 2 Platform Enterprise Edition ) architecture on n-tier heterogeneous platform.
Creation and design of Web tier using JavaBeans constructed from Data Access Objects ( DAO ).
Data sources include XML ( Extensible Markup Language ), Oracle, and HTTP protocol over SSL using the Java Secure Socket Extension ( JSSE ).
Integrated platform with the SNCF Train Reservation System for Online Travel Agencies ( RAVEL, Système de Réservation SNCF pour les Agences de Voyages En Ligne ), the KIX XML API for KDS Wave Server, and Business Objects.
References
January 2001 to August 2001. MapImage. Paris, France. Internet Application Developer.
Responsabilities
Development of Web portal software using Java technology.
Responsible for designing and writing a Web application using Servlet technology on Internet Information Server ( IIS ) platform.
Utilisation of MS Java SDK and virtual machine.
References
June 2000 to January 2001. ESRI France. Meudon, France. Development Engineer.
Responsabilities
Development of GIS ( Geographic Information Systems ) project in the field of wireless telecommunications.
Responsible for developing a Web client to ArcIMS ( Arc Internet Map Server ) for a leading telecommunications company.
Product destinated for French Justice Department for use in criminal investigations notably for the positioning of mobile phone calls.
Designed a multi user environment used to display cartography based on dates, phone numbers, and/or locations.
Developed search engine tool to assist user in the research.
Developed reporting tool to log usage.
References
http://www.esrifrance.fr
June 1998 to April 2000. ESRI Inc. Redlands, CA, USA. Software Release Manager.
Responsabilities
Development of automated test suites for GIS software package called ArcIMS ( Arc Internet Map Server ).
Tests were written in Java and JavaScript to send multiple requests to the ArcIMS clients and servers to perform load, api, and regression tests.
Responsible for the quality of the software release for the Sun Solaris platform.
References
January 1996 to March 1998. Scripps Institution of Oceanography. San Diego, CA, USA. Research Assistant.
Responsabilities
Studying the climate of the San Francisco Bay area. Development of real-time weather website and tools to forecast weather based on statistics. Performed analysis of weather patterns using Matlab mathematical application. Graphs and models where created by developing programs using Matlab scripting language.
References
SKILLS
Knowledge of diverse IT systems and programming methods.
Research : Scientific Method, Mineralogy, Petrology, Structural Geology, Oceanography and Statistics
Programming : Java, JavaScript, C, C++, SQL, HTML, ASP, JSP, Taglibs, UNIX : bash, sh, csh, ksh, perl, php
Technologies : Tomcat, Struts, Servlet, JSP, XML, DTD, XSLT, JASP, EJB, JavaBeans, JavaMail, JDBC, JSSE, MVC, JDOM, Taglibs, TLD, NetBeans, Linux
Web Servers : Apache, IIS, iPlanet.
ArcIMS 3.0 Knowledge and Experience
Client, Middleware, and Server Architecture.
AXL Communication between components.
Administration of Map Services and multiple machine configurations.
Customization using HTML client and Servlet Connector.
Design and development of the test harness for the Java Viewer API.
Development of a debug and trace tool for the ArcIMS Viewers.
Configuration of the Cold Fusion Connector.
Experience developing custom AXL requests.
Developement Tools
Eight years experience using Sun Microsystems Java Development Kit
Five years experience using JBuilder for Java development.
Four years experience using Cold Fusion Studio/Server for HTML development.
Two years experience using Oracle 8, Toad, and sqlplus.
Six months experience using IBM DB2 datastore.
Six months experience using MS SQLServer.
Open Source Software Development for Service Oriented Projects
By Philip Mark Donaghy
There is no doubt that Open Source methods are becoming the norm used by service agencies everywhere. These are the guidelines I recommend when developing using open source software. These principals will guarantee an effective development process.
Communication with Mailing Lists
A large percentage of projects fail due to poor communications. It is very important that communication is traced so that managers, developers, and clients can have the correct information at the right time.
The solution to this problem :
Use internal mailing lists to notify people of news, events and or changes that are important to the end users as well as managers, clients, and developers. Three lists should be sufficient. The client list, a developers list, and a managers list. In addition the use of public mailing lists to effectively monitor software limitations and benefits.
Modeled Architecture using UML, Object, Exchange, and Database models
Problems arise from ineffectively copying and pasting source code.
The solution to this problem :
Use models to define the architecture of the application. Model driven architecture is the most modern method of developing service oriented software. A large portion of the application can be automatically generated using Velocity or AndroMDA.
Client Workflow
A third difficulty comes from poor client specifications. The solution is to monitor the clients needs and expectations.
The solution to this problem :
Architects and developers can not effectively create service oriented applications without the technical and functional contacts with the client.
Developer Workflow
Developers are curious animals. The all have their habits and methods of contributing to a project. The most important characteristics necessary to identify a responsible developer are his or her "bonne volonté", the desire to contribute ones maximum potential toward a projects success, and his or her professional attitude. These aside, here are some simple steps all developers should follow.
Verify the stability of the source code
Notify project directors when source code is unstable
Debug
Find the person responsible for the error
Work with them to estimate the
Run regression tests
Notify project directors when regression tests fail
Debug
Find the person responsible for the error
Work with them to estimate the correction
Evaluate remaining development
Meet with project directors to discuss solutions
Language
The software documentation must use a consistent language.
The solution to this problem :
A development team often consists of many nationalities. In such a case documentation communication should be written in English.
French can be the dominant language if the clients, managers, and staff are all French nationals or master French as a second language.
Development Platforms
A final and frequent problem arises with the network services used during the development process and the cost to maintain them.
The solution to this problem :
The development platform must be composed of all elements to run the application independently of network connections. Therefore the database must be installed on the development machine. Traditional Windows machines are not practical, secure or fast enough for this scenario therefore Linux is recommended.
Source Control
Problems arise when source code is locked by other developers.
The solution to this problem :
Use the most common open source source control. At the time of this writing this is CVS, although Subversion has be recently adopted by most new and cutting edge development efforts.
Build Scripts
Problems arise when build scripts are platform dependent.
The solution to this problem :
Use the most common open source build system. At the time of this writing this is Ant, although Maven is making great strides.
As with development build scripts should modular. Meaning that one central build script calls other scripts.
Delays
Delays can be avoided only by synchronizing the efforts made by the client, managers, third parties, and developers. In order to master the planning of a project all the technical, functional, and management aspects must be mastered. At our company we strive to make this our mission. Our contracts describe the exact solution and its implementation along with the time to delivery and the cost.
Wednesday, December 22, 2004
Wednesday, November 24, 2004
Friday, November 05, 2004
Thursday, November 04, 2004
Wednesday, November 03, 2004
# This script can be executed by root to rapidly create a cvs repository on RedHat Linux 8 or later. Author: Philip Mark Donaghy
# Adapted from http://www7b.software.ibm.com/wsdd/library/techarticles/0209_yu/yu.html Article by Colin Yu
# The user cvs and the Users required to have access to cvs.
useradd cvs
useradd -G cvs penguin
useradd -G cvs tiger
# CVS environment
mkdir /home/cvs/anoncvs
chmod -R 770 /home/cvs
chown -R cvs /home/cvs
chgrp -R cvs /home/cvs
chmod g+s /home/cvs/anoncvs
cvs -d /home/cvs/anoncvs init
# Daemon process. CVS Service
printf "# default : off\n# description : A cvs server.\nservice cvspserver\n{\n disable = no\n socket_type = stream\n protocol = tcp\n user = root\n wait = no\n server = /usr/bin/cvs\n server_args = -f --allow-root=/home/cvs/anoncvs pserver\n log_on_success += USERID\n log_on_failure += USERID\n}\n" > /etc/xinetd.d/cvspserver
service xinetd restart
# Users environment for localhost
printf "export CVSROOT=\":pserver:\$USER@localhost:/home/cvs/anoncvs\"\n" >> /etc/profile
# Manual configuration
# User the following command to initialize a project
# cvs import -m "New Project" ProjectName group release1_0
Inserting a version :
DATE_CANCELLED is initialized to the end of time for us that is the 31st of December 9999.
DATE_CREATED and DATE_UPDATED are set to SYSTIME
DATE_EXPORTED, DATE_VALIDATED is initialized to the beginning of time for us that is the 1st of January 1972.
Deleting versions set DATE_CANCELLED and DATE_UPDATED to the system time.
Senario 1 : (DCR, DCA, DUP, DEX, DVA, DST, DEN are abriviations for the above meta data)
t0 t1 t2 t3 t4 t5 t6
|------------------------------------------------> Version one was inserted at time t1, so version one has the following values.
DCR, DCA, DUP, DEX, DVA, DST, DEN
t1, te, t1, tb, tb, t0, t6
Tuesday, October 12, 2004
Friday, September 24, 2004
Tuesday, September 21, 2004
Access cvs using http proxy.
CVS from behind a firewall.
Of all places I found this on msdn.
http://blogs.msdn.com/robmen/archive/2004/08/09/211126.aspx
