Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.
Thursday, August 17, 2006
1. Download the RPM
[nagios@nagios noc]$ wget ftp://ftp.otrs.org/pub/otrs/RPMS/redhat/8.0/otrs-2.0.4-01.i386.rpm
2. Install RPM
[nagios@nagios noc]$ sudo rpm -ihv otrs-2.0.4-01.i386.rpm
error: Failed dependencies:
fetchmail is needed by otrs-2.0.4-01.i386
Resolve fetchmail dependency
[nagios@nagios noc]$ sudo yum install fetchmail
3. Start services
[nagios@nagios noc]$ sudo /sbin/service httpd start
I had problems with Fedora Core 4 and OTRS. This post saved me. It says to change all references to Apache to Apache2 in /etc/httpd/conf.d/otrs.conf
[nagios@nagios noc]$ sudo /sbin/service mysqld start
4. Set the password for the MySQL server
[nagios@nagios usr]$ sudo /usr/bin/mysqladmin -u root password 'new-password'
[nagios@nagios usr]$ sudo /usr/bin/mysqladmin -p -u root -h mydomain.tld password 'new-password'
Enter password:
5. Install the OTRS database
http://mydomain.tld/otrs/installer.pl
A warning message about permission write access to Config.pm was resolved by disabling SELinux with this command,
[nagios@nagios usr]$ sudo /usr/sbin/setenforce 0
6. Start OTRS service
[nagios@nagios noc]$ sudo /sbin/service otrs start
Sunday, August 13, 2006
I'm using windows at the moment so I'm getting the all in one starter kit from the Web Tools project http://www.eclipse.org/webtools/ which depends on GEF and EMF.
Big download...
The installation of the Compound XML Document Toolkit was not successful but after an hour or two of using Web Tools xml editor I am satisfied to say that it provides good xml, xsl, dtd, and xml schema support. On the other hand my first wish would be to have a means of displaying the xpath a specific target location to any other place in the document. Visually determining an xpath such as the following is rather cumbersome,
XMI/XMI.content/UML:Model/UML:Namespace.ownedElement/UML:Package/UML:Namespace.ownedElement/UML:UseCase/UML:Namespace.ownedElement/UML:SignalEvent/UML:Event.parameter/UML:Parameter/UML:ModelElement.taggedValue/UML:TaggedValue/UML:TaggedValue.referenceValue/UML:ModelElement/XMI.extension/referentPath[@xmi.value='org.andromda.profile::presentation::WebFieldType::selecttextinput']
Thanks for reading...Keep coming back for more on UML editing.
Tuesday, June 27, 2006
Tuesday, June 13, 2006
Tuesday, June 06, 2006
User record synchrontion with back end service.
No integrated marketplace.
Special urls for each group.
Messaging system. Contact everyone by building manager. Contact the lobby using this system.
Virginia, NY, CT, California.
What's new (announcements).
Marketplace,
June, test machine.
Sunday, June 04, 2006
Friday, May 26, 2006
Standard and secure platform for creating custom web portals.
Monday, May 22, 2006
The objective of this text is to outline how to provide portal content and functionality to an outside server. There are two issues. One is the user must be authenticated to use a particular content. The other is defining the method to access the pages without the menu and logos. A third issue comes to mind if the provided content is inline rather than in an iframe (the server does all of the content negociation and the clients browser does not even know that it is getting content from a third party) which is all urls for images, links, forms, and resources must be standardized so that the server can know when it is to act as a proxy to third party portal content).
Authentication
One way to do authorization is by using a post request over https where password credentials can be verified. Another way is to sacrafice security for facility by allowing get requests to be made over http. This is not desirable but may facilitate testing. Production servers must make the post over a secure connection.
Content without menus and logos
One assumption that is made is the menus and logos will be invisible and only the content of the portal will be present. For this to work we need to be able to use two different themes depending on the caller.
A page accessed using the MyPage.psml will be rendered with the logo and menus. If the same page is accessed using MyPage.psml?org.apache.portals.jetspeed.theme=simple the logos and menus would be hidden. This parameter can also be passed one time during authetication to set the theme used for the entire session.
URLs
If the server does the content negociation it will act as a proxy to the Jetspeed portal requesting content and providing it inline to the end user. All URLs with a given prefix would have to be redirected to another server for content. A portlet can be written for Jetspeed to act as a proxy server to aquire third party content.
Code
This url will authenticate the user and override all page themes so that the portal content is presented without menus and logos.
http://localhost:8080/jetspeed/login/proxy?org.apache.jetspeed.login.username=user&org.apache.jetspeed.login.password=user&org.apache.jetspeed.theme.override=simple
It depends on a patch submitted by me a few days ago. See the Jira issue
Tuesday, April 11, 2006
The first is a call to the FragmentImpl in package,
org.apache.jetspeed.om.page.psml
Which is related to the portlet itself.
The second is a call to the FragmentImpl in package,
org.apache.jetspeed.om.page.impl
Which is related to layouts.
The fist call populates a o.a.j.om.preference.impl.FragmentPortletPreferenceSet from o.a.j.om.page.ContentFragmentImpl. Then pluto eats the preference and I never see it in my portlet.
Monday, April 03, 2006
Hmm, this is the second time I got this exception using Andromda. It is caused by an invalid character in my @andromda.presentation.view.field.format tagged value. Dates can not use the 'maxlength 10' value 'strict dd/MM/yyyy' is better validation rule.
Sunday, January 29, 2006
Wednesday, January 25, 2006
Geronimo :: Kernel
Geronimo :: Common
Geronimo :: Util
Geronimo :: System
Geronimo :: Deployment
Geronimo :: Core
Geronimo :: Management API
The first interesting thing to look at apart from the architecture which includes Kernel and Core, is the Management API. This programming interface allows you to control all GBeans installed in the system.
Geronimo :: J2EE
Geronimo :: J2EE Schema
Geronimo :: Service :: Builder
Geronimo :: Maven Dependency Plugin
Geronimo :: Security
Then checkout Security. All the standards are here JAAS and JACC.
Geronimo :: Web Services
Geronimo :: Axis
Geronimo :: Mail
Geronimo :: Deploy :: Common Config
Geronimo :: Test :: DDBeans
Geronimo :: Naming
Geronimo :: Security :: Builder
Geronimo :: J2EE
Geronimo :: Naming :: Builder
Geronimo :: Web :: Builder
Geronimo :: Transaction
Geronimo :: Connector
Geronimo :: Tomcat
Geronimo :: Connector :: Builder
Geronimo :: Axis :: Builder
Geronimo :: Tomcat :: Builder
Geronimo :: Derby
Geronimo :: Jetty
Geronimo :: Timer
Geronimo :: Client
Geronimo :: Client Builder
Geronimo :: Scripts
Geronimo :: Session
Geronimo :: Deploy :: JSR-88
Geronimo :: Jetty :: Builder
Geronimo :: Activation
Geronimo :: Configuration Converter
Geronimo :: Console Web
Geronimo :: JMX Remoting
Geronimo :: Installer Support
Geronimo :: JavaMail Transport
Geronimo :: Deploy :: CLI Tool
Geronimo :: Directory
Geronimo :: Installer Processing
Geronimo :: Deploy :: Hot Deployer
Geronimo :: Maven Deployment Plugin
Geronimo :: Maven Assembly Plugin
Geronimo :: IZPack Installer Build Plugin
Geronimo :: Maven Packaging Plugin
Tuesday, December 06, 2005
Thursday, December 01, 2005
MapServer supports four categories of data access. The first is the basic file method. It can access files of type shape, arcinfo, mapinfo, us census tiger, csv, etc. These are read only methods of accessing data. Other sources could update these files and MapServer would get the updates. This wouldn't be a good idea because there could be a io conflict.
ODBC can be used to access relational databases (SQL Server, Oracle, MySQL, and company)
The third category of data access is not applicable to our work. MapServer can access data provided by a Spatial database engine like ArcSDE, Oracle Spatial, or PostGIS. These solutions provide spatial indexing and special geographic types. I think this is out of our scope. It would take longer to set up, it is more complex to install. I would suggest exploring this option if you expect to address larger clients.
The last thing that I want to tell you about is MapScript. MapServer exposes their application programing interface so that hackers and integraters can do custom things with MapServer in the language of their choice (Java,PHP,Perl,Ruby). We are not using it but It can be used to create maps and plot data, as well as query data. I will deliver you an example that I found on the net.
And lastly, I looked at your database and the GPSActive table looks like it could be plotted on the Map using the ODBC solution. There were duplicates in the table but they had the same latitude and longitude. MapServer will plot all data from the table. If we want to get fancy and label each car with their own icon we will have to read the database using PHP and plot using MapScript. Give me some more thoughts on what you need.
<?php
/*
Application: QuickMap
Purpose: Use this file to test mapfiles
Authors: Bill Bronsema (bbronsema@dmsolutions.ca)
Philip Donaghy (philip.donaghy@gmail.com)
Copyright: 2005, DM Solutions Group Inc.
Instructions: - modify the MAPFILE path and the name of the phpmapscript
MODULE (lines 16 & 17)
- in a web browser goto http://127.0.0.1/quickmap.php
- an image of your data should be displayed in your browser, or
a MapServer error
*/
// define variables
define( "MAPFILE", "map/MorganCo.map" );
define( "MODULE", "php_mapscript_44.dll" );
// load the mapscript module
if (!extension_loaded("MapScript")) dl(MODULE);
// open map
//$oMap = ms_newMapObj( MAPFILE, dirname( MAPFILE ) );
$oMap = ms_newMapObj( MAPFILE );
// set projection
//$oMap->setProjection("init=epsg:42304");
// set size
$oMap->setsize(1200, 700);
// set image format
$oMap->selectoutputformat("png");
// draw map
$oImage = $oMap->draw();
// set header
header("Content-type: image/png");
// output map
$url = $oImage->saveImage("");
?>
Monday, November 14, 2005
User can CustomizeTheLayout, CustomizeTheStyle, CustomizeTemplates, CreatePages, CreateFolders, CreateSeparators, and CreateLinks.
Developers can WritePortlets, ConfigurePortlets, WriteLayouts, WriteStyles, as well as anything a user can do.
Administrators can InstallJetspeed, OptimizeJetspeed, ClusterJetspeed, CreateUsers, CreateGroups, and CreateRoles. As well as anything a user or developer can do. They are extremely lazy people who often say "That's the developers job".
Another important feature of Jetspeed is its ability to integrate with Apache Derby.
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.
