#
# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
# SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#

#
# @(#)Makefile	1.19 02/01/12
#

all:	all2

include $(CTS_HOME)/build/Defs.mk

PACKAGE=com.sun.cts.harness.vehicle.ejb


PKG_DIR=com$(SLASH)sun$(SLASH)cts$(SLASH)harness$(SLASH)vehicle$(SLASH)ejb
SRC_DIR=$(CTS_HOME)$(SLASH)common$(SLASH)harness$(SLASH)vehicle$(SLASH)ejb
CLASS_DIR=$(COMPILE_DIR)$(SLASH)$(PKG_DIR)


INTERFACE=	EJBVehicleRemote.class EJBVehicleHome.class
BEANS=		EJBVehicle.class
FULLCLIENT=$(FULLCLIENT)

#The sevice test can provide a props file in the test dir else you get the
#default in the ejb_vehicle dir.
XML:=$(shell if [ -f $(SRC_DIR)$(SLASH)ejb_vehicle.props ];then echo "ejb_vehicle.xml appclient_ejb.xml"; else echo "vehicle.xml appclient_ejb.xml"; fi )

APP_NAME=$(TESTNAME)_ejb_vehicle
APP_EAR=$(APP_NAME).ear

#Adds test components (if there are any) that need to be packaged with
#the vehicle
ifneq ($(APP_COMP_TYPE), )
    COMP_TYPE=EJB APPCLIENT $(APP_COMP_TYPE)
endif

APPCLIENT_CLASSES=$(TEST_CLASSES):$(PKG_DIR)$(SLASH)EJBVehicleRemote.class:$(PKG_DIR)$(SLASH)EJBVehicleHome.class

APP_CLASSES=$(TEST_CLASSES):$(PKG_DIR)$(SLASH)EJBVehicleRemote.class:$(PKG_DIR)$(SLASH)EJBVehicleHome.class:$(PKG_DIR)$(SLASH)EJBVehicle.class

CLIENT_JAR  = $(J2EE_REPDIR)$(SLASH)applications$(SLASH)$(APP_NAME)Client.jar

include $(CTS_HOME)/build/BuildRules.mk


all2: all_classes all_xml $(APP_EAR)  

# generate all of the class files
all_classes: all_classescommon $(INTERFACE) $(BEANS) 

#### XML Conversion
all_xml: remove_old_xml all_xmlcommon $(XML)

remove_old_xml:
	rm -rf $(CLASS_DIR)$(SLASH)*.xml

#### CREATE APPLICATION JAR
$(APP_EAR):  create_unique_names app_ejbcommon app_clientcommon
	$(PACKAGE_APP)


create_unique_names:
	sed -e 's/display-name>com\.sun\.cts\.harness\.vehicle\.ejb\.EJBVehicle/display-name>$(APP_NAME)/' $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml; \
	sed -e 's/ejb-name>com\.sun\.cts\.harness\.vehicle\.ejb\.EJBVehicle/ejb-name>$(APP_NAME)/' $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.ejbBundle.xml; \
	sed -e 's/ejb-name>com\.sun\.cts\.harness\.vehicle\.ejb\.EJBVehicle/ejb-name>$(APP_NAME)/' $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml; 
	sed -e 's/jndi-name>com_sun_cts_harness_vehicle_ejb_EJBVehicle/jndi-name>$(APP_NAME)/' $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.runtime.xml; \
	sed -e 's/jndi-name>com_sun_cts_harness_vehicle_ejb_EJBVehicle/jndi-name>$(APP_NAME)/' $(CLASS_DIR)$(SLASH)$(APP_NAME).client.runtime.xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).client.runtime.xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).client.runtime.xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).client.runtime.xml; 
	sed -e 's/display-name>ejb_vehicle_client/display-name>$(APP_NAME)_client/' $(CLASS_DIR)$(SLASH)$(APP_NAME).xml > \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml.tmp; \
	mv -f $(CLASS_DIR)$(SLASH)$(APP_NAME).xml.tmp \
		$(CLASS_DIR)$(SLASH)$(APP_NAME).xml; 


VEHICLE="-vehicle ejb"

runclient:
	cd $(SRC_DIR); $(MAKE) runclient2 COMP_TYPE=APPCLIENT APP_NAME=$(APP_NAME) VEHICLE=$(VEHICLE) PKG_DIR=$(PKG_DIR); cd $(CWD);

deploy: service_deploycommon

undeploy: undeploycommon

# Note: for clean to work, ejbd must be stopped and restarted
clean:	cleancommon 
	rm -rf  ejb_vehicle.props

