1 /*2 * JBoss, the OpenSource EJB server3 *4 * Distributable under LGPL license.5 * See terms of license at gnu.org.6 */7 package org.jboss.test.foedeployer.ejb.m2mb;8 9 import javax.ejb.EntityBean ;10 import javax.ejb.EntityContext ;11 import javax.ejb.FinderException ;12 import javax.ejb.NoSuchEntityException ;13 import javax.ejb.ObjectNotFoundException ;14 import javax.ejb.RemoveException ;15 import javax.ejb.CreateException ;16 import javax.ejb.DuplicateKeyException ;17 import javax.ejb.EJBException ;18 19 import javax.sql.DataSource ;20 import javax.naming.InitialContext ;21 import javax.naming.NamingException ;22 23 import java.sql.Connection ;24 import java.sql.Statement ;25 import java.sql.ResultSet ;26 import java.sql.SQLException ;27 28 import java.util.Collection ;29 30 import org.apache.log4j.Category;31 32 /**33 * Models a project.34 *35 * @ejb.bean36 * name="Project"37 * generate="true"38 * view-type="local"39 * type="CMP"40 * local-jndi-name="ProjectEJB.ProjectHome"41 * reentrant="False"42 * cmp-version="2.x"43 * primkey-field="name"44 *45 * @ejb.pk46 * class="java.lang.String"47 * generate="false"48 *49 * @@ejb.finder signature="Collection findAll()"50 *51 * @ejb.transaction type="Required"52 *53 * @@ejb.persistence table-name="project"54 * @weblogic:table-name project55 *56 * @jboss.create-table "${jboss.create.table}"57 * @jboss.remove-table "${jboss.remove.table}"58 *59 * @author <a HREF="mailto:aloubyansky@hotmail.com">Alex Loubyansky</a>60 */61 public abstract class ProjectBean62 implements EntityBean 63 {64 // Constants -----------------------------------------------------65 static Category log = Category.getInstance( ProjectBean.class );66 67 // Attributes ----------------------------------------------------68 private EntityContext ctx;69 70 // CMP71 72 /**73 * Project name: primary key field74 *75 * @ejb.pk-field76 * @ejb.persistent-field77 * @ejb.interface-method78 *79 * xdoclet needs update80 * @@ejb.persistence81 * column-name="name"82 * jdbc-type="VARCHAR"83 * sql-type="VARCHAR(50)"84 *85 * @weblogic:dbms-column name86 */87 public abstract String getName();88 public abstract void setName(String name);89 90 // CMR91 92 /**93 * Developers: m2m bidirectional CMR94 *95 * @ejb.interface-method96 *97 * @ejb.relation98 * name="Developer-Project"99 * role-name="Project-Has-Developers"100 *101 * @jboss.relation-table102 * table-name="developer_project"103 * create-table="${jboss.create.table}"104 * remove-table="${jboss.remove.table}"105 * @jboss.relation106 * fk-contraint="false"107 * related-pk-field="name"108 * fk-column="developer"109 *110 * @weblogic.relation join-table-name="developer_project"111 * @weblogic.column-map112 * foreign-key-column="project"113 * key-column="name"114 */115 public abstract Collection getDevelopers();116 /**117 * @ejb.interface-method118 */119 public abstract void setDevelopers(Collection developer);120 121 // EntityBean Implementation -------------------------------------122 /**123 * @ejb.create-method124 */125 public String ejbCreate( String name )126 throws CreateException 127 {128 setName(name);129 return null; // See 9.4.2 of the EJB 1.1 specification130 }131 132 public void ejbPostCreate( String name ) { }133 134 public void ejbRemove()135 throws RemoveException 136 {137 log.debug("removed: " + ctx.getPrimaryKey() );138 }139 140 public void setEntityContext(EntityContext ctx)141 {142 this.ctx = ctx;143 }144 145 public void unsetEntityContext()146 {147 ctx = null;148 }149 150 public void ejbActivate() { }151 public void ejbPassivate() { }152 public void ejbLoad() { }153 public void ejbStore() { }154 }155