You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/04/05 01:36:04 UTC

svn commit: r525638 - /incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/

Author: jsdelfino
Date: Wed Apr  4 16:36:03 2007
New Revision: 525638

URL: http://svn.apache.org/viewvc?view=rev&rev=525638
Log:
Refined ArtifactProcessor interface to allow it to be used to load and process assemblies. Added a default implementation of an ArtifactProcessorRegistry.

Added:
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DOMArtifactProcessor.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessor.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StreamArtifactProcessor.java

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java?view=diff&rev=525638&r1=525637&r2=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java Wed Apr  4 16:36:03 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.tuscany.services.spi.contribution;
 
-import org.apache.tuscany.services.contribution.model.Contribution;
 
 
 /**
@@ -26,7 +25,7 @@
  * 
  * @version $Rev: 522653 $ $Date: 2007-03-26 15:30:21 -0700 (Mon, 26 Mar 2007) $
  */
-public interface ArtifactProcessor <S,M> {
+public interface ArtifactProcessor <S, M, T> {
     
     /**
      * Read a model from a source. Examples of sources are: an inputstream, an
@@ -34,23 +33,35 @@
      * @param source
      * @return a model representation of the source.
      */
-    M read(S source);
+    M read(S source) throws ContributionReadException;
     
     /**
      * Resolve references from this model to other models. For example references
      * from a composite to another one, or references from a composite to a WSDL
      * model.
-     * @param contribution the contribution containing the model
      * @param model the model to resolve
+     * @param the resolver to use to resolve referenced models
      */
-    void resolve(Contribution contribution, M model);
+    void resolve(M model, ArtifactResolver resolver) throws ContributionException;
     
     /**
-     * Normalize a model. This can include normalize and applying policies at different
-     * levels, or determining the configuration of services, references and properties in
-     * nested compositions for example.
-     * @param contribution the contribution containing the model
-     * @param model the model to normalize
+     * Optimize a model for consumption by the runtime. This can include applying policies at different
+     * levels, or determining the configuration of services, references and properties in nested compositions
+     * for example.
+     * @param model the model to optimize
      */
-    void normalize(Contribution contribution, M model);
+    void optimize(M model) throws ContributionException;
+    
+    /**
+     * Returns the type of artifact handled by this artifact processor. 
+     * @return the type of artifact handled by this artifact processor
+     */
+    T getArtifactType();
+
+    /**
+     * Returns the type of model handled by this artifact processor.
+     * @return the type of model handled by this artifact processor
+     */
+    Class<?> getModelType(); 
+    
 }

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+
+
+/**
+ * A registry for artifact processors.
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface ArtifactProcessorRegistry<S, M, T> extends ArtifactProcessor<S, M, T> {
+    
+    /**
+     * Add an artifact processor.
+     * @param artifactProcessor the artifact processor to add
+     */
+    void addArtifactProcessor(ArtifactProcessor<S, M, T> artifactProcessor);
+
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+
+/**
+ * Base class for Exceptions raised during the loading process. Loader implementations should throw a subclass of this
+ * to indicate the actual problem.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ContributionReadException extends ContributionException {
+    public static final int UNDEFINED = -1;
+    private static final long serialVersionUID = -7459051598906813461L;
+    private String resourceURI;
+    private int line = UNDEFINED;
+    private int column = UNDEFINED;
+
+    public ContributionReadException(String message) {
+        super(message);
+    }
+
+    public ContributionReadException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ContributionReadException(Throwable cause) {
+        super(cause);
+    }
+    
+    /**
+     * Returns the location of the resource that was being loaded.
+     *
+     * @return the location of the resource that was being loaded
+     */
+    public String getResourceURI() {
+        return resourceURI;
+    }
+
+    /**
+     * Sets the location of the resource that was being loaded.
+     *
+     * @param resourceURI the location of the resource that was being loaded
+     */
+    public void setResourceURI(String resourceURI) {
+        this.resourceURI = resourceURI;
+    }
+
+    public int getLine() {
+        return line;
+    }
+
+    public void setLine(int line) {
+        this.line = line;
+    }
+
+    public int getColumn() {
+        return column;
+    }
+
+    public void setColumn(int column) {
+        this.column = column;
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ContributionReadException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DOMArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DOMArtifactProcessor.java?view=diff&rev=525638&r1=525637&r2=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DOMArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DOMArtifactProcessor.java Wed Apr  4 16:36:03 2007
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.services.spi.contribution;
 
+import javax.xml.namespace.QName;
+
 import org.w3c.dom.Node;
 
 /**
@@ -26,6 +28,5 @@
  * 
  * @version $Rev: 522653 $ $Date: 2007-03-26 15:30:21 -0700 (Mon, 26 Mar 2007) $
  */
-public interface DOMArtifactProcessor<M> extends ArtifactProcessor<Node, M> {
-
+public interface DOMArtifactProcessor<M> extends ArtifactProcessor<Node, M, QName> {
 }

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The default implementation of an artifact processor registry.
+ * 
+ * @version $Rev$ $Date$
+ */
+abstract class DefaultArtifactProcessorRegistry<S, M, K> implements ArtifactProcessorRegistry<S, M, K> {
+    private final Map<K, ArtifactProcessor<S, M, K>> processorsByArtifactType = new HashMap<K, ArtifactProcessor<S, M, K>>();
+    private final Map<Class<?>, ArtifactProcessor<S, M, K>> processorsByModelType = new HashMap<Class<?>, ArtifactProcessor<S, M, K>>();
+
+    /**
+     * Constructs a new loader registry.
+     */
+    public DefaultArtifactProcessorRegistry() {
+    }
+
+    /**
+     * Returns the processor associated with the given artifact type.
+     * @param artifactType an artifact type
+     * @return the processor associated with the given artifact type
+     */
+    protected ArtifactProcessor<S, M, K> getProcessor(K artifactType) {
+        return processorsByArtifactType.get(artifactType);
+    }
+
+    /**
+     * Returns the processor associated with the given model type.
+     * @param modelType a model type
+     * @return the processor associated with the given model type
+     */
+    protected ArtifactProcessor<S, M, K> getProcessor(Class<?> modelType) {
+        return processorsByModelType.get(modelType);
+    }
+
+    public void addArtifactProcessor(ArtifactProcessor<S, M, K> artifactProcessor) {
+        processorsByArtifactType.put(artifactProcessor.getArtifactType(), artifactProcessor);
+    }
+    
+    public K getArtifactType() {
+        // Will match any type
+        return null;
+    }
+    
+    public Class<?> getModelType() {
+        // Will match any type
+        return Object.class;
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * The default implementation of a StAX artifact processor registry.
+ * 
+ * @version $Rev$ $Date$
+ */
+public class DefaultStAXArtifactProcessorRegistry
+    extends DefaultArtifactProcessorRegistry<XMLStreamReader, Object, QName>
+    implements StAXArtifactProcessorRegistry {
+
+    private XMLInputFactory factory;
+
+    /**
+     * Constructs a new loader registry.
+     * @param assemblyFactory
+     * @param policyFactory
+     * @param factory
+     */
+    public DefaultStAXArtifactProcessorRegistry(XMLInputFactory factory) {
+        super();
+        this.factory = factory;
+    }
+
+    public DefaultStAXArtifactProcessorRegistry() {
+        this(XMLInputFactory.newInstance());
+    }
+
+    public Object read(XMLStreamReader source) throws ContributionReadException {
+        
+        // Delegate to the processor associated with the element qname
+        QName name = source.getName();
+        StAXArtifactProcessor<?> processor = (StAXArtifactProcessor<?>)this.getProcessor(name);
+        if (processor == null) {
+            return null;
+        }
+        return processor.read(source);
+    }
+    
+    public void resolve(Object model, ArtifactResolver resolver) throws ContributionException {
+
+        // Delegate to the processor associated with the model type
+        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor(model.getClass());
+        if (processor != null) {
+            processor.resolve(model, resolver);
+        }
+    }
+    
+    public void optimize(Object model) throws ContributionException {
+
+        // Delegate to the processor associated with the model type
+        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor(model.getClass());
+        if (processor != null) {
+            processor.optimize(model);
+        }
+    }
+    
+    public <MO> MO load(URL url, Class<MO> type) throws ContributionReadException {
+        try {
+            XMLStreamReader reader;
+            InputStream is;
+            is = url.openStream();
+            try {
+                reader = factory.createXMLStreamReader(is);
+                try {
+                    reader.nextTag();
+                    QName name = reader.getName();
+                    Object mo = read(reader);
+                    if (type.isInstance(mo)) {
+                        return type.cast(mo);
+                    } else {
+                        UnrecognizedElementException e = new UnrecognizedElementException(name);
+                        e.setResourceURI(url.toString());
+                        throw e;
+                    }
+                } catch (ContributionReadException e) {
+                    Location location = reader.getLocation();
+                    e.setLine(location.getLineNumber());
+                    e.setColumn(location.getColumnNumber());
+                    throw e;
+                } finally {
+                    try {
+                        reader.close();
+                    } catch (XMLStreamException e) {
+                        // ignore
+                    }
+                }
+            } finally {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+        } catch (IOException e) {
+            ContributionReadException ce = new ContributionReadException(e);
+            ce.setResourceURI(url.toString());
+            throw ce;
+        } catch (XMLStreamException e) {
+            throw new InvalidConfigurationException("Invalid or missing resource: " + url.toString(), e);
+        }
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+/**
+ * Denotes an invalid configuration artifact
+ * 
+ * @version $Rev$ $Date$
+ */
+public class InvalidConfigurationException extends ContributionReadException {
+    private static final long serialVersionUID = -4312958640212000366L;
+
+    public InvalidConfigurationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/InvalidConfigurationException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessor.java?view=diff&rev=525638&r1=525637&r2=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessor.java Wed Apr  4 16:36:03 2007
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.services.spi.contribution;
 
+import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
 /**
@@ -26,6 +27,5 @@
  * 
  * @version $Rev: 522653 $ $Date: 2007-03-26 15:30:21 -0700 (Mon, 26 Mar 2007) $
  */
-public interface StAXArtifactProcessor <M> extends ArtifactProcessor <XMLStreamReader, M> {
-
+public interface StAXArtifactProcessor<M> extends ArtifactProcessor <XMLStreamReader, M, QName> {
 }

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+
+
+/**
+ * A registry for StAX artifact processors.
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface StAXArtifactProcessorRegistry extends
+    ArtifactProcessorRegistry<XMLStreamReader, Object, QName> {
+    
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StAXArtifactProcessorRegistry.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StreamArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StreamArtifactProcessor.java?view=diff&rev=525638&r1=525637&r2=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StreamArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/StreamArtifactProcessor.java Wed Apr  4 16:36:03 2007
@@ -26,6 +26,5 @@
  * 
  * @version $Rev: 522653 $ $Date: 2007-03-26 15:30:21 -0700 (Mon, 26 Mar 2007) $
  */
-public interface StreamArtifactProcessor<M> extends ArtifactProcessor<InputStream, M> {
-
+public interface StreamArtifactProcessor<M> extends ArtifactProcessor<InputStream, M, String> {
 }

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java?view=auto&rev=525638
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java Wed Apr  4 16:36:03 2007
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.services.spi.contribution;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Exception that indicates an element was encountered that could not be handled.
+ *
+ * @version $Rev$ $Date$
+ */
+public class UnrecognizedElementException extends ContributionReadException {
+    private static final long serialVersionUID = 2549543622209829032L;
+    private final QName element;
+
+    /**
+     * Constructor that indicates which element could not be handled.
+     * @param element the element that could not be handled
+     */
+    public UnrecognizedElementException(QName element) {
+        super("Unrecognized element: " + element.toString());
+        this.element = element;
+    }
+
+    /**
+     * Returns the element that could not be handled.
+     * @return the element that could not be handled.
+     */
+    public QName getElement() {
+        return element;
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/UnrecognizedElementException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org