code: public ResourceAdapter merge(MergeableMetadata<?> jmd) throws Exception
     {
        if (jmd instanceof ResourceAdapterImpl)
        {
           ResourceAdapterImpl inputRA = (ResourceAdapterImpl) jmd;
  
           InboundResourceAdapter newInboundResourceadapter = this.inboundResourceadapter == null
                 ? inputRA.inboundResourceadapter
                 : this.inboundResourceadapter.merge(inputRA.inboundResourceadapter);
  
           OutboundResourceAdapter newOutboundResourceadapter = this.outboundResourceadapter == null
                 ? inputRA.outboundResourceadapter
                 : this.outboundResourceadapter.merge(inputRA.outboundResourceadapter);
           List<SecurityPermission> newSecurityPermission = MergeUtil.mergeList(this.securityPermissions,
                 inputRA.securityPermissions);
           List<ConfigProperty> newConfigProperties = MergeUtil.mergeConfigList(this.configProperties,
                 inputRA.configProperties);
           List<AdminObject> newAdminobjects = MergeUtil.mergeList(this.adminobjects, inputRA.adminobjects);
           String newId = this.id == null ? inputRA.id : this.id;
           XsdString newResourceadapterClass = XsdString.isNull(this.resourceadapterClass)
                 ? inputRA.resourceadapterClass
                 : this.resourceadapterClass;
           return new ResourceAdapterImpl(newResourceadapterClass, newConfigProperties, newOutboundResourceadapter,
                                          newInboundResourceadapter, newAdminobjects, newSecurityPermission, newId);
        }
        else
        {
           return this;
        }
     }
docs: {@inheritDoc}