Package org.jboss.resource.deployers.management

Source Code of org.jboss.resource.deployers.management.DsDataSourceTemplate

/*     */ package org.jboss.resource.deployers.management;
/*     */
/*     */ import java.io.File;
/*     */ import java.io.FileWriter;
/*     */ import java.io.Serializable;
/*     */ import java.net.URI;
/*     */ import java.util.Map;
/*     */ import javax.xml.bind.JAXBContext;
/*     */ import javax.xml.bind.JAXBElement;
/*     */ import javax.xml.bind.Marshaller;
/*     */ import javax.xml.namespace.QName;
/*     */ import org.jboss.deployers.spi.management.DeploymentTemplate;
/*     */ import org.jboss.deployers.spi.management.DeploymentTemplateInfo;
/*     */ import org.jboss.deployers.spi.management.KnownComponentTypes.DataSourceTypes;
/*     */ import org.jboss.deployers.vfs.spi.client.VFSDeployment;
/*     */ import org.jboss.logging.Logger;
/*     */ import org.jboss.managed.api.ComponentType;
/*     */ import org.jboss.managed.api.ManagedObject;
/*     */ import org.jboss.managed.api.ManagedProperty;
/*     */ import org.jboss.managed.api.factory.ManagedObjectFactory;
/*     */ import org.jboss.managed.plugins.factory.ManagedObjectFactoryBuilder;
/*     */ import org.jboss.resource.metadata.mcf.LocalDataSourceDeploymentMetaData;
/*     */ import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
/*     */ import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentMetaData;
/*     */ import org.jboss.resource.metadata.mcf.NoTxConnectionFactoryDeploymentMetaData;
/*     */ import org.jboss.resource.metadata.mcf.NoTxDataSourceDeploymentMetaData;
/*     */ import org.jboss.resource.metadata.mcf.TxConnectionFactoryDeploymentMetaData;
/*     */ import org.jboss.resource.metadata.mcf.XADataSourceDeploymentMetaData;
/*     */ import org.jboss.virtual.VirtualFile;
/*     */
/*     */ public class DsDataSourceTemplate
/*     */   implements DeploymentTemplate
/*     */ {
/*  59 */   private static final Logger log = Logger.getLogger(DsDataSourceTemplate.class);
/*     */   private DeploymentTemplateInfo info;
/*     */
/*     */   public VirtualFile applyTemplate(VirtualFile root, String deploymentBaseName, DeploymentTemplateInfo values)
/*     */     throws Exception
/*     */   {
/*  65 */     String dsName = deploymentBaseName + "-ds.xml";
/*  66 */     URI dsXmlURI = new URI(root.toURI() + dsName);
/*  67 */     File dsXml = new File(dsXmlURI.getPath());
/*  68 */     writeTemplate(dsXml, values);
/*  69 */     return root.findChild(dsName);
/*     */   }
/*     */
/*     */   public DeploymentTemplateInfo getInfo()
/*     */   {
/*  74 */     return this.info;
/*     */   }
/*     */
/*     */   public void setInfo(DeploymentTemplateInfo info) {
/*  78 */     this.info = info;
/*     */   }
/*     */
/*     */   public void updateTemplateDeployment(VFSDeployment ctx, DeploymentTemplateInfo values)
/*     */     throws Exception
/*     */   {
/*     */   }
/*     */
/*     */   protected void writeTemplate(File dsXml, DeploymentTemplateInfo values)
/*     */     throws Exception
/*     */   {
/*  90 */     String cfType = ((DsDataSourceTemplateInfo)values).getConnectionFactoryType();
/*     */
/*  93 */     ManagedObjectFactory mof = ManagedObjectFactoryBuilder.create();
/*     */
/*  96 */     String rootElementName = "datasources";
/*     */     ManagedObject cfMO;
/*  97 */     if ("local-tx-datasource".equals(cfType))
/*     */     {
/*  99 */       ManagedConnectionFactoryDeploymentMetaData mcf = new LocalDataSourceDeploymentMetaData();
/* 100 */       mof.setBuilder(mcf.getClass(), new XADataSourceDeploymentMetaDataBuilder());
/* 101 */       cfMO = mof.initManagedObject(mcf, KnownComponentTypes.DataSourceTypes.LocalTx.getType().getType(), KnownComponentTypes.DataSourceTypes.LocalTx.getType().getSubtype());
/*     */     }
/*     */     else
/*     */     {
/*     */       ManagedObject cfMO;
/* 105 */       if ("xa-datasource".equals(cfType))
/*     */       {
/* 107 */         ManagedConnectionFactoryDeploymentMetaData mcf = new XADataSourceDeploymentMetaData();
/* 108 */         mof.setBuilder(mcf.getClass(), new XADataSourceDeploymentMetaDataBuilder());
/* 109 */         cfMO = mof.initManagedObject(mcf, KnownComponentTypes.DataSourceTypes.XA.getType().getType(), KnownComponentTypes.DataSourceTypes.XA.getType().getSubtype());
/*     */       }
/*     */       else
/*     */       {
/*     */         ManagedObject cfMO;
/* 113 */         if ("tx-connection-factory".equals(cfType))
/*     */         {
/* 115 */           rootElementName = "connection-factories";
/* 116 */           ManagedConnectionFactoryDeploymentMetaData mcf = new TxConnectionFactoryDeploymentMetaData();
/* 117 */           mof.setBuilder(mcf.getClass(), new XADataSourceDeploymentMetaDataBuilder());
/*     */
/* 119 */           cfMO = mof.initManagedObject(mcf, "ConnectionFactory", "XA");
/*     */         }
/*     */         else
/*     */         {
/*     */           ManagedObject cfMO;
/* 123 */           if ("no-tx-connection-factory".equals(cfType))
/*     */           {
/* 125 */             rootElementName = "connection-factories";
/* 126 */             ManagedConnectionFactoryDeploymentMetaData mcf = new NoTxConnectionFactoryDeploymentMetaData();
/* 127 */             mof.setBuilder(mcf.getClass(), new XADataSourceDeploymentMetaDataBuilder());
/*     */
/* 129 */             cfMO = mof.initManagedObject(mcf, "ConnectionFactory", "NoTx");
/*     */           }
/*     */           else
/*     */           {
/*     */             ManagedObject cfMO;
/* 133 */             if ("no-tx-datasource".equals(cfType))
/*     */             {
/* 135 */               ManagedConnectionFactoryDeploymentMetaData mcf = new NoTxDataSourceDeploymentMetaData();
/* 136 */               mof.setBuilder(mcf.getClass(), new XADataSourceDeploymentMetaDataBuilder());
/* 137 */               cfMO = mof.initManagedObject(mcf, KnownComponentTypes.DataSourceTypes.NoTx.getType().getType(), KnownComponentTypes.DataSourceTypes.NoTx.getType().getSubtype());
/*     */             }
/*     */             else
/*     */             {
/* 142 */               throw new IllegalStateException("Unexpected value connection factory type: " + cfType);
/*     */             }
/*     */           }
/*     */         }
/*     */       }
/*     */     }
/*     */     ManagedObject cfMO;
/*     */     ManagedConnectionFactoryDeploymentMetaData mcf;
/* 144 */     ManagedConnectionFactoryDeploymentGroup group = new ManagedConnectionFactoryDeploymentGroup();
/* 145 */     group.addManagedConnectionFactoryDeployment(mcf);
/* 146 */     boolean logTrace = log.isTraceEnabled();
/* 147 */     for (ManagedProperty tempProp : values.getProperties().values())
/*     */     {
/* 149 */       ManagedProperty dsProp = cfMO.getProperty(tempProp.getName());
/* 150 */       if (dsProp != null)
/*     */       {
/* 152 */         if (logTrace)
/* 153 */           log.trace("setting " + tempProp.getName() + "=" + tempProp.getValue());
/* 154 */         dsProp.setValue((Serializable)tempProp.getValue());
/*     */       }
/* 156 */       else if (logTrace) {
/* 157 */         log.trace("property not found: " + tempProp.getName());
/*     */       }
/*     */     }
/* 160 */     Class[] classes = { ManagedConnectionFactoryDeploymentGroup.class };
/* 161 */     JAXBContext context = JAXBContext.newInstance(classes);
/* 162 */     Marshaller marshaller = context.createMarshaller();
/* 163 */     marshaller.setProperty("jaxb.formatted.output", Boolean.TRUE);
/*     */
/* 165 */     JAXBElement root = new JAXBElement(new QName(rootElementName), ManagedConnectionFactoryDeploymentGroup.class, null, group);
/*     */
/* 172 */     FileWriter fw = null;
/*     */     try
/*     */     {
/* 175 */       fw = new FileWriter(dsXml);
/* 176 */       marshaller.marshal(root, fw);
/*     */     }
/*     */     finally
/*     */     {
/* 180 */       if (fw != null)
/* 181 */         fw.close();
/*     */     }
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.resource.deployers.management.DsDataSourceTemplate
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.resource.deployers.management.DsDataSourceTemplate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.