You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-commits@ws.apache.org by sc...@apache.org on 2006/06/06 21:12:42 UTC
svn commit: r412194 [3/7] - in /webservices/muse/trunk: ./ src/ src/site/
src/site/classes/ src/site/content/ src/site/content/images/
src/site/content/xdocs/ src/site/content/xdocs/muse/
src/site/content/xdocs/muse/dev_guide/ src/site/content/xdocs/mu...
Added: webservices/muse/trunk/src/site/content/xdocs/muse/site.xml_old
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/site.xml_old?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/site.xml_old (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/site.xml_old Tue Jun 6 12:12:37 2006
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!--
+Forrest site.xml
+
+This file contains an outline of the site's information content. It is used to:
+- Generate the website menus (though these can be overridden - see docs)
+- Provide semantic, location-independent aliases for internal 'site:' URIs, eg
+<link href="site:changes"> links to changes.html (or ../changes.html if in
+ subdir).
+- Provide aliases for external URLs in the external-refs section. Eg, <link
+ href="ext:cocoon"> links to http://xml.apache.org/cocoon/
+
+See http://forrest.apache.org/docs/linking.html for more info.
+-->
+<site label="Muse" href="" xmlns="http://apache.org/forrest/linkmap/1.0">
+ <project label="Project Info" tab="home">
+ <index label="Overview" href="index.html"/>
+ <vcs label="Version Control" href="version_control.html"/>
+ <issues label="Issue Tracking" href="issue_tracking.html"/>
+ <contact label="Contact Info" href="contact_info.html"/>
+ <relnotes label="Release Notes" href="release_notes.html"/>
+ <wsdm label="WSDM Specs" href="muws.html"/>
+ </project>
+ <download label="Downloads" tab="home">
+ <releases label="Releases" href="release.html"/>
+ </download>
+ <!-- **************** Documentation **************** -->
+ <install label="Getting Started" tab="doc">
+ <overview label="Introduction" href="getting_started.html"/>
+ <installation href="getting_started.html#install"/>
+ <get label="Installation" href="getting_started.html#install"/>
+ <quick label="Quick Demo" href="getting_started.html#qd"/>
+ </install>
+ <tutorial label="Tutorial" href="tutorial/" tab="doc">
+ <tut label="Overview" href="index.html"/>
+ <setup label="Create Workspace" href="setup.html"/>
+ <wsdl label="Create WSDLs" href="wsdl.html"/>
+ <wsdl2java label="Run wsdl2Java Tool" href="wsdl2java.html"/>
+ <modhome label="Modify Home Classes" href="mod_home.html"/>
+ <modresource label="Modify Resource Classes" href="mod_resource.html"/>
+ <modservice label="Modify Service Class" href="mod_service.html"/>
+ <webapp label="Deploy Services" href="webapp.html"/>
+ <test label="Test" href="test.html"/>
+ </tutorial>
+ <developer label="Developer Guide" href="dev_guide/" tab="doc">
+ <dev label="Overview" href="index.html"/>
+ <compose label="MuWS WSDL" href="wsdl.html"/>
+ <tool label="Using Wsdl2Java" href="wsdl_tool.html"/>
+ <home label="Home Class" href="home.html"/>
+ <topics label="MUWS-Specific Topics" href="muws_topics.html"/>
+ <rel label="Relationships" href="relationships.html"/>
+ <adv label="Advertiser Service" href="advertiser.html"/>
+ <deploy label="Deploying" href="deploy.html"/>
+ <client label="Using the SOAP Client" href="client.html"/>
+ <log label="Logging" href="debug.html"/>
+ </developer>
+ <projects label="Related Projects">
+ <wsrf label="Apache WSRF" href="ext:wsrf/"/>
+ <pubscribe label="Apache Pubscribe" href="ext:pubscribe/"/>
+ <axis label="Axis" href="ext:axis"/>
+ <addressing label="Addressing" href="ext:addressing"/>
+ <xmlbeans label="XMLBeans" href="ext:xmlbeans.apache.org"/>
+ <maven label="Maven" href="ext:maven.apache.org"/>
+ </projects>
+ <external-refs>
+ <xml.apache.org href="http://xml.apache.org/">
+ <forrest href="forrest/"/>
+ </xml.apache.org>
+ <xmlbeans.apache.org href="http://xmlbeans.apache.org/"/>
+ <maven.apache.org href="http://maven.apache.org/"/>
+ <ws.apache.org href="http://ws.apache.org/">
+ <wsrf href="wsrf/"/>
+ <wsrfwsdl href="wsrf/dev_guide/wsrf_wsdl.html"/>
+ <spec href="wsrf/wsrf.html"/>
+ <metadata href="wsrf/dev_guide/metadata.html"/>
+ <single href="wsrf/dev_guide/singleton.html"/>
+ <resource href="wsrf/dev_guide/resource.html"/>
+ <pubscribe href="pubscribe/"/>
+ <pubwsdl href="pubscribe/dev_guide/wsdl.html"/>
+ <producer href="pubscribe/dev_guide/producer.html"/>
+ <wsn href="pubscribe/wsn.html"/>
+ <mirrors href="mirrors.cgi"/>
+ <axis href="axis/"/>
+ <wsfx href="ws-fx/">
+ <addressing href="addressing/"/>
+ <wss4j href="wss4j/"/>
+ </wsfx>
+ <asl href="LICENSE.txt"/>
+ </ws.apache.org>
+ <www.apache.org href="http://www.apache.org/">
+ <foundation href="foundation/"/>
+ </www.apache.org>
+ <nagoya.apache.org href="http://nagoya.apache.org/">
+ <eyebrowse href="eyebrowse/"/>
+ <bugzilla href="bugzilla/"/>
+ <apachewiki href="wiki/apachewiki.cgi?HomePage"/>
+ </nagoya.apache.org>
+ <archive.apache.org href="http://archive.apache.org/">
+ <archive-ws href="dist/ws/"/>
+ </archive.apache.org>
+ <apachecon.com href="http://apachecon.com/"/>
+ </external-refs>
+</site>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tabs.xml_old
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tabs.xml_old?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tabs.xml_old (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tabs.xml_old Tue Jun 6 12:12:37 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.1//EN" "tab-cocoon-v11.dtd">
+<tabs software="Muse" title="Muse" copyright="The Apache Software Foundation" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- The rules are:
+ @dir will always have /index.html added.
+ @href is not modified unless it is root-relative and obviously specifies a
+ directory (ends in '/'), in which case /index.html will be added
+ -->
+ <tab id="home" label="Project Info" dir=""/>
+ <tab id="doc" label="Documentation" dir="" indexfile="getting_started.html"/>
+ <tab label="API Docs" dir="apidocs/"/>
+</tabs>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/back.gif
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/back.gif?rev=412194&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/back.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/next.gif
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/next.gif?rev=412194&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/images/next.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/index.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/index.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/index.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/index.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Apache Muse Tutorial</title>
+ </header>
+ <body>
+ <section>
+ <title>Creating and Deploying a MUWS Web Service</title>
+ <p>This tutorial provides a step-by-step approach to using Apache Muse to create and deploy two MUWS-compliant Web services that have a relationship. The Web
+ services represent a UNIX file system resource and a host resource. If you want to see a completed version of this example, see the
+ <a href="site:quick">Quick Demonstration</a>.
+ </p>
+ <note>To complete the tutorial, you must first <a href="site:installation">install</a> the distribution.</note>
+ <p>The tutorial consists of the following steps:</p>
+ <ol>
+ <li>
+ <a href="setup.html">Create a Working Directory</a>
+ </li>
+ <li>
+ <a href="wsdl.html">Create MUWS WSDLs</a>
+ </li>
+ <li>
+ <a href="wsdl2java.html">Run the Wsdl2Java Tool</a>
+ </li>
+ <li>
+ <a href="mod_home.html">Modify the Home Classes</a>
+ </li>
+ <li>
+ <a href="mod_resource.html">Modify the Resource Classes</a>
+ </li>
+ <li>
+ <a href="mod_service.html">Modify the Service Class</a>
+ </li>
+ <li>
+ <a href="webapp.html">Compile and Deploy the Services</a>
+ </li>
+ <li>
+ <a href="test.html">Test the Services</a>
+ </li>
+ </ol>
+ <p>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:setup">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_home.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_home.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_home.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_home.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Modify the Home Classes</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>The Home is used to lookup a resource instance. It can act as a factory for creating instances upon request, or build all instances.
+ It is meant to be the entry point for locating a resource instance. In this step of the tutorial, the generated Home classes (<code>FilesystemHome</code> and <code>
+ HostHome</code>) are modified to include an <code>init()</code> method.</p>
+ </section>
+ <section>
+ <title>Modify the FilesytemHome Class</title>
+ <p>Open <code>WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemHome.java</code> and
+ replace the <code>public void init()</code> method with the following method. You will also need to copy the instance variables below.</p>
+ <source><![CDATA[
+ private static final String LVOL1_ID = "/dev/vg00/lvol1";
+ private static final String LVOL2_ID = "/dev/vg00/lvol2";
+
+ /**
+ * Create and add two resource instances.
+ *
+ * @throws Exception on error
+ */
+ public void init() throws Exception
+ {
+ super.init();
+ add( createInstance( LVOL1_ID ) );
+ add( createInstance( LVOL2_ID ) );
+ }]]></source>
+ </section>
+ <section>
+ <title>Modify the Host Home Class</title>
+ <p>Open <code>WORK_DIR/generated/host/src/java/org/apache/ws/resource/example/host/HostHome.java</code> and
+ replace the <code>init()</code> method with the following method:
+ </p>
+ <source><![CDATA[
+public void init() throws Exception
+ {
+ super.init();
+ add( createInstance( null ) );
+
+ } ]]></source>
+ <note>The host is a singleton service. Therefore, the instance is set to <code>null</code>.</note>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:wsdl2java">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:modresource">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_resource.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_resource.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_resource.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_resource.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,302 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Modify the Resource Classes</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>In this step of the tutorial, the generated Resource classes (<code>FilesystemResource</code> and <code>HostResource</code>) are modified modified to implement
+ the <code>init</code> method as well as several methods for the filesystem's custom operations. The Resource class is the stateful instance-representation of a
+ Web service. The resource maintains the resource <code>id</code> and the <code>ResourcePropertySet</code>. The resource <code>id</code> is the unique
+ identifier for an instance of your Web service. It allows you to have multiple resource instances, each with their own states, fronted by the same Web service.
+ The stateful properties are represented by the <code>ResourcePropertySet</code>. The <code>ResourcePropertySet</code> is the Java representation of the
+ Resource Properties document defined in the types section of your WSDL file.
+ </p>
+ <p>
+ The resource class is also used to expose resource properties as notification topics and register the exposed topics. This includes MUWS specific topics for all
+ properties that are defined in the schema section of the WSDL.
+ </p>
+ <p>
+ Lastly, the resource class is used to define any relationships this resource has to other resources.
+ </p>
+ </section>
+ <section>
+ <title>Modify the FileSystem Resource Class</title>
+ <p>Open <code>WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemResource.java</code> and
+ replace the <code>public void init()</code> method with the following methods. You will also need to copy the instance variables and custom operation
+ methods below.</p>
+ <source><![CDATA[
+ private static final String HOST_HOME_LOCATION =
+ org.apache.ws.resource.JndiConstants.CONTEXT_NAME_SERVICES + "/host/" + org.apache.ws.resource.JndiConstants.ATOMIC_NAME_HOME;
+
+ private example.filesystem.backend.FileSystem m_filesystem;
+
+ /**
+ * Initializes this resource's state (properties, etc.).
+ */
+ public void init()
+ {
+ super.init();
+
+ /*
+ * This is where you should associate the backend instance with
+ * the resource instance for a given id.
+ */
+ m_filesystem = new example.filesystem.backend.UnixFileSystem( m_id );
+
+ /*
+ * Add MUWS "capability topics" to the topic set.
+ */
+ org.apache.ws.muws.v1_0.topics.ManagementEventTopic identityCapabilityTopic;
+ org.apache.ws.muws.v1_0.topics.ManagementEventTopic manageabilityCharacteristicsCapabilityTopic;
+ org.apache.ws.muws.v1_0.topics.ManagementEventTopic operationalStatusCapabilityTopic;
+ org.apache.ws.muws.v1_0.topics.ManagementEventTopic relationshipsCapabilityTopic;
+ try
+ {
+ org.apache.ws.notification.topics.TopicSpace muwsTopicSpace = new org.apache.ws.notification.topics.impl.TopicSpaceImpl( org.apache.ws.muws.v1_0.MuwsConstants.NSURI_MUWS_PART2_TOPICS );
+ getTopicSpaceSet().addTopicSpace( muwsTopicSpace );
+
+ identityCapabilityTopic = new org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl( org.apache.ws.muws.v1_0.capability.IdentityCapability.TOPIC_NAME );
+ muwsTopicSpace.addTopic( identityCapabilityTopic );
+ manageabilityCharacteristicsCapabilityTopic = new org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl(
+ org.apache.ws.muws.v1_0.capability.ManageabilityCharacteristicsCapability.TOPIC_NAME );
+ muwsTopicSpace.addTopic( manageabilityCharacteristicsCapabilityTopic );
+ operationalStatusCapabilityTopic = new org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl(
+ org.apache.ws.muws.v1_0.capability.OperationalStatusCapability.TOPIC_NAME );
+ muwsTopicSpace.addTopic( operationalStatusCapabilityTopic );
+ relationshipsCapabilityTopic = new org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl( org.apache.ws.muws.v1_0.capability.RelationshipsCapability.TOPIC_NAME );
+ muwsTopicSpace.addTopic( relationshipsCapabilityTopic );
+ }
+ catch ( Exception e )
+ {
+ throw new RuntimeException( "Failed to add MUWS capability topics to topic set of " + this.getClass().getName() + " resource with ID " + getID() + ".", e );
+ }
+
+ org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = getResourcePropertySet();
+ org.apache.ws.resource.properties.ResourceProperty resourceProperty;
+ try
+ {
+ /*
+ * Initialize each of our properties by calling resourceProperty.add(propElem) and/or resourceProperty.setCallback(callback)...
+ */
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.DEVICESPECIALFILE );
+ DeviceSpecialFileDocument deviceDocXBean = DeviceSpecialFileDocument.Factory.newInstance();
+ deviceDocXBean.setDeviceSpecialFile( m_filesystem.getDeviceSpecialFile() );
+ resourceProperty.add( deviceDocXBean );
+
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.TYPE );
+ TypeDocument typeDocXBean = TypeDocument.Factory.newInstance();
+ typeDocXBean.setType( m_filesystem.getType() );
+ resourceProperty.add( typeDocXBean );
+
+ BackupFrequencyDocument backupDocXBean = BackupFrequencyDocument.Factory.newInstance();
+ backupDocXBean.setBackupFrequency( m_filesystem.getBackupFrequency() );
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.BACKUPFREQUENCY );
+ resourceProperty.add( backupDocXBean );
+ resourceProperty.setCallback( new example.filesystem.callback.BackupFrequencyCallback( m_filesystem ) );
+
+ CommentDocument commentDocXBean = CommentDocument.Factory.newInstance();
+ commentDocXBean.setComment( m_filesystem.getComment() );
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.COMMENT );
+ resourceProperty.add( commentDocXBean );
+ resourceProperty.setCallback( new example.filesystem.callback.CommentCallback( m_filesystem ) );
+
+ FsckPassNumberDocument fsckDocXBean = FsckPassNumberDocument.Factory.newInstance();
+ fsckDocXBean.setFsckPassNumber( m_filesystem.getFsckPassNumber() );
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.FSCKPASSNUMBER );
+ resourceProperty.add( fsckDocXBean );
+ resourceProperty.setCallback( new example.filesystem.callback.FsckPassNumberCallback( m_filesystem ) );
+
+ MountPointDirectoryDocument mountPointDocXBean = MountPointDirectoryDocument.Factory.newInstance();
+ mountPointDocXBean.setMountPointDirectory( m_filesystem.getMountPoint() );
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.MOUNTPOINTDIRECTORY );
+ resourceProperty.add( mountPointDocXBean );
+ resourceProperty.setCallback( new example.filesystem.callback.MountPointCallback( m_filesystem ) );
+
+ OptionsDocument optionsDocXBean =
+ OptionsDocument.Factory.newInstance();
+ org.apache.ws.resource.example.filesystem.OptionsDocument.Options options =
+ optionsDocXBean.addNewOptions();
+ java.util.List backendOptions =
+ m_filesystem.getOptions();
+ for ( int i = 0; i < backendOptions.size(); i++ )
+ {
+ options.addOption( (String) backendOptions.get( i ) );
+ }
+
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.OPTIONS );
+ resourceProperty.add( optionsDocXBean );
+ resourceProperty.setCallback( new example.filesystem.callback.OptionsCallback( m_filesystem ) );
+
+ /*
+ * MUWS-defined properties.
+ */
+ // init the {http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part1.xsd}ResourceId resource property
+ org.apache.ws.muws.MuwsUtils.initResourceIdProperty(this);
+ // NOTE: it's not necessary to add a property change listener, since the ResourceId prop is immutable
+
+ // init the {http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part1.xsd}ManageabilityCapability resource property
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.MANAGEABILITYCAPABILITY );
+ // add property element for MUWS Identity capability...
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument identityCapabilityPropElem = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument.Factory.newInstance();
+ identityCapabilityPropElem.setManageabilityCapability( org.apache.ws.muws.v1_0.capability.IdentityCapability.URI );
+ resourceProperty.add( identityCapabilityPropElem );
+ // add property element for MUWS ManageabilityCharacteristics capability...
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument manageabilityCharacteristicsCapabilityPropElem = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument.Factory.newInstance();
+ manageabilityCharacteristicsCapabilityPropElem.setManageabilityCapability(
+ org.apache.ws.muws.v1_0.capability.ManageabilityCharacteristicsCapability.URI );
+ resourceProperty.add( manageabilityCharacteristicsCapabilityPropElem );
+ // add property element for MUWS OperationalStatus capability...
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument operationalStatusCapabilityPropElem = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument.Factory.newInstance();
+ operationalStatusCapabilityPropElem.setManageabilityCapability( org.apache.ws.muws.v1_0.capability.OperationalStatusCapability.URI );
+ resourceProperty.add( operationalStatusCapabilityPropElem );
+ // add property element for MUWS Relationships capability...
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument relationshipsCapabilityPropElem = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManageabilityCapabilityDocument.Factory.newInstance();
+ relationshipsCapabilityPropElem.setManageabilityCapability( org.apache.ws.muws.v1_0.capability.RelationshipsCapability.URI );
+ resourceProperty.add( relationshipsCapabilityPropElem );
+ // NOTE: it's not necessary to add a property change listener, since the ManageabilityCapability prop is immutable
+
+ // init the {http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part2.xsd}OperationalStatus resource property
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.OPERATIONALSTATUS );
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument statusDoc = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.Factory.newInstance();
+ statusDoc.setOperationalStatus( org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus.AVAILABLE );
+ resourceProperty.add(statusDoc);
+ resourceProperty.setCallback( new example.filesystem.callback.OperationalStatusCallback( m_filesystem ) );
+ resourceProperty.addChangeListener( operationalStatusCapabilityTopic ); // add for property-value-changed management events
+
+ // init the {http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part2.xsd}Relationship resource property
+ resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.RELATIONSHIP );
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipDocument prop_relationship = org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipDocument.Factory.newInstance();
+ /*
+ * Create the relationship bean...
+ */
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipType relationshipType = null;
+ relationshipType = prop_relationship.addNewRelationship();
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipTypeType relationshipTypeType = relationshipType.addNewType();
+ org.apache.ws.util.XmlBeanUtils.addChildElement( relationshipTypeType, new javax.xml.namespace.QName( "http://myns.com/", "ContainedBy", "myns" ) );
+
+
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipParticipantType relationshipParticipantType = relationshipType.addNewParticipant();
+ org.apache.ws.resource.properties.ResourceProperty resourceIdProp = resourcePropertySet.get( FilesystemPropertyQNames.RESOURCEID );
+ org.apache.xmlbeans.XmlAnyURI resourceId = (org.apache.xmlbeans.XmlAnyURI) resourceIdProp.get( 0 );
+ relationshipParticipantType.setResourceId( resourceId.getStringValue() );
+ relationshipParticipantType.setRole( "urn:containee" );
+ // NOTE: the below line assumes that the Filesystem resource's EndpointReference field has been initialized
+ org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType filesystemReference = (org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType) ((org.apache.ws.addressing.XmlBeansEndpointReference)getEndpointReference()).getXmlObject( org.apache.ws.addressing.v2004_08_10.AddressingConstants.NSURI_ADDRESSING_SCHEMA );
+ relationshipParticipantType.setManageabilityEndpointReferenceArray( new org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType[] { filesystemReference } );
+
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.RelationshipParticipantType relationshipParticipantType2 = relationshipType.addNewParticipant();
+ org.apache.ws.resource.ResourceHome hostHome = (org.apache.ws.resource.ResourceHome) new javax.naming.InitialContext( ).lookup( HOST_HOME_LOCATION );
+ org.apache.ws.resource.PropertiesResource host = (org.apache.ws.resource.PropertiesResource) hostHome.find( null ); // host is a singleton resource w/ a null resource identifier
+ resourceIdProp = host.getResourcePropertySet().get( org.apache.ws.muws.v1_0.capability.IdentityCapability.PROP_NAME_RESOURCE_ID );
+ resourceId = (org.apache.xmlbeans.XmlAnyURI) resourceIdProp.get( 0 );
+ relationshipParticipantType2.setResourceId( resourceId.getStringValue() );
+ relationshipParticipantType2.setRole( "urn:container" );
+ // NOTE: the below line assumes that the Host resource's EndpointReference field has been initialized
+ org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType hostReference = (org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType) ((org.apache.ws.addressing.XmlBeansEndpointReference)host.getEndpointReference()).getXmlObject( org.apache.ws.addressing.v2004_08_10.AddressingConstants.NSURI_ADDRESSING_SCHEMA );
+ relationshipParticipantType.setManageabilityEndpointReferenceArray( new org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType[] { hostReference } );
+
+ resourceProperty.add( prop_relationship );
+ resourceProperty.addChangeListener( relationshipsCapabilityTopic ); // add for property-value-changed management events
+ }
+ catch ( Exception e )
+ {
+ throw new RuntimeException( "There was a problem in initializing your resource properties. Please check your init() method. Cause: " +
+ e.getLocalizedMessage() );
+ }
+
+ // Resource Property {http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}TerminationTime is implemented by the framework.
+ // Resource Property {http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}CurrentTime is implemented by the framework.
+ // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}FixedTopicSet is implemented by the framework.
+ // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}Topic is implemented by the framework.
+ // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}TopicExpressionDialects is implemented by the framework.
+
+ /**
+ * This method enables the ResourceTermination Topic for notifications
+ * about this resource's termination. If you would not like this
+ * behaviour either comment or remove the line of code.
+ */
+ try
+ {
+ org.apache.ws.notification.topics.util.TopicUtils.addResourceTerminationTopic( getTopicSpaceSet(), this,
+ SPEC_NAMESPACE_SET );
+ }
+ catch ( Exception e )
+ {
+ throw new RuntimeException(
+ "Unable to init the ResourceTermination topic. Cause: " + e.getLocalizedMessage(), e );
+ }
+
+ /**
+ * This method call will make all resource properties be exposed
+ * as Topics. If you would like to change that behaviour you can
+ * call TopicUtils.addResourcePropertyValueChangeTopic for each
+ * Topic you'd like to expose property change notifications for.
+ */
+ try
+ {
+ org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics(
+ getResourcePropertySet(), getTopicSpaceSet() );
+ }
+ catch ( Exception e )
+ {
+ throw new RuntimeException(
+ "Unable to init the ResourceProperty Changed topics. Cause: " + e.getLocalizedMessage(), e );
+ }
+
+ }
+ public void mount() throws Exception
+ {
+ m_filesystem.mount();
+ }
+
+ public void unmount() throws Exception
+ {
+ m_filesystem.unmount();
+ }
+
+ public boolean isMounted()
+ {
+ return m_filesystem.isMounted();
+ }]]></source>
+ </section>
+ <section>
+ <title>Modify the Host Resource Class</title>
+ <p>Open <code>WORK_DIR/generated/host/src/java/org/apache/ws/resource/example/host/HostResource.java</code> and
+ replace the <code>public void init()</code> method with the following method:
+ </p>
+ <source><![CDATA[
+ public void init()
+ {
+ super.init();
+
+ /**
+ * The ResourcePropertySet which contains all the defined ResourceProperties
+ */
+ org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = getResourcePropertySet();
+ org.apache.ws.resource.properties.ResourceProperty resourceProperty = null;
+
+
+ try{
+ // init the {http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part1.xsd}ResourceId resource property
+ org.apache.ws.muws.MuwsUtils.initResourceIdProperty(this);
+ // NOTE: it's not necessary to add a property change listener, since the ResourceId prop is immutable
+
+ }
+ catch (Exception e)
+ {
+ throw new javax.xml.rpc.JAXRPCException("There was a problem in initializing your resource properties. Please check your init() method. Cause: " + e.getLocalizedMessage());
+ }
+ }]]></source>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:modhome">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:modservice">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_service.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_service.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_service.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/mod_service.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Modify the Service Class</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>In this step of the tutorial, the generated Service class (<code>FilesystemService</code>) is modified to include an <code>updateOperationalStatus</code> method.
+ This method updates the <code>OperationalStatus</code> property whenever a <code>Mount</code> or <code>Unmount</code> operation is performed and publishes
+ a <code>ResourcePropertyValueChangeEvent</code> to the <code>OperationalStatus</code> notification topic. A client that subscribes to the
+ <code>OperationalStatus</code> notification topic receives a notification when this property changes. The <code>mount</code> and <code>unmount</code> methods are implemented to call the <code>updateOperationalStatus</code> method when they are invoked.
+ </p>
+ </section>
+ <section>
+ <title>Modify the Service Class</title>
+ <p>Open <code>WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemService.java</code> and
+ add/replace the following methods:</p>
+ <source><![CDATA[
+ public org.apache.ws.resource.example.filesystem.UnmountResponseDocument unmount(org.apache.ws.resource.example.filesystem.UnmountDocument requestDoc)
+ throws org.apache.ws.resource.example.filesystem.MountDeviceBusyFaultException
+ {
+ try
+ {
+ ((FilesystemResource) getResource()).unmount();
+ updateOperationalStatus(org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus.UNAVAILABLE);
+ }
+ catch (Exception e)
+ {
+ throw new MountDeviceBusyFaultException(getNamespaceSet(), e.getLocalizedMessage());
+ }
+ org.apache.ws.resource.example.filesystem.UnmountResponseDocument responseDocument = org.apache.ws.resource.example.filesystem.UnmountResponseDocument.Factory.newInstance();
+ org.apache.ws.resource.example.filesystem.UnmountResponseDocument.UnmountResponse response = responseDocument.addNewUnmountResponse();
+ return responseDocument;
+ }
+
+ public org.apache.ws.resource.example.filesystem.MountResponseDocument mount(org.apache.ws.resource.example.filesystem.MountDocument requestDoc)
+ throws org.apache.ws.resource.example.filesystem.MountDeviceBusyFaultException
+ {
+ try
+ {
+ ((FilesystemResource) getResource()).mount();
+ updateOperationalStatus(org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus.AVAILABLE);
+ }
+ catch (Exception e)
+ {
+ throw new MountDeviceBusyFaultException(getNamespaceSet(), e.getLocalizedMessage());
+ }
+ org.apache.ws.resource.example.filesystem.MountResponseDocument responseDocument = org.apache.ws.resource.example.filesystem.MountResponseDocument.Factory.newInstance();
+ org.apache.ws.resource.example.filesystem.MountResponseDocument.MountResponse response = responseDocument.addNewMountResponse();
+ return responseDocument;
+ }
+
+public void updateOperationalStatus(org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus.Enum newStatus)
+ {
+ org.apache.ws.notification.base.NotificationProducerResource resource = (org.apache.ws.notification.base.NotificationProducerResource)getResource();
+ org.apache.ws.resource.properties.ResourceProperty statusProp = resource.getResourcePropertySet().get(FilesystemPropertyQNames.OPERATIONALSTATUS);
+ org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus currentStatus = (org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.OperationalStatusDocument.OperationalStatus) statusProp.get(0);
+ if (!currentStatus.enumValue().equals(newStatus))
+ {
+ org.apache.xmlbeans.XmlObject oldStatus = org.apache.ws.util.XmlBeanUtils.copyXmlBean(currentStatus);
+ currentStatus.set(newStatus);
+ org.apache.ws.notification.topics.TopicSpace muwsTopicSpace = resource.getTopicSpaceSet().getTopicSpace(org.apache.ws.muws.v1_0.MuwsConstants.NSURI_MUWS_PART2_TOPICS);
+ org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl statusTopic = (org.apache.ws.muws.v1_0.topics.impl.XmlBeansManagementEventTopicImpl) muwsTopicSpace.getTopic(org.apache.ws.muws.v1_0.capability.OperationalStatusCapability.TOPIC_NAME);
+ org.apache.ws.resource.properties.ResourcePropertyValueChangeEvent statusChangeEvent = new org.apache.ws.resource.properties.v2004_06.impl.XmlBeansResourcePropertyValueChangeEvent(new Object[]{oldStatus}, new Object[]{currentStatus});
+ statusTopic.propertyChanged(statusChangeEvent); // publish the event
+ }
+ return;
+ }]]></source>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:modresource">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:webapp">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/setup.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/setup.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/setup.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/setup.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Create a Working Directory</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>In this step of the tutorial, a development working directory is created and populated with several template files.
+ The template files help facilitate the development process. There is a MUWS-based WSDL template, an ANT build script, and a SOAP client. The templates
+ are discussed in further detail throughout the tutorial. It is a good idea to start a MUWS development project by creating a working directory and using the
+ templates.
+ </p>
+ </section>
+ <section>
+ <title>Create and Populate a Working Directory</title>
+ <p>To create a working directory for the filesystem example:
+ </p>
+ <ol>
+ <li>Create a directory on your computer (e.g.,<code> /filesystem</code>). This directory will be referred to as <code>WORK_DIR</code>.</li>
+ <li>Copy all the files in <code>INSTALL_DIR/template</code> to <code>WORK_DIR</code>.</li>
+ <li>Using a text editor, open <code>WORK_DIR/build.properties</code>.</li>
+ <li>Uncomment the <code>muse.webapp.dir</code> property and set it to the location where the Muse Web application is installed. If you are using
+ Tomcat and have the <code>CATALINA_HOME</code> environment variable set, you do not need to modify this property.</li>
+ <li>Uncomment and modify the proxy settings if you require a proxy to connect to external Web sites.</li>
+ <li>Save and close build.properties.</li>
+ </ol>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:tut">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:wsdl">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/test.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/test.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/test.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/test.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Test the Services</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>In this final step of the tutorial, a SOAP client is used to send requests to the filesystem service deployed in Tomcat. The requests are located in
+ <code>INSTALL_DIR/examples/filesystem/requests</code>. The client is used from an Ant script to send the requests. The scripts can be
+ leveraged in order to test your own services as well. Detailed instructions for using the SOAP client are provided in the
+ <a href="site:client">Developer Guide</a>.
+ </p>
+ </section>
+ <section id="testing">
+ <title>Sending SOAP Requests</title>
+ <p>To send a request to the filesystem service:
+ </p>
+ <ol>
+ <li>From a command prompt, change directories to <code>WORK_DIR</code>.</li>
+ <li>Run:
+ <source><![CDATA[
+ ant -f soapclient.xml -Durl=http://localhost:8080/muse/services/filesystem -Dxml=INSTALL_DIR/examples/filesystem/requests/GetMultipleResourceProperties.soap]]></source>
+ Replace <code>INSTALL_DIR</code> in the <code>xml</code> property.</li>
+ </ol>
+ <p>You may also try other request messages in the
+ <code>requests</code> directory.</p>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:webapp">Back</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/webapp.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/webapp.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/webapp.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/webapp.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Compile and Deploy the Services</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>In this step of the tutorial, the example code and the generated classes are compiled and deployed
+ to the Muse Web application. An Ant script is provided for compiling and deploying. Detailed instructions for
+ using the Ant script are provided in the <a href="site:dev">Developer Guide</a>.
+ </p>
+ </section>
+ <section>
+ <title>Run the Compile/Deploy Ant Script</title>
+ <p>Ant scripts are automatically generated for both the filesystem example and the host example. Each Ant script must be run separately.</p>
+ <section>
+ <title>Compile and Deploy FileSystem</title>
+ <p>To compile and deploy the FileSystem service:</p>
+ <ol>
+ <li>Copy <code>INSTALL_DIR/examples/filesystem/src/java/example</code> to
+ <code>WORK_DIR/generated/filesystem/src/java</code>.</li>
+ <li>Using a text editor, open <code>WORK_DIR/generated/filesystem/build.properties</code>.</li>
+ <li>Uncomment the <code>muse.webapp.dir</code> property and set it to the location where the Muse Web application is installed. If you are using
+ Tomcat and have <code>CATALINA_HOME</code> set, you do not need to modify this property.</li>
+ <li>Uncomment and modify the proxy settings if you require a proxy to connect to external Web sites.</li>
+ <li>Save and close build.properties.</li>
+ <li>From a command prompt, change directories to <code>WORK_DIR/generated/filesystem</code>.</li>
+ <li>Run <code>ant compile deploy</code>. The service is compiled and deployed to the Muse Web application.</li>
+ </ol>
+ </section>
+ <section>
+ <title>Compile and Deploy Host</title>
+ <p>To compile and deploy the Host service:</p>
+ <ol>
+ <li>Using a text editor, open <code>WORK_DIR/generated/host/build.properties</code>.</li>
+ <li>Uncomment the <code>muse.webapp.dir</code> property and set it to the location where the Muse Web application is installed. If you are using
+ Tomcat and have <code>CATALINA_HOME</code> set, you do not need to modify this property.</li>
+ <li>Uncomment and modify the proxy settings if you require a proxy to connect to external Web sites.</li>
+ <li>Save and close build.properties.</li>
+ <li>From a command prompt, change directories to <code>WORK_DIR/generated/host</code>.</li>
+ <li>Run <code>ant compile deploy</code>. The service is compiled and deployed to the Muse Web application.</li>
+ <li>Using a text editor, open <code>TOMCAT_HOME/webapps/muse/WEB-INF/classes/jndi-config.xml</code>.</li>
+ <li>From the <code><![CDATA[<service name="host">]]></code> block, remove the <code>resourceIdentifierReferenceParameterName</code>
+ parameter. This parameter is not required since this services is a singleton. Removing this entry ensures that Muse does not look for a resource id
+ in the WS Address headers.</li>
+ <li>Save and close jndi-config.xml.</li>
+ </ol>
+ </section>
+ </section>
+ <section>
+ <title>Verify the Deployment</title>
+ <p>To verify the deployment:</p>
+ <ol>
+ <li>Start Tomcat. If Tomcat is already started, you must restart it.</li>
+ <li>Using a browser, go to <a href="http://localhost:8080/muse/services">
+ http://localhost:8080/muse/services</a> and verify that the filesystem and host services are deployed.</li>
+ </ol>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:modservice">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:test">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Create MUWS WSDLs</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>In this step of the tutorial, MUWS-compliant WSDLs are created for the filesystem resource and the host resource. In the interest of time, the
+ <code>FileSystem.wsdl</code>, and <code>host.wsdl</code> have already been created for use in this tutorial.
+ </p>
+ <p> The WSDLs were created using the MUWS WSDL template (<code>WORK_DIR/_TEMPLATE_.wsdl</code>). Use the template to
+ expedite the WSDL creation process for a resource. It contains detailed instructions and the default operations that
+ are required by a MUWS-compliant WSDL. In addition, the template contains sections for adding custom operations. It is
+ good practice to use the template if you are not familiar with the WSDM, WSRF, or WSN family of specifications. Detailed instructions for
+ composing the WSDLs using the template are provided in the <a href="site:compose">Developer Guide</a>.
+ </p>
+ <p>Both the FileSystem WSDL and Host WSDL are an example of a MUWS WSDL that contains a single portType
+ (<code>FileSystemPortType</code> and <code>HostPortType</code> respectively). The FileSystem WSDL exposes operations defined by the WSRF-RP,
+ WSRF-RL, WSN-BN, and MUWS. The WSDL also defines two custom operations, <code>Mount</code> and <code>Unmount</code>, as well as corresponding custom
+ resource properties. The Host WSDL is very basic and only contains a single operation from WSRF-RP (getResourceProperty). The host resource is only used to
+ demonstrate how different resources can be related. Most of the interaction with these WS Resources is done through FileSystem.
+ </p>
+ </section>
+ <section>
+ <title>Copy the WSDLs</title>
+ <p>Copy <code>INSTALL_DIR/examples/filesystem/src/wsdl/FileSystem.wsdl</code> and <code>Host.wsdl</code> to <code>WORK_DIR</code>.</p>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:setup">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:wsdl2java">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl2java.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl2java.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl2java.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muse/tutorial/wsdl2java.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Run the Wsdl2Java Tool</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>In this step of the tutorial, the MUWS Wsdl2Java tool is used to generate a set of artifacts for the filesystem and host example. The tool takes any number of WSDL files
+ as its input and outputs the following artifacts for each WSDL:
+ </p>
+ <ul>
+ <li>
+ <a href="ext:xmlbeans.apache.org">XMLBeans</a> for all XML Schema types and elements defined in the types section of the WSDL</li>
+ <li>an abstract base Resource class</li>
+ <li>an abstract base Service class</li>
+ <li>an abstract base Home class</li>
+ <li>a Resource class</li>
+ <li>a Service class</li>
+ <li>a Home class</li>
+ <li>a CustomOperationsPortType interface</li>
+ <li>a PropertyQNames interface</li>
+ <li>an Axis deploy.wsdd file</li>
+ <li>a jndi-config.xml file</li>
+ </ul>
+ <note>The abstract classes and interfaces should NEVER be modified.</note>
+ </section>
+ <section>
+ <title>Generating the Artifacts</title>
+ <p>The Ant script (<code>WORK_DIR/build.xml</code>) contains a target for the Wsdl2Java tool. To generate the artifacts for the
+ filesystem and host example:</p>
+ <ol>
+ <li>From a command prompt, change directories to <code>WORK_DIR</code>.</li>
+ <li>Enter the following command: <code>ant generate</code>
+ </li>
+ </ol>
+ <p>The artifacts are generated and placed in <code>WORK_DIR/generated</code>. For more information about the
+ WSDL2Java tool and the generated artifacts, see <a href="site:tool">Using the WSDL2Java Tool</a> in the Developer's Guide.</p>
+ <p>
+ <img src="images/back.gif" alt="go to the previous step"/>
+ <a href="site:wsdl">Back</a>
+ <img src="images/next.gif" alt="go to the next step"/>
+ <a href="site:modhome">Next</a>
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/muws.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/muws.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/muws.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/muws.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,188 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>WSDM Specifications</title>
+ </header>
+ <body>
+
+
+ <section>
+ <title>Web Services Resource Framework </title>
+ <section>
+ <title>Overview</title>
+
+ <p>
+ Web Services Resource Framework (WSRF) is a suite of specifications published by the
+ <a href="http://www.oasis-open.org/">OASIS</a>
+ <a href="http://www.oasis-open.org/committees/wsrf/">WSRF TC</a>.
+ It is comprised of the following specifications:
+ </p>
+
+ <section>
+ <title>WS-Resource</title>
+ <ul>
+ <li>v1.2 draft 2 (Dec 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-Resource-1.2-draft-02.pdf">spec</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-ResourceProperties (WSRF-RP)</title>
+ <ul>
+ <li>v1.2 draft 5 (Nov 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.xsd">XSD</a>]</li>
+ <li>v1.2 draft 4 (June 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-04.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd">XSD</a>]</li>
+ <li>v1.1 (03/05/03): [<a href="http://www.ibm.com/developerworks/library/ws-resource/ws-resourceproperties.pdf">spec</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ResourceProperties.wsdl">WSDL</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ResourceProperties.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-ResourceLifetime (WSRF-RL)</title>
+ <ul>
+ <li>v1.2 draft 4 (Nov 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.xsd">XSD</a>]</li>
+ <li>v1.2 draft 3 (June 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-03.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">XSD</a>]</li>
+ <li>v1.1 (03/05/04): [<a href="http://www.ibm.com/developerworks/library/ws-resource/ws-resourcelifetime.pdf">spec</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ResourceLifetime.wsdl">WSDL</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ResourceLifetime.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-ServiceGroup (WSRF-SG)</title>
+ <ul>
+ <li>v1.2 draft 3 (Nov 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ServiceGroup-1.2-draft-03.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ServiceGroup-1.2-draft-03.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ServiceGroup-1.2-draft-03.xsd">XSD</a>]</li>
+ <li>v1.2 draft 2 (June 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-02.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd">XSD</a>] </li>
+ <li>v1.0 (03/31/04): [<a href="http://www.ibm.com/developerworks/library/ws-resource/ws-servicegroup.pdf">spec</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ServiceGroup.wsdl">WSDL</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-ServiceGroup.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-BaseFaults (WSRF-BF)</title>
+ <ul>
+ <li>v1.2 draft 3 (Nov 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-BaseFaults-1.2-draft-03.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-BaseFaults-1.2-draft-03.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-BaseFaults-1.2-draft-03.xsd">XSD</a>]</li>
+ <li>v1.2 draft 2 (June 2004): [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-02.pdf">spec</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl">WSDL</a>] [<a href="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd">XSD</a>] </li>
+ <li>v1.0 (03/31/04): [<a href="http://www.ibm.com/developerworks/library/ws-resource/ws-basefaults.pdf">spec</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-baseFaults.wsdl">WSDL</a>] [<a href="http://www.ibm.com/developerworks/library/ws-resource/WS-baseFaults.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+ </section>
+ </section>
+
+
+ <section>
+ <title>Web Services Notification</title>
+ <section>
+ <title>Overview</title>
+
+ <p>
+ Web Services Notification (WSN) is a suite of specifications published by the
+ <a href="http://www.oasis-open.org/">OASIS</a>
+ <a href="http://www.oasis-open.org/committees/wsn/">WSN TC</a>.
+ It is comprised of the following specifications:
+ </p>
+
+ <section>
+ <title>WS-BaseNotification</title>
+ <ul>
+ <li>v1.2 draft 3 (June 2004):
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-03.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd">XSD</a>]</li>
+ <li>v1.0 (March 2004):
+ [<a href="ftp://www6.software.ibm.com/software/developer/library/ws-notification/WS-BaseN.pdf">spec</a>]
+ [<a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/WS-BaseN.wsdl">WSDL</a>]
+ [<a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/WS-BaseN.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-Topics</title>
+ <ul>
+ <li>v1.2 draft 1 (June 2004):
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-Topics-1.2-draft-01.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-Topics-1.2-draft-01.xsd">XSD</a>]</li>
+ <li>v1.0 (March 2004):
+ [<a href="ftp://www6.software.ibm.com/software/developer/library/ws-notification/WS-Topics.pdf">spec</a>]
+ [<a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/WS-Topics.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>WS-BrokeredNotification</title>
+ <ul>
+ <li>v1.2 draft 1 (June 2004):
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BrokeredNotification-1.2-draft-01.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BrokeredNotification-1.2-draft-01.wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BrokeredNotification-1.2-draft-01.xsd">XSD</a>] </li>
+ <li>v1.0 (March 2004):
+ [<a href="ftp://www6.software.ibm.com/software/developer/library/ws-notification/WS-BrokeredN.pdf">spec</a>]
+ [<a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/WS-BrokeredN.wsdl">WSDL</a>]
+ [<a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/WS-BrokeredN.xsd">XSD</a>]</li>
+ </ul>
+ </section>
+
+ </section>
+ </section>
+
+
+ <section>
+ <title>Web Services Distributed Management</title>
+ <section>
+ <title>Overview</title>
+ <p>
+ The OASIS <a href="http://www.oasis-open.org/committees/wsdm/">Web Services Distributed Management (WSDM) TC</a>
+ is chartered with defining Web services management. The TC produces two specifications:
+ </p>
+ <section>
+ <title>Management <em>using</em> Web Services (MUWS)</title>
+ <ul>
+ <li>v1.0, Part 1 (OASIS Standard, 2005-04-09):
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/wsdm-muws-part1-1.0.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part1.xsd">XSD</a>]</li>
+ <li>v1.0, Part 2 (OASIS Standard, 2005-04-09):
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/wsdm-muws-part2-1.0.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part2.wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-part2.xsd">XSD</a>]</li>
+ <li>v0.5 (Committee Draft, 2004-04-02):
+ [<a href="http://www.oasis-open.org/committees/download.php/6234/cd-wsdm-muws-0.5.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/04/muws-0.5/wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/04/muws-0.5/schema">XSD</a>]</li>
+ </ul>
+ </section>
+ <section>
+ <title>Management <em>of</em> Web Services (MOWS)</title>
+ <ul>
+ <li>v1.0 (OASIS Standard, 2005-04-09):
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/wsdm-mows-1.0.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/mows/wsdm-mows.wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/12/mows/wsdm-mows.xsd">XSD</a>]</li>
+ <li>v0.5 (Committee Draft, 2004-04-02):
+ [<a href="http://www.oasis-open.org/apps/org/workgroup/wsdm/download.php/6255/cd-wsdm-mows-0.5-20040402.pdf">spec</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/04/mows-0.5/wsdl">WSDL</a>]
+ [<a href="http://docs.oasis-open.org/wsdm/2004/04/mows-0.5/schema">XSD</a>]</li>
+ </ul>
+ </section>
+ <p/>
+ <p>
+ Of the two, MUWS is the core specification (i.e. MOWS is essentially a domain-specific application of MUWS:
+ management of web services, using Web services).
+ </p>
+ </section>
+ </section>
+ <section>
+ <title>Related Specifications</title>
+ <p>
+ MUWS leverages and builds upon several other Web services specifications:
+ </p>
+ <ul>
+ <li><a href="http://devresource.hp.com/drc/specifications/wsrf/index.jsp#framespecs">HP's WSRF Site</a></li>
+ <li><a href="http://www.globus.org/wsrf/">Globus' WSRF Site</a></li>
+ <li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-resource/">IBM's WSRF Site</a></li>
+ <li><a href="http://devresource.hp.com/drc/specifications/wsn/index.jsp#framespecs">HP's WSN Site</a></li>
+ <li><a href="http://www.globus.org/wsrf/">Globus' WSRF/WSN Site</a></li>
+ <li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-notification/">IBM's WSN Site</a></li>
+ <li>W3C <a href="http://www.w3.org/2002/ws/addr/">WS-Addressing</a>
+ </li>
+ <li>OASIS <a href="http://ws.apache.org/wsrf/wsrf.html">WS-ResourceFramework (WSRF)</a> suite of specifications</li>
+ <li>OASIS <a href="http://ws.apache.org/pubscribe/wsn.html">WS-Notification (WSN)</a> suite of specifications</li>
+ </ul>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/client.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/client.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/client.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/client.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>SOAP Client</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>Pubscribe includes a lightweight SOAP client that can be used to test your services. The client is invoked using an Ant script, which is located in
+ <code>INSTALL_DIR/template/soapclient.xml</code>. Request and response messages are viewed in the Ant output. This section explains how to use the client and
+ how to build request SOAP messages for the client.</p>
+ </section>
+ <section>
+ <title>SOAP Files</title>
+ <p>The client reads a <code>.soap</code> file which contains the SOAP envelope to be sent. Examples of SOAP files are located in
+ <code>INSTALL_DIR/examples/filesystem/requests/</code>. Each file is named appropriately based on the operation it contains. Use these files as models when
+ creating your own .soap files. Make sure you modify the resource identifier in the WS-Addressing header to match the entry that is in the JNDI
+ configuration file and the resource id for the instance you would like to invoke. The id is used by the invocation framework to lookup a particular resource instance.</p>
+ </section>
+ <section>
+ <title>Running the Client</title>
+ <p>To invoke the script:</p>
+ <ol>
+ <li>Make sure your WS Resource is deployed.</li>
+ <li>open a command prompt and change directories to <code>INSTALL_DIR/template/soapclient.xml</code>.</li>
+ <li>Run:
+ <source>ant -f soapclient.xml sendRequest -Durl=http://localhost:8080/pubscribe/services/<em>your_service</em> -Dxml=./requests/Subscribe_updateMountPointProp.soap</source>
+ <p>Where <em>your_service</em> represents your WS Resource endpoint name, and the script name should be the name (including the path) of your .soap file.
+ </p>
+ </li>
+ </ol>
+ <note>You can add an entry to <code>build.properties</code> for the <code>url</code> property, which alleviates the need
+ to specify it on the command line.</note>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/consumer.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/consumer.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/consumer.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/consumer.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Notification Consumer</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>This section provides instructions for creating a notification consumer resource. A service that acts as a notification consumer (implements the WSN
+ <code>NotificationConsumer</code> portType) can receive SOAP notification messages sent by a notification producer. The consumer
+ only receives messages for notifications to which it is subscribed.
+ </p>
+ <p>The Wsdl2Java tool generates the same artifacts for a notification consumer as it does for a notification producer. In particular, the service, resource, and home class are
+ generated but need to be modified specifically for your consumer. The topics in this section describe how to modify these classes. An example notification consumer that works together
+ with the filesystem example is provided in the <code>INSTALL_DIR/examples/consumer</code> and discussed below. Initially, you should model your consumer based on the example to
+ ensure that you write a valid consumer.
+ </p>
+ <note>A consumer WSDL must implement the <code>Notify</code> operation from the <code>NotificationConsumer</code> portType. If you use the
+ <code>INSTALL_DIR/template/_TEMPLATE_.wsdl</code> to create the WSDL, this operation is included and only needs to be uncommented. A WSDL is included in the consumer
+ example. To use this example, run the Wsdl2Java tool on the WSDL.
+ </note>
+ </section>
+ <section>
+ <title>Modify the Service Class</title>
+ <p>An abstract method <code>Notify</code> is generated in the abstractService class an needs to be implemented in your service class. The implementation of the method is dependant
+ on whatever features you want to include for your consumer. In the consumer example, a property is used to retrieve the last notification message. In
+ this case, the <code>notify</code> method will allow a JSP page to retrieve and display the current notification message. Notice that the service class is also used to
+ setup and initialize the <code>LASTMESSAGE</code> resource property. Therefore, the the resource class will not need to perform these operations. The method is implemented as
+ follows:</p>
+ <source>
+public void notify(org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.NotifyDocument notifyDocument)
+ {
+ //get the property set
+ org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = ((org.apache.ws.resource.PropertiesResource)getResource()).getResourcePropertySet();
+
+ //get the property
+ org.apache.ws.resource.properties.ResourceProperty resourceProperty = resourcePropertySet.get(ConsumerPropertyQNames.LASTMESSAGE);
+ resourceProperty.clear();//clear old notifs
+
+ //add the new entry
+ //build the LastMessage type for updating this resoruce property
+ LastMessageDocument lastMessageDocument = LastMessageDocument.Factory.newInstance();
+ org.apache.ws.resource.example.notifConsumer.LastMessageType lastMessageType = lastMessageDocument.addNewLastMessage();
+ lastMessageType.setOccurred(java.util.Calendar.getInstance());
+ org.apache.xmlbeans.XmlObject lastMessageNotif = lastMessageType.addNewNotification();
+ org.apache.ws.util.XmlBeanUtils.addChildElement(lastMessageNotif, notifyDocument);
+
+ //add the LastMessageDocument to the resource property
+ resourceProperty.add(lastMessageDocument);
+ }</source>
+ </section>
+ <section>
+ <title>Modify the Resource Class</title>
+ <p>The resource class is used to setup and initialize any resource properties. For the consumer example, the resource class is not used to setup and initialize the
+ <code>LASTMESSAGE</code> resource property, but instead the service class is used to perform these operations. If you choose to use the resource class, you should
+ update the <code>init()</code> method to add your properties to the <code>ResourcePropertySet</code>. The following sample code
+ is required for the consumer example. Below the consumer example code is an example of setting up and initializing resource properties in the resource class.
+ </p>
+ <source>
+public void init()
+ {
+ super.init();
+ }
+ </source>
+ <p>Generic example of setting and initialing resource properties.</p>
+ <source>
+public void init()
+ {
+ super.init();
+
+ /**
+ * The ResourcePropertySet which contains all the defined ResourceProperties
+ */
+ org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = getResourcePropertySet();
+ org.apache.ws.resource.properties.ResourceProperty resourceProperty = null;
+
+
+ try{
+ // init the {http://ws.apache.org/resource/example/NotifConsumer}YourResourceProperty Property
+ resourceProperty = resourcePropertySet.get(ConsumerPortPropertyQNames.YourResourceProperty);
+
+ }
+ catch (Exception e)
+ {
+ throw new javax.xml.rpc.JAXRPCException("There was a problem in initializing your resource properties. Please check your init() method. Cause: " + e.getLocalizedMessage());
+ }
+} </source>
+ </section>
+ <section>
+ <title>Modify the Home Class</title>
+ <p>The home class is used to lookup the resource instance. It can act as a factory for creating instances upon request, or build all instances. It is meant to be the entry point for
+ locating a resource instance. For the consumer example the <code>init()</code> method is modified to get an instance of the consumer resource. The resource is a singleton
+ and therfore only requires a single instance. For more information on creating a singleton, see the <a href="site:single">Creating a Singleton Service</a> in the Apache WSRF
+ documentation.
+ </p>
+ <source>
+ public void init() throws Exception
+ {
+ super.init();
+ add( createInstance( null ) );
+ }</source>
+ <note>At runtime, a client for the consumer must use the EPR to access the consumer resource. The EPR is returned by the notification producer when you subscribe to a
+ notification topic.
+ </note>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/debug.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/debug.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/debug.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/debug.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Logging</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>Pubscribe uses the Apache Commons Logging Framework with Log4j as the underlying logging system. You can configure Log4j using the log4j.properties
+ file. This includes changing log levels or where the output is emitted (e.g. stdout, log file, etc...). The properties file is located in the Pubscribe Web application in
+ the WEB-INF/classes directory.
+ </p>
+ </section>
+ <section>
+ <title>Changing Log Levels</title>
+ <p>Log4j uses the following log levels: DEBUG, INFO, WARN, ERROR, and FATAL. By default, Apache WSRF is configured at the INFO level, which means messages logged
+ at INFO or higher level (i.e. INFO, WARN, ERROR, and FATAL) are included in the output. To see more detailed log messages, you must change the log level.
+ The following example assumes Tomcat.
+ </p>
+ <p>To change the logging level:</p>
+ <ol>
+ <li>Using a text editor, open the log4j.properties file located in the WEB-INF/classes directory of the deployed Pubscribe Web application.</li>
+ <li>Change the log level associated with all classes below the <code>log4j.category.org.apache.ws</code> package. For example:<source>
+log4j.category.org.apache.ws=DEBUG</source>
+ </li>
+ <li>Save the log4j.properties file.</li>
+ <li>Restart Tomcat.
+ <note>Log messages are displayed in Tomcat's standard output. If you are not using Tomcat, you may need to configure your Web container to include the output
+ in its standard output.</note>
+ </li>
+ </ol>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/deploy.xml
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/deploy.xml?rev=412194&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/deploy.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/pubscribe/dev_guide/deploy.xml Tue Jun 6 12:12:37 2006
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Deploy the service to the Pubscribe Web Application</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>The quickest way to deploy your WS Resource is to use the generated build scripts. The scripts compile and delploy your WS
+ Resource to the Pubscribe Web application, which is an Apache-Axis Web application. This section describes how to use the
+ generated build scripts and also how the script works so you can build your own scripts.</p>
+ </section>
+ <section>
+ <title>Using the generated build scripts</title>
+ <p>The Wsdl2Java tool generates an Ant build script that is used to compile and deploy your WS Resource. The script is located in the
+ output directory under the subdirectory for you WS Resource (e.g., <code>generated/</code>
+ <em>
+ <code>service_name</code>
+ </em>).</p>
+ <p>To compile and deploy using the Ant script</p>
+ <ol>
+ <li>In your output directory, edit build.properties and modify the <code>pubscribe.webapp.dir</code>. If you are using
+ Tomcat and have <code>CATALINA_HOME</code> set, you do not need to modify this property.</li>
+ <li>From a command prompt, change directories to <code>generated/</code>
+ <em>
+ <code>service_name</code>
+ </em>
+ </li>
+ <li>Run:</li>
+ </ol>
+ <source><![CDATA[
+ ant compile deploy ]]></source>
+ <p>Start Tomcat and verify that the service is deployed by going to
+ <a href="http://localhost:8080/pubscribe/services">http://localhost:8080/pubscribe/services</a>
+ </p>
+ </section>
+ <section id="steps">
+ <title>Manually Deploying your Service</title>
+ <p>In this section we will describe how to manually deploy your service. We will describe each step in the process.</p>
+ <ol>
+ <li>
+ <strong>Copy your WSDL file.</strong>
+ <p>Your WSDL file needs to be copied to an appropriate location in the webapp. We recommend you put it in the
+ <code>pubscribe/WEB-INF/classes/wsdl</code> directory. This allows Axis to reference it from the classpath and avoids the need to
+ hard-code a location on your file system. This location is used when registering the service in the
+ <code>server-config.wsdd</code> file.
+ </p>
+ </li>
+ <li>
+ <strong>Copy your classes.</strong>
+ <p>You will need to copy any .class files, generated by Wsdl2Java or hand written, to the <code>pubscribe/WEB-INF/classes/</code> directory so that your service
+ can be created by Axis and Pubscribe.</p>
+ </li>
+ <li>
+ <strong>Update the jndi-config.xml file.</strong>
+ <p>The jndi-config.xml contains information about your service, resource, home and resource key. This information is necessary for
+ Pubscribe to create your home and handle requests for your service. It will setup the in-memory JNDI context for your classes.
+ Here is the entry that was used for the FileSystem example:</p>
+ <source><![CDATA[ <service name="filesystem">
+ <resource name="home" type="example.filesystem.FileSystemHome">
+ <resourceParams>
+ <parameter>
+ <name>baseWebappUrl</name>
+ <value>http://$IP_ADDRESS$:8080/pubscribe</value>
+ </parameter>
+ <parameter>
+ <name>serviceClassName</name>
+ <value>example.filesystem.FileSystemService</value>
+ </parameter>
+ <parameter>
+ <name>resourceClassName</name>
+ <value>example.filesystem.FileSystemResource</value>
+ </parameter>
+ <parameter>
+ <name>wsdlTargetNamespace</name>
+ <value>http://ws.apache.org/resource/example/filesystem</value>
+ </parameter>
+ <parameter>
+ <name>resourceIdentifierReferenceParameterName</name>
+ <value>{http://ws.apache.org/resource/example/filesystem}ResourceIdentifier</value>
+ </parameter>
+ </resourceParams>
+ </resource>
+ </service>]]></source>
+ <p>The<code> name</code> attribute is a unique name in the config file to denote your service in JNDI. The resource "name" attribute is used for locating your home
+ instance, and is named <code>home</code>. Notice <code>serviceClassName</code> points to the clasname for the service class. The same is said for the
+ <code>resourceClassName</code>. The <code>wsdlTargetNamespace </code> is the target namespace from your WSDL.
+ </p>
+ <p>The <code>baseWebappUrl</code> parameter is used to define the URL of your Web application. You can include a static host, or as an
+ alternative, you can use the following markers which are replaced at runtime:
+ </p>
+ <ul>
+ <li>
+ <code>$IP_ADDRESS$</code> - An attempt is made to determine the IP address at runtime. (Do not use on multi-homed systems).</li>
+ <li>
+ <code>$HOST_NAME$</code> - An attempt is made to determine the host name at runtime.</li>
+ </ul>
+ <p>The <code>resourceIdentifierReferenceParameterName</code> parameter represents the name of the WS-Addressing-header that is used to
+ extract a unique resource identifier to lookup a specific WS-Resource instance. This value should be a QName that includes the local
+ reference parameter name in the format <em><code>{namespaceURI}localPart</code></em>, where namesapaceURI and localPart are the namespace and URI and local
+ part of the qualified name of the reference paramater that should contain the resource identifier. If you omit this entry, it is assumed that the service is a
+ <strong><code>SINGLETON</code></strong> service and no resource id is expected in the
+ WS-Addressing headers.
+ </p>
+ </li>
+ <li>
+ <strong>Update the server-config.wsdd file</strong>
+ <p>The <code>server-config.wsdd</code> file is the configuration file for the Axis SOAP engine,
+ which is bundled with Pubscribe. This file is located in the <code>pubscribe/WEB-INF/</code> directory.
+ See the <a href="ext:ws.apache.org/axis">Axis</a> documentation for complete instructions about <code>server-config.wsdd</code>
+ </p>
+ <p>The file contains a deployment entry for each Web service. For example, the FileSystem service example is:
+ </p>
+ <source><![CDATA[ <service name="filesystem" provider="java:WSRF" style="document" use="literal">
+ <wsdlFile>/wsdl/FileSystem.wsdl</wsdlFile>
+ <requestFlow>
+ <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
+ <parameter name="className" value="org.apache.axis.message.addressing.handler.AxisServerSideAddressingHandler"/>
+ <parameter name="referencePropertyNames" value="*"/>
+ </handler>
+ </requestFlow>
+ </service>]]></source>
+ <p>The service <code>name</code> attribute is the endpoint name and should be the same as the port's <code>name</code> attribute
+ from your WSDL file. This will ensure people consuming your WSDL will be able to invoke your service.
+ </p>
+ <p>Notice the entry for <code>wsdlFile</code> which points to the <code>/wsdl/FileSystem.wsdl</code>.
+ This translates to the wsdl directory under the <code>WEB-INF/classes</code> directory.
+ </p>
+ <p>The last part is the <code>requestFlow</code>. This xml fragment is necessary to ensure the
+ requests are routed through the WS-Addressing handler. This is static and should
+ always be present. We did not define it globally in case there were other services
+ defined which will not use WS-Addressing.
+ </p>
+ </li>
+ </ol>
+ </section>
+ </body>
+</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-commits-help@ws.apache.org