Index: src/main/java/org/geotools/process/raster/Raster2VectorFactory.java =================================================================== --- src/main/java/org/geotools/process/raster/Raster2VectorFactory.java (revision 33055) +++ src/main/java/org/geotools/process/raster/Raster2VectorFactory.java (working copy) @@ -39,6 +39,7 @@ import org.geotools.process.Process; import org.geotools.process.ProcessFactory; import org.geotools.process.impl.AbstractProcess; +import org.geotools.process.impl.AbstractProcessFactory; import org.geotools.text.Text; import org.geotools.util.NullProgressListener; import org.geotools.util.SubProgressListener; @@ -68,7 +69,7 @@ * * @author Michael Bedward */ -public class Raster2VectorFactory implements ProcessFactory { +public class Raster2VectorFactory extends AbstractProcessFactory{ public Process create() { return new AbstractProcess(this){ Index: src/main/java/org/geotools/process/impl/AbstractProcessFactory.java =================================================================== --- src/main/java/org/geotools/process/impl/AbstractProcessFactory.java (revision 33055) +++ src/main/java/org/geotools/process/impl/AbstractProcessFactory.java (working copy) @@ -16,6 +16,10 @@ */ package org.geotools.process.impl; +import java.awt.RenderingHints.Key; +import java.util.Collections; +import java.util.Map; + import org.geotools.process.ProcessFactory; /** @@ -33,5 +37,20 @@ } return factoryName; } + + /** + * Default Implementation return true + */ + public boolean isAvailable() { + return true; + } + + /** + * The default implementation returns an empty map. + */ + public Map getImplementationHints() { + return Collections.EMPTY_MAP; + } + } Index: src/main/java/org/geotools/process/Processors.java =================================================================== --- src/main/java/org/geotools/process/Processors.java (revision 33055) +++ src/main/java/org/geotools/process/Processors.java (working copy) @@ -73,7 +73,7 @@ * * @return Set of ProcessFactory */ - public static Set getProcessFactories() { + public synchronized static Set getProcessFactories() { return new LazySet(getServiceRegistry().getServiceProviders( ProcessFactory.class, null, null)); } Index: src/main/java/org/geotools/process/ProcessFactory.java =================================================================== --- src/main/java/org/geotools/process/ProcessFactory.java (revision 33055) +++ src/main/java/org/geotools/process/ProcessFactory.java (working copy) @@ -19,6 +19,7 @@ import java.util.Map; import org.geotools.data.Parameter; +import org.geotools.factory.OptionalFactory; import org.opengis.util.InternationalString; /** @@ -26,7 +27,7 @@ * * @author gdavis */ -public interface ProcessFactory { +public interface ProcessFactory extends OptionalFactory{ /** * Unique name (non human readable) that can be used to