ontomde-java 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +10 -0
- data/Manifest.txt +156 -0
- data/README.txt +98 -0
- data/Rakefile +21 -0
- data/bin/ontomde-java +5 -0
- data/generateRdocFile.sh +16 -0
- data/lib/ontomde-java.rb +45 -0
- data/lib/ontomde-java/crank.rb +13 -0
- data/lib/ontomde-java/crank/context.rb +384 -0
- data/lib/ontomde-java/crank/crankJpa.rb +103 -0
- data/lib/ontomde-java/crank/equals.rb +83 -0
- data/lib/ontomde-java/crank/facelets.rb +243 -0
- data/lib/ontomde-java/crank/facesconfig.rb +113 -0
- data/lib/ontomde-java/crank/helper.rb +46 -0
- data/lib/ontomde-java/crank/main.rb +51 -0
- data/lib/ontomde-java/crank/menu.rb +39 -0
- data/lib/ontomde-java/crank/menu2.rb +78 -0
- data/lib/ontomde-java/crank/validation.rb +34 -0
- data/lib/ontomde-java/ejb2.rb +3 -0
- data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
- data/lib/ontomde-java/flex.rb +7 -0
- data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
- data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-java/flex/fileTypes.rb +19 -0
- data/lib/ontomde-java/flex/main.rb +347 -0
- data/lib/ontomde-java/frontend/command.rb +324 -0
- data/lib/ontomde-java/frontend/command.rdoc +583 -0
- data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
- data/lib/ontomde-java/frontend/options.rb +555 -0
- data/lib/ontomde-java/frontend/steps.rb +287 -0
- data/lib/ontomde-java/java/accessorCode.rb +528 -0
- data/lib/ontomde-java/java/accessorSignature.rb +347 -0
- data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
- data/lib/ontomde-java/java/apache.rb +34 -0
- data/lib/ontomde-java/java/build.rb +80 -0
- data/lib/ontomde-java/java/collectionMapping.rb +112 -0
- data/lib/ontomde-java/java/component.rb +446 -0
- data/lib/ontomde-java/java/contextualize.rb +43 -0
- data/lib/ontomde-java/java/enumAssignable.rb +75 -0
- data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
- data/lib/ontomde-java/java/equals.rb +91 -0
- data/lib/ontomde-java/java/groovy.rb +95 -0
- data/lib/ontomde-java/java/java.rb +1329 -0
- data/lib/ontomde-java/java/java.rdoc +78 -0
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
- data/lib/ontomde-java/java/javaHelper.rb +25 -0
- data/lib/ontomde-java/java/java_todo.rdoc +3 -0
- data/lib/ontomde-java/java/javadoc.rb +254 -0
- data/lib/ontomde-java/java/meta.rb +28 -0
- data/lib/ontomde-java/java/operationAsClass.rb +144 -0
- data/lib/ontomde-java/java/security.rb +260 -0
- data/lib/ontomde-java/java/stateMachine.rb +415 -0
- data/lib/ontomde-java/java/tenant.rb +65 -0
- data/lib/ontomde-java/java/xsd.rb +1363 -0
- data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
- data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
- data/lib/ontomde-java/jpa.rb +17 -0
- data/lib/ontomde-java/jpa/configuration.rb +176 -0
- data/lib/ontomde-java/jpa/finder.rb +102 -0
- data/lib/ontomde-java/jpa/jpa.rb +531 -0
- data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
- data/lib/ontomde-java/jpa/locking.rb +18 -0
- data/lib/ontomde-java/jpa/mapping.rb +314 -0
- data/lib/ontomde-java/jpa/redefined.rb +77 -0
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
- data/lib/ontomde-java/jpdl.rb +9 -0
- data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
- data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
- data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
- data/lib/ontomde-java/jpdl/constant.rb +5 -0
- data/lib/ontomde-java/jpdl/graphic.rb +52 -0
- data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
- data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
- data/lib/ontomde-java/jpdl/main.rb +348 -0
- data/lib/ontomde-java/jpdl/main.rdoc +2 -0
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
- data/lib/ontomde-java/kbjava.rb +6 -0
- data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
- data/lib/ontomde-java/struts.rb +27 -0
- data/lib/ontomde-java/struts/MessageResources.rb +359 -0
- data/lib/ontomde-java/struts/action.rb +883 -0
- data/lib/ontomde-java/struts/blob.rb +11 -0
- data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
- data/lib/ontomde-java/struts/footer.rb +128 -0
- data/lib/ontomde-java/struts/form.rb +450 -0
- data/lib/ontomde-java/struts/header.rb +37 -0
- data/lib/ontomde-java/struts/header_link.rb +39 -0
- data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
- data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
- data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
- data/lib/ontomde-java/struts/jsp_index.rb +136 -0
- data/lib/ontomde-java/struts/localeAction.rb +641 -0
- data/lib/ontomde-java/struts/main.rb +41 -0
- data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
- data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
- data/lib/ontomde-java/struts/reloadAction.rb +33 -0
- data/lib/ontomde-java/struts/spring.rb +89 -0
- data/lib/ontomde-java/struts/struts-config.rb +232 -0
- data/lib/ontomde-java/struts/validation.rb +116 -0
- data/lib/ontomde-java/struts/validator.rb +341 -0
- data/lib/ontomde-java/struts/webXml.rb +195 -0
- data/lib/ontomde-java/struts/xmlForm.rb +308 -0
- data/lib/ontomde-java/version.rb +5 -0
- data/profiling.xls +0 -0
- data/test/.classpath +14 -0
- data/test/.project +17 -0
- data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
- data/test/Rakefile +71 -0
- data/test/build.xml +34 -0
- data/test/classpath.rb +15 -0
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +3 -0
- data/test/load2.rb +3 -0
- data/test/log4j.properties +46 -0
- data/test/model/.project +11 -0
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +102866 -0
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +149 -0
- data/test/model/model_ea71.ea.xmi +4470 -0
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +8 -0
- data/test/model/multipleInheritance.emx +466 -0
- data/test/model/multipleInheritance.emx.nt +2428 -0
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +169 -0
- data/test/model/simple1.emx +3729 -0
- data/test/model/simple1.emx.fragments.nt +81 -0
- data/test/model/simple1.emx.nt +5760 -0
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +11500 -0
- data/test/model/simple1.oe530.nt +1986 -0
- data/test/model/simple1.oe600.nt +1627 -0
- data/test/src/RuntimeTest.java +656 -0
- data/test/src/testsLevel1.java +174 -0
- data/test/src/testsLevel2.java +29 -0
- data/test/src/testsLevel3.java +40 -0
- data/test/test-ea7.sh +15 -0
- data/test/test-magicDraw.sh +10 -0
- data/test/test-mi.sh +9 -0
- data/test/test-oe530.sh +10 -0
- data/test/test-oe600.sh +11 -0
- data/test/test-rsm.sh +11 -0
- data/test/test_export_ea71.rb +5 -0
- data/test/test_export_oe530.rb +4 -0
- data/test/test_export_oe600.rb +4 -0
- data/test/test_export_rsm60.rb +4 -0
- data/test/trace +419 -0
- data/test/uml_test.rb +1434 -0
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +6 -0
- metadata +224 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Muml_Classifier
|
4
|
+
#returns every type assignable to this classifier
|
5
|
+
#(this includes self and any class deriving from it)
|
6
|
+
def umlx_ownedAndInheritedAttribute(ret=Set.new)
|
7
|
+
uml_ownedAttribute.each {|biz|
|
8
|
+
ret << biz
|
9
|
+
}
|
10
|
+
uml_generalization.each { |g|
|
11
|
+
next if g.kind_of?(Muml_Interface)
|
12
|
+
g.uml_general_one.umlx_ownedAndInheritedAttribute(ret)
|
13
|
+
}
|
14
|
+
return ret
|
15
|
+
end
|
16
|
+
|
17
|
+
def crank_isTopCrankBean
|
18
|
+
uml_generalization.each { |g|
|
19
|
+
next if g.kind_of?(Muml_Interface)
|
20
|
+
return false if !g.uml_general_one.db_isTransient?
|
21
|
+
}
|
22
|
+
return true;
|
23
|
+
end
|
24
|
+
|
25
|
+
def crank_hasCrankBeanChild?
|
26
|
+
uml_general_inv.each { |g|
|
27
|
+
return true
|
28
|
+
}
|
29
|
+
return false
|
30
|
+
end
|
31
|
+
|
32
|
+
#Include the class too
|
33
|
+
def crank_subCrankBean(ret=Set.new, abstractIncluded=false)
|
34
|
+
umlx_assignableClassifier().sort{ |a,b| a <=> b}.each{ |c|
|
35
|
+
ret.add(c) if abstractIncluded || !c.uml_isAbstract?
|
36
|
+
}
|
37
|
+
return ret
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
module Muml_NamedElement
|
42
|
+
def <=>(other)
|
43
|
+
"#{self.java_Name}" <=> "#{other.java_Name}"
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Mrdf_Repository
|
2
|
+
|
3
|
+
def eachCrankBean(ret=Set.new)
|
4
|
+
uml_Class_all.each { |c|
|
5
|
+
next if c.kind_of?(Muml_Enumeration)
|
6
|
+
next if c.kind_of?(Muml_Interface)
|
7
|
+
next if c.java_ignoreMe?
|
8
|
+
next if c.db_isTransient?
|
9
|
+
# next if c.uml_isAbstract?
|
10
|
+
ret.add(c)
|
11
|
+
}
|
12
|
+
return ret.sort{ |a,b| a <=> b}
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def crank_generate_ForEachBean
|
17
|
+
crank_generate_facesconfig
|
18
|
+
crank_generate_home
|
19
|
+
eachCrankBean.each { |c|
|
20
|
+
c.crank_generate_listing
|
21
|
+
c.crank_generate_form
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
#Called after java transformation
|
26
|
+
def crank_generate_ForEachBeanAfterTransform
|
27
|
+
umlx_reserved_model.crank_generate_context
|
28
|
+
eachCrankBean.each { |c|
|
29
|
+
c.crank_generate_validation
|
30
|
+
c.java_generate_equalsAndHash
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def crank_generate_home
|
36
|
+
mtk_writeSession("#{context[:webContentDir]}/pages/Menu.xhtml") {
|
37
|
+
crank_home_header
|
38
|
+
crank_home_crankbean
|
39
|
+
crank_home_footer
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def crank_generate_facesconfig
|
44
|
+
mtk_writeSession("#{context[:webContentDir]}/WEB-INF/faces-config.xml") {
|
45
|
+
crank_faces_header
|
46
|
+
crank_faces_crankbean
|
47
|
+
crank_faces_footer
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module Mrdf_Model
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
def crank_home_header
|
8
|
+
write <<END
|
9
|
+
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
|
10
|
+
xmlns:h="http://java.sun.com/jsf/html"
|
11
|
+
>
|
12
|
+
<h:form>
|
13
|
+
<div class="blocmenu">
|
14
|
+
|
15
|
+
<h2>Menu Principal</h2>
|
16
|
+
<ul>
|
17
|
+
|
18
|
+
END
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
def crank_home_footer
|
23
|
+
write <<FOOTER
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
</h:form>
|
27
|
+
</ui:composition>
|
28
|
+
FOOTER
|
29
|
+
end
|
30
|
+
|
31
|
+
def crank_home_crankbean
|
32
|
+
eachCrankBean.each { |c|
|
33
|
+
write <<BEAN
|
34
|
+
<li><h:commandLink action="#{c.java_Name.upcase}" value="#{c.java_Name}s" styleClass="titleCommandLink"/></li>
|
35
|
+
BEAN
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
|
2
|
+
module Mrdf_Repository
|
3
|
+
|
4
|
+
|
5
|
+
def crank_home_header
|
6
|
+
write <<END
|
7
|
+
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
|
8
|
+
xmlns:h="http://java.sun.com/jsf/html"
|
9
|
+
xmlns:f="http://java.sun.com/jsf/core"
|
10
|
+
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
|
11
|
+
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
|
12
|
+
xmlns:c="http://java.sun.com/jstl/core"
|
13
|
+
xmlns:crank="http://www.googlecode.com/crank"
|
14
|
+
>
|
15
|
+
<h:form>
|
16
|
+
<rich:panelMenu>
|
17
|
+
END
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def crank_home_footer
|
22
|
+
write <<FOOTER
|
23
|
+
</rich:panelMenu>
|
24
|
+
</h:form>
|
25
|
+
</ui:composition>
|
26
|
+
FOOTER
|
27
|
+
end
|
28
|
+
|
29
|
+
def crank_home_crankbean
|
30
|
+
pkg=Hash.new
|
31
|
+
eachCrankBean.each {|c|
|
32
|
+
p=c.uml_ownedMember_inv_one
|
33
|
+
pkg[p]=Array.new if pkg[p].nil?
|
34
|
+
pkg[p] << c
|
35
|
+
}
|
36
|
+
pkg.keys.sort {|a,b| a.uml_name.to_s <=> b.uml_name.to_s }.each { |p|
|
37
|
+
write <<BEAN
|
38
|
+
<rich:panelMenuGroup label="#{p.java_qualifiedName}" iconExpanded="triangleDown" iconCollapsed="triangleUp">
|
39
|
+
BEAN
|
40
|
+
clazz = pkg[p].sort { |a,b| a.uml_name.to_s <=> b.uml_name.to_s }
|
41
|
+
clazz.each {|c|
|
42
|
+
c.crank_class_submenu if c.crank_isTopCrankBean
|
43
|
+
}
|
44
|
+
write <<BEAN
|
45
|
+
</rich:panelMenuGroup>
|
46
|
+
BEAN
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
module Muml_Class
|
52
|
+
def crank_class_submenu
|
53
|
+
subClazz = Set.new
|
54
|
+
crank_subCrankBean(subClazz, true)
|
55
|
+
if crank_isTopCrankBean && subClazz.length>1
|
56
|
+
write <<BEAN
|
57
|
+
<rich:panelMenuGroup label="#{self.java_Name}" iconExpanded="triangleDown" iconCollapsed="triangleUp">
|
58
|
+
BEAN
|
59
|
+
subClazz.sort { |a,b| a.uml_name.to_s <=> b.uml_name.to_s }.each{|c|
|
60
|
+
c.crank_menu_item
|
61
|
+
}
|
62
|
+
write <<BEAN
|
63
|
+
</rich:panelMenuGroup>
|
64
|
+
BEAN
|
65
|
+
elsif
|
66
|
+
crank_menu_item
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def crank_menu_item
|
71
|
+
write <<BEAN
|
72
|
+
<rich:panelMenuItem submitMode="none">
|
73
|
+
<h:commandLink action="#{self.java_Name.upcase}" value="#{self.java_Name}" styleClass="titleCommandLink"/>
|
74
|
+
</rich:panelMenuItem>
|
75
|
+
BEAN
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Muml_Classifier
|
4
|
+
|
5
|
+
def crank_generate_validation
|
6
|
+
uml_ownedAttribute.each { |a|
|
7
|
+
#next if a.umlx_isComposite?
|
8
|
+
#next unless a.umlx_isAttribute?
|
9
|
+
|
10
|
+
if a.umlx_hasStereotype?('Required')
|
11
|
+
a.java_annotation_add("@org.crank.annotations.validation.Required")
|
12
|
+
end
|
13
|
+
if a.uml_type_one.kind_of?(Muml_DataType) && !a.uml_type_one.crank_validation_annotation.nil?
|
14
|
+
a.java_annotation_add(a.uml_type_one.crank_validation_annotation)
|
15
|
+
end
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
module Muml_DataType
|
22
|
+
|
23
|
+
def crank_validation_annotation
|
24
|
+
tpl=DatatypeMapping.instance.getTemplate(self)
|
25
|
+
tpl.crank_validation_annotation
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
class DatatypeMapping
|
31
|
+
def crank_validation_annotation
|
32
|
+
return nil
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,194 @@
|
|
1
|
+
#
|
2
|
+
# ejb2 generator
|
3
|
+
#
|
4
|
+
module Mrdf_Model
|
5
|
+
def ejb2_services
|
6
|
+
ca=Array.new
|
7
|
+
uml_Class_all.each { |c|
|
8
|
+
next unless c.kind_of?(Muml_Class)
|
9
|
+
next unless c.umlx_hasStereotype?('Service')
|
10
|
+
ca << c
|
11
|
+
}
|
12
|
+
return ca
|
13
|
+
end
|
14
|
+
|
15
|
+
def ejb2_transform!
|
16
|
+
return unless context[:ejb2]
|
17
|
+
ejb2_services.each { |c|
|
18
|
+
c.ejb2_transform!
|
19
|
+
}
|
20
|
+
ejb2_generateConfig #TODO
|
21
|
+
ejb2_generateJonasConfig
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def ejb2_target_ejbconf
|
26
|
+
return context[:target_ejbconf,"#{context[:build]}META-INF"]
|
27
|
+
end
|
28
|
+
def ejb2_generateConfig
|
29
|
+
mtk_writeSession(context[:ejbJarFile,"#{ejb2_target_ejbconf}/ejb-jar.xml"]) {
|
30
|
+
ejb2_writeConfig
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def ejb2_writeConfig
|
35
|
+
write <<END
|
36
|
+
<?xml version="1.0"?>
|
37
|
+
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
|
38
|
+
|
39
|
+
<ejb-jar>
|
40
|
+
<enterprise-beans>
|
41
|
+
END
|
42
|
+
ejb2_services.each { |c|
|
43
|
+
write <<END
|
44
|
+
<!-- #{c.ejb_Name} -->
|
45
|
+
<session>
|
46
|
+
<ejb-name>#{c.ejb_Name}</ejb-name>
|
47
|
+
<home>#{c.ejb_home_one.java_qualifiedName}</home>
|
48
|
+
<remote>#{c.ejb_remote_one.java_qualifiedName}</remote>
|
49
|
+
<ejb-class>#{c.ejb_bean_one.java_qualifiedName}</ejb-class>
|
50
|
+
<session-type>Stateless</session-type>
|
51
|
+
<transaction-type>Container</transaction-type>
|
52
|
+
</session>
|
53
|
+
END
|
54
|
+
}
|
55
|
+
write <<END
|
56
|
+
</enterprise-beans>
|
57
|
+
<assembly-descriptor>
|
58
|
+
END
|
59
|
+
ejb2_services.each { |c|
|
60
|
+
write <<END
|
61
|
+
<!-- #{c.ejb_Name} -->
|
62
|
+
<container-transaction>
|
63
|
+
<method>
|
64
|
+
<ejb-name>#{c.ejb_Name}</ejb-name>
|
65
|
+
<method-name>*</method-name>
|
66
|
+
</method>
|
67
|
+
<trans-attribute>Required</trans-attribute>
|
68
|
+
</container-transaction>
|
69
|
+
END
|
70
|
+
}
|
71
|
+
write <<END
|
72
|
+
</assembly-descriptor>
|
73
|
+
</ejb-jar>
|
74
|
+
END
|
75
|
+
|
76
|
+
end
|
77
|
+
def ejb2_generateJonasConfig
|
78
|
+
mtk_writeSession(context[:ejbJonasJarFile,"#{ejb2_target_ejbconf}/jonas-ejb-jar.xml"]) {
|
79
|
+
ejb2_writeJonasConfig
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
def ejb2_writeJonasConfig
|
84
|
+
write <<END
|
85
|
+
<?xml version="1.0"?>
|
86
|
+
<jonas-ejb-jar
|
87
|
+
xmlns="http://www.objectweb.org/jonas/ns"
|
88
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
89
|
+
xsi:schemaLocation="http://www.objectweb.org/jonas/ns http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_0.xsd" >
|
90
|
+
END
|
91
|
+
|
92
|
+
ejb2_services.each { |c|
|
93
|
+
write <<END
|
94
|
+
<!-- #{c.ejb_Name} -->
|
95
|
+
<jonas-session>
|
96
|
+
<ejb-name>#{c.ejb_Name}</ejb-name>
|
97
|
+
<jndi-name>odn.#{c.ejb_remote_one.java_Name}</jndi-name>
|
98
|
+
<session-timeout>60</session-timeout>
|
99
|
+
</jonas-session>
|
100
|
+
END
|
101
|
+
}
|
102
|
+
|
103
|
+
write <<END
|
104
|
+
</jonas-ejb-jar>
|
105
|
+
END
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
module Muml_Class
|
110
|
+
#ejb_Home class related to this ejb service
|
111
|
+
rdf_safe_attr_reader_many :ejb_home
|
112
|
+
#
|
113
|
+
#ejb_remote interface related to this ejb service
|
114
|
+
rdf_safe_attr_reader_many :ejb_remote
|
115
|
+
#
|
116
|
+
#ejb_bean related to this ejb service
|
117
|
+
rdf_safe_attr_reader_many :ejb_bean
|
118
|
+
|
119
|
+
#process this java bean to :
|
120
|
+
#* generate the proper ejb interfaces,
|
121
|
+
#* add required exceptions,
|
122
|
+
#* add required interface implementations
|
123
|
+
#* ...
|
124
|
+
def ejb2_transform!
|
125
|
+
log.debug { "processing ejb service: #{self}" }
|
126
|
+
ejb2_createRemoteInterface!
|
127
|
+
ejb2_createHomeInterface!
|
128
|
+
ejb2_createBean!
|
129
|
+
end
|
130
|
+
|
131
|
+
#Return an alias name for this class"
|
132
|
+
def ejb_Name
|
133
|
+
return "#{java_Name}EJB"
|
134
|
+
end
|
135
|
+
|
136
|
+
#creates a bean class for this service class
|
137
|
+
#(this implementation just appends bean to the class name)
|
138
|
+
def ejb2_createBean!
|
139
|
+
self.ejb_bean=self
|
140
|
+
self.uml_name="#{self.uml_name}Bean"
|
141
|
+
ejb2_addOperationExceptions!(umlx_getOrCreateInterface("java.rmi.RemoteException"))
|
142
|
+
end
|
143
|
+
|
144
|
+
#creates a home interface for this service class
|
145
|
+
def ejb2_createHomeInterface!
|
146
|
+
log.debug { "creating ejb home interface for: #{self}" }
|
147
|
+
h=self.umlx_owner_one.umlx_createAndAddInterface("#{self.rdf_uri}_ejbHome","#{uml_name}Home")
|
148
|
+
h.umlx_createAndAddGeneralization(umlx_getOrCreateInterface("javax.ejb.EJBHome"))
|
149
|
+
self.ejb_home=h
|
150
|
+
|
151
|
+
cr=h.umlx_createAndAddOperation("#{h.rdf_uri}_create","create")
|
152
|
+
cr.uml_raisedException_add(umlx_getOrCreateInterface("javax.ejb.CreateException"))
|
153
|
+
cr.uml_raisedException_add(umlx_getOrCreateInterface("java.rmi.RemoteException"))
|
154
|
+
crret=cr.umlx_createAndAddReturnParameter("#{cr.rdf_uri}_ret","return")
|
155
|
+
crret.uml_type=self.ejb_remote_one
|
156
|
+
end
|
157
|
+
|
158
|
+
#creates a remote interface for this service class
|
159
|
+
def ejb2_createRemoteInterface!
|
160
|
+
log.debug { "creating ejb remote interface for: #{self}" }
|
161
|
+
r=self.umlx_owner_one.umlx_createAndAddInterface("#{self.rdf_uri}_ejbRemote","#{uml_name}")
|
162
|
+
r.umlx_createAndAddGeneralization(umlx_getOrCreateInterface("javax.ejb.EJBObject"))
|
163
|
+
self.ejb_remote=r
|
164
|
+
ejb2_copyMethodsTo!(ejb_remote_one,"ejbRemote",umlx_getOrCreateInterface("java.rmi.RemoteException"))
|
165
|
+
end
|
166
|
+
|
167
|
+
def ejb2_copyMethodsTo!(ejb,uri_suffix,exception)
|
168
|
+
uml_ownedOperation.each { |sop|
|
169
|
+
op=ejb.umlx_createAndAddOperation("#{sop.rdf_uri}_#{uri_suffix}","#{sop.uml_name}")
|
170
|
+
op.uml_raisedException_add(exception)
|
171
|
+
sop.uml_ownedParameter.each { |sp|
|
172
|
+
p=op.umlx_createAndAddParameter("#{sp.rdf_uri}_#{uri_suffix}",sp.uml_name)
|
173
|
+
sp.umlx_copyToAttributeProperty(p)
|
174
|
+
p.uml_type=sp.uml_type
|
175
|
+
p.uml_direction=sp.uml_direction
|
176
|
+
p.uml_isUnique=sp.uml_isUnique
|
177
|
+
p.uml_isOrdered=sp.uml_isOrdered
|
178
|
+
p.java_use_Arrays=sp.java_use_Arrays
|
179
|
+
p.uml_upperValue=sp.uml_upperValue
|
180
|
+
p.uml_lowerValue=sp.uml_lowerValue
|
181
|
+
}
|
182
|
+
}
|
183
|
+
end
|
184
|
+
#adds exception to every operation
|
185
|
+
def ejb2_addOperationExceptions!(exception)
|
186
|
+
uml_ownedOperation.each { |op|
|
187
|
+
op.uml_raisedException_add(exception)
|
188
|
+
}
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|