For new r-code to be seen by an online, the PAS instance does not necessarily need to be stopped/started depending on the OpenEdge version in use. This information is summarised in Article How to refresh AppServer r-code without restarting?
The deployment .war file does not contain r-code, subsequently the r-code needs to be copied to the "publishDir" location in PASOE <instance>/conf/openedge.properties. For example, from instance>/conf/openedge.properties:
[AppServer.SessMgr]
agentExecFile=${psc.as.oe.dlc}/bin/_mproapsv
agentListenerTimeout=300000
agentLogEntryTypes=
agentLogFile=
agentLoggingLevel=2
agentLogThreshold=0
agentNumLogFiles=3
agentStartupParam=-T ${catalina.base}/temp
connectionWaitTimeout=3000
idleAgentTimeout=300000
idleConnectionTimeout=300000
idleResourceTimeout=0
idleSessionTimeout=300000
ipver=IPv4
maxABLSessionsPerAgent=200
maxAgents=10
maxConnectionsPerAgent=16
numInitialAgents=1
publishDir=${catalina.base}/openedge
requestWaitTimeout=15000
socketTimeout=3000
Here the publish directory is, 'publishDir=${catalina.base}/openedge' and this needs to be included in the PROPATH property in <instance>/conf/openedge.properties.
PROPATH=${CATALINA_BASE}/openedge,${DLC}/tty
The default is ${CATALINA_BASE}/openedge ( aka ${catalina.base}/openedge ), where CATALINA_BASE is the root directory location of the PASOE instance. The same basic PROPATH rules apply as classic appserver - the publishDir must be in the PROPATH.