code: public ConnectionDefinition merge(MergeableMetadata<?> jmd) throws Exception
     {
        if (jmd instanceof ConnectionDefinitionImpl)
        {
           ConnectionDefinitionImpl input = (ConnectionDefinitionImpl) jmd;
  
           List<ConfigProperty> newConfigProperty = MergeUtil.mergeConfigList(this.configProperties,
              input.configProperties);
           XsdString newManagedconnectionfactoryClass = this.managedconnectionfactoryClass == null
              ? input.managedconnectionfactoryClass
              : this.managedconnectionfactoryClass;
           XsdString newConnectionInterface = this.connectionInterface == null
              ? input.connectionInterface
              : this.connectionInterface;
           XsdString newConnectionfactoryImplClass = this.connectionfactoryImplClass == null
              ? input.connectionfactoryImplClass
              : this.connectionfactoryImplClass;
           XsdString newConnectionfactoryInterface = this.connectionfactoryInterface == null
              ? input.connectionfactoryInterface
              : this.connectionfactoryInterface;
           String newId = this.id == null ? input.id : this.id;
           XsdString newConnectionImplClass = this.connectionImplClass == null
              ? input.connectionImplClass
              : this.connectionImplClass;
           return new ConnectionDefinitionImpl(newManagedconnectionfactoryClass, newConfigProperty,
                                               newConnectionfactoryInterface, newConnectionfactoryImplClass,
                                               newConnectionInterface, newConnectionImplClass, newId);
        }
        else
        {
           return this;
        }
     }
docs: {@inheritDoc}