From: <hu...@us...> - 2006-09-30 02:55:57
|
Revision: 225 http://svn.sourceforge.net/cishell/?rev=225&view=rev Author: huangb Date: 2006-09-29 13:16:35 -0700 (Fri, 29 Sep 2006) Log Message: ----------- modify the filter setup in the findConverters method Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-09-29 19:02:45 UTC (rev 224) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-09-29 20:16:35 UTC (rev 225) @@ -48,7 +48,8 @@ */ public Converter[] findConverters(String inFormat, String outFormat) { try { - String filter = "(&("+IN_DATA+"="+inFormat+") " + + String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + + "("+IN_DATA+"="+inFormat+") " + "("+OUT_DATA+"="+outFormat+")" + "(!("+REMOTE+"=*)))"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2006-10-13 23:21:35
|
Revision: 276 http://svn.sourceforge.net/cishell/?rev=276&view=rev Author: bh2 Date: 2006-10-13 16:21:31 -0700 (Fri, 13 Oct 2006) Log Message: ----------- fixed most problems with data conversion service, except for see line 190 Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 20:25:17 UTC (rev 275) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 23:21:31 UTC (rev 276) @@ -139,6 +139,10 @@ for (int i=0; i < converters.length; i++) { String format = (String) converters[i].getProperties().get(OUT_DATA); + //tmp + String inFormat = (String) converters[i].getProperties().get(IN_DATA); + System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat); + if (!formats.contains(format)) { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + "(!("+REMOTE+"=*))" + @@ -153,7 +157,7 @@ for (int j=0; j < refs.length; j++) { List chain = new ArrayList(Arrays.asList( converters[i].getConverterChain())); - chain.add(refs[i]); + chain.add(refs[j]); ServiceReference[] newChain = (ServiceReference[]) chain.toArray(new ServiceReference[0]); @@ -171,16 +175,22 @@ return (Converter[]) newConverters.toArray(new Converter[0]); } - + private Converter[] getConverters(String inFormat, String outFormat) { String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" - + "(" + IN_DATA + "=" + inFormat + ") " + "(" + OUT_DATA - + "=*)" + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; + + "("+IN_DATA+"="+inFormat+") " + "("+OUT_DATA+"=*)" + + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; String outFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" - + "(" + IN_DATA + "=*) " + "(" + OUT_DATA + "=" + outFormat - + ")" + "(!("+OUT_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; - + + "("+IN_DATA+"=*) " + "("+OUT_DATA+"="+outFormat+")" + + "(!(" + REMOTE + "=*)))"; + + Collection converterList = new HashSet(); + + //TODO: Check to see if inFormat matches the outFormat (for example: + //in=file:text/graphml out=file:* If so, need to add a null converter + //(w/ 0 sized servicereference array) to the converterList + try { ServiceReference[] inRefs = bContext.getServiceReferences( AlgorithmFactory.class.getName(), inFilter); @@ -199,7 +209,7 @@ .getProperty(AlgorithmProperty.OUT_DATA)); } - Collection converterList = new HashSet(); + for (Iterator i = inFileTypeSet.iterator(); i.hasNext();) { String srcDataType = (String) i.next(); for (Iterator j = outFileTypeSet.iterator(); j.hasNext();) { @@ -209,12 +219,11 @@ converterList.add(converter); } } - return (Converter[]) converterList.toArray(new Converter[0]); } } catch (InvalidSyntaxException e) { e.printStackTrace(); } - return new Converter[0]; + return (Converter[]) converterList.toArray(new Converter[0]); } private Converter getConverter(String inType, String outType) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bea...@us...> - 2006-10-14 15:53:50
|
Revision: 279 http://svn.sourceforge.net/cishell/?rev=279&view=rev Author: bearsfan Date: 2006-10-14 08:53:43 -0700 (Sat, 14 Oct 2006) Log Message: ----------- Added check in 'getConverter' method, if the inType==outType then return a 'null' converter. Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 23:23:12 UTC (rev 278) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-14 15:53:43 UTC (rev 279) @@ -230,6 +230,10 @@ Vertex srcVertex = (Vertex)dataTypeToVertex.get(inType); Vertex tgtVertex = (Vertex)dataTypeToVertex.get(outType); + if (srcVertex.equals(tgtVertex)) { + return new ConverterImpl(bContext, ciContext, new ServiceReference[0]); + } + if (srcVertex != null && tgtVertex != null) { DijkstraShortestPath shortestPathAlg = new DijkstraShortestPath(graph); List edgeList = shortestPathAlg.getPath(srcVertex, tgtVertex); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Bruce H. <bh...@bh...> - 2006-10-14 16:02:09
|
hmm... that may work IF we have an edge going from each node to itself and we fill it w/ the null converter (converter that takes the input and returns it as the output) Bruce On 10/14/06, bea...@us... <bea...@us...> wrote: > > Revision: 279 > http://svn.sourceforge.net/cishell/?rev=279&view=rev > Author: bearsfan > Date: 2006-10-14 08:53:43 -0700 (Sat, 14 Oct 2006) > > Log Message: > ----------- > Added check in 'getConverter' method, if the inType==outType then return a > 'null' converter. > > Modified Paths: > -------------- > > trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java > > Modified: > trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java > =================================================================== > --- > trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 > 23:23:12 UTC (rev 278) > +++ > trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-14 > 15:53:43 UTC (rev 279) > @@ -230,6 +230,10 @@ > Vertex srcVertex = (Vertex)dataTypeToVertex.get(inType); > Vertex tgtVertex = (Vertex)dataTypeToVertex.get(outType); > > + if (srcVertex.equals(tgtVertex)) { > + return new ConverterImpl(bContext, ciContext, new > ServiceReference[0]); > + } > + > if (srcVertex != null && tgtVertex != null) { > DijkstraShortestPath shortestPathAlg = new > DijkstraShortestPath(graph); > List edgeList = shortestPathAlg.getPath(srcVertex, > tgtVertex); > > > This was sent by the SourceForge.net collaborative development platform, > the world's largest Open Source development site. > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Cishell-svn mailing list > Cis...@li... > https://lists.sourceforge.net/lists/listinfo/cishell-svn > |
From: <bh...@us...> - 2006-10-16 19:35:11
|
Revision: 284 http://svn.sourceforge.net/cishell/?rev=284&view=rev Author: bh2 Date: 2006-10-16 12:35:06 -0700 (Mon, 16 Oct 2006) Log Message: ----------- some minor fixes and documentation Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-16 19:34:05 UTC (rev 283) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-16 19:35:06 UTC (rev 284) @@ -115,7 +115,7 @@ * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) */ public Converter[] findConverters(String inFormat, String outFormat) { - saveGraph(); + //saveGraph(); if (inFormat != null && inFormat.length() > 0 && outFormat != null && outFormat.length() > 0) { @@ -141,8 +141,8 @@ String format = (String) converters[i].getProperties().get(OUT_DATA); //tmp - String inFormat = (String) converters[i].getProperties().get(IN_DATA); - System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat); + //String inFormat = (String) converters[i].getProperties().get(IN_DATA); + //System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat); if (!formats.contains(format)) { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + @@ -188,10 +188,9 @@ Collection converterList = new HashSet(); - //TODO: Check to see if inFormat matches the outFormat (for example: - //in=file:text/graphml out=file:* If so, need to add a null converter - //(w/ 0 sized servicereference array) to the converterList - + //Check to see if inFormat matches the outFormat (for example: + //in=file:text/graphml out=file:* If so, then add a null converter + //to the converterList. if (outFormat.indexOf('*') != -1) { String outFormatCopy = outFormat.replaceAll("[*]", ".*"); if (Pattern.matches(outFormatCopy, inFormat)) { @@ -272,7 +271,7 @@ public Converter[] findConverters(Data data, String outFormat) { if (data == null) { if (NULL_DATA.equalsIgnoreCase(""+outFormat)) { - return new Converter[]{new ConverterImpl(bContext, ciContext, new ServiceReference[0])}; + return new Converter[]{new NullConverter(""+outFormat)}; } else { return new Converter[0]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bea...@us...> - 2006-10-19 16:21:47
|
Revision: 300 http://svn.sourceforge.net/cishell/?rev=300&view=rev Author: bearsfan Date: 2006-10-19 09:21:36 -0700 (Thu, 19 Oct 2006) Log Message: ----------- Removed duplicate converter chains and documented the conversion service implementation. Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-17 21:35:00 UTC (rev 299) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-19 16:21:36 UTC (rev 300) @@ -49,6 +49,12 @@ import edu.uci.ics.jung.io.GraphMLFile; import edu.uci.ics.jung.utils.UserDataContainer; +/** + * Builds converter chains from one data type to another + * + * @author Bruce Herr, Ben Markines + * + */ public class DataConversionServiceImpl implements DataConversionService, AlgorithmProperty, ServiceListener { public final static String SERVICE_LIST = "SERVICE_LIST"; @@ -57,6 +63,12 @@ private Map dataTypeToVertex; private Graph graph; + /** + * Set up to listen for service requests and initial set up of the graph + * + * @param bContext Current bundle context + * @param ciContext Current CIShell context + */ public DataConversionServiceImpl(BundleContext bContext, CIShellContext ciContext) { this.bContext = bContext; this.ciContext = ciContext; @@ -77,7 +89,7 @@ } /** - * Assemble the directed graph of converters + * Assemble the directed graph of converters. Currently unweighted * */ private void assembleGraph() { @@ -110,9 +122,12 @@ throw new RuntimeException(e); } } - + /** - * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) + * Get the converter chains for incoming and outgoing format + * + * @param inFormat The format to convert from + * @param outFormat The format to convert to */ public Converter[] findConverters(String inFormat, String outFormat) { //saveGraph(); @@ -133,6 +148,14 @@ return new Converter[0]; } + /** + * If the final format is of type file-ext, then append the final converter to the + * converter list + * + * @param converters Current converter chain + * @param outFormat Final data type + * @return The edited converter chain + */ private Converter[] addFinalStepConversions(Converter[] converters, String outFormat) { Collection newConverters = new HashSet(); @@ -177,6 +200,13 @@ return (Converter[]) newConverters.toArray(new Converter[0]); } + /** + * Build the converter chains + * @param inFormat The original data type + * @param outFormat The target data type + * @return Converter chains + * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) + */ private Converter[] getConverters(String inFormat, String outFormat) { String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" + "("+IN_DATA+"="+inFormat+") " + "("+OUT_DATA+"=*)" + @@ -233,6 +263,12 @@ return (Converter[]) converterList.toArray(new Converter[0]); } + /** + * Get the shortest converter path. This returns a single converter path + * @param inType The source data type + * @param outType The target data type + * @return Single converter path + */ private Converter getConverter(String inType, String outType) { Vertex srcVertex = (Vertex)dataTypeToVertex.get(inType); Vertex tgtVertex = (Vertex)dataTypeToVertex.get(outType); @@ -266,6 +302,10 @@ } /** + * Builds the converter chains using data as the source + * @param data The source data to convert from + * @param outFormat the final data type + * @return Converter chains * @see org.cishell.service.conversion.DataConversionService#findConverters(org.cishell.framework.data.Data, java.lang.String) */ public Converter[] findConverters(Data data, String outFormat) { @@ -291,13 +331,40 @@ while (iter.hasNext()) { Class c = (Class) iter.next(); converters = findConverters(c.getName(), outFormat); - set.addAll(new HashSet(Arrays.asList(converters))); + //this is a bit of a hack to remove the duplicate converters + addUniqueConverters(set, converters); + //set.addAll(new HashSet(Arrays.asList(converters))); } } return (Converter[]) set.toArray(new Converter[0]); } + /** + * Only add the unique converters to the 'Converter set' + * @param set The set of unique converters + * @param converters List of potential converters + */ + private void addUniqueConverters(Set set, Converter[] converters) { + for (int i = 0; i < converters.length; ++i) { + boolean uniqueConverter = true; + for (Iterator iter = set.iterator(); iter.hasNext();) { + if (iter.next().equals(converters[i])) { + uniqueConverter = false; + break; + } + } + if (uniqueConverter) { + set.add(converters[i]); + } + } + } + + /** + * Get all the classes implemented and extended + * @param clazz The class to query + * @return Interfaces and base classes + */ protected Collection getClassesFor(Class clazz) { Set classes = new HashSet(); @@ -321,6 +388,10 @@ } /** + * Convert the Data to a format + * @param inDM Data type to convert + * @param outFormat The data type to convert + * @return The final data type * @see org.cishell.service.conversion.DataConversionService#convert(org.cishell.framework.data.Data, java.lang.String) */ public Data convert(Data inDM, String outFormat) { @@ -338,7 +409,10 @@ return inDM; } - + /** + * Change service reference in the graph + * @param event The service that changed + */ public void serviceChanged(ServiceEvent event) { ServiceReference inServiceRef = event.getServiceReference(); @@ -357,6 +431,12 @@ } } + /** + * Remove a service reference in the graph + * @param srcDataType The source data type of the serviceReference to remove + * @param tgtDataType The target data type of the serviceReference to remove + * @param serviceReference The serviceReference to remove + */ private void removeServiceReference(String srcDataType, String tgtDataType, ServiceReference serviceReference) { if (srcDataType != null && tgtDataType != null) { Vertex srcVertex = (Vertex) dataTypeToVertex.get(srcDataType); @@ -388,6 +468,12 @@ } } + /** + * Add service reference to the graph + * @param srcDataType The source data type + * @param tgtDataType The target data type + * @param serviceReference The service reference to add + */ private void addServiceReference(String srcDataType, String tgtDataType, ServiceReference serviceReference) { if (srcDataType != null && srcDataType.length() > 0 && tgtDataType != null && tgtDataType.length() > 0) { @@ -412,6 +498,12 @@ } } + /** + * Get the vertex in the graph given a data type. Creates a new vertex + * if one does not exist + * @param dataType Datatype representing the node + * @return The vertex + */ private Vertex getVertex(String dataType) { Vertex vertex = (SparseVertex)dataTypeToVertex.get(dataType); if (vertex== null) { @@ -424,6 +516,10 @@ return vertex; } + /** + * Save the current converter graph to the user's home directory + * + */ private void saveGraph() { GraphMLFile writer = new GraphMLFile(); Graph g = (Graph)graph.copy(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2006-10-30 14:24:50
|
Revision: 330 http://svn.sourceforge.net/cishell/?rev=330&view=rev Author: bh2 Date: 2006-10-30 06:24:34 -0800 (Mon, 30 Oct 2006) Log Message: ----------- fixed race condition in the data conversion service implementation Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-27 21:02:29 UTC (rev 329) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-30 14:24:34 UTC (rev 330) @@ -72,6 +72,9 @@ public DataConversionServiceImpl(BundleContext bContext, CIShellContext ciContext) { this.bContext = bContext; this.ciContext = ciContext; + + this.graph = new DirectedSparseGraph(); + this.dataTypeToVertex = new Hashtable(); String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + "("+IN_DATA+"=*) " + @@ -92,11 +95,7 @@ * Assemble the directed graph of converters. Currently unweighted * */ - private void assembleGraph() { - graph = new DirectedSparseGraph(); - - dataTypeToVertex = new Hashtable(); - + private void assembleGraph() { try { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + "("+IN_DATA+"=*) " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-30 14:52:17
|
Revision: 331 http://svn.sourceforge.net/cishell/?rev=331&view=rev Author: huangb Date: 2006-10-30 06:52:06 -0800 (Mon, 30 Oct 2006) Log Message: ----------- turn off saveGraph() Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-30 14:24:34 UTC (rev 330) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-30 14:52:06 UTC (rev 331) @@ -129,7 +129,7 @@ * @param outFormat The format to convert to */ public Converter[] findConverters(String inFormat, String outFormat) { - saveGraph(); +// saveGraph(); if (inFormat != null && inFormat.length() > 0 && outFormat != null && outFormat.length() > 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2008-03-27 19:12:36
|
Revision: 733 http://cishell.svn.sourceforge.net/cishell/?rev=733&view=rev Author: fugu13 Date: 2008-03-27 12:12:31 -0700 (Thu, 27 Mar 2008) Log Message: ----------- File saving should work now. Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2008-03-27 19:06:37 UTC (rev 732) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2008-03-27 19:12:31 UTC (rev 733) @@ -169,7 +169,7 @@ //System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat); if (!formats.contains(format)) { - String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + + String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_VALIDATOR+")" + "(!("+REMOTE+"=*))" + "("+IN_DATA+"="+format+")" + "("+OUT_DATA+"="+outFormat+"))"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |