You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-commits@ws.apache.org by sc...@apache.org on 2005/10/19 20:40:49 UTC
svn commit: r326642 - in /webservices/wsrf/trunk/src/java/org/apache/ws:
resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
util/jndi/tools/MetadataConfigImpl.java
Author: scamp
Date: Wed Oct 19 11:40:46 2005
New Revision: 326642
URL: http://svn.apache.org/viewcvs?rev=326642&view=rev
Log: (empty)
Modified:
webservices/wsrf/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/MetadataConfigImpl.java
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java?rev=326642&r1=326641&r2=326642&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java Wed Oct 19 11:40:46 2005
@@ -26,6 +26,7 @@
import org.apache.ws.resource.AbstractPortType;
import org.apache.ws.resource.NamespaceVersionHolder;
import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.faults.FaultException;
import org.apache.ws.resource.metadataexchange.v2004_09.MetadataExchangeConstants;
import org.apache.ws.resource.metadataexchange.v2004_09.porttype.MetadataExchangePortType;
import org.apache.ws.resource.properties.v2004_11.impl.NamespaceVersionHolderImpl;
@@ -73,12 +74,14 @@
*/
public MetadataDocument getMetadata(GetMetadataDocument request) {
MetadataConfigImpl metadataConfig = getResourceContext().getResourceHome().getMetadataConfig();
-
+
// prep the response
MetadataDocument responseDoc = createMetadataResponseDoc();
MetadataDocument.Metadata responseMetadata = responseDoc
.addNewMetadata();
+ if(metadataConfig != null)
+ {
// get the values from the request
GetMetadataDocument.GetMetadata requestMetadata = request
.getGetMetadata();
@@ -125,7 +128,7 @@
}
}
}
-
+ }
getResourceContext().setResponseAction(
URI.create(MetadataExchangeConstants.ACTION_GETMETADATA_RESPONSE));
return responseDoc;
@@ -140,6 +143,8 @@
AnyXmlType anyXmlType = AnyXmlType.Factory.newInstance();
MetadataConfigImpl metadataConfig = getResourceContext().getResourceHome().getMetadataConfig();
+ if(metadataConfig != null)
+ {
// get all the registered metadata
List allMetadata = metadataConfig.getAllMetadata();
Iterator iterator = allMetadata.iterator();
@@ -175,7 +180,7 @@
XmlBeanUtils.addChildElement(anyXmlType, (XmlObject) metadata);
}
-
+ }
getResourceContext().setResponseAction(
URI.create(MetadataExchangeConstants.ACTION_GET_RESPONSE));
return anyXmlType;
@@ -190,16 +195,6 @@
return NAMESPACE_SET;
}
- /**
- * Returns the JNDI Contrext name for looking up the metadata
- *
- * @return
- */
- private String getMetadataJndiContextName() {
- return org.apache.ws.resource.JndiConstants.CONTEXT_NAME_SERVICES + "/"
- + getResourceContext().getServiceName() + "/"
- + org.apache.ws.resource.JndiConstants.ATOMIC_METADATA_CONTEXT;
- }
/**
* Builds a SOAP Envelope based on the EPR and makes a request to retrieve
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/MetadataConfigImpl.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/MetadataConfigImpl.java?rev=326642&r1=326641&r2=326642&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/MetadataConfigImpl.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/MetadataConfigImpl.java Wed Oct 19 11:40:46 2005
@@ -17,6 +17,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -25,157 +26,159 @@
/**
* A config object to represent the MetadataExchange information from the
- * jndi-config.xml config file.
- * <p/>
- * This class will store any "loadable" metadata documents, this will avoid
- * unnecessary loading of files.
- *
+ * jndi-config.xml config file. <p/> This class will store any "loadable"
+ * metadata documents, this will avoid unnecessary loading of files.
+ *
* @author Sal Campana
*/
-public class MetadataConfigImpl
-{
- private static final Log LOG = LogFactory.getLog( MetadataConfigImpl.class );
-
- /**
- * Internal Map for storing metatdata.
- *
- * The map will have the structure of:
- *
- * key=dialect
- * value=Map (dialect-specific Map)
- *
- * The dialect-specific Map will have the structure:
- *
- * Two Entries:
- * key= IDENTIFIER_MAP
- * value= A Map keyed on Identifier keyed-to the metatdata
- *
- * key= COMPLETE_METADATA_LIST
- * value= A List containing ALL metadata given this dialect (this includes all entries from IDENTIFIER_MAP)
- *
- **/
- private Map m_dialectToMetadataListMap = new HashMap( );
-
- private List m_metadataList = new ArrayList( );
-
- /**
- * Creates a new {@link MetadataConfigImpl} object.
- *
- * @param metadata DOCUMENT_ME
- */
- public MetadataConfigImpl( List metadataEntryList )
- {
- m_metadataList = metadataEntryList;
- loadMetadata( );
- }
-
- public void addMetadataEntry( MetadataEntry metadataEntry )
- {
- m_metadataList.add( metadataEntry );
- addToMetadataMap( metadataEntry );
- }
-
- /**
- * Returns all known metadata for all dialects.
- *
- * @return A list of all metadata
- */
- public List getAllMetadata( )
- {
- return m_metadataList;
- }
-
- /**
- * Returns the metadata given a dialect and an identifier.
- *
- * @param dialect
- * @param identifierUri
- * @return A Map keyed on dialect keyed-to a List of metadata
- */
- public Map getMetadata( String dialect,
- String identifierUri )
- {
- Map results = new HashMap( );
- if ( ( dialect != null ) && !"".equals( dialect ) ) //only get metatdata for specific dialect
- {
- Map dialectMap = (Map) m_dialectToMetadataListMap.get( dialect );
- if ( dialectMap != null )
- {
- if ( identifierUri != null )
- {
- Object metatdata = dialectMap.get(identifierUri);
- if ( metatdata != null )
- {
- List list = new ArrayList( );
- list.add( metatdata );
- results.put( dialect, list );
- }
- }
- else
- {
- //based on dialect get all entries
- results.put( dialect, new ArrayList(dialectMap.values()) );
- }
- }
- }
-
- return results;
- }
-
- /**
- * Returns metadata based on dialect
- *
- * @param dialect
- * @return A Map keyed on dialect keyed-to a List of metadata
- */
- public Map getMetadata( String dialect )
- {
- return getMetadata( dialect, null );
- }
-
- /**
- * Adds the parsed-in metadata to the undelying lookup structures.
- *
- * precondition: The structures have already been setup for the metadata
- *
- * @param dialect
- * @param identifier
- * @param metadata The "parsed" metadata (could be XmlObject, MetadataReference or Location )
- */
- protected void addToMetadataMap( MetadataEntry metadataEntry )
- {
- String dialect = metadataEntry.getDialect();
- String identifier = metadataEntry.getIdentifier();
- Map dialectMap = (Map) m_dialectToMetadataListMap.get( dialect );
- if ( dialectMap == null )
- {
- //build the entries for the maps
- dialectMap = new HashMap( );
- m_dialectToMetadataListMap.put( dialect, dialectMap ); //add to metadatamap
-
- }
- //if there is an identifier then the metadata is registered with it
- //else it only lives in the list of all metadata
- if ( ( identifier != null ) && !"".equals( identifier ) )
- {
- dialectMap.put( identifier, metadataEntry );
- }
- }
-
- /**
- * Loads up lookup structures with the metadata.
- *
- * This method initializes a Map for a given dialect if it doesn't already exist. The Map is keyed using
- * 2 constants for pulling a map of identifiers->metatada AND a List of all metatdata.
- */
- private synchronized void loadMetadata( )
- {
- for ( int i = 0; i < m_metadataList.size(); i++ )
- {
- MetadataEntry metadataEntry = (MetadataEntry) m_metadataList.get( i );
- addToMetadataMap( metadataEntry );
- }
- }
+public class MetadataConfigImpl {
+ private static final Log LOG = LogFactory.getLog(MetadataConfigImpl.class);
-}
+ /**
+ * Internal Map for storing metatdata.
+ *
+ * The map will have the structure of:
+ *
+ * key=dialect value=Map (dialect-specific Map)
+ *
+ * The dialect-specific Map will have the structure:
+ *
+ * Two Entries: key= IDENTIFIER_MAP value= A Map keyed on Identifier
+ * keyed-to the metatdata
+ *
+ * key= COMPLETE_METADATA_LIST value= A List containing ALL metadata given
+ * this dialect (this includes all entries from IDENTIFIER_MAP)
+ *
+ */
+ private Map m_dialectToMetadataListMap = new HashMap();
+
+ private List m_metadataList = new ArrayList();
+
+ /**
+ * Creates a new {@link MetadataConfigImpl} object.
+ *
+ * @param metadata
+ * DOCUMENT_ME
+ */
+ public MetadataConfigImpl(List metadataEntryList) {
+ m_metadataList = metadataEntryList;
+ loadMetadata();
+ }
+
+ public void addMetadataEntry(MetadataEntry metadataEntry) {
+ m_metadataList.add(metadataEntry);
+ addToMetadataMap(metadataEntry);
+ }
+
+ /**
+ * Returns all known metadata for all dialects.
+ *
+ * @return A list of all metadata
+ */
+ public List getAllMetadata() {
+ return m_metadataList;
+ }
+
+ /**
+ * Returns the metadata given a dialect and an identifier.
+ *
+ * @param dialect
+ * @param identifierUri
+ * @return A Map keyed on dialect keyed-to a List of metadata
+ */
+ public Map getMetadata(String dialect, String identifierUri) {
+ Map results = new HashMap();
+ if ((dialect != null) && !"".equals(dialect)) // only get metatdata
+ // for specific dialect
+ {
+ Map dialectMap = (Map) m_dialectToMetadataListMap.get(dialect);
+ if (dialectMap != null) {
+ if (identifierUri != null) {
+ Object metatdata = dialectMap.get(identifierUri);
+ if (metatdata != null) {
+ List list = new ArrayList();
+ list.add(metatdata);
+ results.put(dialect, list);
+ }
+ } else {
+ // based on dialect get all entries
+ results.put(dialect, new ArrayList(dialectMap.values()));
+ }
+ }
+ }
+ // if dialect was not defined then they are saying "send all!"
+ else {
+ return buildDialectToListMap();
+ }
+ return results;
+ }
+
+ private Map buildDialectToListMap() {
+ Map dialectToMetadataList = new HashMap();
+
+ Iterator iter = m_dialectToMetadataListMap.keySet().iterator();
+ while (iter.hasNext()) {
+ String dialect = (String) iter.next();
+ Map identifierMap = (Map) m_dialectToMetadataListMap.get(dialect);
+ dialectToMetadataList.put(dialect, new ArrayList(identifierMap
+ .values()));
+ }
+ return dialectToMetadataList;
+ }
+
+ /**
+ * Returns metadata based on dialect
+ *
+ * @param dialect
+ * @return A Map keyed on dialect keyed-to a List of metadata
+ */
+ public Map getMetadata(String dialect) {
+ return getMetadata(dialect, null);
+ }
+
+ /**
+ * Adds the parsed-in metadata to the undelying lookup structures.
+ *
+ * precondition: The structures have already been setup for the metadata
+ *
+ * @param dialect
+ * @param identifier
+ * @param metadata
+ * The "parsed" metadata (could be XmlObject, MetadataReference
+ * or Location )
+ */
+ protected void addToMetadataMap(MetadataEntry metadataEntry) {
+ String dialect = metadataEntry.getDialect();
+ String identifier = metadataEntry.getIdentifier();
+ Map dialectIdentifierMap = (Map) m_dialectToMetadataListMap
+ .get(dialect);
+ if (dialectIdentifierMap == null) {
+ // build the entries for the maps
+ dialectIdentifierMap = new HashMap();
+ m_dialectToMetadataListMap.put(dialect, dialectIdentifierMap); // add
+ // to
+ // metadatamap
+
+ }
+ // if there is an identifier then the metadata is registered with it
+ // else it only lives in the list of all metadata
+ if ((identifier != null) && !"".equals(identifier)) {
+ dialectIdentifierMap.put(identifier, metadataEntry);
+ }
+ }
+
+ /**
+ * Loads up lookup structures with the metadata.
+ *
+ * This method initializes a Map for a given dialect if it doesn't already
+ * exist. The Map is keyed using 2 constants for pulling a map of
+ * identifiers->metatada AND a List of all metatdata.
+ */
+ private synchronized void loadMetadata() {
+ for (int i = 0; i < m_metadataList.size(); i++) {
+ MetadataEntry metadataEntry = (MetadataEntry) m_metadataList.get(i);
+ addToMetadataMap(metadataEntry);
+ }
+ }
+}