bee_java 0.0.2 → 0.0.3

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.
@@ -0,0 +1,57 @@
1
+ - build: tomcat
2
+ description: Build file to manage Tomcat
3
+
4
+ - properties:
5
+ # installation directory
6
+ tomcat_home: ~
7
+ # starting script
8
+ tomcat_script: "#{tomcat_home}/bin/catalina.sh"
9
+ # the catalina base to use
10
+ tomcat_base: "#{base}/tomcat"
11
+ # command line options
12
+ tomcat_opts: "-Xms64m -Xmx256m -XX:MaxPermSize=64m"
13
+ # environment variables to set
14
+ tomcat_env: |
15
+ export CATALINA_HOME="#{tomcat_home}"
16
+ export CATALINA_BASE="#{tomcat_base}"
17
+ export CATALINA_OPTS="#{tomcat_opts}"
18
+
19
+ - target: tomcat_check
20
+ description: Check that Tomcat home is set
21
+ script:
22
+ - if: "!defined?(tomcat_home)"
23
+ then:
24
+ - raise: "You must set property 'tomcat_home' in 'tomcat.yml' build file"
25
+
26
+ - target: tomcat_start
27
+ depends: tomcat_check
28
+ description: Start Tomcat server
29
+ script:
30
+ - print: "Starting Tomcat..."
31
+ - |
32
+ #{tomcat_env}
33
+ #{tomcat_script} start
34
+
35
+ - target: tomcat_stop
36
+ depends: tomcat_check
37
+ description: Stop Tomcat server
38
+ script:
39
+ - print: "Stopping Tomcat..."
40
+ - |
41
+ #{tomcat_env}
42
+ #{tomcat_script} stop -force
43
+
44
+ - target: tomcat_restart
45
+ depends: tomcat_check
46
+ description: Restart Tomcat server
47
+ script:
48
+ - print: "Stopping Tomcat..."
49
+ - |
50
+ #{tomcat_env}
51
+ #{tomcat_script} stop -force
52
+ - sleep: 3
53
+ - print: "Starting Tomcat..."
54
+ - |
55
+ #{tomcat_env}
56
+ #{tomcat_script} start
57
+
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <web-app version="2.4"
4
+ xmlns="http://java.sun.com/xml/ns/j2ee"
5
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7
+
8
+ <display-name><%= name.capitalize %></display-name>
9
+
10
+ <servlet>
11
+ <servlet-name><%= name %></servlet-name>
12
+ <servlet-class><%= main %></servlet-class>
13
+ </servlet>
14
+
15
+ <servlet-mapping>
16
+ <servlet-name><%= name %></servlet-name>
17
+ <url-pattern>/</url-pattern>
18
+ </servlet-mapping>
19
+
20
+ </web-app>
data/egg/servlet.yml ADDED
@@ -0,0 +1,111 @@
1
+ # Copyright 2008-2009 Michel Casabianca <michel.casabianca@gmail.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ - build: servlet
16
+ default: all
17
+ description: Generate a Java project for a servlet
18
+
19
+ - properties:
20
+ name: hello
21
+ main: hello.World
22
+ description: |
23
+ This script will create Java project for a servlet. Type 'bee -b' to
24
+ list targets in generated project.
25
+
26
+ - target: welcome
27
+ description: Print information message
28
+ script:
29
+ - print: :description
30
+
31
+ - target: prompt
32
+ depends: welcome
33
+ description: Prompt for project information
34
+ script:
35
+ - print: "Please answer following questions to generate the project:"
36
+ - prompt:
37
+ message: "What is the project name?"
38
+ default: :name
39
+ property: name
40
+ - prompt:
41
+ message: "What is the servlet main class?"
42
+ default: :main
43
+ property: main
44
+
45
+ - target: generate
46
+ depends: prompt
47
+ description: Generate project
48
+ script:
49
+ - print: "Generating project..."
50
+ - rb: |
51
+ error "A directory named '#{name}' already exists, aborting" if
52
+ File.exists?("#{here}/#{name}")
53
+ _package_dir = File.dirname(main.gsub(/\./,'/'))
54
+ _package = _package_dir.gsub(/\//, '.')
55
+ _main_class = File.basename(main.gsub(/\./,'/'))
56
+ _test_class = "#{_main_class}Test"
57
+ - mkdir: "#{here}/#{name}/src/#{_package_dir}"
58
+ - erb:
59
+ src: "#{base}/servlet/Servlet.java"
60
+ dest: "#{here}/#{name}/src/#{_package_dir}/#{_main_class}.java"
61
+ - mkdir: "#{here}/#{name}/test/#{_package_dir}"
62
+ - erb:
63
+ src: "#{base}/servlet/ServletTest.java"
64
+ dest: "#{here}/#{name}/test/#{_package_dir}/#{_test_class}.java"
65
+ - erb:
66
+ src: "#{base}/servlet/build.yml"
67
+ dest: "#{here}/#{name}/build.yml"
68
+ - cp:
69
+ src: "#{base}/servlet/dependencies.yml"
70
+ dest: "#{here}/#{name}/dependencies.yml"
71
+ - cp:
72
+ src: "#{base}/servlet/tomcat.yml"
73
+ dest: "#{here}/#{name}/tomcat.yml"
74
+ - mkdir: "#{here}/#{name}/web"
75
+ - mkdir: "#{here}/#{name}/web/META-INF"
76
+ - mkdir: "#{here}/#{name}/web/WEB-INF"
77
+ - erb:
78
+ src: "#{base}/servlet/MANIFEST.MF"
79
+ dest: "#{here}/#{name}/web/META-INF/MANIFEST.MF"
80
+ - erb:
81
+ src: "#{base}/servlet/web.xml"
82
+ dest: "#{here}/#{name}/web/WEB-INF/web.xml"
83
+ - mkdir: "#{here}/#{name}/tomcat"
84
+ - mkdir: "#{here}/#{name}/tomcat/conf"
85
+ - mkdir: "#{here}/#{name}/tomcat/logs"
86
+ - mkdir: "#{here}/#{name}/tomcat/temp"
87
+ - mkdir: "#{here}/#{name}/tomcat/webapps"
88
+ - mkdir: "#{here}/#{name}/tomcat/work"
89
+ - erb:
90
+ src: "#{base}/servlet/tomcat-server.xml"
91
+ dest: "#{here}/#{name}/tomcat/conf/server.xml"
92
+ - cp:
93
+ src: "#{base}/servlet/tomcat-users.xml"
94
+ dest: "#{here}/#{name}/tomcat/conf/tomcat-users.xml"
95
+ - cp:
96
+ src: "#{base}/servlet/tomcat-web.xml"
97
+ dest: "#{here}/#{name}/tomcat/conf/web.xml"
98
+
99
+ - target: customization
100
+ depends: generate
101
+ description: Print information about project customization
102
+ script:
103
+ - print: |
104
+ Project has been generated in directory '#{name}'. Type 'bee -b' to
105
+ print information about generated build file. Please edit 'tomcat.yml'
106
+ build file to set correct value for property 'tomcat_home' (that is
107
+ Tomcat installation directory).
108
+ Enjoy!
109
+
110
+ - target: all
111
+ depends: [welcome, prompt, generate, customization]
data/lib/bee_task_java.rb CHANGED
@@ -12,7 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'bee_task'
15
+ require 'rubygems'
16
+ require 'bee_task_package'
16
17
  require 'fileutils'
17
18
  require 'rexml/document'
18
19
  require 'rexml/xpath'
@@ -113,7 +114,7 @@ module Bee
113
114
  command += "-verbose " if verbose
114
115
  command += "#{options} " if options
115
116
  command += "#{files.join(' ')}"
116
- puts "Running command '#{command}'" if @build.listener.verbose
117
+ puts "Running command '#{command}'" if @verbose
117
118
  ok = system(command)
118
119
  error "Error compiling Java source files" unless ok
119
120
  end
@@ -171,7 +172,7 @@ module Bee
171
172
  # run command line
172
173
  puts "Processing Jar archive '#{dest}'"
173
174
  command = "jar c"
174
- command += "v" if @build.listener.verbose
175
+ command += "v" if @verbose
175
176
  command += "m" if manifest
176
177
  command +="f "
177
178
  command += "\"#{manifest}\" " if manifest
@@ -185,7 +186,7 @@ module Bee
185
186
  if files.length > 0
186
187
  command += "#{files.join(' ')}"
187
188
  end
188
- puts "Running command '#{command}'" if @build.listener.verbose
189
+ puts "Running command '#{command}'" if @verbose
189
190
  ok = system(command)
190
191
  error "Error generating Jar archive" unless ok
191
192
  end
@@ -269,7 +270,7 @@ module Bee
269
270
  command += "-classpath #{path} " if path
270
271
  command += "\"#{main}\"" if main
271
272
  command += " #{arguments}" if arguments
272
- puts "Running command '#{command}'" if @build.listener.verbose
273
+ puts "Running command '#{command}'" if @verbose
273
274
  ok = system(command)
274
275
  error "Error running java" unless ok
275
276
  end
@@ -330,7 +331,7 @@ module Bee
330
331
  command += "-quiet " if not verbose
331
332
  command += "#{options} " if options
332
333
  command += "#{files.join(' ')}"
333
- puts "Running command '#{command}'" if @build.listener.verbose
334
+ puts "Running command '#{command}'" if @verbose
334
335
  ok = system(command)
335
336
  error "Error running javadoc" unless ok
336
337
  end
@@ -402,7 +403,7 @@ module Bee
402
403
  command += "#{options} " if options
403
404
  command += "-classpath #{path} " if path
404
405
  command += "org.junit.runner.JUnitCore #{classes.join(' ')}"
405
- puts "Running command '#{command}'" if @build.listener.verbose
406
+ puts "Running command '#{command}'" if @verbose
406
407
  ok = system(command)
407
408
  error "Error running JUnit" unless ok
408
409
  else
@@ -441,13 +442,12 @@ module Bee
441
442
  error "Unknown scope '#{scope}', must be one of #{scopes}"
442
443
  end
443
444
  puts "Building CLASSPATH for dependencies '#{file}' and scope '#{scope}'..."
444
- verbose = @build.listener.verbose
445
445
  if type == 'bee'
446
- resolver = Bee::Task::BeeDependencyResolver.new(file, scope, verbose)
446
+ resolver = Bee::Task::BeeDependencyResolver.new(file, scope, @verbose)
447
447
  elsif type == 'maven1'
448
- resolver = Bee::Task::MavenDependencyResolver.new(file, scope, verbose)
448
+ resolver = Bee::Task::MavenDependencyResolver.new(file, scope, @verbose)
449
449
  elsif type == 'maven2'
450
- resolver = Bee::Task::Maven2DependencyResolver.new(file, scope, verbose)
450
+ resolver = Bee::Task::Maven2DependencyResolver.new(file, scope, @verbose)
451
451
  else
452
452
  error "Unknown type, must be 'bee', 'maven1' or 'maven2'"
453
453
  end
@@ -14,7 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
 
17
- require 'bee'
17
+ require 'bee_context'
18
18
  require 'test/unit'
19
19
  $:.unshift(File.expand_path(File.dirname(__FILE__)))
20
20
  require 'test_build'
@@ -28,7 +28,7 @@ class TestBeeTaskJava < Test::Unit::TestCase
28
28
  # Create a context object and load tasks in it.
29
29
  def setup
30
30
  super
31
- @context = Bee::Context.new(nil)
31
+ @context = Bee::Context.new()
32
32
  @listener = TestBuildListener.new
33
33
  @build = TestBuild.new(@context, @listener)
34
34
  @package = Bee::Task::Java.new(@build)
@@ -70,7 +70,7 @@ class TestBeeTaskJava < Test::Unit::TestCase
70
70
  begin
71
71
  # run nominal case
72
72
  @package.javac({'src' => 'src', 'dest' => 'build/classes'})
73
- @listener.output = ''
73
+ @listener.clear()
74
74
  @package.jar({'src' => 'build/classes', 'dest' => 'build/test.jar'})
75
75
  assert_equal("Processing Jar archive 'build/test.jar'\n",
76
76
  @listener.output)
@@ -90,7 +90,7 @@ class TestBeeTaskJava < Test::Unit::TestCase
90
90
  begin
91
91
  # run nominal case
92
92
  @package.javac({'src' => 'src', 'dest' => 'build/classes'})
93
- @listener.output = ''
93
+ @listener.clear()
94
94
  @package.java({'classpath' => 'build/classes', 'main' => 'test.Test'})
95
95
  assert_equal("Running java class 'test.Test'\n",
96
96
  @listener.output)
@@ -133,7 +133,7 @@ class TestBeeTaskJava < Test::Unit::TestCase
133
133
  @package.javac({ 'src' => 'test',
134
134
  'dest' => 'build/classes',
135
135
  'classpath' => ['build/classes', 'build/lib/*.jar']})
136
- @listener.output = ''
136
+ @listener.clear()
137
137
  @package.junit({ 'src' => 'test',
138
138
  'classpath' => ['build/classes', 'build/lib/*.jar']})
139
139
  assert_equal("Running JUnit on 1 test file(s)\n",
@@ -14,7 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
 
17
- require 'bee'
17
+ require 'bee_context'
18
18
  require 'test/unit'
19
19
  $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
20
20
  require 'dependency_resolver'
@@ -12,30 +12,29 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- # Test build listener.
15
+ require 'rubygems'
16
+
16
17
  class TestBuildListener
17
18
 
19
+ attr_reader :formatter
18
20
  attr_reader :started
19
21
  attr_reader :finished
20
22
  attr_reader :targets
21
23
  attr_reader :tasks
22
24
  attr_reader :success
23
25
  attr_reader :errors
24
- attr_accessor :output
25
- attr_reader :verbose
26
-
27
- def initialize
28
- @targets = []
29
- @tasks = []
30
- @output = ''
31
- @verbose = false
26
+ attr_accessor :throw_error
27
+ attr_accessor :prompt
28
+
29
+ def initialize()
30
+ reset
32
31
  end
33
-
34
- def build_started(build)
32
+
33
+ def build_started(build, dry=false)
35
34
  @started = true
36
35
  end
37
36
 
38
- def build_finished(build)
37
+ def build_finished()
39
38
  @finished = true
40
39
  end
41
40
 
@@ -44,11 +43,56 @@ class TestBuildListener
44
43
  end
45
44
 
46
45
  def task(task)
47
- @tasks << tasks
46
+ @tasks << task
48
47
  end
49
48
 
50
49
  def error(exception)
51
- @errors = exception
50
+ if throw_error
51
+ raise exception
52
+ else
53
+ @errors << exception
54
+ end
55
+ end
56
+
57
+ def recover
58
+ @success = true
59
+ end
60
+
61
+ def reset
62
+ @formatter = TestBuildFormatter.new(self)
63
+ @started = false
64
+ @finished = false
65
+ @targets = []
66
+ @tasks = []
67
+ @success = false
68
+ @errors = []
69
+ @throw_error = false
70
+ @prompt = ''
71
+ end
72
+
73
+ def output()
74
+ return @formatter.output
75
+ end
76
+
77
+ def clear()
78
+ @formatter.clear()
79
+ end
80
+
81
+ def error?
82
+ return @errors.length > 0
83
+ end
84
+
85
+ end
86
+
87
+ class TestBuildFormatter
88
+
89
+ attr_reader :verbose
90
+ attr_reader :output
91
+
92
+ def initialize(listener)
93
+ @listener = listener
94
+ @verbose = false
95
+ @output = ''
52
96
  end
53
97
 
54
98
  def print(text)
@@ -59,4 +103,8 @@ class TestBuildListener
59
103
  @output << text + "\n"
60
104
  end
61
105
 
106
+ def clear()
107
+ @output = ''
108
+ end
109
+
62
110
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bee_java
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Casabianca
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-10-11 00:00:00 +02:00
12
+ date: 2011-02-17 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.10.1
23
+ version: 0.11.0
24
24
  version:
25
25
  description:
26
26
  email: michel.casabianca@gmail.com
@@ -34,39 +34,50 @@ extra_rdoc_files:
34
34
  - build/README
35
35
  - LICENSE
36
36
  files:
37
- - bin/bee2maven
37
+ - bin/maven2bee
38
38
  - bin/beedoc
39
39
  - bin/gendeps
40
- - bin/maven2bee
41
- - lib/bee_task_java.rb
40
+ - bin/bee2maven
42
41
  - lib/dependency_resolver.rb
42
+ - lib/bee_task_java.rb
43
43
  - test/build.yml
44
+ - test/manifest.erb
45
+ - test/test/test/TestTest.java
46
+ - test/test_build.rb
44
47
  - test/dependencies.xml
45
48
  - test/dependencies.yml
46
- - test/manifest.erb
47
49
  - test/pom.xml
48
- - test/src/test/Test.java
50
+ - test/ts_bee_java.rb
51
+ - test/test_build_listener.rb
49
52
  - test/tc_bee_task_java.rb
53
+ - test/src/test/Test.java
50
54
  - test/tc_dependency_resolver.rb
51
- - test/test/test/TestTest.java
52
- - test/test_build.rb
53
- - test/test_build_listener.rb
54
- - test/ts_bee_java.rb
55
- - egg/lib/build.erb
55
+ - egg/tiny.yml
56
+ - egg/lib/test.erb
56
57
  - egg/lib/dependencies.yml
57
58
  - egg/lib/source.erb
58
- - egg/lib/test.erb
59
- - egg/lib.yml
60
- - egg/tiny/build.erb
61
- - egg/tiny/source.erb
62
- - egg/tiny.yml
59
+ - egg/lib/build.erb
63
60
  - egg/xmlrpc/build.yml
64
61
  - egg/xmlrpc/dependencies.yml
65
- - egg/xmlrpc/src/test/Client.java
66
62
  - egg/xmlrpc/src/test/handlers.properties
67
63
  - egg/xmlrpc/src/test/Server.java
64
+ - egg/xmlrpc/src/test/Client.java
68
65
  - egg/xmlrpc/src/test/TestHandler.java
66
+ - egg/servlet.yml
67
+ - egg/tiny/source.erb
68
+ - egg/tiny/build.erb
69
+ - egg/lib.yml
69
70
  - egg/xmlrpc.yml
71
+ - egg/servlet/tomcat-server.xml
72
+ - egg/servlet/tomcat-users.xml
73
+ - egg/servlet/build.yml
74
+ - egg/servlet/tomcat-web.xml
75
+ - egg/servlet/dependencies.yml
76
+ - egg/servlet/ServletTest.java
77
+ - egg/servlet/MANIFEST.MF
78
+ - egg/servlet/Servlet.java
79
+ - egg/servlet/tomcat.yml
80
+ - egg/servlet/web.xml
70
81
  - build/README
71
82
  - LICENSE
72
83
  has_rdoc: true