[Edevsagetools-commit] SF.net SVN: edevsagetools: [9] trunk
Status: Beta
Brought to you by:
avdyk
From: <av...@us...> - 2007-02-19 15:20:03
|
Revision: 9 http://svn.sourceforge.net/edevsagetools/?rev=9&view=rev Author: avdyk Date: 2007-02-19 07:19:56 -0800 (Mon, 19 Feb 2007) Log Message: ----------- changed group-id plus other additions Modified Paths: -------------- trunk/pom.xml trunk/synchro-webapp/pom.xml trunk/synchro-webapp/src/main/webapp/WEB-INF/web.xml Added Paths: ----------- trunk/synchro-webapp/src/main/filters/ trunk/synchro-webapp/src/main/java/ trunk/synchro-webapp/src/main/java/be/ trunk/synchro-webapp/src/main/java/be/edev/ trunk/synchro-webapp/src/main/java/be/edev/sagetools/ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/SynchroServlet.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/UpdateSageTableServlet.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOException.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOFactory.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/HibernateInit.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroNettoyageDAO.java trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroSaveDAO.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2007-02-19 15:17:56 UTC (rev 8) +++ trunk/pom.xml 2007-02-19 15:19:56 UTC (rev 9) @@ -1,11 +1,11 @@ <?xml version="1.0"?><project> <modelVersion>4.0.0</modelVersion> - <groupId>be.edev.edevsagetools</groupId> + <groupId>be.edev.sagetools</groupId> <artifactId>edevsagetools</artifactId> <packaging>pom</packaging> <name>eDev Sage Tools</name> <version>1.0-SNAPSHOT</version> - <url>http://edevsagetools.sourceforge.net</url> + <url>http://sagetools.edev.be</url> <modules> <module>synchro-core</module> <module>synchro-client</module> @@ -44,5 +44,84 @@ <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> + <!-- Common? --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.0.5</version> + </dependency> + <dependency> + <groupId>javax.sql</groupId> + <artifactId>jdbc-stdext</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + <version>1.4.3</version> + </dependency> + <dependency> + <groupId>bsf</groupId> + <artifactId>bsf</artifactId> + <version>2.3.0</version> + </dependency> + <dependency> + <groupId>c3p0</groupId> + <artifactId>c3p0</artifactId> + <version>0.9.0.2</version> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <version>1.2.1</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.3.3_01</version> + </dependency> + <!-- Only for -webapp --> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jsp-api</artifactId> + <version>2.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>taglibs</groupId> + <artifactId>standard</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>3.1.12</version> + </dependency> </dependencies> -</project> \ No newline at end of file +</project> Modified: trunk/synchro-webapp/pom.xml =================================================================== --- trunk/synchro-webapp/pom.xml 2007-02-19 15:17:56 UTC (rev 8) +++ trunk/synchro-webapp/pom.xml 2007-02-19 15:19:56 UTC (rev 9) @@ -1,14 +1,14 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>be.edev.edevsagetools.synchro.servlet</groupId> - <artifactId>synchro-webapp</artifactId> + <groupId>be.edev.sagetools.synchro</groupId> + <artifactId>webapp</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>Sage Synchronization Servlet</name> - <url>http://edevsagetools.sourceforge.net</url> + <url>http://sagetools.edev.be</url> <parent> - <groupId>be.edev.edevsagetools</groupId> + <groupId>be.edev.sagetools</groupId> <artifactId>edevsagetools</artifactId> <version>1.0-SNAPSHOT</version> </parent> Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/SynchroServlet.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/SynchroServlet.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/SynchroServlet.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,99 @@ +package be.edev.sagetools.synchro.servlets; + + +import java.beans.XMLDecoder; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import be.edev.sagetools.beans.Article; +import be.edev.sagetools.beans.Promo; +import be.edev.sagetools.synchro.servlets.dao.DAOFactory; +import be.edev.sagetools.synchro.servlets.dao.SynchroSaveDAO; + +public class SynchroServlet extends HttpServlet +{ + + protected Log log4 = LogFactory.getLog("SynchroServlet"); + + /** + * Commentaire pour <code>serialVersionUID</code> + */ + private static final long serialVersionUID = 8344558100991728182L; + + /** + * @param arg0 + * @param arg1 + * @throws ServletException + * @throws IOException + * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) + throws IOException + { + this.doPost(arg0, arg1); + } + + /** + * @param arg0 + * @param arg1 + * @throws ServletException + * @throws IOException + * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + protected void doPost(HttpServletRequest req, HttpServletResponse res) + throws IOException + { + this.log4.debug("entree dans la synchronisation"); + XMLDecoder dec = new XMLDecoder(req.getInputStream()); + List l = (List) dec.readObject(); + int i = l.size(); + this.log4.debug("Obtention de l'iterateur sur la liste XML"); + this.log4.info("Il y a " + i + " objets a sauver"); + if (i > 0) + { + try + { + SynchroSaveDAO s = DAOFactory.getInstance().getSynchroSaveDAO(); + s.save(l); + if (l.get(0) instanceof Article) + { + this.log4.debug("On vient de recevoir des articles"); + DAOFactory.getInstance().getSynchroNettoyageDAO() + .supprimeArticlesNonPublie(); + } + else + if (l.get(0) instanceof Promo) + { + this.log4.debug("On vient de recevoir des promos"); + DAOFactory.getInstance().getSynchroNettoyageDAO() + .supprimeAnciennesPromos(); + } + } + catch (Exception e) + { + this.log4.error("Oups!... Probleme a la synchro", e); + } + } + else + { + this.log4.warn("Il n'y avait rien dans la liste."); + } + res.setContentType("text/plain"); + PrintWriter out = res.getWriter(); + out.println(i); + out.flush(); + out.close(); + } + +} Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/UpdateSageTableServlet.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/UpdateSageTableServlet.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/UpdateSageTableServlet.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,125 @@ +package be.edev.sagetools.synchro.servlets; + + +import java.beans.XMLEncoder; +import java.io.IOException; +import java.io.OutputStream; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Date; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.HibernateException; +import org.hibernate.Session; + +import be.edev.sagetools.synchro.servlets.dao.DAOException; +import be.edev.sagetools.synchro.servlets.dao.DAOFactory; + +public class UpdateSageTableServlet extends HttpServlet +{ + + protected Log log4 = LogFactory.getLog("UpdateSageTableServlet"); + + /** + * Commentaire pour <code>serialVersionUID</code> + */ + private static final long serialVersionUID = 4920892222890925161L; + + public UpdateSageTableServlet() + { + super(); + } + + /** + * @param arg0 + * @throws ServletException + * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig) + */ + public void init(ServletConfig config) throws ServletException + { + super.init(config); + } + + /** + * @param arg0 + * @param arg1 + * @throws ServletException + * @throws IOException + * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException + { + String table = request.getParameter("table"); + Date lastUpdate = new Date(0); + this.log4.debug("Maj de la table: " + table); + Session s = null; + Connection c = null; + try + { + s = DAOFactory.getInstance().getSession(); + c = s.connection(); + ResultSet rs = c.createStatement().executeQuery( + "SELECT max(cbmodification) FROM " + table); + if (rs.next()) + { + java.sql.Date d = rs.getDate(1); + if (d != null) + { + lastUpdate = new java.util.Date(d.getTime()); + } + } + this.log4.debug("Valeur de la date: " + lastUpdate.toString()); + } + catch (DAOException de) + { + this.log4.error("Pas moyen d'obtenir une connexion", de); + } + catch (SQLException e) + { + this.log4.error("Probleme de mise a jour de la table: " + table, e); + } finally + { + if (c != null) + { + try + { + c.close(); + } + catch (SQLException sqlex) + { + this.log4.error("Impossible de fermer la connexion", sqlex); + } + } + if (s != null) + { + try + { + s.close(); + } + catch (HibernateException e) + { + this.log4.error("Impossible de fermer la session", e); + } + } + } + response.setContentType("text/xml"); + OutputStream out = response.getOutputStream(); + XMLEncoder e = new XMLEncoder(out); + e.writeObject(lastUpdate); + e.flush(); + e.close(); + out.flush(); + out.close(); + } + +} Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOException.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOException.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOException.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,48 @@ +package be.edev.sagetools.synchro.servlets.dao; + + +/** + * Exception lors de la persistence des données. + * + * @author Arnaud + */ +public class DAOException extends Exception +{ + + private static final long serialVersionUID = 1798608990237254824L; + + /** + * + */ + public DAOException() + { + super(); + } + + /** + * @param message + */ + public DAOException(String message) + { + super(message); + } + + /** + * @param message + * @param cause + */ + public DAOException(String message, Throwable cause) + { + super(message, cause); + } + + /** + * @param cause + */ + public DAOException(Throwable cause) + { + super(cause); + } + +} + Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOFactory.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOFactory.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/DAOFactory.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,59 @@ +package be.edev.sagetools.synchro.servlets.dao; + +import java.sql.Connection; + +import org.hibernate.Session; + +import be.edev.sagetools.synchro.servlets.dao.hibernate.DAOFactoryHibernateImpl; + +public abstract class DAOFactory +{ + + public static final int HIBERNATE_FACTORY = 1; + + private static DAOFactory factory = null; + + protected DAOFactory() + { + super(); + } + + public static DAOFactory getInstance() throws DAOException + { + return DAOFactory.getInstance(DAOFactory.HIBERNATE_FACTORY); + } + + public synchronized static DAOFactory getInstance(int type) + throws DAOException + { + return DAOFactory.getInstance(type, null); + } + + public synchronized static DAOFactory getInstance(int type, String configFile) + throws DAOException + { + if (DAOFactory.factory == null) + { + switch (type) + { + case DAOFactory.HIBERNATE_FACTORY: + default: + DAOFactory.factory = new DAOFactoryHibernateImpl(configFile); + } + } + return DAOFactory.factory; + } + + public abstract Connection getConnection(); + + public abstract Session getSession(); + + public abstract ObjetParNomDAO getObjetParNomDAO(); + + public abstract SynchroSaveDAO getSynchroSaveDAO(); + + public abstract ObjetParIdDAO getObjetParIdDAO(); + + public abstract SynchroNettoyageDAO getSynchroNettoyageDAO(); + +} Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/HibernateInit.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/HibernateInit.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/HibernateInit.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,49 @@ +package be.edev.sagetools.synchro.servlets.dao; + + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class HibernateInit extends HttpServlet +{ + + /** + * Commentaire pour <code>serialVersionUID</code> + */ + private static final long serialVersionUID = -1116225951254856563L; + + protected Log log4 = LogFactory.getLog("HibernatePlugIn"); + + /** + * @see javax.servlet.GenericServlet#destroy() + */ + public void destroy() + { + super.destroy(); + } + + /** + * @param arg0 + * @throws ServletException + * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig) + */ + public void init(ServletConfig arg0) throws ServletException + { + super.init(arg0); + this.log4.debug("Chargement de la session Hibernate..."); + try + { + DAOFactory.getInstance(DAOFactory.HIBERNATE_FACTORY); + } + catch (DAOException daoex) + { + this.log4.error("Could not create the hibernate session", daoex); + } + this.log4.debug("Session Hibernate chargee"); + } + +} Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroNettoyageDAO.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroNettoyageDAO.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroNettoyageDAO.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,12 @@ +package be.edev.sagetools.synchro.servlets.dao; + + + +public interface SynchroNettoyageDAO +{ + + public void supprimeArticlesNonPublie() throws DAOException; + + public void supprimeAnciennesPromos() throws DAOException; + +} Added: trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroSaveDAO.java =================================================================== --- trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroSaveDAO.java (rev 0) +++ trunk/synchro-webapp/src/main/java/be/edev/sagetools/synchro/servlets/dao/SynchroSaveDAO.java 2007-02-19 15:19:56 UTC (rev 9) @@ -0,0 +1,48 @@ +package be.edev.sagetools.synchro.servlets.dao; + + +import java.util.List; + +/** + * @author arnaud + */ +public interface SynchroSaveDAO +{ + + // requete de verification: + // select pay_libelle as 'pays', reg_libelle as 'region', app_libelle as + // 'appellation', dom_libelle as 'domaine', count(art_reference) as 'Nbr + // articles' from pays join regions on pay_id=reg_fk_pays join + // regionsappellations on reg_id=rap_fk_region join appellations on + // rap_fk_appellation=app_id join appellationsdomaines on + // app_id=ado_fk_appellation join domaines on ado_fk_domaine=dom_id join + // articles on art_fk_domaine group by dom_id; + + // nombre d'article par appellation + // select pay_libelle as 'pays', reg_libelle as 'region', app_libelle as + // 'appellation', count(art_reference) as 'Nbr articles' from pays join + // regions on pay_id=reg_fk_pays join regionsappellations on + // reg_id=rap_fk_region join appellations on rap_fk_appellation=app_id join + // articles on art_fk_appellation=app_id group by app_id order by 'Nbr + // articles' desc; + + // nombre total d'articles + // select count(art_reference) as 'Nbr total articles' from articles; + + // nombre total de domaines + // select count(dom_id) as 'Nbr de domaines' from domaines; + + // nombre total d'appellations + // select count(app_id) as 'Nbr appellations' from appellations; + + // nombre total de regions + // select count(reg_id) as 'Nbr regions' from regions; + + // nombre total de pays + // select pay_libelle as 'pays', count(art_reference) as 'Nbr articles' from + // pays join regions on reg_fk_pays = pay_id join articles on + // reg_id=art_fk_region group by pay_id; + + public void save(List list) throws DAOException; + +} Modified: trunk/synchro-webapp/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/synchro-webapp/src/main/webapp/WEB-INF/web.xml 2007-02-19 15:17:56 UTC (rev 8) +++ trunk/synchro-webapp/src/main/webapp/WEB-INF/web.xml 2007-02-19 15:19:56 UTC (rev 9) @@ -1,7 +1,78 @@ -<!DOCTYPE web-app PUBLIC - "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" - "http://java.sun.com/dtd/web-app_2_3.dtd" > +<?xml version="1.0" encoding="UTF-8"?> +<web-app id="WebApp_ID" version="2.4" + xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> -<web-app> - <display-name>Archetype Created Web Application</display-name> + <display-name>eDev Sage Tools</display-name> + +<!-- + <resource-ref> + <res-ref-name>jdbc/tobydb</res-ref-name> + <res-type>javax.sql.DataSource</res-type> + <res-auth>Container</res-auth> + </resource-ref> +--> + <!-- no more needed --> + <servlet> + <servlet-name>updateSageSynchro</servlet-name> + <servlet-class> + be.edev.toby.servlets.UpdateSageSynchroServlet + </servlet-class> + <init-param> + <param-name>fileName</param-name> + <param-value>/sagesynchro.jar</param-value> + </init-param> + </servlet> + <servlet> + <servlet-name>updateSageTable</servlet-name> + <servlet-class> + be.edev.toby.servlets.UpdateSageTableServlet + </servlet-class> + </servlet> + <servlet> + <servlet-name>synchro</servlet-name> + <servlet-class>be.edev.toby.servlets.SynchroServlet</servlet-class> + </servlet> + + <!-- no more needed --> + <servlet-mapping> + <servlet-name>updateSageSynchro</servlet-name> + <url-pattern>/servlet/updateSageSynchro</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>updateSageTable</servlet-name> + <url-pattern>/servlet/updateSageTable</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>synchro</servlet-name> + <url-pattern>/servlet/synchro</url-pattern> + </servlet-mapping> + + <!-- The Usual Welcome File List --> + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + </welcome-file-list> + + <!-- No Security at the moment --> + <!-- + <security-constraint> + <web-resource-collection> + <web-resource-name>Protected Area</web-resource-name> + <url-pattern>/*</url-pattern> + </web-resource-collection> + <auth-constraint> + <role-name>admin</role-name> + </auth-constraint> + </security-constraint> + <login-config> + <auth-method>BASIC</auth-method> + <realm-name>Restricted Area</realm-name> + </login-config> + <security-role> + <description>Administration de l'application</description> + <role-name>admin</role-name> + </security-role> + --> + </web-app> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |