You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(723) |
Oct
(267) |
Nov
(75) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(563) |
Feb
(104) |
Mar
(85) |
Apr
(43) |
May
(135) |
Jun
(7) |
Jul
(98) |
Aug
(28) |
Sep
(5) |
Oct
(105) |
Nov
(108) |
Dec
(165) |
2005 |
Jan
(116) |
Feb
(73) |
Mar
(107) |
Apr
(119) |
May
(160) |
Jun
(66) |
Jul
(1105) |
Aug
(84) |
Sep
(50) |
Oct
(198) |
Nov
(134) |
Dec
(16) |
2006 |
Jan
(7) |
Feb
(9) |
Mar
(54) |
Apr
(307) |
May
(121) |
Jun
(216) |
Jul
(138) |
Aug
(365) |
Sep
(131) |
Oct
(41) |
Nov
(30) |
Dec
(89) |
2007 |
Jan
(70) |
Feb
(22) |
Mar
(527) |
Apr
(585) |
May
(155) |
Jun
(53) |
Jul
(78) |
Aug
(84) |
Sep
(53) |
Oct
(339) |
Nov
(151) |
Dec
(165) |
2008 |
Jan
(39) |
Feb
(61) |
Mar
(49) |
Apr
(143) |
May
(93) |
Jun
(105) |
Jul
(142) |
Aug
(90) |
Sep
(34) |
Oct
(123) |
Nov
(91) |
Dec
(61) |
2009 |
Jan
(46) |
Feb
(55) |
Mar
(16) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gautam J. <ga...@us...> - 2009-02-17 20:38:03
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/soa/graph In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26395/source/java/org/jaffa/soa/graph Added Files: GraphResponse.java IGraphResponse.java Log Message: Created a generic GraphService class, which makes it easy to write graph-based services that utilize the DataTransformer --- NEW FILE: GraphResponse.java --- /* * ==================================================================== * JAFFA - Java Application Framework For All * * Copyright (C) 2002 JAFFA Development Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Redistribution and use of this software and associated documentation ("Software"), * with or without modification, are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain copyright statements and notices. * Redistributions must also contain a copy of this document. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name "JAFFA" must not be used to endorse or promote products derived from * this Software without prior written permission. For written permission, * please contact mail to: jaf...@ya.... * 4. Products derived from this Software may not be called "JAFFA" nor may "JAFFA" * appear in their names without prior written permission. * 5. Due credit should be given to the JAFFA Project (http://jaffa.sourceforge.net). * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== */ package org.jaffa.soa.graph; import org.jaffa.exceptions.ApplicationExceptions; import org.jaffa.exceptions.FrameworkException; /** * This class is used to return the response from a graph-based service. * <p> * When an error occurs, this object is return containing * a complete copy of the original source GraphDataObject, and either * a RuntimeError ({@link #getRuntimeError()}), indicating normally some kind of * internal system error (like a problem accessing the database), * or a set of Errors ({@link #getErrors()}) listing the business logic errors * (like mandatory fields, or foreign key validations etc). * <p> * In CREATE mode, the root GraphDataObject will be returned with just the key-fields. */ public class GraphResponse<G extends GraphDataObject> implements IGraphResponse<G> { private G source; private ApplicationExceptions errors; private FrameworkException runtimeError; /** * Getter for property source. This is the source GraphDataObject * that the error ocurred on. * <p> * In CREATE mode, the root GraphDataObject will be returned with just the key-fields. * @return Value of property source. */ public G getSource() { return this.source; } /** * Setter for property source. * @param source New value of property source. */ public void setSource(G source) { this.source = source; } /** * Getter for property errors. This is the Wrapping Exception that * contains the list of business logic exceptions that indicate why this * service failed. * <p> * If this is null, then it was probably a runtime error * see {@link #getRuntimeError()} * @return Value of property errors. */ public ApplicationExceptions getErrors() { return this.errors; } /** * Setter for property errors. * @param errors New value of property errors. */ public void setErrors(ApplicationExceptions errors) { this.errors = errors; } /** * Getter for property runtimeError. This contains the runtime or * architecture error that caused the service to fail. * <p> * If this is null, then it was probably a business logic error * see {@link #getErrors()} * @return Value of property runtimeError. */ public FrameworkException getRuntimeError() { return this.runtimeError; } /** * Setter for property runtimeError. * @param runtimeError New value of property runtimeError. */ public void setRuntimeError(FrameworkException runtimeError) { this.runtimeError = runtimeError; } } --- NEW FILE: IGraphResponse.java --- /* * ==================================================================== * JAFFA - Java Application Framework For All * * Copyright (C) 2002 JAFFA Development Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Redistribution and use of this software and associated documentation ("Software"), * with or without modification, are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain copyright statements and notices. * Redistributions must also contain a copy of this document. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name "JAFFA" must not be used to endorse or promote products derived from * this Software without prior written permission. For written permission, * please contact mail to: jaf...@ya.... * 4. Products derived from this Software may not be called "JAFFA" nor may "JAFFA" * appear in their names without prior written permission. * 5. Due credit should be given to the JAFFA Project (http://jaffa.sourceforge.net). * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== */ package org.jaffa.soa.graph; import org.jaffa.exceptions.ApplicationExceptions; import org.jaffa.exceptions.FrameworkException; /** * This class is used to return the response from a graph-based service. * <p> * When an error occurs, this object is return containing * a complete copy of the original source GraphDataObject, and either * a RuntimeError ({@link #getRuntimeError()}), indicating normally some kind of * internal system error (like a problem accessing the database), * or a set of Errors ({@link #getErrors()}) listing the business logic errors * (like mandatory fields, or foreign key validations etc). * <p> * In CREATE mode, the root GraphDataObject will be returned with just the key-fields. */ public interface IGraphResponse<G extends GraphDataObject> { /** * Getter for property source. This is the source GraphDataObject * that the error ocurred on. * <p> * In CREATE mode, the root GraphDataObject will be returned with just the key-fields. * @return Value of property source. */ public G getSource(); /** * Setter for property source. * @param source New value of property source. */ public void setSource(G source); /** * Getter for property errors. This is the Wrapping Exception that * contains the list of business logic exceptions that indicate why this * service failed. * <p> * If this is null, then it was probably a runtime error * see {@link #getRuntimeError()} * @return Value of property errors. */ public ApplicationExceptions getErrors(); /** * Setter for property errors. * @param errors New value of property errors. */ public void setErrors(ApplicationExceptions errors); /** * Getter for property runtimeError. This contains the runtime or * architecture error that caused the service to fail. * <p> * If this is null, then it was probably a business logic error * see {@link #getErrors()} * @return Value of property runtimeError. */ public FrameworkException getRuntimeError(); /** * Setter for property runtimeError. * @param runtimeError New value of property runtimeError. */ public void setRuntimeError(FrameworkException runtimeError); } |
From: Gautam J. <ga...@us...> - 2009-02-17 20:37:50
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/soa/dataaccess In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26395/source/java/org/jaffa/soa/dataaccess Added Files: GraphService.java Log Message: Created a generic GraphService class, which makes it easy to write graph-based services that utilize the DataTransformer --- NEW FILE: GraphService.java --- /* * ==================================================================== * JAFFA - Java Application Framework For All * * Copyright (C) 2002 JAFFA Development Group * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Redistribution and use of this software and associated documentation ("Software"), * with or without modification, are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain copyright statements and notices. * Redistributions must also contain a copy of this document. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name "JAFFA" must not be used to endorse or promote products derived from * this Software without prior written permission. For written permission, * please contact mail to: jaf...@ya.... * 4. Products derived from this Software may not be called "JAFFA" nor may "JAFFA" * appear in their names without prior written permission. * 5. Due credit should be given to the JAFFA Project (http://jaffa.sourceforge.net). * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== */ package org.jaffa.soa.dataaccess; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import org.apache.log4j.Logger; import org.jaffa.exceptions.ApplicationExceptions; import org.jaffa.exceptions.FrameworkException; import org.jaffa.persistence.Criteria; import org.jaffa.persistence.UOW; import org.jaffa.soa.graph.GraphCriteria; import org.jaffa.soa.graph.GraphDataObject; import org.jaffa.soa.graph.IGraphResponse; import org.jaffa.util.ExceptionHelper; /** A GraphService provides functions for Creating, Retrieving, Updating and * Deleting data in the set of objects within a specific Graph. */ public class GraphService<C extends GraphCriteria, G extends GraphDataObject, R extends IGraphResponse<G>, H extends ITransformationHandler> { private static Logger log = Logger.getLogger(GraphService.class); private static final int RETRY_COUNT = 3; protected Class<C> graphCriteriaClass; protected Class<G> graphDataClass; protected Class<R> graphResponseClass; private Class<H> handlerClass; /** * Constructs a new instance of the GraphService. * @param graphCriteriaClass type token for creating GraphCriteria instances. * @param graphDataClass type token for creating GraphDataObject instances. * @param graphResponseClass type token for creating IGraphResponse instances. * @param handlerClass type token for creating ITransformationHandler instances. */ protected GraphService(Class<C> graphCriteriaClass, Class<G> graphDataClass, Class<R> graphResponseClass, Class<H> handlerClass) { this.graphCriteriaClass = graphCriteriaClass; this.graphDataClass = graphDataClass; this.graphResponseClass = graphResponseClass; this.handlerClass = handlerClass; } /** * Query domain objects, returning an array of Graphs. * By default no related objects are returned, and any foreign objects will only * contain key information. Use the <code>setResultGraphRules()</code> method on * the criteria to change this. * @param criteria This specified the criteria for the records to be retrieved. * @return An array of Graphs, the content of this graph is based on the result filter 'rules', as provided in the criteria object. * @throws FrameworkException Thrown if there is some kind of runtime or architecture problem * @throws ApplicationExceptions Thrown if there are any application logic errors * while processing. This exception contains a list of exceptions which detail what the * root cause of the problem is. */ //@WebMethod - web services should wrap this and throw return a ServiceFault instead of throwing an exception //@DirectRemoteMethod - use dwr.xml to expose this to prevent a compile dependency on this annotation protected G[] _query(C criteria) throws FrameworkException, ApplicationExceptions { UOW uow = null; try { // create the UOW uow = new UOW(); // call internal service return localQuery(criteria, uow); } finally { if (uow != null && uow.isActive()) { try { uow.rollback(); } catch (Exception e) { } } } } /** * Create/Update a domain object and/or its related objects. This allows a set of * Graphs to be supplied with either existing records to be updated, or new * entries that will be created. * <p> * Each domain object graph in the array is processed in its own ACID Transaction. * Any error in processing any part of a single Graph will cause all updates for that * graph to be rolled back, and the graph will be returned in a <code>IGraphResponse</code> * along with a list of the errors. In the case of a runtime error (as opposed to * and data/validation error) the update is retried before it is treated as an error. * @param graphs The set of Object Graphs to Update/Create. * @return An array of IGraphResponse instances, each response contains a copy of the Graph * that failed and the list of errors as to why it failed. In case the domain object is created, * the response will contain the root Graph with the key-fields only. * @throws FrameworkException Thrown if there is some kind of runtime or architecture problem * @throws ApplicationExceptions Thrown if there are any application logic errors * while processing. This exception contains a list of exceptions which detail what the * root cause of the problem is. */ //@WebMethod - web services should wrap this and throw return a ServiceFault instead of throwing an exception //@DirectRemoteMethod - use dwr.xml to expose this to prevent a compile dependency on this annotation protected R[] _update(G[] graphs) throws ApplicationExceptions, FrameworkException { if (graphs == null) { if (log.isDebugEnabled()) log.debug("Input to _update() is null. Nothing done."); return null; } // Loop through each graph Collection<R> response = new LinkedList<R>(); GraphMapping graphMapping = MappingFactory.getInstance(graphDataClass); for (int i = 0; i < graphs.length; i++) { String path = graphMapping.getDomainClassShortName() + "[" + i + "]"; int retries = 0; while (true) { UOW uow = null; try { uow = new UOW(); G output = localUpdate(path, graphs[i], uow); uow.commit(); if (output != null) response.add(createGraphResponse(output, null, null)); break; } catch (ApplicationExceptions appExps) { if (log.isDebugEnabled()) log.debug("Logic Error Processing " + path, appExps); response.add(createGraphResponse(graphs[i], appExps, null)); break; } catch (FrameworkException fe) { if (++retries <= RETRY_COUNT) { if (log.isDebugEnabled()) log.debug("Internal Error Processing " + path + ". Retrying " + retries + " of " + RETRY_COUNT, fe); continue; } else { log.error("Internal Error Processing " + path + ". No more retries!", fe); response.add(createGraphResponse(graphs[i], null, fe)); break; } } finally { if (uow != null && uow.isActive()) { try { uow.rollback(); } catch (Exception e) { } } } } } if (log.isDebugEnabled()) log.debug(toString(graphs, response)); return response.size() > 0 ? response.toArray((R[]) Array.newInstance(graphResponseClass, response.size())) : null; } /** Prevalidates a Graph. This method can be used to default data into a Graph. * @param graph The graph to prevalidate. * @return The input graph with defaulted data. * @throws ApplicationExceptions Thrown if there is some kind of application error. * @throws FrameworkException Thrown if there is some kind of runtime or architecture problem */ //@DirectRemoteMethod - use dwr.xml to expose this to prevent a compile dependency on this annotation protected G _prevalidate(G graph) throws ApplicationExceptions, FrameworkException { UOW uow = null; try { uow = new UOW(); GraphMapping graphMapping = MappingFactory.getInstance(graphDataClass); String path = graphMapping.getDomainClassShortName() + "[0]"; if (log.isDebugEnabled()) log.debug("Prevalidating Input Graph Object: " + path + '\n' + TransformerUtils.printGraph(graph)); G output = (G) DataTransformer.prevalidateGraph(path, graph, uow, createHandler(uow)); if (log.isDebugEnabled()) log.debug("Output after prevalidate\n" + TransformerUtils.printGraph(output)); uow.rollback(); return output; } catch (Exception e) { throw ExceptionHelper.throwAFR(e); } finally { if (uow != null && uow.isActive()) { try { uow.rollback(); } catch (Exception e) { } } } } /** * Query method with same functionality as {@link #_query(C)} * <p> * Only difference is this requires you to pass in a UOW so that you can scope this * methods execution within as existing transaction. For this reason it is not expected * that this service will be exposed as an external service. * @param criteria This specified the criteria for the records to be retrieved. * @param uow <b>MANDATORY</b> Unit of work that this process will use * @return An array of Graphs, the content of this graph is based on the result filter 'rules', as provided in the criteria object. * @throws FrameworkException Thrown if there is some kind of runtime or architecture problem * @throws ApplicationExceptions Thrown if there are any application logic errors * while processing. This exception contains a list of exceptions which detail what the * root cause of the problem is. */ protected G[] localQuery(C criteria, UOW uow) throws FrameworkException, ApplicationExceptions { try { if (log.isDebugEnabled()) log.debug("Input to localQuery: " + criteria); // Build the Criteria Object, use a new one if one was not supplied if (criteria == null) criteria = graphCriteriaClass.newInstance(); Criteria c = criteria.returnQueryClause(null); // Execute The Query and Loop through the results Collection<G> graphs = new LinkedList<G>(); GraphMapping graphMapping = MappingFactory.getInstance(graphDataClass); MappingFilter mappingFilter = null; //create an instance only if a row is found ITransformationHandler handler = createHandler(uow); handler.preQuery(null, c, criteria, graphMapping.getDomainClass()); for (Object domain : uow.query(c)) { if (mappingFilter == null) mappingFilter = new MappingFilter(graphMapping, criteria.getResultGraphRules()); G graph = graphDataClass.newInstance(); DataTransformer.buildGraphFromDomain(domain, graph, graphMapping, mappingFilter, null, false, criteria, handler); graphs.add(graph); } // Build the output G[] output = graphs.toArray((G[]) Array.newInstance(graphDataClass, graphs.size())); if (log.isDebugEnabled()) log.debug("Output from localQuery: " + Arrays.toString(output)); return output; } catch (Throwable e) { throw ExceptionHelper.throwAFR(e); } } /** * Update method with same functionality as {@link #_update(G[])} * <p> * The differences are <ul> * <li>It requires you to pass in a UOW so that you can scope this * methods execution within as existing transaction. For this reason it is not expected * that this service will be exposed as an external service. * <li>It only works on a single graph at once, so you have to call it multiple times * if you want to update multiple graphs. * <li>It throws normal exceptions, it does not create the response with * the exceptions wrapped inside. * </ul> * @param path This is the source path of this graph, used when processing a more complex * tree, where this is the path to get to this root object being processed * @param graph <b>(MANDATORY)</b> The object graph being used to Create/Update the domain objects * @param uow <b>(MANDATORY)</b> Unit of work that this process will use * @return A GraphDataObject with just the key-fields of the root object will be returned in CREATE mode. Else a null will be returned. * @throws FrameworkException Thrown if there is some kind of runtime or architecture problem * @throws ApplicationExceptions Thrown if there are any application logic errors * while processing. This exception contains a list of exceptions which detail what the * root cause of the problem is. */ protected G localUpdate(String path, G graph, UOW uow) throws FrameworkException, ApplicationExceptions { if (log.isDebugEnabled()) log.debug("Create/Update Input Graph Object: " + path + '\n' + TransformerUtils.printGraph(graph)); G output = (G) DataTransformer.updateGraph(path, graph, uow, createHandler(uow)); if (log.isDebugEnabled()) log.debug(output != null ? "Entry created " + output : "Entry updated"); return output; } /** * Creates an IGraphResponse instance. * @param source the source Graph. * @param appExps application errors, if any. * @param fe runtime error, if any. * @return an IGraphResponse instance. */ protected R createGraphResponse(G source, ApplicationExceptions appExps, FrameworkException fe) { try { R graphResponse = graphResponseClass.newInstance(); graphResponse.setSource(source); graphResponse.setErrors(appExps); graphResponse.setRuntimeError(fe); return graphResponse; } catch (Exception e) { String s = "Error in creating instance of GraphError"; log.error(s, e); throw new RuntimeException(s, e); } } /** * Creates an ITransformationHandler instance. * @param uow <b>(MANDATORY)</b> Unit of work that this process will use. * @return an ITransformationHandler instance. */ protected H createHandler(UOW uow) { try { return handlerClass != null ? (H) handlerClass.getConstructor(UOW.class).newInstance(uow) : null; } catch (Exception e) { throw new RuntimeException("Can't Create Update Handler Object : " + handlerClass, e); } } /** Returns a text version of the response. * @param graphs The set of Object Graphs to Update/Create. * @param response The response. * @return a text version of the response. */ protected String toString(G[] graphs, Collection<R> response) { int createCount = 0, updateCount = 0, errorCount = 0; for (R responseElement : response) { if (responseElement.getErrors() == null && responseElement.getRuntimeError() == null) ++createCount; else ++errorCount; } updateCount = graphs.length - createCount - errorCount; StringBuilder buf = new StringBuilder(); if (createCount > 0) buf.append("Create completed on ").append(createCount).append(" row").append(createCount == 1 ? "" : "s"); if (updateCount > 0) buf.append(buf.length() > 0 ? ", " : "").append("Update completed on ").append(updateCount).append(" row").append(updateCount == 1 ? "" : "s"); if (errorCount > 0) buf.append(buf.length() > 0 ? ", " : "").append("Update failed on ").append(errorCount).append(" row").append(errorCount == 1 ? "" : "s"); return buf.toString(); } } |
From: Gautam J. <ga...@us...> - 2009-02-17 20:37:50
|
Update of /cvsroot/jaffa/JaffaCore In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26395 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: Created a generic GraphService class, which makes it easy to write graph-based services that utilize the DataTransformer Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.265 retrieving revision 1.266 diff -C2 -d -r1.265 -r1.266 *** NEXT_ RELEASE_NOTES.txt 12 Feb 2009 19:23:38 -0000 1.265 --- NEXT_ RELEASE_NOTES.txt 17 Feb 2009 20:37:41 -0000 1.266 *************** *** 44,47 **** --- 44,48 ---- - Enhanced the DomainObjectChangedException to support a custom error code - Enhanced ApplicationExceptionWithContext to handle context containing array indicators, such that the MessageHelper doesn't treat them as tokens + - Created a generic GraphService class, which makes it easy to write graph-based services that utilize the DataTransformer Bug Fixes |
From: Gautam J. <ga...@us...> - 2009-02-12 21:24:57
|
Update of /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14465/source/java/org/jaffa/tools/patternengine Modified Files: PatternGenerator.java Log Message: The PatternGenerator has been enhanced to ensure that the native EOL character is used in all generated artifacts. Index: PatternGenerator.java =================================================================== RCS file: /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine/PatternGenerator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PatternGenerator.java 4 Nov 2005 23:08:19 -0000 1.3 --- PatternGenerator.java 12 Feb 2009 21:24:51 -0000 1.4 *************** *** 418,421 **** --- 418,422 ---- // create the file writeWm(templateName, context, fileName); + fixEOL(fileName); } *************** *** 437,440 **** --- 438,462 ---- writer.flush(); writer.close(); + + fixEOL(fileName); + } + + private void fixEOL(String fileName) throws FileNotFoundException, IOException { + // fix EOL style, br should handle any eol's and then bw will write in the native eol + StringWriter sw = new StringWriter(); + BufferedWriter bw = new BufferedWriter(sw); + + BufferedReader br = new BufferedReader(new FileReader(fileName)); + String line; + while ((line = br.readLine()) != null) { + bw.write(line); + bw.newLine(); + } + br.close(); + bw.close(); + + bw = new BufferedWriter(new FileWriter(fileName)); + bw.write(sw.toString()); + bw.close(); } |
From: Gautam J. <ga...@us...> - 2009-02-12 21:24:56
|
Update of /cvsroot/jaffa/JaffaTools In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14465 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: The PatternGenerator has been enhanced to ensure that the native EOL character is used in all generated artifacts. Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaTools/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** NEXT_ RELEASE_NOTES.txt 21 Oct 2008 18:49:01 -0000 1.26 --- NEXT_ RELEASE_NOTES.txt 12 Feb 2009 21:24:50 -0000 1.27 *************** *** 16,19 **** --- 16,20 ---- What's Changed / Improvments ===================================================== + - The PatternGenerator has been enhanced to ensure that the native EOL character is used in all generated artifacts. What's Deleted/Deprecated |
From: Gautam J. <ga...@us...> - 2009-02-12 21:22:38
|
Update of /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14268 Modified Files: Tag: JAFFA_5_0_0_RELEASE PatternGenerator.java Log Message: The PatternGenerator has been enhanced to ensure that the native EOL character is used in all generated artifacts. Index: PatternGenerator.java =================================================================== RCS file: /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine/PatternGenerator.java,v retrieving revision 1.3 retrieving revision 1.3.6.1 diff -C2 -d -r1.3 -r1.3.6.1 *** PatternGenerator.java 4 Nov 2005 23:08:19 -0000 1.3 --- PatternGenerator.java 12 Feb 2009 21:22:29 -0000 1.3.6.1 *************** *** 418,421 **** --- 418,422 ---- // create the file writeWm(templateName, context, fileName); + fixEOL(fileName); } *************** *** 437,440 **** --- 438,462 ---- writer.flush(); writer.close(); + + fixEOL(fileName); + } + + private void fixEOL(String fileName) throws FileNotFoundException, IOException { + // fix EOL style, br should handle any eol's and then bw will write in the native eol + StringWriter sw = new StringWriter(); + BufferedWriter bw = new BufferedWriter(sw); + + BufferedReader br = new BufferedReader(new FileReader(fileName)); + String line; + while ((line = br.readLine()) != null) { + bw.write(line); + bw.newLine(); + } + br.close(); + bw.close(); + + bw = new BufferedWriter(new FileWriter(fileName)); + bw.write(sw.toString()); + bw.close(); } |
From: Gautam J. <ga...@us...> - 2009-02-12 21:22:07
|
Update of /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14206 Modified Files: Tag: JAFFA_4_1_0_RELEASE PatternGenerator.java Log Message: The PatternGenerator has been enhanced to ensure that the native EOL character is used in all generated artifacts. Index: PatternGenerator.java =================================================================== RCS file: /cvsroot/jaffa/JaffaTools/source/java/org/jaffa/tools/patternengine/PatternGenerator.java,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -C2 -d -r1.3 -r1.3.4.1 *** PatternGenerator.java 4 Nov 2005 23:08:19 -0000 1.3 --- PatternGenerator.java 12 Feb 2009 21:21:58 -0000 1.3.4.1 *************** *** 418,421 **** --- 418,422 ---- // create the file writeWm(templateName, context, fileName); + fixEOL(fileName); } *************** *** 437,440 **** --- 438,462 ---- writer.flush(); writer.close(); + + fixEOL(fileName); + } + + private void fixEOL(String fileName) throws FileNotFoundException, IOException { + // fix EOL style, br should handle any eol's and then bw will write in the native eol + StringWriter sw = new StringWriter(); + BufferedWriter bw = new BufferedWriter(sw); + + BufferedReader br = new BufferedReader(new FileReader(fileName)); + String line; + while ((line = br.readLine()) != null) { + bw.write(line); + bw.newLine(); + } + br.close(); + bw.close(); + + bw = new BufferedWriter(new FileWriter(fileName)); + bw.write(sw.toString()); + bw.close(); } |
From: Gautam J. <ga...@us...> - 2009-02-12 19:24:03
|
Update of /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/panels In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1198/source/html/jaffa/js/panels Modified Files: header.js Log Message: When a button has 'submit=true and confirm='{xyz} and guarded=true', the web-page becomes un-usable after the user cancel's the Action, when asked to confirm it. To avoid this scenario, the validateTrapKey() function in header.js has been modified to not display the progress-bar. In any case, the progress-bar will be displayed by the postForm(). Index: header.js =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/panels/header.js,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** header.js 10 Feb 2009 21:50:16 -0000 1.60 --- header.js 12 Feb 2009 19:23:42 -0000 1.61 *************** *** 575,578 **** --- 575,582 ---- */ if (validationRules.validatePage()) { + //The progress-bar makes a page un-usable; especially when a button has 'submit=true and confirm='{xyz} and guarded=true', + //and the user cancel's the Action when asked to confirm it. In any case, the progress-bar will be displayed by the postForm(). + //So the commenting of the following logic shouldn't break anything. + /* try { if (document.getElementById(formName).target != "_blank") { *************** *** 583,586 **** --- 587,591 ---- } } catch (e) { } + */ return true; } else { |
From: Gautam J. <ga...@us...> - 2009-02-12 19:23:47
|
Update of /cvsroot/jaffa/JaffaCore In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1198 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: When a button has 'submit=true and confirm='{xyz} and guarded=true', the web-page becomes un-usable after the user cancel's the Action, when asked to confirm it. To avoid this scenario, the validateTrapKey() function in header.js has been modified to not display the progress-bar. In any case, the progress-bar will be displayed by the postForm(). Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.264 retrieving revision 1.265 diff -C2 -d -r1.264 -r1.265 *** NEXT_ RELEASE_NOTES.txt 10 Feb 2009 21:50:10 -0000 1.264 --- NEXT_ RELEASE_NOTES.txt 12 Feb 2009 19:23:38 -0000 1.265 *************** *** 50,53 **** --- 50,54 ---- ------------ - Modified the lookup.jsp to include header.js, so that the browser-detection code (which was modified during ext-js integration) works without a hitch + - When a button has 'submit=true and confirm='{xyz} and guarded=true', the web-page becomes un-usable after the user cancel's the Action, when asked to confirm it. To avoid this scenario, the validateTrapKey() function in header.js has been modified to not display the progress-bar. In any case, the progress-bar will be displayed by the postForm(). Widgets |
From: <sea...@mi...> - 2009-02-10 23:02:31
|
Update of /cvsroot/jaffa/JaffaCore In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv667 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: make the hiding of dropdown widget when calendar is up only to IE6 or lower. This problem was fixed in IE7 or above. See blog http://blogs.msdn.com/ie/archive/2006/01/17/514076.aspx Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.263 retrieving revision 1.264 diff -C2 -d -r1.263 -r1.264 *** NEXT_ RELEASE_NOTES.txt 3 Feb 2009 01:41:04 -0000 1.263 --- NEXT_ RELEASE_NOTES.txt 10 Feb 2009 21:50:10 -0000 1.264 *************** *** 53,57 **** Widgets ------- ! - Due to recent change to the Calendar widget (renders a <button> instead of an <a> element), the DropDowns were no longer hiding in IE, which messes up the rendering of the Calendar in IE. - Earlier the navigation.js:globalClick() function would be invoked before the rendering of the Calendar. But now, that function is called after the rendering of the Calendar. - The navigation.js:globalClick() function has now been fixed to unhide DropDowns only if no Calendar is being rendered currently. --- 53,57 ---- Widgets ------- ! - Due to recent change to the Calendar widget (renders a <button> instead of an <a> element), the DropDowns were no longer hiding in IE6, which messes up the rendering of the Calendar in IE. - Earlier the navigation.js:globalClick() function would be invoked before the rendering of the Calendar. But now, that function is called after the rendering of the Calendar. - The navigation.js:globalClick() function has now been fixed to unhide DropDowns only if no Calendar is being rendered currently. |
From: <sea...@mi...> - 2009-02-10 23:02:12
|
Update of /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/panels In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv759/panels Modified Files: header.js Log Message: make the hiding of dropdown widget when calendar is up only to IE6 or lower. This problem was fixed in IE7 or above. See blog http://blogs.msdn.com/ie/archive/2006/01/17/514076.aspx Index: header.js =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/panels/header.js,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** header.js 14 Jan 2009 22:54:41 -0000 1.59 --- header.js 10 Feb 2009 21:50:16 -0000 1.60 *************** *** 49,52 **** --- 49,55 ---- var is_ie6 = (this.isIE && (is_major == 4) && (agt.indexOf("msie 6.") != - 1)); var is_ie6up = (this.isIE && !is_ie3 && !this.isIE4 && !this.isIE5 && !this.isIE5_5); + var is_ie7 = (this.isIE && (agt.indexOf("msie 7.") != - 1)); + var is_ie8 = (this.isIE && (agt.indexOf("msie 8.") != - 1)); + this.isIE7up = is_ie7 || is_ie8; //this.isNS = (document.getElementsByTagName) ? true : false; |
From: <sea...@mi...> - 2009-02-10 23:02:03
|
Update of /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/tiles In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv759/tiles Modified Files: navigation.js Log Message: make the hiding of dropdown widget when calendar is up only to IE6 or lower. This problem was fixed in IE7 or above. See blog http://blogs.msdn.com/ie/archive/2006/01/17/514076.aspx Index: navigation.js =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/tiles/navigation.js,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** navigation.js 24 Sep 2008 21:57:35 -0000 1.14 --- navigation.js 10 Feb 2009 21:50:16 -0000 1.15 *************** *** 44,48 **** alignArrows(el); histAdd(id); ! if(browser.isIE) try { document.getElementById("jaffaDropDown").disabled = false;} catch(e) {} el.style.top= ( getElementTop(t) + t.offsetHeight ) + "px"; el.style.left=getElementLeft(t) + "px"; --- 44,48 ---- alignArrows(el); histAdd(id); ! if(browser.isIE && !browser.isIE7up) try { document.getElementById("jaffaDropDown").disabled = false;} catch(e) {} el.style.top= ( getElementTop(t) + t.offsetHeight ) + "px"; el.style.left=getElementLeft(t) + "px"; *************** *** 156,160 **** if (objs != null && objs.length > 0) return; ! document.getElementById("jaffaDropDown").disabled = true; } catch(e) { } --- 156,161 ---- if (objs != null && objs.length > 0) return; ! if (!browser.isIE7up) ! document.getElementById("jaffaDropDown").disabled = true; } catch(e) { } |
From: <sea...@mi...> - 2009-02-10 23:02:01
|
Update of /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/widgets In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv759/widgets Modified Files: datetimePicker.js Log Message: make the hiding of dropdown widget when calendar is up only to IE6 or lower. This problem was fixed in IE7 or above. See blog http://blogs.msdn.com/ie/archive/2006/01/17/514076.aspx Index: datetimePicker.js =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/html/jaffa/js/widgets/datetimePicker.js,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** datetimePicker.js 24 Sep 2008 21:57:35 -0000 1.13 --- datetimePicker.js 10 Feb 2009 21:50:16 -0000 1.14 *************** *** 170,174 **** } } catch (e) {} ! if(browser.isIE) try { document.getElementById("jaffaDropDown").disabled = true;} catch(e) {} } --- 170,174 ---- } } catch (e) {} ! if(browser.isIE && !browser.isIE7up) try { document.getElementById("jaffaDropDown").disabled = true;} catch(e) {} } *************** *** 307,311 **** if (document.getElementById(el.id + "-calendar") == null) { document.body.insertAdjacentHTML("afterBegin", newHTML); ! if(browser.isIE) try { document.getElementById("jaffaDropDown").disabled = false;} catch(e) {} } } --- 307,311 ---- if (document.getElementById(el.id + "-calendar") == null) { document.body.insertAdjacentHTML("afterBegin", newHTML); ! if(browser.isIE && !browser.isIE7up) try { document.getElementById("jaffaDropDown").disabled = false;} catch(e) {} } } |
From: <sea...@mi...> - 2009-02-09 18:56:18
|
Update of /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/metadata In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1223 Modified Files: classMetaData.jsp Log Message: bug 11283: convert System.out.* to log.* Index: classMetaData.jsp =================================================================== RCS file: /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/metadata/classMetaData.jsp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** classMetaData.jsp 25 Jul 2008 21:07:34 -0000 1.3 --- classMetaData.jsp 9 Feb 2009 18:56:12 -0000 1.4 *************** *** 25,29 **** org.jaffa.datatypes.DateTime, org.jaffa.datatypes.DateOnly, ! org.jaffa.util.MessageHelper' %><%! /** Convert the input to HTML compatible String. */ --- 25,33 ---- org.jaffa.datatypes.DateTime, org.jaffa.datatypes.DateOnly, ! org.jaffa.util.MessageHelper, ! org.apache.log4j.Logger' %> ! ! <%! ! private static final Logger log = Logger.getLogger("js.extjs.jaffa.metadata.classMetaData"); /** Convert the input to HTML compatible String. */ *************** *** 50,57 **** try { clazz = Class.forName(className); ! System.out.println("Print Out Properties From " + className); out.write("ClassMetaData." + clazz.getSimpleName() + "={\n fields:{\n "); } catch (Exception e) { ! System.err.println("Can't Load Class "+className); String[] splitClass = className.split("\\."); out.write("ClassMetaData." + splitClass[splitClass.length-1] + "={\n fields:{\n "); --- 54,62 ---- try { clazz = Class.forName(className); ! if (log.isDebugEnabled()) ! log.debug("Print Out Properties From " + className); out.write("ClassMetaData." + clazz.getSimpleName() + "={\n fields:{\n "); } catch (Exception e) { ! log.warn("Can't Load Class "+className); String[] splitClass = className.split("\\."); out.write("ClassMetaData." + splitClass[splitClass.length-1] + "={\n fields:{\n "); *************** *** 151,155 **** String className = request.getParameter("className"); className = className != null ? className.trim() : ""; ! System.out.println("Meta Data for Class " + className); if (className != null && className.length() > 0) showRules(className, out); --- 156,161 ---- String className = request.getParameter("className"); className = className != null ? className.trim() : ""; ! if (log.isDebugEnabled()) ! log.debug("Meta Data for Class " + className); if (className != null && className.length() > 0) showRules(className, out); |
From: <sea...@mi...> - 2009-02-06 19:08:07
|
Update of /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/state In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12774 Modified Files: widgetStateSaver.jsp Log Message: use use warn to show non-critical error and test before display debug info Index: widgetStateSaver.jsp =================================================================== RCS file: /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/state/widgetStateSaver.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** widgetStateSaver.jsp 3 Feb 2009 16:37:23 -0000 1.2 --- widgetStateSaver.jsp 6 Feb 2009 19:08:00 -0000 1.3 *************** *** 7,11 **** <%@page import = "org.apache.log4j.Logger" %> <%! ! private static final Logger log = Logger.getLogger("js.extjs.jaffa.widgetStateSaver"); private static final String PROPERTY_USER_PREFERENCES_FOLDER = "user.preferences.folder"; private static final String PROPERTY_USER_ID = "user.id"; --- 7,11 ---- <%@page import = "org.apache.log4j.Logger" %> <%! ! private static final Logger log = Logger.getLogger("js.extjs.jaffa.state.widgetStateSaver"); private static final String PROPERTY_USER_PREFERENCES_FOLDER = "user.preferences.folder"; private static final String PROPERTY_USER_ID = "user.id"; *************** *** 24,31 **** encodedUserId = URLEncoder.encode(encodedUserId, "UTF-8"); } catch (UnsupportedEncodingException ex) { ! log.error("UserId encoding error.", ex); } buf.append(encodedUserId).append(File.separatorChar).append(pageRef).append(File.separatorChar).append("widgetStates.xml"); ! log.debug("filename="+buf.toString()); return buf.toString(); } --- 24,32 ---- encodedUserId = URLEncoder.encode(encodedUserId, "UTF-8"); } catch (UnsupportedEncodingException ex) { ! log.warn("UserId encoding error.", ex); } buf.append(encodedUserId).append(File.separatorChar).append(pageRef).append(File.separatorChar).append("widgetStates.xml"); ! if (log.isDebugEnabled()) ! log.debug("filename="+buf.toString()); return buf.toString(); } *************** *** 80,84 **** String name = request.getParameter("name"); String data = request.getParameter("data"); ! log.debug("request data="+data); boolean hasName = name != null && name.length()>0; --- 81,86 ---- String name = request.getParameter("name"); String data = request.getParameter("data"); ! if (log.isDebugEnabled()) ! log.debug("request data="+data); boolean hasName = name != null && name.length()>0; |
From: Gautam J. <ga...@us...> - 2009-02-06 00:54:01
|
Update of /cvsroot/jaffa/JaffaSOA/source/java/org/jaffa/soa/rules In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19094/source/java/org/jaffa/soa/rules Modified Files: ServiceRulesInterceptor.java Log Message: The default AgentEventListener used by the RuleAgent writes event logs to System.err, which is highly undesirable. Modified ServiceRulesInterceptor to create a custom AgentEventListener implementation, that logs various events via Log4J. Index: ServiceRulesInterceptor.java =================================================================== RCS file: /cvsroot/jaffa/JaffaSOA/source/java/org/jaffa/soa/rules/ServiceRulesInterceptor.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ServiceRulesInterceptor.java 2 Oct 2008 17:10:18 -0000 1.7 --- ServiceRulesInterceptor.java 6 Feb 2009 00:53:53 -0000 1.8 *************** *** 66,69 **** --- 66,70 ---- import org.drools.RuleBaseConfiguration.AssertBehaviour; import org.drools.StatefulSession; + import org.drools.agent.AgentEventListener; import org.drools.agent.RuleAgent; import org.drools.audit.WorkingMemoryConsoleLogger; *************** *** 497,501 **** if (log.isDebugEnabled()) log.debug("Create Agent Based on properties - " + prop); ! RuleAgent agent = RuleAgent.newRuleAgent(prop, conf); if (agent == null) { log.error("Didn't create agent from property file: " + fileName); --- 498,502 ---- if (log.isDebugEnabled()) log.debug("Create Agent Based on properties - " + prop); ! RuleAgent agent = RuleAgent.newRuleAgent(prop, getAgentEventListener(), conf); if (agent == null) { log.error("Didn't create agent from property file: " + fileName); *************** *** 560,562 **** --- 561,597 ---- return null; } + + /** Returns a custom AgentEventListener implementation. + * The default AgentEventListener implementation in Drools writes the various Events to the System.err stream. + * This custom implementation instead logs the various Events via Log4J. + * @return a custom AgentEventListener implementation. + */ + private AgentEventListener getAgentEventListener() { + return new AgentEventListener() { + + private String prefix; + + public void setAgentName(String name) { + prefix = "RuleAgent(" + name + "): "; + } + + public void debug(String message) { + if (log.isDebugEnabled()) + log.debug(prefix + message); + } + + public void info(String message) { + if (log.isInfoEnabled()) + log.info(prefix + message); + } + + public void warning(String message) { + log.warn(prefix + message); + } + + public void exception(Exception e) { + log.error(prefix + e.getMessage(), e); + } + }; + } } \ No newline at end of file |
From: Gautam J. <ga...@us...> - 2009-02-06 00:54:00
|
Update of /cvsroot/jaffa/JaffaSOA In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19094 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: The default AgentEventListener used by the RuleAgent writes event logs to System.err, which is highly undesirable. Modified ServiceRulesInterceptor to create a custom AgentEventListener implementation, that logs various events via Log4J. Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaSOA/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NEXT_ RELEASE_NOTES.txt 2 Oct 2008 17:10:18 -0000 1.2 --- NEXT_ RELEASE_NOTES.txt 6 Feb 2009 00:53:53 -0000 1.3 *************** *** 10,13 **** --- 10,14 ---- What's Changed / Improvements ===================================================== + - The default AgentEventListener used by the RuleAgent writes event logs to System.err, which is highly undesirable. Modified ServiceRulesInterceptor to create a custom AgentEventListener implementation, that logs various events via Log4J. What's Deleted/Deprecated |
From: <sea...@mi...> - 2009-02-03 16:37:29
|
Update of /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/state In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13462 Modified Files: widgetStateSaver.jsp Log Message: use logger Index: widgetStateSaver.jsp =================================================================== RCS file: /cvsroot/jaffa/JaffaRIA/source/html/js/extjs/jaffa/state/widgetStateSaver.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** widgetStateSaver.jsp 26 Apr 2008 00:16:45 -0000 1.1 --- widgetStateSaver.jsp 3 Feb 2009 16:37:23 -0000 1.2 *************** *** 27,31 **** } buf.append(encodedUserId).append(File.separatorChar).append(pageRef).append(File.separatorChar).append("widgetStates.xml"); ! System.out.println("filename="+buf.toString()); return buf.toString(); } --- 27,31 ---- } buf.append(encodedUserId).append(File.separatorChar).append(pageRef).append(File.separatorChar).append("widgetStates.xml"); ! log.debug("filename="+buf.toString()); return buf.toString(); } *************** *** 80,84 **** String name = request.getParameter("name"); String data = request.getParameter("data"); ! System.out.println("data="+data); boolean hasName = name != null && name.length()>0; --- 80,84 ---- String name = request.getParameter("name"); String data = request.getParameter("data"); ! log.debug("request data="+data); boolean hasName = name != null && name.length()>0; |
From: Gautam J. <ga...@us...> - 2009-02-03 02:16:42
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/persistence/engines/jdbcengine/datasource In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17493/source/java/org/jaffa/persistence/engines/jdbcengine/datasource Modified Files: PersistentTransaction.java Log Message: The message 'Error in writing the logs for a transaction' is logged even if the error is due to an invalid value. Modified the PersistentTransaction in Jaffa to log a DEBUG message if the PersistenceLoggingPlugin raises an ApplicationException Index: PersistentTransaction.java =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/persistence/engines/jdbcengine/datasource/PersistentTransaction.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** PersistentTransaction.java 7 Oct 2008 22:24:07 -0000 1.13 --- PersistentTransaction.java 3 Feb 2009 01:41:04 -0000 1.14 *************** *** 69,72 **** --- 69,73 ---- import org.jaffa.persistence.logging.IPersistenceLoggingPlugin; import org.jaffa.session.ContextManagerFactory; + import org.jaffa.util.ExceptionHelper; /** This class is used to hold a connection to the database. It holds collections of objects to be added, updated, deleted or queried. *************** *** 273,277 **** persistenceLoggingPlugin.writeLog(); } catch (Exception e) { ! log.error("Error in writing the logs for a transaction", e); throw new CommitFailedException(null, e); } --- 274,285 ---- persistenceLoggingPlugin.writeLog(); } catch (Exception e) { ! ApplicationExceptions appExps = ExceptionHelper.extractApplicationExceptions(e); ! if (appExps != null) { ! if (log.isDebugEnabled()) ! log.debug("Logic Error in writing the logs for a transaction", appExps); ! e = appExps; ! } else { ! log.error("Error in writing the logs for a transaction", e); ! } throw new CommitFailedException(null, e); } |
From: Gautam J. <ga...@us...> - 2009-02-03 02:16:39
|
Update of /cvsroot/jaffa/JaffaCore In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17493 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: The message 'Error in writing the logs for a transaction' is logged even if the error is due to an invalid value. Modified the PersistentTransaction in Jaffa to log a DEBUG message if the PersistenceLoggingPlugin raises an ApplicationException Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.262 retrieving revision 1.263 diff -C2 -d -r1.262 -r1.263 *** NEXT_ RELEASE_NOTES.txt 29 Jan 2009 20:03:55 -0000 1.262 --- NEXT_ RELEASE_NOTES.txt 3 Feb 2009 01:41:04 -0000 1.263 *************** *** 64,67 **** --- 64,68 ---- ----------- - Fixed the persistence engine to use the original Statement object when closing related ResultSet instances. This involved changes to the DataSource, DataSourceCursor and JdbcBridge classes + - The message 'Error in writing the logs for a transaction' is logged even if the error is due to an invalid value. Modified the PersistentTransaction in Jaffa to log a DEBUG message if the PersistenceLoggingPlugin raises an ApplicationException General |
From: DennisL <den...@us...> - 2009-02-03 00:13:14
|
Update of /cvsroot/jaffa/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/components/formselectionmaintenance/ui In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12430 Modified Files: FormSelectionMaintenanceComponent.java Log Message: Bug 11264: Added isFormConfigured() method to determine if any forms are configured for the given event and key(s). Used to hide or show the form Preview icons at various spots in the application. Index: FormSelectionMaintenanceComponent.java =================================================================== RCS file: /cvsroot/jaffa/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/components/formselectionmaintenance/ui/FormSelectionMaintenanceComponent.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** FormSelectionMaintenanceComponent.java 14 Jan 2009 23:50:55 -0000 1.20 --- FormSelectionMaintenanceComponent.java 3 Feb 2009 00:13:08 -0000 1.21 *************** *** 858,861 **** --- 858,886 ---- } + /** + * Determine if there are any forms defined for the given form event and key. + * Prior to invoking this method, the event and key(s) must be set. At least key1 is mandatory. + */ + public Boolean isFormConfigured() throws ApplicationExceptions, FrameworkException { + Boolean formConfigured = null; + /** + * Check that a proper form Event was found. + * getEvent().startsWith("???") indicates the event label was not found. + * getEvent().equals("") indicates the event label was found but no event was defined. + */ + if (getEvent() == null || getEvent().startsWith("???") || getEvent().equals("")){ + formConfigured = Boolean.FALSE; + }else if (getKey1() == null){ + formConfigured = Boolean.FALSE; + }else{ + FormSelectionMaintenanceOutDto finderOutDto =(FormSelectionMaintenanceOutDto) doInquiry(); + if (finderOutDto != null && finderOutDto.getRowsCount() > 0) + formConfigured = Boolean.TRUE; + else + formConfigured = Boolean.FALSE; + } + return formConfigured; + } + public FormKey getDisplayFormKey(){ return new FormKey(FormSelectionMaintenanceForm.NAME, getComponentId()); |
From: Gautam J. <ga...@us...> - 2009-01-31 02:16:47
|
Update of /cvsroot/jaffa/DWR/source/html/WEB-INF In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23881 Modified Files: dwr.xml Log Message: Fixed DWR/source/html/WEB-INF/dwr.xml, removing the marshalling of stackTrace elements from all exceptions Index: dwr.xml =================================================================== RCS file: /cvsroot/jaffa/DWR/source/html/WEB-INF/dwr.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dwr.xml 1 Jul 2008 18:45:25 -0000 1.5 --- dwr.xml 31 Jan 2009 01:41:34 -0000 1.6 *************** *** 17,24 **** <param name="exclude" value="stackTrace"/> </convert> ! <convert converter="exception" match="org.jaffa.exceptions.*"/> ! <convert converter="exception" match="org.jaffa.soa.rules.RulesApplicationException"/> ! <convert converter="exception" match="org.jaffa.soa.rules.PendingEventException"/> ! <convert converter="exception" match="org.jaffa.soa.rules.WarningEventException"/> <!-- this is a bad idea for live, but can be useful in testing --- 17,32 ---- <param name="exclude" value="stackTrace"/> </convert> ! <convert converter="exception" match="org.jaffa.exceptions.*"> ! <param name="exclude" value="stackTrace"/> ! </convert> ! <convert converter="exception" match="org.jaffa.soa.rules.RulesApplicationException"> ! <param name="exclude" value="stackTrace"/> ! </convert> ! <convert converter="exception" match="org.jaffa.soa.rules.PendingEventException"> ! <param name="exclude" value="stackTrace"/> ! </convert> ! <convert converter="exception" match="org.jaffa.soa.rules.WarningEventException"> ! <param name="exclude" value="stackTrace"/> ! </convert> <!-- this is a bad idea for live, but can be useful in testing |
From: Gautam J. <ga...@us...> - 2009-01-29 20:03:59
|
Update of /cvsroot/jaffa/JaffaCore In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7573 Modified Files: NEXT_ RELEASE_NOTES.txt Log Message: Merged the latest change from the JAFFA_5_0_0_RELEASE branch Index: NEXT_ RELEASE_NOTES.txt =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/NEXT_ RELEASE_NOTES.txt,v retrieving revision 1.261 retrieving revision 1.262 diff -C2 -d -r1.261 -r1.262 *** NEXT_ RELEASE_NOTES.txt 10 Jan 2009 00:46:19 -0000 1.261 --- NEXT_ RELEASE_NOTES.txt 29 Jan 2009 20:03:55 -0000 1.262 *************** *** 71,74 **** --- 71,75 ---- - Corrected ComponentManager, Loader, PolicyManager and PolicyCache, making the loading of components.xml and roles.xml thread-safe - Corrected the parseCurrency() method to use the default decimal layout, in case there is an error in parsing a numeric value against a currency format. This was necessary since a currency layout was recently added to locale.properties + - Modified the DateBase.parse() method to reset the lenient flag of Java's DateFormat class to false. This will ensure that an error is raised if the String to be parsed doesn't exactly match the required Date format. |
From: Gautam J. <ga...@us...> - 2009-01-29 20:03:59
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/datatypes In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7573/source/java/org/jaffa/datatypes Modified Files: DateBase.java Log Message: Merged the latest change from the JAFFA_5_0_0_RELEASE branch Index: DateBase.java =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/datatypes/DateBase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DateBase.java 12 Aug 2008 23:02:10 -0000 1.9 --- DateBase.java 29 Jan 2009 20:03:55 -0000 1.10 *************** *** 460,463 **** --- 460,464 ---- else df = new SimpleDateFormat(layout); + df.setLenient(false); utilDate = df.parse(dateString); break; |
From: Gautam J. <ga...@us...> - 2009-01-29 20:01:08
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/datatypes In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7182/source/java/org/jaffa/datatypes Modified Files: Tag: JAFFA_5_0_0_RELEASE DateBase.java Log Message: Modified the DateBase.parse() method to reset the lenient flag of Java's DateFormat class to false. This will ensure that an error is raised if the String to be parsed doesn't exactly match the required Date format. Index: DateBase.java =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/datatypes/DateBase.java,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C2 -d -r1.9 -r1.9.2.1 *** DateBase.java 12 Aug 2008 23:02:10 -0000 1.9 --- DateBase.java 29 Jan 2009 20:01:01 -0000 1.9.2.1 *************** *** 460,463 **** --- 460,464 ---- else df = new SimpleDateFormat(layout); + df.setLenient(false); utilDate = df.parse(dateString); break; |