| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| import sys |
| import os |
| global AdminConfig |
| global AdminTask |
| |
| #----------------------------------------------------------------- |
| # getName - Returns the base name of the config object. |
| #----------------------------------------------------------------- |
| def getName (objectId): |
| endIndex = (objectId.find("(c") - 1) |
| stIndex = 0 |
| if (objectId.find("\"") == 0): |
| stIndex = 1 |
| #endIf |
| return objectId[stIndex:endIndex+1] |
| #endDef |
| |
| #----------------------------------------------------------------- |
| # getNodeId - Return the node id of the existing node. If in an |
| # ND environment, returns the first node in the list. |
| #----------------------------------------------------------------- |
| def getNodeId (): |
| nodeList = AdminConfig.list("Node").split("\n") |
| |
| node="" |
| if (len(nodeList) == 1): |
| node = nodeList[0] |
| #endIf |
| |
| return node |
| #endDef |
| |
| #----------------------------------------------------------------- |
| # getServerId - Return the server id of the existing server. If |
| # more than one server exists, returns the first server |
| # in the list. |
| #----------------------------------------------------------------- |
| def getServerId (): |
| serverList = AdminConfig.list("Server").split("\n") |
| |
| server = serverList[0] |
| return server |
| #endDef |
| |
| def addDatasourceProperty (datasourceId, name, value): |
| parms = ["-propertyName", name, "-propertyValue", value] |
| AdminTask.setResourceProperty(datasourceId, parms) |
| #endDef |
| |
| # Set the default database provider to Derby |
| DefaultProviderType="Derby" |
| DefaultProviderName="Derby JDBC Provider" |
| DefaultPathName="${DERBY_JDBC_DRIVER_PATH}/derby.jar" |
| DefaultNativePathName= "" |
| |
| # If in an ND environment with multiple nodes or servers |
| # specify the target node and server name |
| TargetNodeName = "" |
| TargetServerName = "" |
| |
| if (TargetNodeName == ""): |
| TargetNodeName = getName(getNodeId()) |
| #endIf |
| |
| if (TargetServerName == ""): |
| TargetServerName = getName(getServerId()) |
| #endIf |
| |
| print "TargetNodeName: " + TargetNodeName |
| print "TargetServerName: " + TargetServerName |
| |
| # Build the scope for the Derby provider |
| scope = AdminConfig.getid("/Node:"+TargetNodeName+"/Server:"+TargetServerName+"/") |
| |
| scopeName = getName(scope) |
| print "Scope: " + scopeName |
| |
| providerId = AdminConfig.getid("/Server:"+scopeName+"/JDBCProvider:\""+DefaultProviderName+"\"/" ) |
| |
| if (providerId == ""): |
| print "Creating new JDBC provider" |
| providerId = AdminTask.createJDBCProvider('[-scope Node='+TargetNodeName+',Server='+TargetServerName+' -databaseType Derby -providerType "Derby JDBC Provider" -implementationType "Connection pool data source" -name "Derby JDBC Provider" -description "Derby embedded non-XA JDBC Provider." -classpath [${DERBY_JDBC_DRIVER_PATH}/derby.jar ] -nativePath "" ]') |
| #endIf |
| |
| print "Creating new JDBC data sources" |
| dataSourceId = AdminTask.createDatasource(providerId, '[-name "OpenBooks Data Source" -jndiName jdbc/OpenBooks -dataStoreHelperClassName com.ibm.websphere.rsadapter.DerbyDataStoreHelper -containerManagedPersistence false -componentManagedAuthenticationAlias -configureResourceProperties [[databaseName java.lang.String OpenBooks]]') |
| addDatasourceProperty(dataSourceId, "createDatabase", "create") |
| nonTxDataSourceId = AdminTask.createDatasource(providerId, '[-name "OpenBooks Non-transactional Data Source" -jndiName jdbc/NonTxOpenBooks -dataStoreHelperClassName com.ibm.websphere.rsadapter.DerbyDataStoreHelper -containerManagedPersistence false -componentManagedAuthenticationAlias -configureResourceProperties [[databaseName java.lang.String OpenBooks]]') |
| addDatasourceProperty(nonTxDataSourceId, "nonTransactionalDataSource", "true") |
| |
| print "Saving configuration" |
| AdminConfig.save( ) |
| print "Done" |