<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.
-->

<plugin
   id="protocol-foo"
   name="Foo Protocol Example Plug-in"
   version="1.0.0"
   provider-name="Hiran Chaudhuri">

   <runtime>
      <library name="protocol-foo.jar">
         <export name="*"/>
      </library>
   </runtime>

   <requires>
      <import plugin="nutch-extensionpoints"/>
   </requires>

   <extension id="org.apache.nutch.protocol.foo"
              name="FooProtocol"
              point="org.apache.nutch.protocol.Protocol">

      <implementation id="org.apache.nutch.protocol.foo.Foo"
                      class="org.apache.nutch.protocol.foo.Foo">
        <parameter name="protocolName" value="foo"/>
        <parameter name="urlStreamHandler" value="org.apache.nutch.protocol.foo.Handler"/>
      </implementation>
      
   </extension>

</plugin>
