ontomde-uml2-ejb2 1.0.4
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 +5 -0
- data/Manifest.txt +7 -0
- data/README.txt +41 -0
- data/Rakefile +22 -0
- data/lib/ontomde-uml2-ejb2/version.rb +8 -0
- data/lib/ontomde-uml2-ejb2.rb +193 -0
- data/test/test_ontomde-uml2-ejb2.rb +0 -0
- metadata +79 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
data/README.txt
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
ontomde-uml2-ejb2
|
2
|
+
by stephane (Pierre) Carrie
|
3
|
+
http://ontomde.rubyforge.org
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
ontomde-uml2-ejb2 is a library for generatin EJB2 library.
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* beta release
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
== REQUIREMENTS:
|
16
|
+
|
17
|
+
== INSTALL:
|
18
|
+
|
19
|
+
* (unix) sudo gem install ontomde-uml2-ejb2
|
20
|
+
* (win) gem install ontomde-uml2-ejb2
|
21
|
+
|
22
|
+
Additional information is available on ontoMDE web site :
|
23
|
+
http://ontomde.rubyforge.org/website/download.html
|
24
|
+
== LICENSE:
|
25
|
+
|
26
|
+
Copyright (C) 2008 Orange-labs
|
27
|
+
38 rue General Leclerc
|
28
|
+
92130 ISSY LES MOULINEAUX, France
|
29
|
+
|
30
|
+
This program is free software: you can redistribute it and/or modify
|
31
|
+
it under the terms of the GNU Affero General Public License as
|
32
|
+
published by the Free Software Foundation, either version 3 of the
|
33
|
+
License, or (at your option) any later version.
|
34
|
+
|
35
|
+
This program is distributed in the hope that it will be useful,
|
36
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
37
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
38
|
+
GNU Affero General Public License for more details.
|
39
|
+
|
40
|
+
You should have received a copy of the GNU Affero General Public License
|
41
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
require './lib/ontomde-uml2-ejb2/version.rb'
|
6
|
+
|
7
|
+
Hoe.new('ontomde-uml2-ejb2', Ontomde::Uml2::Ejb2::VERSION) do |p|
|
8
|
+
p.rubyforge_name = 'ontomde'
|
9
|
+
p.author = 'Stephane (Pierre) Carrie'
|
10
|
+
p.email = 'stephanepierre.carrie@orange-ftgroup.com'
|
11
|
+
p.summary = 'OntoMDE EJB2 cartridge'
|
12
|
+
p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
13
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
14
|
+
p.url="http://ontomde.rubyforge.org"
|
15
|
+
|
16
|
+
p.extra_deps=[
|
17
|
+
['ontomde-uml2-java',"= #{Ontomde::Uml2::Ejb2::VERSION}"]
|
18
|
+
]
|
19
|
+
p.spec_extras={ :required_ruby_version => '>=1.8.6' ,:required_rubygems_version => '>=1.0.0'}
|
20
|
+
end
|
21
|
+
|
22
|
+
# vim: syntax=Ruby
|
@@ -0,0 +1,193 @@
|
|
1
|
+
require 'ontomde-uml2-java'
|
2
|
+
require 'ontomde-uml2-ejb2/version.rb'
|
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
|
+
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ontomde-uml2-ejb2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephane (Pierre) Carrie
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-03-03 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ontomde-uml2-java
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - "="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.4
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: hoe
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.5.0
|
32
|
+
version:
|
33
|
+
description: "ontomde-uml2-ejb2 is a library for generatin EJB2 library. == FEATURES/PROBLEMS: * beta release == SYNOPSIS:"
|
34
|
+
email: stephanepierre.carrie@orange-ftgroup.com
|
35
|
+
executables: []
|
36
|
+
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- History.txt
|
41
|
+
- Manifest.txt
|
42
|
+
- README.txt
|
43
|
+
files:
|
44
|
+
- History.txt
|
45
|
+
- Manifest.txt
|
46
|
+
- README.txt
|
47
|
+
- Rakefile
|
48
|
+
- lib/ontomde-uml2-ejb2.rb
|
49
|
+
- lib/ontomde-uml2-ejb2/version.rb
|
50
|
+
- test/test_ontomde-uml2-ejb2.rb
|
51
|
+
has_rdoc: true
|
52
|
+
homepage: http://ontomde.rubyforge.org
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options:
|
55
|
+
- --main
|
56
|
+
- README.txt
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.8.6
|
64
|
+
version:
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.0
|
70
|
+
version:
|
71
|
+
requirements: []
|
72
|
+
|
73
|
+
rubyforge_project: ontomde
|
74
|
+
rubygems_version: 1.0.1
|
75
|
+
signing_key:
|
76
|
+
specification_version: 2
|
77
|
+
summary: OntoMDE EJB2 cartridge
|
78
|
+
test_files:
|
79
|
+
- test/test_ontomde-uml2-ejb2.rb
|