Hi,

I am trying middlegen to see if it is something I can use for my application, 
so I have made a small test to check it out...

Enviroment...
(weblogic6.1sp2)
Jdk 1.3.1_03
ant-1.5.1
mssql 2000
database driver, mssqlserver4v65.jar
middlegen-2.1

I have attached my test files. 

When the ant compile task tries to compile the sources it gets this error. 

compile-ejb:
    [javac] Compiling 38 source files to D:\home\devtest\middlegen\build
    [javac] D:\home\devtest\middlegen\src\MiddlegenTest\ejb\UserBean.java:212: c
annot resolve symbol
    [javac] symbol  : variable groups
    [javac] location: class MiddlegenTest.ejb.UserBean
    [javac]       setGroups(groups);
    [javac]                 ^
    [javac] 1 error

If I remove the relationship between the Group and User table it compiles with 
no error.

Any suggestions?

~b

Attachment: build.properties
Description: build.properties

<?xml version="1.0"?>


<project name="Middlegen" default="all" basedir=".">
   <target
      name="middlegen"
      description="Run Middlegen"
   >

   <property file="${basedir}/build.properties"/>

      <mkdir dir="${build.gen-src.dir}"/>

   <path id="lib.class.path">
      <pathelement path="D:\\bea6.1sp2\\"/>
      <pathelement path="${basedir}"/>
      <pathelement path="${database.driver.classpath}"/>
      <fileset dir="${lib.dir}">
         <include name="*.jar"/>
         <include name="*.bea"/>
      </fileset>
      <!-- The middlegen jars -->
      <fileset dir="${middlegen.home}">
         <include name="*.jar"/>
      </fileset>
   </path>


      <taskdef
         name="middlegen"
         classname="middlegen.MiddlegenTask"
         classpathref="lib.class.path"
      />

      <middlegen
         appname="${name}"
         prefsdir="${src.dir}"
         gui="${gui}"
         databaseurl="${database.url}"
         initialContextFactory="${java.naming.factory.initial}"
         providerURL="${java.naming.provider.url}"
         datasourceJNDIName="${datasource.jndi.name}"
         driver="${database.driver}"
         username="${database.userid}"
         password="${database.password}"
         schema="${database.schema}"
         catalog="${database.catalog}"
         includeViews="false"
      >

		<table name="User"/>
		<table name="Group"/>

         <!--
         We can specify what tables we want EJBs generated for.
         If none are specified, EJBs will be generated for all tables.
         Comment out the <table> elements if you want to generate for all tables.
         Also note that table names are CASE SENSITIVE for certain databases,
         so on e.g. Oracle you should specify table names in upper case.

         The sequencename attribute is optional and will be used from
         the oraclesequence extension. If no sequencename is present
         it will be the name attribute suffixed by _SEQ.

         -->
         <!--table generate="true" name="persons" pktable="persons_pk"
                sequencename="my_persons_sequence" />
         <table generate="true" name="flights" pktable="flights_pk"/>
         <table name="reservations"/-->

         <!--
         If you want m:n relations, they must be specified like this.
         Note that tables declare in multiple locations must all have
         the same value of the generate attribute.
         -->
         <!--many2many>
            <tablea generate="true" name="persons"/>
            <jointable name="reservations" generate="false"/>
            <tableb generate="true" name="flights"/>
         </many2many-->

         <!--table name="PERSON" pktable="id" singular="person" plural="persons" />
         <table name="ADDRESS" pktable="id" singular="address" plural="addresses" />

         <many2many>
            <tablea generate="true" name="PERSON" />
            <jointable name="EMPLOYMENT" generate="false" />
            <tableb generate="true" name="PERSON" />
         </many2many-->

         <cmp20
            destination="${build.gen-src.dir}"
            package="${name}.ejb"
            interfacepackage="${name}.interfaces"
            jndiprefix="${unique.name}"
            pkclass="false"
            dataobject="false"
            valueobject="true"
            sessionfacade="true"
            viewtype="local"
            mergedir="${basedir}/src/middlegen"
            readonly="false"
            fkcmp="true"
            guid="true"
         >
            <!-- Let the EJBs use The portable Sequence Block PK generation pattern -->
            <sequenceblock
               blocksize="5"
               retrycount="2"
               table="SEQ_BLOCK"
            />

            <!-- We can use predicates to specify what columns we want finders for -->
            <!--finders>
               <and>
                  <indexed/>
                  <notkey/>
               </and>
            </finders-->

            <!--
            EJB containers can be specified here. They add aditional
            features and perform additional validations. You don't have to
            add them, they just provide "goodies".
            -->
            <!--weblogic pkgen="VENDOR_SEQ" generatorName="my_sequence" keyCacheSize="20"/-->
            <weblogic/>
         </cmp20>

         <!-- generate som read-only beans too -->
         <!--cmp20
            name="cmp20_ro"
            destination="${build.gen-src.dir}"
            package="${name}.ejb"
            interfacepackage="${name}.interfaces"
            jndiprefix="${unique.name}"
            generatepk="false"
            dataobject="false"
            viewtype="local"
            mergedir="${basedir}/src/middlegen"
            readonly="true"
            fkcmp="true"
            suffix="RO"
         >
            <jboss/>
            <mvcsoft/>
         </cmp20-->


      </middlegen>

      <mkdir dir="${build.classes.dir}"/>
   </target>

   <!-- =================================================================== -->
   <!-- Run Ejbdoclet on Middlegen-generated sources                        -->
   <!-- =================================================================== -->
   <target
      name="ejbdoclet"
      depends="middlegen"
   >
      <mkdir dir="${build.ejb-meta.dir}"/>

      <taskdef
         name="ejbdoclet"
         classname="xdoclet.modules.ejb.EjbDocletTask"
         classpathref="lib.class.path"
      />

      <!-- first run xdoclet to generate facade objects only -->
      <ejbdoclet
      	destdir="${build.gen-src.dir}"
      	excludedtags="@version,@author"
      	ejbspec="2.0"
      >
      	<fileset dir="${build.gen-src.dir}">
      		<include name="**/ejb/**/*Bean.java" />
      		<exclude name="**/ejb/**/SeqBlockBean.java" />
      		<exclude name="**/ejb/**/SequenceBean.java" />
      	</fileset>

      	<packageSubstitution packages="ejb" substituteWith="interfaces"/>

      	<entityfacade>
      	</entityfacade>
      </ejbdoclet>

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

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

         <utilobject kind="physical" includeGUID="true"/>
         <localinterface/>
         <localhomeinterface/>
         <!--dataobject/-->
         <valueobject/>
         <remoteinterface/>
         <homeinterface/>
         <session/>
         <entitypk/>
         <entitycmp/>
         <deploymentdescriptor
            xmlencoding="ISO-8859-1"
            destdir="${build.ejb-meta.dir}/META-INF"
            validatexml="true"
         />
         <weblogic
            version="6.1"
            xmlencoding="ISO-8859-1"
            destdir="${build.ejb-meta.dir}/META-INF"
            validatexml="true"
            datasource="${datasource.jndi.name}"
         />

      </ejbdoclet>
   </target>

      <target name="compile-ejb" depends="ejbdoclet" description="Compile business logic (ejb)">
         <javac
            srcdir="${build.gen-src.dir}"
            destdir="${build.classes.dir}"
            classpathref="lib.class.path"
         >
            <include name="**/ejb/**/*"/>
            <include name="**/interfaces/**/*"/>
         </javac>
   </target>

   <target name="ejb-jar" depends="compile-ejb" description="Make ejb jar file">
      <mkdir dir="${ejb.dir}"/>
      <jar
         jarfile="${ejb.jar.file}"
      >
         <fileset dir="${build.classes.dir}">
            <include name="**/ejb/**/*"/>
            <include name="**/interfaces/**/*"/>
         </fileset>
         <fileset dir="${build.ejb-meta.dir}"/>
      </jar>
   </target>

   <target
      name="postprocess-ejb-jar"
      depends="ejb-jar"
      description="Make ejb jar file processed by weblogic ejbc"
   >
      <property name="standard.ejb.jar.file" value="${ejb.dir}/standard-${unique.name}-ejb.jar"/>
      <move file="${ejb.jar.file}" tofile="${standard.ejb.jar.file}"/>
      <echo>Running weblogic.ejbc</echo>
      <java
         classname="weblogic.ejbc"
         fork="yes"
         failonerror="true"
         classpath="${weblogic.jar}"
      >
         <!--arg value="-keepgenerated"/-->
         <arg value="${standard.ejb.jar.file}"/>
         <arg value="${ejb.jar.file}"/>
      </java>
      <delete file="${standard.ejb.jar.file}"/>
   </target>

</project>

Attachment: middlegentest.sql
Description: middlegentest.sql

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
middlegen-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/middlegen-user

Reply via email to