Well I finally finished the jbosscmp-jdbc.xml stuff. I have inclosed a completly new jbosscmp-jdbc.j, a tar file that implements all of the cases found in the Monson-Haefel book including the schemas and a junit test to test them.
I added support for the SecrityDomain as an ant property. If the jboss:column-name is not implented then I simply put in the method property in the column-name attribute. This is the default behavior in jboss but who knows if it will change. Please review and if it looks OK I will take the stuff from the examples and write a quick JBOSS relations HOWTO. Dave
--- JBossSubTask.java Fri Jan 18 13:22:24 2002
+++ JBossSubTask.java.new Thu Jan 17 12:08:34 2002
@@ -43,6 +43,7 @@
private String datasource = "java:/DefaultDS";
private String typemapping;
private String generateRelations = "false";
+ private String securityDomain = "";
private String debug = "false";
public String getSubTaskName()
@@ -60,6 +61,10 @@
return version;
}
+ public String getSecurityDomain()
+ {
+ return securityDomain;
+ }
public String getDatasource()
{
return datasource;
@@ -85,6 +90,10 @@
this.version = version.getValue();
}
+ public void setSecurityDomain( String aSecurityDomain )
+ {
+ securityDomain = aSecurityDomain;
+ }
public void setDatasource( String datasource )
{
this.datasource = datasource;
--- jboss_xml.j Fri Jan 18 13:25:25 2002
+++ jboss_xml.j.new Fri Jan 18 13:25:12 2002
@@ -2,8 +2,9 @@
<!DOCTYPE jboss PUBLIC "<XDtXml:publicId/>" "<XDtXml:systemId/>">
<jboss>
- <XDtMerge:merge file="jboss-security.xml">
- </XDtMerge:merge>
+ <XDtConfig:ifHasConfigParam paramName="SecurityDomain" optional="true">
+ <security-domain><XDtConfig:configParameterValue
+paramName="SecurityDomain"/></security-domain>
+ </XDtConfig:ifHasConfigParam>
<enterprise-beans>
<?xml version="1.0" encoding="<XDtConfig:configParameterValue
paramName='Xmlencoding'/>"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "<XDtXml:publicId/>" "<XDtXml:systemId/>">
<jbosscmp-jdbc>
<defaults>
<datasource><XDtConfig:configParameterValue paramName="Datasource"/></datasource>
<type-mapping><XDtConfig:configParameterValue
paramName="Typemapping"/></type-mapping>
</defaults>
<enterprise-beans>
<XDtEjbCmp:forAllCmpEntityBeans>
<XDtEjb:ifIsAConcreteEJBean>
<entity>
<XDtMerge:merge file="jbosscmp-jdbc-db-settings-{0}.xml">
<ejb-name><XDtEjb:ejbName/></ejb-name>
<XDtClass:ifHasClassTag tagName="jboss:table-name">
<table-name><XDtClass:classTagValue tagName="jboss:table-name"
paramName="table-name" paramNum="0"/></table-name>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:create-table">
<create-table><XDtClass:classTagValue tagName="jboss:create-table"
paramName="create" paramNum="0"/></create-table>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:remove-table">
<remove-table><XDtClass:classTagValue tagName="jboss:remove-table"
paramName="remove" paramNum="0"/></remove-table>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:tuned-updates">
<tuned-updates><XDtClass:classTagValue tagName="jboss:tuned-updates"
paramName="tune" paramNum="0"/></tuned-updates>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:read-only">
<read-only><XDtClass:classTagValue tagName="jboss:read-only"
paramName="read-only" paramNum="0"/></read-only>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:time-out">
<time-out><XDtClass:classTagValue tagName="jboss:time-out"
paramName="time-out" paramNum="0"/></time-out>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:select-for-update">
<select-for-update><XDtClass:classTagValue tagName="jboss:select-for-update"
paramName="select-for-update" paramNum="0"/></select-for-update>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:pk-constraint">
<pk-constraint><XDtClass:classTagValue tagName="jboss:pk-constraint"
paramName="pk-constraint" paramNum="0"/></pk-constraint>
</XDtClass:ifHasClassTag>
</XDtMerge:merge>
<XDtMerge:merge file="jbosscmp-jdbc-{0}.xml">
<XDtMethod:forAllMethods>
<XDtMethod:ifDoesntHaveMethodTag tagName="jboss:not-persisted-field">
<XDtMethod:forAllMethodTags tagName="ejb:persistent-field">
<cmp-field>
<field-name><XDtMethod:propertyName/></field-name>
<XDtMethod:ifHasMethodTag tagName="jboss:column-name">
<column-name><XDtMethod:methodTagValue tagName="jboss:column-name"
paramName="name" paramNum="0"/></column-name>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifDoesntHaveMethodTag tagName="jboss:column-name">
<column-name><XDtMethod:propertyName/></column-name>
</XDtMethod:ifDoesntHaveMethodTag>
<XDtMethod:ifHasMethodTag tagName="jboss:jdbc-type">
<jdbc-type><XDtMethod:methodTagValue tagName="jboss:jdbc-type"
paramName="type" paramNum="0"/></jdbc-type>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="jboss:sql-type">
<sql-type><XDtMethod:methodTagValue tagName="jboss:sql-type"
paramName="type" paramNum="0"/></sql-type>
</XDtMethod:ifHasMethodTag>
</cmp-field>
</XDtMethod:forAllMethodTags>
</XDtMethod:ifDoesntHaveMethodTag>
</XDtMethod:forAllMethods>
<XDtClass:forAllClassTags tagName="jboss:cmp-field">
<cmp-field>
<field-name><XDtClass:classTagValue tagName="jboss:cmp-field"
paramName="field-name"/></field-name>
<column-name><XDtClass:classTagValue tagName="jboss:cmp-field"
paramName="column-name"/></column-name>
</cmp-field>
</XDtClass:forAllClassTags>
<XDtClass:forAllClassTags tagName="jboss:declared-sql">
<XDtClass:ifHasClassTag tagName="jboss:declared-sql" paramName="signature">
<query>
<query-method>
<method-name><XDtClass:classTagValue tagName="jboss:declared-sql"
paramName="signature" delimiter=" (" tokenNumber="1"/></method-name>
<method-params>
<XDtParameter:forAllParameterTypes paramName="signature">
<method-param><XDtParameter:currentToken/></method-param>
</XDtParameter:forAllParameterTypes>
</method-params>
</query-method>
<XDtClass:ifHasClassTag tagName="jboss:declared-sql" paramName
="result-type-mapping">
<result-type-mapping><XDtClass:classTagValue tagName ="jboss:declared-sql"
paramName="result-type-mapping" values ="Local,Remote"/></result-type-mapping>
</XDtClass:ifHasClassTag>
<declared-sql>
<XDtClass:ifHasClassTag tagName="jboss:declared-sql" paramName="where">
<where>
<![CDATA[
<XDtClass:classTagValue tagName="jboss:declared-sql"
paramName="where"/>
]]>
</where>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:declared-sql" paramName="order">
<order>
<![CDATA[
<XDtClass:classTagValue tagName="jboss:declared-sql"
paramName="order"/>
]]>
</order>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="jboss:declared-sql" paramName="other">
<other>
<![CDATA[
<XDtClass:classTagValue tagName="jboss:declared-sql"
paramName="other"/>
]]>
</other>
</XDtClass:ifHasClassTag>
</declared-sql>
</query>
</XDtClass:ifHasClassTag>
</XDtClass:forAllClassTags>
<XDtClass:forAllClassTags tagName="jboss:finder-query">
<finder>
<name><XDtClass:classTagValue tagName="jboss:finder-query"
paramName="name"/></name>
<query><![CDATA[<XDtClass:classTagValue tagName="jboss:finder-query"
paramName="query"/>]]></query>
<XDtClass:ifHasClassTag tagName="jboss:finder-query" paramName="order">
<order><XDtClass:classTagValue tagName="jboss:finder-query"
paramName="order"/></order>
</XDtClass:ifHasClassTag>
<XDtClass:ifDoesntHaveClassTag tagName="jboss:finder-query"
paramName="order">
<order></order>
</XDtClass:ifDoesntHaveClassTag>
</finder>
</XDtClass:forAllClassTags>
</XDtMerge:merge>
</entity>
</XDtEjb:ifIsAConcreteEJBean>
</XDtEjbCmp:forAllCmpEntityBeans>
</enterprise-beans>
<XDtEjbRel:ifHasRelationships>
<relationships>
<XDtEjbRel:forAllRelationships>
<ejb-relation>
<ejb-relation-name><XDtMethod:methodTagValue
tagName="ejb:relation" paramName="name"/></ejb-relation-name>
<XDtEjbRel:ifIsMany2Many>
<table-mapping>
<XDtMethod:ifHasMethodTag tagName="jboss:relation-table"
paramName="datasource">
<datasource><XDtMethod:methodTagValue tagName="jboss:relation-table"
paramName="datasource"/></datasource>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="jboss:relation-table"
paramName="table-name">
<table-name><XDtMethod:methodTagValue tagName="jboss:relation-table"
paramName="table-name"/></table-name>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="jboss:relation-table"
paramName="create-table">
<create-table><XDtMethod:methodTagValue tagName="jboss:relation-table"
paramName="create-table"/></create-table>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="jboss:relation-table"
paramName="remove-table">
<remove-table><XDtMethod:methodTagValue tagName="jboss:relation-table"
paramName="remove-table"/></remove-table>
</XDtMethod:ifHasMethodTag>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-mapping>
</XDtEjbRel:ifNotIsMany2Many>
<XDtEjbRel:forAllRelationshipRoles>
<ejb-relationship-role>
<ejb-relationship-role-name><XDtMethod:methodTagValue
tagName="ejb:relation" paramName="role-name"/></ejb-relationship-role-name>
<XDtMethod:ifHasMethodTag
tagName="jboss:relation">
<fk-constraint>true</fk-constraint>
<XDtEjbRel:ifIsMany2Many>
<table-key-fields>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-fields>
</XDtEjbRel:ifNotIsMany2Many>
<XDtMethod:forAllMethodTags tagName="jboss:relation">
<XDtEjbRel:ifIsMany2Many>
<table-key-field>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-field>
</XDtEjbRel:ifNotIsMany2Many>
<field-name><XDtMethod:methodTagValue tagName="jboss:relation"
paramName="relation-pk-column"/></field-name>
<column-name><XDtMethod:methodTagValue
tagName="jboss:relation" paramName="foreign-key-column"/></column-name>
<XDtEjbRel:ifIsMany2Many>
</table-key-field>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
</foreign-key-field>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:forAllMethodTags>
<XDtEjbRel:ifIsMany2Many>
</table-key-fields>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
</foreign-key-fields>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifDoesntHaveMethodTag
tagName="jboss:relation">
<XDtEjbRel:ifIsMany2Many>
<table-key-fields/>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-fields/>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:ifDoesntHaveMethodTag>
</ejb-relationship-role>
<XDtMethod:ifHasMethodTag tagName="ejb:relation" paramName="target-ejb">
<ejb-relationship-role>
<ejb-relationship-role-name><XDtMethod:methodTagValue
tagName="ejb:relation" paramName="target-role-name"/></ejb-relationship-role-name>
<XDtMethod:ifHasMethodTag
tagName="jboss:target-relation">
<fk-constraint>true</fk-constraint>
<XDtEjbRel:ifIsMany2Many>
<table-key-fields>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-fields>
</XDtEjbRel:ifNotIsMany2Many>
<XDtMethod:forAllMethodTags
tagName="jboss:target-relation">
<XDtEjbRel:ifIsMany2Many>
<table-key-field>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-field>
</XDtEjbRel:ifNotIsMany2Many>
<field-name><XDtMethod:methodTagValue
tagName="jboss:target-relation" paramName="relation-pk-column"/></field-name>
<column-name><XDtMethod:methodTagValue
tagName="jboss:target-relation" paramName="foreign-key-column"/></column-name>
<XDtEjbRel:ifIsMany2Many>
</table-key-field>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
</foreign-key-field>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:forAllMethodTags>
<XDtEjbRel:ifIsMany2Many>
</table-key-fields>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
</foreign-key-fields>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifDoesntHaveMethodTag
tagName="jboss:target-relation">
<XDtEjbRel:ifIsMany2Many>
<table-key-fields/>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
<foreign-key-fields/>
</XDtEjbRel:ifNotIsMany2Many>
</XDtMethod:ifDoesntHaveMethodTag>
</ejb-relationship-role>
</XDtMethod:ifHasMethodTag>
</XDtEjbRel:forAllRelationshipRoles>
<XDtEjbRel:ifIsMany2Many>
</table-mapping>
</XDtEjbRel:ifIsMany2Many>
<XDtEjbRel:ifNotIsMany2Many>
</foreign-key-mapping>
</XDtEjbRel:ifNotIsMany2Many>
</ejb-relation>
</XDtEjbRel:forAllRelationships>
</relationships>
</XDtEjbRel:ifHasRelationships>
</jbosscmp-jdbc>
rel.tar.gz
Description: application/gzip
