// runtime server context
ServerContext ctx = ApplicationServer.getServerContext();
// environment object for this server instance
InstanceEnvironment env = ctx.getInstanceEnvironment();
// application object associated with this ejb
Application application = desc.getApplication();
String dirName = null;
String componentSeparator = "_";
if (application.isVirtual()) {
// ejb is part of a stand alone ejb module
String archURI = desc.getEjbBundleDescriptor().
getModuleDescriptor().getArchiveUri();
passivationDirName = env.getModulePassivatedEjbPath()
+ File.separator + FileUtils.makeFriendlyFilename(archURI)
+ componentSeparator + desc.getName();
} else {
// ejb is part of an application
passivationDirName = env.getApplicationPassivatedEjbPath()
+ File.separator + application.getRegistrationName()
+ componentSeparator + desc.getName()
+ componentSeparator + desc.getUniqueId();
}