@Override public void deploy(VFSDeploymentUnit unit, RackApplicationMetaData metaData) throws DeploymentException { String beanName = AttachmentUtils.beanName(unit, RackApplicationPool.class); BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanName, RackApplicationPoolImpl.class.getName()); metaData.setRackApplicationPoolName(beanName); String appfactoryBeanName = metaData.getRackApplicationFactoryName(); if (appfactoryBeanName == null) { appfactoryBeanName = AttachmentUtils.beanName(unit, RackApplicationFactory.class); } String runtimePoolBeanName = metaData.getRubyRuntimePoolName(); if (runtimePoolBeanName == null) { runtimePoolBeanName = AttachmentUtils.beanName(unit, RubyRuntimePool.class, POOL_NAME); metaData.setRubyRuntimePoolName(runtimePoolBeanName); } ValueMetaData runtimePoolInjection = builder.createInject(runtimePoolBeanName); ValueMetaData appFactoryInjection = builder.createInject(appfactoryBeanName); builder.addConstructorParameter(RubyRuntimePool.class.getName(), runtimePoolInjection); builder.addConstructorParameter(RackApplicationFactory.class.getName(), appFactoryInjection); AttachmentUtils.attach(unit, builder.getBeanMetaData()); if (null == AttachmentUtils.getAttachment(unit, POOL_NAME, PoolMetaData.class)) { AttachmentUtils.multipleAttach(unit, new PoolMetaData(POOL_NAME), POOL_NAME); } }
@Override public void deploy(DeploymentUnit unit) throws DeploymentException { log.debug("Deploying rails app as rack: " + unit); RailsApplicationMetaData railsAppMetaData = unit.getAttachment(RailsApplicationMetaData.class); try { RackApplicationMetaData rackMetaData = unit.getAttachment(RackApplicationMetaData.class); log.info(rackMetaData); log.info(railsAppMetaData); if (railsAppMetaData.isRails3()) { log.debug("Configuring up a rails 3 application: " + unit); rackMetaData.setRackUpScriptLocation("config.ru"); } else { log.debug("Configuring up a rails 2 application: " + unit); rackMetaData.setRackUpScript(getRackUpScript(rackMetaData.getContextPath())); rackMetaData.setRackUpScriptLocation(null); } rackMetaData.setStaticPathPrefix(STATIC_PATH_PREFIX); log.debug("Configured rack deployment: " + unit + "\n" + rackMetaData); } catch (Exception e) { throw new DeploymentException(e); } }