Discussion:
[Middlegen-user] Problem with removing Local suffix
Ben Litchfield
2002-11-14 19:15:01 UTC
Permalink
I pulled middlegen out of CVS yesterday. I am trying to create some
CMP2.0 entity beans from an existing schema. I changed the localsuffix
and localhomesuffix to be "" so that the classes don't have Local at the
end of them. The problem is with the <sequenceblock> element. The
SequenceSessionBean is referencing SequenceLocalHome, which
does not exist, only SequenceHome exists.

The top of the SequenceSessionBean looks like this
public abstract class SequenceSessionBean implements javax.ejb.SessionBean
{

private class Entry {
SequenceLocal sequence;
int last;
}

private java.util.Hashtable _entries = new java.util.Hashtable();
private int _blockSize;
private int _retryCount;
private SequenceLocalHome _sequenceHome;


The classes that are generated are
Sequence
SequenceData
SequenceHome


Here is the snippet from my build.xml

<target name="middlegen" description="Run Middlegen" >
<delete dir="${gen.src.dir}"/>
<mkdir dir="${gen.src.dir}"/>
<taskdef
name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="build.classpath"
/>

<middlegen
appname="${project.name}"
prefsdir="${config.dir}"
gui="true"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${jboss.datasource.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"
<cmp20
destination="${gen.src.dir}"
package="${ejb.package.name}"
interfacepackage="${ejb-client.package.name}"
jndiprefix="${project.name}"
pkclass="false"
dataobject="true"
viewtype="local"
readonly="false"
fkcmp="true"
guid="true"
localsuffix=""
localhomesuffix=""
<!-- Let the EJBs use The Sequence Block PK generation pattern -->
<sequenceblock
blocksize="5"
retrycount="2"
table="SEQ_BLOCK"
/>
<jboss/>
</cmp20>
</middlegen>

</target>

<!-- ===================================================================
-->
<!-- Run Ejbdoclet on Middlegen-generated sources
-->
<!-- ===================================================================
-->
<target name="ejbdoclet" depends="middlegen" >
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="build.classpath"/>

<ejbdoclet destdir="${gen.src.dir}" excludedtags="@version,@author"
ejbspec="2.0">
<packageSubstitution packages="entity.ejb" substituteWith="entity"/>

<fileset dir="${gen.src.dir}">
<include name="**/ejb/**/*Bean.java" />
</fileset>

<utilobject kind="physical"/>
<localinterface pattern="{0}"/>
<localhomeinterface pattern="{0}Home" />
<dataobject/>
<session/>
<entitypk/>
<!--<entitycmp/>-->
<deploymentdescriptor
xmlencoding="ISO-8859-1"
destdir="${config.dir}"
validatexml="true"
/>

<jboss
version="3.0"
xmlencoding="ISO-8859-1"
destdir="${config.dir}"
validatexml="true"
datasource="${jboss.datasource.name}"
datasourcemapping="${jboss.datasource.mapping}"
/>
</ejbdoclet>
</target>

Loading...