001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.connector.deployment.jsr88; 018 019 import org.apache.geronimo.xbeans.geronimo.GerResourceadapterInstanceType; 020 import org.apache.geronimo.xbeans.geronimo.GerConfigPropertySettingType; 021 import org.apache.geronimo.naming.deployment.jsr88.GBeanLocator; 022 import org.apache.xmlbeans.SchemaTypeLoader; 023 import javax.enterprise.deploy.model.DDBean; 024 025 /** 026 * Represents /connector/resourceadapter/resourceadapter-instance in the 027 * Geronimo Connector deployment plan. The settings here correspond to 028 * /connector/resourceadapter in the J2EE plan, but since there can be 029 * several instances per resource adapter, it's not 1:1 and this is not 030 * a DConfigBean. 031 * 032 * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $ 033 */ 034 public class ResourceAdapterInstance extends ConfigHolder { 035 private DDBean resourceAdapter; 036 private GBeanLocator workManager; 037 038 /** 039 * Present so a tool can create a new one 040 */ 041 public ResourceAdapterInstance() { 042 } 043 044 public ResourceAdapterInstance(DDBean resourceAdapter, GerResourceadapterInstanceType instance) { 045 configure(resourceAdapter, instance); 046 } 047 048 protected GerResourceadapterInstanceType getResourceAdapterInstance() { 049 return (GerResourceadapterInstanceType) getXmlObject(); 050 } 051 052 public void reconfigure() { 053 configure(resourceAdapter, getResourceAdapterInstance()); 054 } 055 056 void configure(DDBean resourceAdapter, GerResourceadapterInstanceType xml) { 057 this.resourceAdapter = resourceAdapter; 058 super.configure(resourceAdapter, xml); 059 } 060 061 protected GerConfigPropertySettingType createConfigProperty() { 062 return getResourceAdapterInstance().addNewConfigPropertySetting(); 063 } 064 065 protected GerConfigPropertySettingType[] getConfigProperties() { 066 return getResourceAdapterInstance().getConfigPropertySettingArray(); 067 } 068 069 protected void removeConfigProperty(int index) { 070 getResourceAdapterInstance().removeConfigPropertySetting(index); 071 } 072 073 // ----------------------- JavaBean Properties for /resourceadapter-instance ---------------------- 074 075 public String getResourceAdapterName() { 076 return getResourceAdapterInstance().getResourceadapterName(); 077 } 078 079 public void setResourceAdapterName(String name) { 080 String old = getResourceAdapterName(); 081 getResourceAdapterInstance().setResourceadapterName(name); 082 pcs.firePropertyChange("resourceAdapterName", old, name); 083 } 084 085 public GBeanLocator getWorkManager() { 086 return workManager; 087 } 088 089 public void setWorkManager(GBeanLocator locator) { 090 GBeanLocator old = getWorkManager(); 091 if(locator != null && !locator.configured()) { 092 if(getResourceAdapterInstance().getWorkmanager() != null) { 093 locator.configure(getResourceAdapterInstance().getWorkmanager()); 094 } else { 095 locator.configure(getResourceAdapterInstance().addNewWorkmanager()); 096 } 097 } 098 workManager = locator; 099 pcs.firePropertyChange("workManager", old, workManager); 100 } 101 102 // ----------------------- End of JavaBean Properties ---------------------- 103 104 protected SchemaTypeLoader getSchemaTypeLoader() { 105 return Connector15DCBRoot.SCHEMA_TYPE_LOADER; 106 } 107 }