1.,2.:
This depends on the used WorkflowRepository.
Copper comes with two of them:
a) FileBasedWorkflowRepository
Workflow classes have to be deployed as Java files. They have to reside in one ore more directories or/and in one or more jarfiles.
On system startup these Java files are automatically compiled and instrumented by this repository.
It offers hot deployment by observing the Java files in the configured directories. In case of modifications, all Java files are compiled and instrumented again.
b) ClasspathWorkflowRepository
From the javadoc:
Easy to use implementation of the WorkflowRepository interface. This workflow repository looks for its workflows in the normal classpath, just one or more package names of those packages containing the workflow classes need to be configured.
Compared to the FileBasedWorkflowRepository this is quite easy to use, because workflows do not need to reside in a dedicated source folder, they don't need to be deployed as java source files and no java compiler (JDK) is needed to run the application.
On the other hand there is no hot deployment feature and the JMX interface does not show the java source code of the deployed workflows. Anyhow, this workflow repo is probably suitable for most simple COPPER applications.
3.:
This also depends on the used Repository. If you use the FileBasedWorkflowRepository, then at least the workflow classes (Java files) have to be in a extra folder or jarfile.
If you use ClasspathWorkflowRepository it does not matter.