
(object Petal
    version    	50
    _written   	"Rose 8.3.0407.2800"
    charSet    	0)

(object Class_Category "jca"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.jst.j2ee"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"nsURI"
	    value      	(value Text "jca.xmi"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"prefix"
	    value      	(value Text "Jca")))
    quid       	"3C60904200BB"
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "Connector"
	    quid       	"3C609091010F"
	    documentation 	
|The connector element is the root element of the deployment descriptor for the resource adapter. This element includes general information - vendor name, version, specification version supported, icon -  about the resource adapter module. It also includes information specific to the implementation of the resource adapter library as specified through the element resourceadapter.
|
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"4023B0790134"
		    supplier   	"Logical View::common::CompatibilityDescriptionGroup"
		    quidu      	"4023ADF20197"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "vendorName"
		    quid       	"3C6090F3021E"
		    documentation 	
|Specifies the name of resource adapter provider vendor.
|Example: Wombat Corp.
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "specVersion"
		    quid       	"3C6090FC019F"
		    documentation 	
|Specifies the version of the connector architecture specification that is supported by this resource adapter. This information enables deployer to configure the resource adapter to support deployment and runtime requirements of the corresponding connector architecture specification.
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "eisType"
		    quid       	"3C6091000123"
		    documentation 	
|Contains information about the type of the EIS. For example, the type of an EIS can be product name of EIS independent of any version info.
|
|This helps in identifying EIS instances that can be used with
|this resource adapter.
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "version"
		    quid       	"3C609106010D"
		    documentation 	
|Specifies a string-based version of the resource adapter from the resource adapter provider.
|
|Example: 1.5
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "ResourceAdapter"
	    quid       	"3C60912A02A9"
	    documentation 	
|Specifies information about the resource adapter. The information includes fully-qualified names of class/interfaces required as part of the connector architecture specified contracts, level of transaction support provided, configurable properties for ManagedConnectionFactory instances, one or more authentication mechanisms supported and additional
|required security permissions.
|
|If there is no authentication-mechanism specified as part of
|resource adapter element then the resource adapter does not
|support any standard security authentication mechanisms as part
|of security contract. The application server ignores the security
|part of the system contracts in this case.
|
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "managedConnectionFactoryClass"
		    quid       	"3C60936003DA"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.connectionDefinitions.managedConnectionFactoryClass
|Specifies the fully qualified name of the Java class that implements the javax.resource.spi.Managed-ConnectionFactory interface. This Java class is provided as part of resource adapter's implementation of connector architecture specified contracts.
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionFactoryInterface"
		    quid       	"3C60936C00C0"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.connectionDefinitions.connectionFactoryInterface
|Specifies the fully-qualified name of the ConnectionFactory interface supported by the resource adapter.
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionFactoryImplClass"
		    quid       	"3C609375013B"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.connectionDefinitions.connectionFactoryImplClass
|Specifies the fully-qualified name of the ConnectionFactory class that implements resource adapter specific ConnectionFactory interface.
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionInterface"
		    quid       	"3C60937E021A"
		    documentation 	"@version J2EE1.4 deprecated, becomes outboundResourceAdapter.connectionDefinitions.connectionInterface"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionImplClass"
		    quid       	"3C60939503D6"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.connectionDefinitions.connectionImplClass
|Specifies the fully-qualified name of the Connection interface supported by the resource adapter.
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "transactionSupport"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3C60939F03DA"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.transactionSupport
|The transaction-support element specifies the level of transaction
|support provided by the resource adapter.
|The value of transaction-support must be one of the following:
|  NoTransaction
|  LocalTransaction
|  XATransaction
		    
		    type       	"TransactionSupportKind"
		    quidu      	"3C6098C80394"
		    exportControl 	"Public")
		(object ClassAttribute "reauthenticationSupport"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3C6093A8031F"
		    documentation 	
|@version J2EE1.4 deprecated, becomes outboundResourceAdapter.reauthenticationSupport
|Specifies whether the resource adapter implementation supports re-authentication of existing Managed-Connection instance. Note that this information is for the resource adapter implementation and not for the underlying EIS instance.
		    
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "resourceAdapterClass"
		    quid       	"3E4AAD3302DC"
		    documentation 	
|The element resourceadapter-class specifies the
|        fully qualified name of a Java class that implements
|        the javax.resource.spi.ResourceAdapter
|        interface. This Java class is provided as part of
|        resource adapter's implementation of connector
|        architecture specified contracts. The implementation
|        of this class is required to be a JavaBean.
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "AuthenticationMechanism"
	    quid       	"3C60914003CE"
	    documentation 	
|The element authentication-mechanism specifies an authentication mechanism supported by the resource adapter. Note that this support is for the resource adapter and not for the underlying EIS instance. The optional description specifies any resource adapter specific requirement for the support of security contract and authentication mechanism.
|
|Note that BasicPassword mechanism type should support the
|javax.resource.spi.security.PasswordCredential interface.
|The Kerbv5 mechanism type should support the
|javax.resource.spi.security.GenericCredential interface.
|
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "description"
		    quid       	"3C6091760371"
		    documentation 	"@version J2EE1.4 deprecated, becomes descriptions"
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "authenticationMechanism"
		    quid       	"3E4AA98F0368"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "authenticationMechanismType"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3C6091820057"
		    documentation 	
|@deprecated See authenticationMechanism
|
|The authentication-mechanism-type specifies type of an authentication mechanism.
|
|The example values are:
|  - BasicPassword
|  - Kerbv5
|
|Any additional security mechanisms are outside the scope of the
|Connector architecture specification.
|
		    
		    type       	"AuthenticationMechanismType"
		    quidu      	"3C6091C302A9"
		    exportControl 	"Public")
		(object ClassAttribute "credentialInterface"
		    quid       	"3C6091AA0380"
		    documentation 	
|Specifies the interface that the resource adapter implementation supports for the representation of the credentials. This element should be used by application server to find out the Credential interface it should use as part of the security contract.
|
|The possible values are:
|   javax.resource.spi.security.PasswordCredential
|   javax.resource.spi.security.GenericCredential
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "customAuthMechType"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE))
		    quid       	"3D99E208038A"
		    documentation 	
|@deprecated
|This is an internal variable used to store the AthenticationMechanismType when it is something other than BasicPassword or Kerbv5.  AuthenticationMecanismType is set to 'Custom' in those cases.  This attribute should not be used by runtime.  It is only used by the writer to write back out the custom AuthenticationMechanismType string in the case of custom AuthenticationMechanismType's.  
|This variable is internal, used only by the reader/writer classes, and can change or disappear without notice.  
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "AuthenticationMechanismType"
	    quid       	"3C6091C302A9"
	    documentation 	
|@version J2EE1.4
|BasicPassword=0
|Kerbv5=1
	    
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "BasicPassword"
		    quid       	"3C6091D000DC"
		    exportControl 	"Public")
		(object ClassAttribute "Kerbv5"
		    quid       	"3C6091D5011F"
		    exportControl 	"Public")))
	(object Class "ConfigProperty"
	    quid       	"3C60922C0188"
	    documentation 	
|The config property contains a declaration of a single
|configuration property for a ManagedConnectionFactory instance.
|
|Each ManagedConnectionFactory instance creates connections to a specific EIS instance based on the properties configured on the ManagedConnectionFactory instance. The configurable properties are specified only once in the deployment descriptor, even though a resource adapter can be used to configure multiple ManagedConnnection-Factory instances (that create connections to different instances of the same EIS).
|
|The declaration consists of an optional description, name, type
|and an optional value of the configuration property. If the resource
|adapter provider does not specify a value than the deployer is
|responsible for providing a valid value for a configuration property.
|
|Any bounds or well-defined values of properties should be described in the description.
|
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "description"
		    quid       	"3C60923203B7"
		    documentation 	"@version J2EE1.4 deprecated, becomes descriptions"
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "name"
		    quid       	"3C60923F0199"
		    documentation 	
|Contains the name of a configuration property.
|
|The connector architecture defines a set of well-defined properties all of type java.lang.String. These are as follows:
|
|     ServerName
|     PortNumber
|     UserName
|     Password
|     ConnectionURL
|
|A resource adapter provider can extend this property set to include properties specific to the resource adapter and its underlying EIS.
|
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "type"
		    quid       	"3C6092450198"
		    documentation 	
|Contains the fully qualified Java type of a configuration property as required by ManagedConnection-Factory instance.
|
|The following are the legal values of config-property-type:
|   java.lang.Boolean, java.lang.String, java.lang.Integer,
|   java.lang.Double, java.lang.Byte, java.lang.Short,
|   java.lang.Long, java.lang.Float, java.lang.Character
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "value"
		    quid       	"3C60924802DD"
		    documentation 	
|The element config-property-value contains the value
|        of a configuration entry. Note, it is possible for a
|        resource adapter deployer to override this
|        configuration information during deployment.
|
|        Example:
|        <config-property-value>WombatServer</config-property-value>
		    
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "SecurityPermission"
	    quid       	"3C6093C100F4"
	    documentation 	
|Specifies a security permission that is required by the resource adapter code.
|
|The security permission listed in the deployment descriptor are ones that are different from those required by the default permission set as specified in the connector specification. The optional description can mention specific reason that resource adapter requires a given security permission.
|
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "description"
		    quid       	"3C6097E90162"
		    documentation 	"@version J2EE1.4 deprecated, becomes descriptions"
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "specification"
		    quid       	"3C6097F503CC"
		    documentation 	
|The element permission-spec specifies a security permission based on the Security policy file syntax. 
|
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "License"
	    quid       	"3C609529008E"
	    documentation 	"Specifies licensing requirements for the resource adapter module. Specifies whether a license is required to deploy and use this resource adapter, and an optional description of the licensing terms (examples: duration of license, number of connection restrictions)."
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "description"
		    quid       	"3C60953E0084"
		    documentation 	
|@deprecated Replaced with descriptions
|The description is used to provide text describing the license.
		    
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "required"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3C60959F017E"
		    type       	"boolean"
		    exportControl 	"Public")))
	(object Class "TransactionSupportKind"
	    quid       	"3C6098C80394"
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "NoTransaction"
		    quid       	"3C6098D201FE"
		    exportControl 	"Public")
		(object ClassAttribute "LocalTransaction"
		    quid       	"3C6098D60235"
		    exportControl 	"Public")
		(object ClassAttribute "XATransaction"
		    quid       	"3C6098DB0233"
		    exportControl 	"Public")))
	(object Class "InboundResourceAdapter"
	    quid       	"3E4AA1DD0257"
	    documentation 	
|@version J2EE1.4
|The inbound-resourceadapterType specifies information
|about an inbound resource adapter. This contains information
|specific to the implementation of the resource adapter
|library as specified through the messageadapter element.
	    )
	(object Class "OutboundResourceAdapter"
	    quid       	"3E4AA1E6023C"
	    documentation 	
|@version J2EE1.4
|The outbound-resourceadapterType specifies information about
|an outbound resource adapter. The information includes fully
|qualified names of classes/interfaces required as part of
|the connector architecture specified contracts for
|connection management, level of transaction support
|provided, one or more authentication mechanisms supported
|and additional required security permissions.
|
|If there is no authentication-mechanism specified as part of
|resource adapter element then the resource adapter does not
|support any standard security authentication mechanisms as
|part of security contract. The application server ignores
|the security part of the system contracts in this case.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "reauthenticationSupport"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3E4AA5BA003C"
		    documentation 	
|The element reauthentication-support specifies
|        whether the resource adapter implementation supports
|        re-authentication of existing Managed- Connection
|        instance. Note that this information is for the
|        resource adapter implementation and not for the
|        underlying EIS instance. This element must have
|        either a "true" or "false" value.
		    
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "transactionSupport"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3E4AA862026B"
		    type       	"TransactionSupportKind"
		    quidu      	"3C6098C80394"
		    exportControl 	"Public")))
	(object Class "MessageAdapter"
	    quid       	"3E4AA2D601F1"
	    documentation 	
|@version J2EE1.4
|The messageadapterType specifies information about the
|messaging capabilities of the resource adapter. This
|contains information specific to the implementation of the
|resource adapter library as specified through the
|messagelistener element.
	    )
	(object Class "ConnectionDefinition"
	    quid       	"3E4AA4CF00F2"
	    documentation 	
|@version J2EE1.4
|The connection-definitionType defines a set of connection
|interfaces and classes pertaining to a particular connection
|type. This also includes configurable properties for
|ManagedConnectionFactory instances that may be produced out
|of this set.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "managedConnectionFactoryClass"
		    quid       	"3E4AA6C203AD"
		    documentation 	
|The element managedconnectionfactory-class specifies
|        the fully qualified name of the Java class that
|        implements the
|        javax.resource.spi.ManagedConnectionFactory interface.
|        This Java class is provided as part of resource
|        adapter's implementation of connector architecture
|        specified contracts. The implementation of this
|        class is required to be a JavaBean.
|
|        Example:
|        <managedconnectionfactory-class>
|            com.wombat.ManagedConnectionFactoryImpl
|        </managedconnectionfactory-class>
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionFactoryInterface"
		    quid       	"3E4AA7480388"
		    documentation 	
|The element connectionfactory-interface specifies
|        the fully qualified name of the ConnectionFactory
|        interface supported by the resource adapter.
|
|        Example:
|        <connectionfactory-interface>com.wombat.ConnectionFactory
|        </connectionfactory-interface>
|
|        OR
|
|        <connectionfactory-interface>javax.resource.cci.ConnectionFactory
|        </connectionfactory-interface>
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionFactoryImplClass"
		    quid       	"3E4AA7500180"
		    documentation 	
|The element connectionfactory-impl-class specifies
|        the fully qualified name of the ConnectionFactory
|        class that implements resource adapter
|        specific ConnectionFactory interface.
|
|        Example:
|
|        <connectionfactory-impl-class>com.wombat.ConnectionFactoryImpl
|        </connectionfactory-impl-class>
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionInterface"
		    quid       	"3E4AA75E01BD"
		    documentation 	
|The connection-interface element specifies the fully
|        qualified name of the Connection interface supported
|        by the resource adapter.
|
|        Example:
|
|            <connection-interface>javax.resource.cci.Connection
|            </connection-interface>
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "connectionImplClass"
		    quid       	"3E4AA7770118"
		    documentation 	
|The connection-impl-classType specifies the fully
|        qualified name of the Connection class that
|        implements resource adapter specific Connection
|        interface.  It is used by the connection-impl-class
|        elements.
|
|        Example:
|
|            <connection-impl-class>com.wombat.ConnectionImpl
|            </connection-impl-class>
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "AdminObject"
	    quid       	"3E4AADD6004B"
	    documentation 	
|@version J2EE1.4
|The adminobjectType specifies information about an
|administered object.  Administered objects are specific to a
|messaging style or message provider.  This contains
|information on the Java type of the interface implemented by
|an administered object, its Java class name and its
|configuration properties.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "adminObjectInterface"
		    quid       	"3E4AB12B0188"
		    documentation 	
|The element adminobject-interface specifies the
|        fully qualified name of the Java type of the
|        interface implemented by an administered object.
|
|        Example:
|          <adminobject-interface>javax.jms.Destination
|          </adminobject-interface>
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "adminObjectClass"
		    quid       	"3E4AB1310000"
		    documentation 	
|The element adminobject-class specifies the fully
|        qualified Java class name of an administered object.
|
|        Example:
|            <adminobject-class>com.wombat.DestinationImpl
|            </adminobject-class>
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "MessageListener"
	    quid       	"3E4AAEC102FC"
	    documentation 	
|@version J2EE1.4
|The messagelistenerType specifies information about a
|specific message listener supported by the messaging
|resource adapter. It contains information on the Java type
|of the message listener interface and an activation
|specification.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "messageListenerType"
		    quid       	"3E4AAEF901A8"
		    documentation 	
|The element messagelistener-type specifies the fully
|        qualified name of the Java type of a message
|        listener interface.
|
|        Example:
|
|          <messagelistener-type>javax.jms.MessageListener
|          </messagelistener-type>
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "ActivationSpec"
	    quid       	"3E4AAF320042"
	    documentation 	
|@version J2EE1.4
|The activationspecType specifies an activation
|specification.  The information includes fully qualified
|Java class name of an activation specification and a set of
|required configuration property names.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "activationSpecClass"
		    quid       	"3E4AAF9403AA"
		    documentation 	
|The element activationspec-class specifies the fully
|        qualified Java class name of the activation
|        specification class. This class must implement the
|        javax.resource.spi.ActivationSpec interface. The
|        implementation of this class is required to be a
|        JavaBean.
|
|        Example:
|            <activationspec-class>com.wombat.ActivationSpecImpl
|            </activationspec-class>
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "RequiredConfigPropertyType"
	    quid       	"3E4AAFD601A6"
	    documentation 	
|@version J2EE1.4
|The required-config-propertyType contains a declaration
|of a single configuration property used for specifying a
|required configuration property name. It is used
|by required-config-property elements.
|
|Example:
|
|<required-config-property>Destination</required-config-property>
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "name"
		    quid       	"3E4AB01F01BF"
		    type       	"String"
		    exportControl 	"Public")))
	(object Association "$UNNAMED$0"
	    quid       	"3C6093CC001E"
	    roles      	(list role_list
		(object Role "securityPermissions"
		    quid       	"3C6093CC0367"
		    documentation 	"@deprecated"
		    label      	"securityPermissions"
		    supplier   	"Logical View::jca::SecurityPermission"
		    quidu      	"3C6093C100F4"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$1"
		    quid       	"3C6093CC0369"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$2"
	    quid       	"3C6094120028"
	    roles      	(list role_list
		(object Role "authenticationMechanisms"
		    quid       	"3C6094120390"
		    label      	"authenticationMechanisms"
		    supplier   	"Logical View::jca::AuthenticationMechanism"
		    quidu      	"3C60914003CE"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$3"
		    quid       	"3C6094120392"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$4"
	    quid       	"3C60944C00D6"
	    roles      	(list role_list
		(object Role "configProperties"
		    quid       	"3C60944D0196"
		    label      	"configProperties"
		    supplier   	"Logical View::jca::ConfigProperty"
		    quidu      	"3C60922C0188"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$5"
		    quid       	"3C60944D0198"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$6"
	    quid       	"3C6095310180"
	    roles      	(list role_list
		(object Role "license"
		    quid       	"3C609532000E"
		    documentation 	
|Specifies licensing requirements for the resource adapter module. This element specifies whether a license is required to deploy and use this resource adapter, and an optional description of the licensing terms (examples: duration of license, number of
|connection restrictions).
		    
		    label      	"license"
		    supplier   	"Logical View::jca::License"
		    quidu      	"3C609529008E"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$7"
		    quid       	"3C6095320010"
		    supplier   	"Logical View::jca::Connector"
		    quidu      	"3C609091010F"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$8"
	    quid       	"3C60998900C0"
	    roles      	(list role_list
		(object Role "resourceAdapter"
		    quid       	"3C60998902AB"
		    label      	"resourceAdapter"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$9"
		    quid       	"3C60998902B5"
		    supplier   	"Logical View::jca::Connector"
		    quidu      	"3C609091010F"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$10"
	    quid       	"3E4AA3630302"
	    roles      	(list role_list
		(object Role "outboundResourceAdapter"
		    quid       	"3E4AA3650369"
		    documentation 	
|@version J2EE1.4
|The connectionfactory-interface element content must be
|        unique in the outbound-resourceadapter. Multiple connection-definitions
|        can not use the same connectionfactory-type.
		    
		    label      	"outboundResourceAdapter"
		    supplier   	"Logical View::jca::OutboundResourceAdapter"
		    quidu      	"3E4AA1E6023C"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$11"
		    quid       	"3E4AA365036B"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$12"
	    quid       	"3E4AA4DC026E"
	    roles      	(list role_list
		(object Role "connectionDefinitions"
		    quid       	"3E4AA4DD005C"
		    label      	"connectionDefinitions"
		    supplier   	"Logical View::jca::ConnectionDefinition"
		    quidu      	"3E4AA4CF00F2"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$13"
		    quid       	"3E4AA4DD0066"
		    supplier   	"Logical View::jca::OutboundResourceAdapter"
		    quidu      	"3E4AA1E6023C"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$14"
	    quid       	"3E4AA54400FB"
	    roles      	(list role_list
		(object Role "authenticationMechanisms"
		    quid       	"3E4AA545028D"
		    label      	"authenticationMechanisms"
		    supplier   	"Logical View::jca::AuthenticationMechanism"
		    quidu      	"3C60914003CE"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$15"
		    quid       	"3E4AA545028F"
		    supplier   	"Logical View::jca::OutboundResourceAdapter"
		    quidu      	"3E4AA1E6023C"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$16"
	    quid       	"3E4AA6F20117"
	    roles      	(list role_list
		(object Role "configProperties"
		    quid       	"3E4AA6F30169"
		    label      	"configProperties"
		    supplier   	"Logical View::jca::ConfigProperty"
		    quidu      	"3C60922C0188"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$17"
		    quid       	"3E4AA6F30173"
		    supplier   	"Logical View::jca::ConnectionDefinition"
		    quidu      	"3E4AA4CF00F2"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$18"
	    quid       	"3E4AADCD036A"
	    roles      	(list role_list
		(object Role "inboundResourceAdapter"
		    quid       	"3E4AADCF0312"
		    documentation 	"@version J2EE1.4"
		    label      	"inboundResourceAdapter"
		    supplier   	"Logical View::jca::InboundResourceAdapter"
		    quidu      	"3E4AA1DD0257"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$19"
		    quid       	"3E4AADCF0314"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$20"
	    quid       	"3E4AAE020320"
	    roles      	(list role_list
		(object Role "adminObjects"
		    quid       	"3E4AAE040160"
		    documentation 	"@version J2EE1.4"
		    label      	"adminObjects"
		    supplier   	"Logical View::jca::AdminObject"
		    quidu      	"3E4AADD6004B"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$21"
		    quid       	"3E4AAE04016B"
		    supplier   	"Logical View::jca::ResourceAdapter"
		    quidu      	"3C60912A02A9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$22"
	    quid       	"3E4AAE38025F"
	    roles      	(list role_list
		(object Role "messageAdapter"
		    quid       	"3E4AAE390094"
		    documentation 	
|The messagelistener-type element content must be
|        unique in the messageadapter. Several messagelisteners
|        can not use the same messagelistener-type.
		    
		    label      	"messageAdapter"
		    supplier   	"Logical View::jca::MessageAdapter"
		    quidu      	"3E4AA2D601F1"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$23"
		    quid       	"3E4AAE39009E"
		    supplier   	"Logical View::jca::InboundResourceAdapter"
		    quidu      	"3E4AA1DD0257"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$24"
	    quid       	"3E4AAECC0077"
	    roles      	(list role_list
		(object Role "messageListeners"
		    quid       	"3E4AAECC03A2"
		    label      	"messageListeners"
		    supplier   	"Logical View::jca::MessageListener"
		    quidu      	"3E4AAEC102FC"
		    client_cardinality 	(value cardinality "1..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$25"
		    quid       	"3E4AAECC03A4"
		    supplier   	"Logical View::jca::MessageAdapter"
		    quidu      	"3E4AA2D601F1"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$26"
	    quid       	"3E4AAF480011"
	    roles      	(list role_list
		(object Role "activationSpec"
		    quid       	"3E4AAF490103"
		    label      	"activationSpec"
		    supplier   	"Logical View::jca::ActivationSpec"
		    quidu      	"3E4AAF320042"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$27"
		    quid       	"3E4AAF490105"
		    supplier   	"Logical View::jca::MessageListener"
		    quidu      	"3E4AAEC102FC"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$28"
	    quid       	"3E4AAFAA027F"
	    roles      	(list role_list
		(object Role "requiredConfigProperties"
		    quid       	"3E4AAFAB0349"
		    label      	"requiredConfigProperties"
		    supplier   	"Logical View::jca::RequiredConfigPropertyType"
		    quidu      	"3E4AAFD601A6"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$29"
		    quid       	"3E4AAFAB0353"
		    supplier   	"Logical View::jca::ActivationSpec"
		    quidu      	"3E4AAF320042"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$30"
	    quid       	"3E4AB14A02B9"
	    roles      	(list role_list
		(object Role "configProperties"
		    quid       	"3E4AB14B0347"
		    label      	"configProperties"
		    supplier   	"Logical View::jca::ConfigProperty"
		    quidu      	"3C60922C0188"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$31"
		    quid       	"3E4AB14B0351"
		    supplier   	"Logical View::jca::AdminObject"
		    quidu      	"3E4AADD6004B"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$32"
	    quid       	"3E4AA8A2001E"
	    roles      	(list role_list
		(object Role "descriptions"
		    quid       	"3E4AA8A30033"
		    documentation 	"@version J2EE1.4"
		    label      	"descriptions"
		    supplier   	"Logical View::common::Description"
		    quidu      	"3E4A98D602E0"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$33"
		    quid       	"3E4AA8A3003D"
		    supplier   	"Logical View::jca::AuthenticationMechanism"
		    quidu      	"3C60914003CE"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$34"
	    quid       	"3E4A9C86002A"
	    roles      	(list role_list
		(object Role "descriptions"
		    quid       	"3E4A9C8603B0"
		    label      	"descriptions"
		    supplier   	"Logical View::common::Description"
		    quidu      	"3E4A98D602E0"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$35"
		    quid       	"3E4A9C8603B2"
		    supplier   	"Logical View::jca::License"
		    quidu      	"3C609529008E"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$36"
	    quid       	"3E4AAFEC01BC"
	    roles      	(list role_list
		(object Role "descriptions"
		    quid       	"3E4AAFF40019"
		    label      	"descriptions"
		    supplier   	"Logical View::common::Description"
		    quidu      	"3E4A98D602E0"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$37"
		    quid       	"3E4AAFF40024"
		    supplier   	"Logical View::jca::RequiredConfigPropertyType"
		    quidu      	"3E4AAFD601A6"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$38"
	    quid       	"3E4AAB5A034A"
	    roles      	(list role_list
		(object Role "descriptions"
		    quid       	"3E4AAB6100BF"
		    documentation 	"@version J2EE1.4"
		    label      	"descriptions"
		    supplier   	"Logical View::common::Description"
		    quidu      	"3E4A98D602E0"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$39"
		    quid       	"3E4AAB6100C9"
		    supplier   	"Logical View::jca::ConfigProperty"
		    quidu      	"3C60922C0188"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$40"
	    quid       	"3E4AAA3202FE"
	    roles      	(list role_list
		(object Role "descriptions"
		    quid       	"3E4AAA340012"
		    documentation 	"@version J2EE1.4"
		    label      	"descriptions"
		    supplier   	"Logical View::common::Description"
		    quidu      	"3E4A98D602E0"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$41"
		    quid       	"3E4AAA34001C"
		    supplier   	"Logical View::jca::SecurityPermission"
		    quidu      	"3C6093C100F4"
		    is_aggregate 	TRUE))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "Connector Details"
	    quid       	"3C60905E00E4"
	    title      	"Connector Details"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	1808
	    items      	(list diagram_item_list
		(object Label @1
		    location   	(53, 44)
		    font       	(object Font
			size       	12
			face       	"Arial"
			bold       	TRUE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    nlines     	1
		    max_width  	981
		    label      	"JCA 1.5 Deployment Descriptor")
		(object NoteView @2
		    location   	(871, 368)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@2
			location   	(71, 187)
			fill_color 	13434879
			nlines     	7
			max_width  	1565
			label      	
|Deprecated: (Note: the deprecated version becomes volatile and gets implementation redirected into list with new J2EE type)
|displayName replaced with displayNames:List<DisplayName>
|description replaced with descriptions:List<DescriptionType>
|smallIcon replaced with icons:List<IconType>
|largeIcon replaced with icons:List<IconType>
|version replaced with resourceVersion:String
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1625
		    height     	375)
		(object NoteView @3
		    location   	(1350, 1628)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@3
			location   	(843, 1516)
			fill_color 	13434879
			nlines     	4
			max_width  	978
			label      	"The real XML tag for specVersion in JCA1.5 is <version>. In JCA1.0 it was <spec-version>.  In other words, JCA1.5 version elements will deserialize into the specVersion attribute.")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1038
		    height     	237)
		(object NoteView @4
		    location   	(2200, 356)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@4
			location   	(1709, 240)
			fill_color 	13434879
			nlines     	4
			max_width  	946
			label      	
|Deprecated: (Note: the deprecated version becomes volatile and gets implementation redirected into list version)
|description replaced with descriptions:List<String>
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1006
		    height     	244)
		(object NoteView @5
		    location   	(2421, 125)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@5
			location   	(1708, 34)
			fill_color 	13434879
			nlines     	3
			max_width  	1390
			label      	"Many descriptive attributes have been changed to 'n' multiplicity to support localization of text and icons")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1450
		    height     	194)
		(object Label @6
		    location   	(163, 2084)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    nlines     	3
		    max_width  	894
		    label      	
|SEE "RESOURCEADAPTER DETAILS" DIAGRAM
		    )
		(object ClassView "Class" "Logical View::common::DescriptionGroup" @7
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1749, 973)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	TRUE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@7
			location   	(1571, 894)
			fill_color 	13434879
			nlines     	1
			max_width  	356
			justify    	0
			label      	"DescriptionGroup")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	12632256
		    quidu      	"3E4D451F01FB"
		    width      	374
		    height     	182
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::ResourceAdapter" @8
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    location   	(577, 1967)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@8
			location   	(402, 1916)
			fill_color 	13434879
			nlines     	1
			max_width  	350
			justify    	0
			label      	"ResourceAdapter")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C60912A02A9"
		    width      	368
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::Connector" @9
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(616, 1059)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@9
			location   	(309, 803)
			fill_color 	13434879
			nlines     	1
			max_width  	614
			justify    	0
			label      	"Connector")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C609091010F"
		    compartment 	(object Compartment
			Parent_View 	@9
			location   	(309, 864)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	5
			max_width  	428)
		    width      	632
		    height     	536
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @10
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@2
		    supplier   	@9
		    vertices   	(list Points
			(801, 555)
			(714, 790))
		    line_style 	0)
		(object AttachView "" @11
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@3
		    supplier   	@9
		    vertices   	(list Points
			(1198, 1509)
			(932, 1303))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$8" @12
		    location   	(522, 1615)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3C60998900C0"
		    roleview_list 	(list RoleViews
			(object RoleView "resourceAdapter" @13
			    Parent_View 	@12
			    location   	(-22, 1023)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @14
				Parent_View 	@13
				location   	(325, 1688)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	332
				justify    	0
				label      	"+resourceAdapter"
				pctDist    	0.256881
				height     	198
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C60998902AB"
			    client     	@12
			    supplier   	@8
			    vertices   	(list Points
				(522, 1615)
				(522, 1904))
			    line_style 	3
			    origin_attachment 	(522, 1615)
			    terminal_attachment 	(522, 1904)
			    label      	(object SegLabel @15
				Parent_View 	@13
				location   	(561, 1715)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.350877
				height     	39
				orientation 	0))
			(object RoleView "$UNNAMED$9" @16
			    Parent_View 	@12
			    location   	(-22, 1023)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C60998902B5"
			    client     	@12
			    supplier   	@9
			    vertices   	(list Points
				(522, 1615)
				(522, 1326))
			    line_style 	3
			    origin_attachment 	(522, 1615)
			    terminal_attachment 	(522, 1326))))
		(object ClassView "Class" "Logical View::common::Description" @17
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2624, 706)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@17
			location   	(2480, 552)
			fill_color 	13434879
			nlines     	2
			max_width  	288
			justify    	0
			label      	"Description")
		    icon_style 	"Icon"
		    line_color 	8421504
		    fill_color 	12632256
		    quidu      	"3E4A98D602E0"
		    compartment 	(object Compartment
			Parent_View 	@17
			location   	(2480, 657)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	285)
		    width      	306
		    height     	332
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::License" @18
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1810, 700)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@18
			location   	(1522, 594)
			fill_color 	13434879
			nlines     	1
			max_width  	576
			justify    	0
			label      	"License")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C609529008E"
		    compartment 	(object Compartment
			Parent_View 	@18
			location   	(1522, 655)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	572)
		    width      	594
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @19
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@4
		    supplier   	@18
		    vertices   	(list Points
			(2059, 478)
			(1942, 581))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$6" @20
		    location   	(1222, 796)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3C6095310180"
		    roleview_list 	(list RoleViews
			(object RoleView "license" @21
			    Parent_View 	@20
			    location   	(870, 348)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @22
				Parent_View 	@21
				location   	(1354, 758)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	151
				justify    	0
				label      	"+license"
				pctDist    	0.457447
				height     	39
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C609532000E"
			    client     	@20
			    supplier   	@18
			    vertices   	(list Points
				(1222, 796)
				(1513, 796))
			    line_style 	3
			    origin_attachment 	(1222, 796)
			    terminal_attachment 	(1513, 796)
			    label      	(object SegLabel @23
				Parent_View 	@21
				location   	(1466, 850)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..1"
				pctDist    	0.841549
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$7" @24
			    Parent_View 	@20
			    location   	(870, 348)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C6095320010"
			    client     	@20
			    supplier   	@9
			    vertices   	(list Points
				(1222, 796)
				(932, 796))
			    line_style 	3
			    origin_attachment 	(1222, 796)
			    terminal_attachment 	(932, 796))))
		(object AssociationViewNew "$UNNAMED$34" @25
		    location   	(2289, 653)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E4A9C86002A"
		    roleview_list 	(list RoleViews
			(object RoleView "descriptions" @26
			    Parent_View 	@25
			    location   	(473, -50)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @27
				Parent_View 	@26
				location   	(2354, 604)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+descriptions"
				pctDist    	0.356886
				height     	50
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4A9C8603B0"
			    client     	@25
			    supplier   	@17
			    vertices   	(list Points
				(2289, 653)
				(2471, 653))
			    line_style 	3
			    origin_attachment 	(2289, 653)
			    terminal_attachment 	(2471, 653)
			    label      	(object SegLabel @28
				Parent_View 	@26
				location   	(2429, 704)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.767123
				height     	51
				orientation 	1))
			(object RoleView "$UNNAMED$35" @29
			    Parent_View 	@25
			    location   	(473, -50)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4A9C8603B2"
			    client     	@25
			    supplier   	@18
			    vertices   	(list Points
				(2289, 653)
				(2107, 653))
			    line_style 	3
			    origin_attachment 	(2289, 653)
			    terminal_attachment 	(2107, 653))))))
	(object ClassDiagram "Resource Adapter Details"
	    quid       	"3E4AB21901B3"
	    title      	"Resource Adapter Details"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	7305
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::jca::AuthenticationMechanismType" @30
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3365, 1379)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@30
			location   	(3070, 1295)
			fill_color 	13434879
			nlines     	1
			max_width  	590
			justify    	0
			label      	"AuthenticationMechanismType")
		    stereotype 	(object ItemLabel
			Parent_View 	@30
			location   	(3070, 1245)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	590
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C6091C302A9"
		    compartment 	(object Compartment
			Parent_View 	@30
			location   	(3070, 1356)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	340)
		    width      	608
		    height     	292
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::TransactionSupportKind" @31
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3348, 2338)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@31
			location   	(3118, 2229)
			fill_color 	13434879
			nlines     	1
			max_width  	460
			justify    	0
			label      	"TransactionSupportKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@31
			location   	(3118, 2179)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	460
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C6098C80394"
		    compartment 	(object Compartment
			Parent_View 	@31
			location   	(3118, 2290)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	4
			max_width  	365)
		    width      	478
		    height     	342
		    annotation 	8
		    autoResize 	TRUE)
		(object Label @32
		    location   	(53, 44)
		    font       	(object Font
			size       	12
			face       	"Arial"
			bold       	TRUE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    nlines     	1
		    max_width  	981
		    label      	
|JCA 1.5 Deployment Descriptor
|Resource Adapter Details
		    )
		(object NoteView @33
		    location   	(875, 362)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@33
			location   	(75, 181)
			fill_color 	13434879
			nlines     	7
			max_width  	1565
			label      	
|Deprecated: (Note: the deprecated version becomes volatile and gets implementation redirected into list with new J2EE type)
|displayName replaced with displayNames:List<DisplayName>
|description replaced with descriptions:List<DescriptionType>
|smallIcon replaced with icons:List<IconType>
|largeIcon replaced with icons:List<IconType>
|version replaced with resourceVersion:String
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1625
		    height     	375)
		(object NoteView @34
		    location   	(2200, 356)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@34
			location   	(1709, 240)
			fill_color 	13434879
			nlines     	4
			max_width  	946
			label      	
|Deprecated: (Note: the deprecated version becomes volatile and gets implementation redirected into list version)
|description replaced with descriptions:List<String>
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1006
		    height     	244)
		(object NoteView @35
		    location   	(2421, 125)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@35
			location   	(1708, 34)
			fill_color 	13434879
			nlines     	3
			max_width  	1390
			label      	"Many descriptive attributes have been changed to 'n' multiplicity to support localization of text and icons")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1450
		    height     	194)
		(object NoteView @36
		    location   	(4017, 1845)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@36
			location   	(3782, 1729)
			fill_color 	13434879
			nlines     	4
			max_width  	434
			label      	"Need to check collapseWhitespace attribute")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	494
		    height     	244)
		(object NoteView @37
		    location   	(2132, 2082)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@37
			location   	(1903, 1945)
			fill_color 	13434879
			nlines     	5
			max_width  	422
			label      	
|Need basic type, AnyURI (place this in same package as new Password--maybe "common-datatypes")
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	482
		    height     	287)
		(object NoteView @38
		    location   	(1175, 4758)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@38
			location   	(178, 4514)
			fill_color 	13434879
			nlines     	9
			max_width  	1959
			label      	
|managedConnectionFactoryClass is replaced by ra.outboundRA.connectionDefinitions.managedConnectionFactoryClass
|connectionFactoryInterface is replaced by ra.outboundRA.connectionDefinitions.connectionFactoryInterface
|connectionFactoryImplClass is replaced by ra.outboundRA.connectionDefinitions.connectionFactoryImplClass
|transactionSupport is replaced by ra.outboundRA.transactionSupport 
|connectionInterface is replaced by ra.outboundRA.connectionDefinitions.connectionInterface
|connectionImplClass is replaced by ra.outboundRA.connectionDefinitions.connectionImplClass
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	2019
		    height     	500)
		(object NoteView @39
		    location   	(1156, 5175)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@39
			location   	(34, 5097)
			fill_color 	13434879
			nlines     	3
			max_width  	2209
			label      	"Readers will need to determine if the string type can be converted to the datatype specified. See the spec. Or maybe instead provide helpers to retrieve the value converted to the specified type?")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	2269
		    height     	169)
		(object Label @40
		    location   	(244, 2353)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    nlines     	5
		    max_width  	488
		    label      	"There are some uniqueness constraints that must be validated here.")
		(object NoteView @41
		    location   	(3386, 625)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@41
			location   	(2717, 522)
			fill_color 	13434879
			nlines     	4
			max_width  	1303
			label      	
|Deprecations
|customAuthMechType replaced by authenticationMechanism
|authenticationMechanismType replaced by authenticationMechanism
|description replaced with descriptions:List<DescriptionType>
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	1363
		    height     	219)
		(object ClassView "Class" "Logical View::jca::MessageListener" @42
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2774, 3537)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@42
			location   	(2477, 3456)
			fill_color 	13434879
			nlines     	1
			max_width  	594
			justify    	0
			label      	"MessageListener")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AAEC102FC"
		    compartment 	(object Compartment
			Parent_View 	@42
			location   	(2477, 3517)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	591)
		    width      	612
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::MessageAdapter" @43
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2792, 3139)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@43
			location   	(2625, 3088)
			fill_color 	13434879
			nlines     	1
			max_width  	334
			justify    	0
			label      	"MessageAdapter")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AA2D601F1"
		    width      	352
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$24" @44
		    location   	(2746, 3322)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAECC0077"
		    roleview_list 	(list RoleViews
			(object RoleView "messageListeners" @45
			    Parent_View 	@44
			    location   	(-31, -446)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @46
				Parent_View 	@45
				location   	(2534, 3402)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	367
				justify    	0
				label      	"+messageListeners"
				pctDist    	0.666667
				height     	213
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAECC03A2"
			    client     	@44
			    supplier   	@42
			    vertices   	(list Points
				(2746, 3322)
				(2746, 3444))
			    line_style 	3
			    origin_attachment 	(2746, 3322)
			    terminal_attachment 	(2746, 3444)
			    label      	(object SegLabel @47
				Parent_View 	@45
				location   	(2838, 3405)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1..n"
				pctDist    	0.677778
				height     	92
				orientation 	0))
			(object RoleView "$UNNAMED$25" @48
			    Parent_View 	@44
			    location   	(-31, -446)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAECC03A4"
			    client     	@44
			    supplier   	@43
			    vertices   	(list Points
				(2746, 3322)
				(2746, 3201))
			    line_style 	3
			    origin_attachment 	(2746, 3322)
			    terminal_attachment 	(2746, 3201))))
		(object ClassView "Class" "Logical View::jca::ActivationSpec" @49
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2749, 3959)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@49
			location   	(2468, 3878)
			fill_color 	13434879
			nlines     	1
			max_width  	562
			justify    	0
			label      	"ActivationSpec")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AAF320042"
		    compartment 	(object Compartment
			Parent_View 	@49
			location   	(2468, 3939)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	560)
		    width      	580
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$26" @50
		    location   	(2753, 3747)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAF480011"
		    roleview_list 	(list RoleViews
			(object RoleView "activationSpec" @51
			    Parent_View 	@50
			    location   	(-87, -371)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @52
				Parent_View 	@51
				location   	(2578, 3835)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	294
				justify    	0
				label      	"+activationSpec"
				pctDist    	0.741657
				height     	176
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAF490103"
			    client     	@50
			    supplier   	@49
			    vertices   	(list Points
				(2753, 3747)
				(2753, 3866))
			    line_style 	3
			    origin_attachment 	(2753, 3747)
			    terminal_attachment 	(2753, 3866)
			    label      	(object SegLabel @53
				Parent_View 	@51
				location   	(2801, 3838)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.761905
				height     	48
				orientation 	0))
			(object RoleView "$UNNAMED$27" @54
			    Parent_View 	@50
			    location   	(-87, -371)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAF490105"
			    client     	@50
			    supplier   	@42
			    vertices   	(list Points
				(2753, 3747)
				(2753, 3629))
			    line_style 	3
			    origin_attachment 	(2753, 3747)
			    terminal_attachment 	(2753, 3629))))
		(object ClassView "Class" "Logical View::jca::ConnectionDefinition" @55
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3021, 1915)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@55
			location   	(2618, 1734)
			fill_color 	13434879
			nlines     	1
			max_width  	806
			justify    	0
			label      	"ConnectionDefinition")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AA4CF00F2"
		    compartment 	(object Compartment
			Parent_View 	@55
			location   	(2618, 1795)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	6
			max_width  	803)
		    width      	824
		    height     	386
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::InboundResourceAdapter" @56
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1720, 3126)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@56
			location   	(1475, 3075)
			fill_color 	13434879
			nlines     	1
			max_width  	490
			justify    	0
			label      	"InboundResourceAdapter")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AA1DD0257"
		    width      	508
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$22" @57
		    location   	(2295, 3134)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAE38025F"
		    roleview_list 	(list RoleViews
			(object RoleView "messageAdapter" @58
			    Parent_View 	@57
			    location   	(317, -634)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @59
				Parent_View 	@58
				location   	(2431, 3090)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	340
				justify    	0
				label      	"+messageAdapter"
				pctDist    	0.425000
				height     	45
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAE390094"
			    client     	@57
			    supplier   	@43
			    vertices   	(list Points
				(2295, 3134)
				(2616, 3134))
			    line_style 	3
			    origin_attachment 	(2295, 3134)
			    terminal_attachment 	(2616, 3134)
			    label      	(object SegLabel @60
				Parent_View 	@58
				location   	(2567, 3179)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..1"
				pctDist    	0.851803
				height     	45
				orientation 	1))
			(object RoleView "$UNNAMED$23" @61
			    Parent_View 	@57
			    location   	(317, -634)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @62
				Parent_View 	@61
				location   	(2038, 3093)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				hidden     	TRUE
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	60
				justify    	0
				label      	""
				pctDist    	0.800000
				height     	42
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAE39009E"
			    client     	@57
			    supplier   	@56
			    vertices   	(list Points
				(2295, 3134)
				(1974, 3134))
			    line_style 	3
			    origin_attachment 	(2295, 3134)
			    terminal_attachment 	(1974, 3134))))
		(object ClassView "Class" "Logical View::jca::AdminObject" @63
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1026, 4060)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@63
			location   	(737, 3954)
			fill_color 	13434879
			nlines     	1
			max_width  	578
			justify    	0
			label      	"AdminObject")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AADD6004B"
		    compartment 	(object Compartment
			Parent_View 	@63
			location   	(737, 4015)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	575)
		    width      	596
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::RequiredConfigPropertyType" @64
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3798, 3913)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@64
			location   	(3527, 3832)
			fill_color 	13434879
			nlines     	1
			max_width  	542
			justify    	0
			label      	"RequiredConfigPropertyType")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AAFD601A6"
		    compartment 	(object Compartment
			Parent_View 	@64
			location   	(3527, 3893)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	294)
		    width      	560
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$28" @65
		    location   	(3278, 3984)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAFAA027F"
		    roleview_list 	(list RoleViews
			(object RoleView "requiredConfigProperties" @66
			    Parent_View 	@65
			    location   	(422, -597)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @67
				Parent_View 	@66
				location   	(3312, 3938)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	468
				justify    	0
				label      	"+requiredConfigProperties"
				pctDist    	0.145695
				height     	47
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAFAB0349"
			    client     	@65
			    supplier   	@64
			    vertices   	(list Points
				(3278, 3984)
				(3518, 3984))
			    line_style 	3
			    origin_attachment 	(3278, 3984)
			    terminal_attachment 	(3518, 3984)
			    label      	(object SegLabel @68
				Parent_View 	@66
				location   	(3470, 4032)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.801324
				height     	48
				orientation 	1))
			(object RoleView "$UNNAMED$29" @69
			    Parent_View 	@65
			    location   	(422, -597)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAFAB0353"
			    client     	@65
			    supplier   	@49
			    vertices   	(list Points
				(3278, 3984)
				(3039, 3984))
			    line_style 	3
			    origin_attachment 	(3278, 3984)
			    terminal_attachment 	(3039, 3984))))
		(object ClassView "Class" "Logical View::jca::ConfigProperty" @70
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(346, 3777)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@70
			location   	(58, 3621)
			fill_color 	13434879
			nlines     	1
			max_width  	576
			justify    	0
			label      	"ConfigProperty")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C60922C0188"
		    compartment 	(object Compartment
			Parent_View 	@70
			location   	(58, 3682)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	5
			max_width  	572)
		    width      	594
		    height     	336
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$16" @71
		    location   	(723, 1903)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AA6F20117"
		    roleview_list 	(list RoleViews
			(object RoleView "configProperties" @72
			    Parent_View 	@71
			    location   	(-2159, -1529)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @73
				Parent_View 	@72
				location   	(578, 3385)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	314
				justify    	0
				label      	"+configProperties"
				pctDist    	0.881853
				height     	36
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA6F30169"
			    client     	@71
			    supplier   	@70
			    vertices   	(list Points
				(723, 1903)
				(542, 1903)
				(542, 3609))
			    line_style 	3
			    origin_attachment 	(723, 1903)
			    terminal_attachment 	(542, 3609)
			    label      	(object SegLabel @74
				Parent_View 	@72
				location   	(596, 3419)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.900000
				height     	54
				orientation 	0))
			(object RoleView "$UNNAMED$17" @75
			    Parent_View 	@71
			    location   	(-2159, -1529)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA6F30173"
			    client     	@71
			    supplier   	@55
			    vertices   	(list Points
				(723, 1903)
				(2609, 1903))
			    line_style 	3
			    origin_attachment 	(723, 1903)
			    terminal_attachment 	(2609, 1903))))
		(object AttachView "" @76
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@39
		    supplier   	@70
		    vertices   	(list Points
			(125, 5090)
			(125, 3944))
		    line_style 	3
		    origin_attachment 	(125, 5090)
		    terminal_attachment 	(125, 3944))
		(object AssociationViewNew "$UNNAMED$30" @77
		    location   	(491, 4071)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AB14A02B9"
		    roleview_list 	(list RoleViews
			(object RoleView "configProperties" @78
			    Parent_View 	@77
			    location   	(-404, -143)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @79
				Parent_View 	@78
				location   	(546, 4032)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	314
				justify    	0
				label      	"+configProperties"
				pctDist    	-0.240876
				height     	40
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AB14B0347"
			    client     	@77
			    supplier   	@70
			    vertices   	(list Points
				(491, 4071)
				(381, 4071)
				(381, 3945))
			    line_style 	3
			    origin_attachment 	(491, 4071)
			    terminal_attachment 	(381, 3945)
			    label      	(object SegLabel @80
				Parent_View 	@78
				location   	(435, 3969)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$31" @81
			    Parent_View 	@77
			    location   	(-404, -143)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AB14B0351"
			    client     	@77
			    supplier   	@63
			    vertices   	(list Points
				(491, 4071)
				(728, 4071))
			    line_style 	3
			    origin_attachment 	(491, 4071)
			    terminal_attachment 	(728, 4071))))
		(object ClassView "Class" "Logical View::jca::SecurityPermission" @82
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1781, 2528)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@82
			location   	(1494, 2422)
			fill_color 	13434879
			nlines     	1
			max_width  	574
			justify    	0
			label      	"SecurityPermission")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C6093C100F4"
		    compartment 	(object Compartment
			Parent_View 	@82
			location   	(1494, 2483)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	572)
		    width      	592
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jca::OutboundResourceAdapter" @83
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1881, 1657)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@83
			location   	(1450, 1551)
			fill_color 	13434879
			nlines     	1
			max_width  	862
			justify    	0
			label      	"OutboundResourceAdapter")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4AA1E6023C"
		    compartment 	(object Compartment
			Parent_View 	@83
			location   	(1450, 1612)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	860)
		    width      	880
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$12" @84
		    location   	(2581, 1622)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AA4DC026E"
		    roleview_list 	(list RoleViews
			(object RoleView "connectionDefinitions" @85
			    Parent_View 	@84
			    location   	(925, -1807)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @86
				Parent_View 	@85
				location   	(2648, 1580)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	420
				justify    	0
				label      	"+connectionDefinitions"
				pctDist    	0.262548
				height     	43
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA4DD005C"
			    client     	@84
			    supplier   	@55
			    vertices   	(list Points
				(2581, 1622)
				(2740, 1622)
				(2740, 1722))
			    line_style 	3
			    origin_attachment 	(2581, 1622)
			    terminal_attachment 	(2740, 1722)
			    label      	(object SegLabel @87
				Parent_View 	@85
				location   	(2694, 1656)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.439516
				height     	34
				orientation 	1))
			(object RoleView "$UNNAMED$13" @88
			    Parent_View 	@84
			    location   	(925, -1807)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA4DD0066"
			    client     	@84
			    supplier   	@83
			    vertices   	(list Points
				(2581, 1622)
				(2321, 1622))
			    line_style 	3
			    origin_attachment 	(2581, 1622)
			    terminal_attachment 	(2321, 1622))))
		(object ClassView "Class" "Logical View::jca::ResourceAdapter" @89
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(612, 1045)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@89
			location   	(181, 789)
			fill_color 	13434879
			nlines     	1
			max_width  	862
			justify    	0
			label      	"ResourceAdapter")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C60912A02A9"
		    compartment 	(object Compartment
			Parent_View 	@89
			location   	(181, 850)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	9
			max_width  	860)
		    width      	880
		    height     	536
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$10" @90
		    location   	(1060, 1643)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AA3630302"
		    roleview_list 	(list RoleViews
			(object RoleView "outboundResourceAdapter" @91
			    Parent_View 	@90
			    location   	(483, -324)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @92
				Parent_View 	@91
				location   	(1168, 1741)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	500
				justify    	0
				label      	"+outboundResourceAdapter"
				pctDist    	0.283465
				height     	98
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA3650369"
			    client     	@90
			    supplier   	@83
			    vertices   	(list Points
				(1060, 1643)
				(1441, 1643))
			    line_style 	3
			    origin_attachment 	(1060, 1643)
			    terminal_attachment 	(1441, 1643)
			    label      	(object SegLabel @93
				Parent_View 	@91
				location   	(1403, 1697)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..1"
				pctDist    	0.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$11" @94
			    Parent_View 	@90
			    location   	(483, -324)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA365036B"
			    client     	@90
			    supplier   	@89
			    vertices   	(list Points
				(1060, 1643)
				(1000, 1643)
				(1000, 1313))
			    line_style 	3
			    origin_attachment 	(1060, 1643)
			    terminal_attachment 	(1000, 1313))))
		(object AttachView "" @95
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@38
		    supplier   	@89
		    vertices   	(list Points
			(291, 4507)
			(291, 1313))
		    line_style 	3
		    origin_attachment 	(291, 4507)
		    terminal_attachment 	(291, 1313))
		(object AssociationViewNew "$UNNAMED$18" @96
		    location   	(834, 2535)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E4AADCD036A"
		    roleview_list 	(list RoleViews
			(object RoleView "inboundResourceAdapter" @97
			    Parent_View 	@96
			    location   	(257, 568)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @98
				Parent_View 	@97
				location   	(1199, 3079)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	489
				justify    	0
				label      	"+inboundResourceAdapter"
				pctDist    	0.781739
				height     	46
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AADCF0312"
			    client     	@96
			    supplier   	@56
			    vertices   	(list Points
				(834, 2535)
				(834, 3124)
				(1466, 3124))
			    line_style 	3
			    origin_attachment 	(834, 2535)
			    terminal_attachment 	(1466, 3124)
			    label      	(object SegLabel @99
				Parent_View 	@97
				location   	(1343, 3178)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..1"
				pctDist    	0.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$19" @100
			    Parent_View 	@96
			    location   	(257, 568)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AADCF0314"
			    client     	@96
			    supplier   	@89
			    vertices   	(list Points
				(834, 2535)
				(834, 1313))
			    line_style 	3
			    origin_attachment 	(834, 2535)
			    terminal_attachment 	(834, 1313))))
		(object AssociationViewNew "$UNNAMED$20" @101
		    location   	(787, 2626)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E4AAE020320"
		    roleview_list 	(list RoleViews
			(object RoleView "adminObjects" @102
			    Parent_View 	@101
			    location   	(210, 659)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @103
				Parent_View 	@102
				location   	(963, 3896)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	279
				justify    	0
				label      	"+adminObjects"
				pctDist    	0.966472
				height     	176
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAE040160"
			    client     	@101
			    supplier   	@63
			    vertices   	(list Points
				(787, 2626)
				(787, 3941))
			    line_style 	3
			    origin_attachment 	(787, 2626)
			    terminal_attachment 	(787, 3941)
			    label      	(object SegLabel @104
				Parent_View 	@102
				location   	(728, 3913)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.978863
				height     	60
				orientation 	1))
			(object RoleView "$UNNAMED$21" @105
			    Parent_View 	@101
			    location   	(210, 659)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAE04016B"
			    client     	@101
			    supplier   	@89
			    vertices   	(list Points
				(787, 2626)
				(787, 1312))
			    line_style 	3
			    origin_attachment 	(787, 2626)
			    terminal_attachment 	(787, 1312))))
		(object AssociationViewNew "$UNNAMED$4" @106
		    location   	(244, 2461)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3C60944C00D6"
		    roleview_list 	(list RoleViews
			(object RoleView "configProperties" @107
			    Parent_View 	@106
			    location   	(-348, 1245)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @108
				Parent_View 	@107
				location   	(246, 3406)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	314
				justify    	0
				label      	"+configProperties"
				pctDist    	0.823782
				height     	2
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C60944D0196"
			    client     	@106
			    supplier   	@70
			    vertices   	(list Points
				(244, 2461)
				(244, 3609))
			    line_style 	3
			    origin_attachment 	(244, 2461)
			    terminal_attachment 	(244, 3609)
			    label      	(object SegLabel @109
				Parent_View 	@107
				location   	(192, 3494)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.899727
				height     	53
				orientation 	1))
			(object RoleView "$UNNAMED$5" @110
			    Parent_View 	@106
			    location   	(-348, 1245)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C60944D0198"
			    client     	@106
			    supplier   	@89
			    vertices   	(list Points
				(244, 2461)
				(244, 1313))
			    line_style 	3
			    origin_attachment 	(244, 2461)
			    terminal_attachment 	(244, 1313))))
		(object AssociationViewNew "$UNNAMED$0" @111
		    location   	(931, 2174)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3C6093CC001E"
		    roleview_list 	(list RoleViews
			(object RoleView "securityPermissions" @112
			    Parent_View 	@111
			    location   	(339, 958)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @113
				Parent_View 	@112
				location   	(1271, 2442)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	407
				justify    	0
				label      	"+securityPermissions"
				pctDist    	0.752688
				height     	39
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C6093CC0367"
			    client     	@111
			    supplier   	@82
			    vertices   	(list Points
				(931, 2174)
				(931, 2480)
				(1485, 2480))
			    line_style 	3
			    origin_attachment 	(931, 2174)
			    terminal_attachment 	(1485, 2480)
			    label      	(object SegLabel @114
				Parent_View 	@112
				location   	(1408, 2533)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.910000
				height     	53
				orientation 	1))
			(object RoleView "$UNNAMED$1" @115
			    Parent_View 	@111
			    location   	(339, 958)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C6093CC0369"
			    client     	@111
			    supplier   	@89
			    vertices   	(list Points
				(931, 2174)
				(931, 1313))
			    line_style 	3
			    origin_attachment 	(931, 2174)
			    terminal_attachment 	(931, 1313))))
		(object ClassView "Class" "Logical View::common::Description" @116
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2775, 2668)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@116
			location   	(2631, 2539)
			fill_color 	13434879
			nlines     	1
			max_width  	288
			justify    	0
			label      	"Description")
		    icon_style 	"Icon"
		    line_color 	8421504
		    fill_color 	12632256
		    quidu      	"3E4A98D602E0"
		    compartment 	(object Compartment
			Parent_View 	@116
			location   	(2631, 2644)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	284)
		    width      	306
		    height     	282
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$36" @117
		    location   	(3856, 2786)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAFEC01BC"
		    roleview_list 	(list RoleViews
			(object RoleView "descriptions" @118
			    Parent_View 	@117
			    location   	(3375, -2308)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @119
				Parent_View 	@118
				location   	(3066, 2712)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+descriptions"
				pctDist    	0.867906
				height     	32
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAFF40019"
			    client     	@117
			    supplier   	@116
			    vertices   	(list Points
				(3856, 2786)
				(3856, 2680)
				(2928, 2680))
			    line_style 	3
			    origin_attachment 	(3856, 2786)
			    terminal_attachment 	(2928, 2680)
			    label      	(object SegLabel @120
				Parent_View 	@118
				location   	(2990, 2758)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.941292
				height     	78
				orientation 	0))
			(object RoleView "$UNNAMED$37" @121
			    Parent_View 	@117
			    location   	(3375, -2308)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAFF40024"
			    client     	@117
			    supplier   	@64
			    vertices   	(list Points
				(3856, 2786)
				(3856, 3820))
			    line_style 	3
			    origin_attachment 	(3856, 2786)
			    terminal_attachment 	(3856, 3820))))
		(object AssociationViewNew "$UNNAMED$38" @122
		    location   	(1193, 2734)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E4AAB5A034A"
		    roleview_list 	(list RoleViews
			(object RoleView "descriptions" @123
			    Parent_View 	@122
			    location   	(887, -1040)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @124
				Parent_View 	@123
				location   	(2463, 2634)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+descriptions"
				pctDist    	0.889044
				height     	101
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAB6100BF"
			    client     	@122
			    supplier   	@116
			    vertices   	(list Points
				(1193, 2734)
				(2622, 2734))
			    line_style 	3
			    origin_attachment 	(1193, 2734)
			    terminal_attachment 	(2622, 2734)
			    label      	(object SegLabel @125
				Parent_View 	@123
				location   	(2550, 2785)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.949756
				height     	51
				orientation 	1))
			(object RoleView "$UNNAMED$39" @126
			    Parent_View 	@122
			    location   	(887, -1040)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAB6100C9"
			    client     	@122
			    supplier   	@70
			    vertices   	(list Points
				(1193, 2734)
				(640, 2734)
				(640, 3609))
			    line_style 	3
			    origin_attachment 	(1193, 2734)
			    terminal_attachment 	(640, 3609))))
		(object AssociationViewNew "$UNNAMED$40" @127
		    location   	(2349, 2600)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AAA3202FE"
		    roleview_list 	(list RoleViews
			(object RoleView "descriptions" @128
			    Parent_View 	@127
			    location   	(738, -240)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @129
				Parent_View 	@128
				location   	(3081, 2580)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+descriptions"
				pctDist    	2.684982
				height     	21
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAA340012"
			    client     	@127
			    supplier   	@116
			    vertices   	(list Points
				(2349, 2600)
				(2622, 2600))
			    line_style 	3
			    origin_attachment 	(2349, 2600)
			    terminal_attachment 	(2622, 2600)
			    label      	(object SegLabel @130
				Parent_View 	@128
				location   	(2563, 2557)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.783883
				height     	44
				orientation 	0))
			(object RoleView "$UNNAMED$41" @131
			    Parent_View 	@127
			    location   	(738, -240)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AAA34001C"
			    client     	@127
			    supplier   	@82
			    vertices   	(list Points
				(2349, 2600)
				(2077, 2600))
			    line_style 	3
			    origin_attachment 	(2349, 2600)
			    terminal_attachment 	(2077, 2600))))
		(object ClassView "Class" "Logical View::jca::AuthenticationMechanism" @132
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2231, 1040)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@132
			location   	(1633, 859)
			fill_color 	13434879
			nlines     	1
			max_width  	1196
			justify    	0
			label      	"AuthenticationMechanism")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C60914003CE"
		    compartment 	(object Compartment
			Parent_View 	@132
			location   	(1633, 920)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	6
			max_width  	1194)
		    width      	1214
		    height     	386
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @133
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@33
		    supplier   	@132
		    vertices   	(list Points
			(1250, 549)
			(1846, 846))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$14" @134
		    location   	(2041, 1386)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E4AA54400FB"
		    roleview_list 	(list RoleViews
			(object RoleView "authenticationMechanisms" @135
			    Parent_View 	@134
			    location   	(385, -2043)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @136
				Parent_View 	@135
				location   	(2359, 1318)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	509
				justify    	0
				label      	"+authenticationMechanisms"
				pctDist    	0.444444
				height     	318
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA545028D"
			    client     	@134
			    supplier   	@132
			    vertices   	(list Points
				(2041, 1386)
				(2041, 1233))
			    line_style 	3
			    origin_attachment 	(2041, 1386)
			    terminal_attachment 	(2041, 1233)
			    label      	(object SegLabel @137
				Parent_View 	@135
				location   	(2142, 1258)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.834370
				height     	101
				orientation 	1))
			(object RoleView "$UNNAMED$15" @138
			    Parent_View 	@134
			    location   	(385, -2043)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA545028F"
			    client     	@134
			    supplier   	@83
			    vertices   	(list Points
				(2041, 1386)
				(2041, 1539))
			    line_style 	3
			    origin_attachment 	(2041, 1386)
			    terminal_attachment 	(2041, 1539))))
		(object AssociationViewNew "$UNNAMED$2" @139
		    location   	(1338, 1050)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3C6094120028"
		    roleview_list 	(list RoleViews
			(object RoleView "authenticationMechanisms" @140
			    Parent_View 	@139
			    location   	(746, -166)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @141
				Parent_View 	@140
				location   	(1410, 1018)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	509
				justify    	0
				label      	"+authenticationMechanisms"
				pctDist    	0.253394
				height     	33
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C6094120390"
			    client     	@139
			    supplier   	@132
			    vertices   	(list Points
				(1338, 1050)
				(1624, 1050))
			    line_style 	3
			    origin_attachment 	(1338, 1050)
			    terminal_attachment 	(1624, 1050)
			    label      	(object SegLabel @142
				Parent_View 	@140
				location   	(1595, 1104)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.898601
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$3" @143
			    Parent_View 	@139
			    location   	(746, -166)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C6094120392"
			    client     	@139
			    supplier   	@89
			    vertices   	(list Points
				(1338, 1050)
				(1052, 1050))
			    line_style 	3
			    origin_attachment 	(1338, 1050)
			    terminal_attachment 	(1052, 1050))))
		(object AttachView "" @144
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@41
		    supplier   	@132
		    vertices   	(list Points
			(3078, 734)
			(2765, 846))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$32" @145
		    location   	(3734, 1703)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4AA8A2001E"
		    roleview_list 	(list RoleViews
			(object RoleView "descriptions" @146
			    Parent_View 	@145
			    location   	(1463, -801)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @147
				Parent_View 	@146
				location   	(0, 2830)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+descriptions"
				pctDist    	6.560976
				height     	205
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA8A30033"
			    client     	@145
			    supplier   	@116
			    vertices   	(list Points
				(3734, 1703)
				(3734, 2625)
				(2928, 2625))
			    line_style 	3
			    origin_attachment 	(3734, 1703)
			    terminal_attachment 	(2928, 2625)
			    label      	(object SegLabel @148
				Parent_View 	@146
				location   	(2993, 2515)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.962138
				height     	111
				orientation 	1))
			(object RoleView "$UNNAMED$33" @149
			    Parent_View 	@145
			    location   	(1463, -801)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4AA8A3003D"
			    client     	@145
			    supplier   	@132
			    vertices   	(list Points
				(3734, 1703)
				(3734, 871)
				(2838, 871))
			    line_style 	3
			    origin_attachment 	(3734, 1703)
			    terminal_attachment 	(2838, 871))))))))
