You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2013/01/02 23:13:04 UTC
svn commit: r1428087 [2/4] - in /uima/sandbox/uima-ducc/trunk/src/main: ./
admin/ assembly/ config/ resources/ saxon/ scripts/
Added: uima/sandbox/uima-ducc/trunk/src/main/admin/stop_ducc
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/stop_ducc?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/stop_ducc (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/stop_ducc Wed Jan 2 22:13:03 2013
@@ -0,0 +1,250 @@
+#!/usr/bin/env python
+# -----------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# -----------------------------------------------------------------------
+
+
+import os
+import sys
+
+from ducc_boot import *
+set_ducc_home()
+
+
+import getopt
+import glob
+from ducc_util import DuccUtil
+from ducc_util import DuccProperties
+from ducc_util import DuccPropertiesException
+from ducc import Ducc
+
+class StopDucc(DuccUtil):
+
+ def stop_component(self, component, force):
+
+ #
+ # If it's an unqualified management component, we need to get it's qualified name
+ #
+ if ( component in self.default_components ):
+ if ( self.pids.has_key(component) ):
+ component = self.pids.get(component)
+ else:
+ print 'Skipping', component, 'not in pids file.'
+ return
+
+ #
+ # If the name is not qualified we've got a problem, everything in the pids file is qualified
+ #
+ if ( component.find('@') >= 0 ):
+ com, target_node = component.split('@')
+ else:
+ self.invalid("Must specify hostname when stopping", component)
+
+ #
+ # If despite all that we can't find the pid, we need to run check_ducc
+ #
+ if ( not self.pids.has_key(component) ):
+ print("Cannot find PID for component", component, ". Run check_ducc to refresh PIDS and then rerun stop_ducc.")
+ return
+
+ pid = self.pids.get(component)
+
+ if ( force ):
+ print 'Stopping component', com, 'on node', target_node, 'with PID', pid, 'forcibly (kill -9)'
+ self.nohup(['ssh', target_node, 'kill', '-KILL', pid], False)
+
+ if ( component == 'or' ):
+ self.remove_orchestrator_lock()
+
+ pass
+ else:
+ print 'Stopping component', com, 'on node', target_node, 'with PID', pid
+ self.nohup(['ssh', target_node, 'kill', '-INT', pid], False)
+
+ # clear the short name if it exists, and the long name
+ self.pids.delete(com)
+ self.pids.delete(component)
+
+ def stop_agents(self, node, force):
+ self.stop_component('agent@' + node.strip(), force)
+
+ def usage(self, msg):
+ if ( msg != None ):
+ print msg
+
+ print 'stop_ducc [options]'
+ print ' If no options are given, this help screen is shown.'
+ print ''
+ print 'Options:'
+ print ' -a --all'
+ print ' Stop all the DUCC processes, including agents and management processes.'
+ print ''
+ print ' -n --nodelist nodefile'
+ print ' Stop agents on the nodes in the nodefile. Multiple nodefiles may be specified:'
+ print ''
+ print ' stop_ducc -n foo.nodes -n bar.nodes -n baz.nodes'
+ print ''
+ print ' -m --management'
+ print ' Stop the management processes (rm, pm, sm, or, and ws).'
+ print ''
+ print ' -c --component component'
+ print ' Stop a specific component. The component may be qualified with the node name'
+ print ' using the @ symbol: component@node.'
+ print ''
+ print ' stop_ducc -c rm@foonode'
+ print ' stop_ducc -c agent@barnode -c or'
+ print ''
+ print ' Components include:'
+ print ' rm - resource manager'
+ print ' or - orchestrator'
+ print ' pm - process manager'
+ print ' sm - services manager'
+ print ' ws - web server'
+ print ' agent - node agent'
+ print ''
+ print ' -k --kill'
+ print ' Stop the component forcibly and immediately using kill -9. Use this only if a'
+ print ' normal stop does not work (e.g. the process may be hung).'
+ sys.exit(1)
+
+ def invalid(self, *msg):
+ if ( msg[0] != None ):
+ print ' '.join(msg)
+
+ print "For usage run"
+ print " stop_ducc -h"
+ print 'or'
+ print ' stop_ducc --help'
+ sys.exit(1)
+
+
+ def main(self, argv):
+
+ if ( len(argv) == 0 ):
+ self.usage(None)
+
+ components = []
+ nodefiles = []
+ management = False
+ do_agents = False
+ do_components = False
+ force = False
+ all = False
+
+ try:
+ opts, args = getopt.getopt(argv, 'ac:n:kmmn:h?v', ['all', 'component=', 'components=', 'help', 'nodelist=', 'management', 'kill'])
+ except:
+ self.invalid('Invalid arguments ' + ' '.join(argv))
+
+ for ( o, a ) in opts:
+ if o in ('-c', '--component', '--components'):
+ components.append(a)
+ do_components = True
+ elif o in ( '-m', '--management' ):
+ management = True
+ components = self.default_components
+ elif o in ( '-a', '--all' ):
+ all = True
+ components = self.default_components
+ elif o in ( '-n', '--nodelist' ):
+ nodefiles.append(a)
+ do_agents = True
+ elif o in ( '-k', '--kill' ):
+ force = True
+ elif ( o == '-v' ) :
+ print self.version()
+ sys.exit(0)
+ elif ( o == '-h'):
+ self.usage(None)
+ elif ( o == '-?'):
+ self.usage(None)
+ else:
+ print 'badarg', a
+ self.invalid('bad arg: ' + a)
+
+
+ # 'management' means stop all the management daemons - if specific components are also specified
+ # there is at least a redundancy and maybe also a conflict.
+ if ( do_components and management ):
+ self.invalid("The --management and --compoent options are mutually exclusive")
+
+ # avaid confusion by insuring that if 'all', then nothing else is specified
+ if ( all and ( do_components or management ) ):
+ self.invalid("The --all option is mutually exclusive with --management and --component")
+
+
+ # 'all' means everything. we use broadcast. should use check_ducc to make sure
+ # it actually worked, and find the stragglers.
+ if ( all ):
+ if ( not force ) :
+ self.clean_shutdown()
+ if ( os.path.exists(self.pid_file) ):
+ os.remove(self.pid_file)
+ return
+ else:
+ if ( len(nodefiles) == 0 ):
+ nodefiles = self.default_nodefiles
+
+ self.pids = DuccProperties()
+ try:
+ self.pids.load(self.pid_file)
+ except DuccPropertiesException, (inst):
+ print inst.msg
+ print ''
+ print 'Run check_ducc to refresh the PIDs file, or check_ducc -k to search for and',
+ print 'kill all DUCC processes.'
+ print ''
+ sys.exit(1)
+
+ #
+ # if not 'all', we use nodefiles and component names
+ #
+
+ # make sure all the nodefiles exist and are readable
+ ok = True
+ nodes = {}
+ for n in nodefiles:
+ nodes = self.read_nodefile(n, nodes)
+
+ for ( nf, nl ) in nodes.items():
+ if ( nl == None ): # die early if the parameters are wrong
+ print "Can't read nodefile", nf
+ ok = False
+
+ if ( not ok ):
+ sys.exit(1)
+
+ for c in components:
+ self.stop_component(c, force)
+
+ for (nf, nl) in nodes.items():
+ for n in nl:
+ self.stop_agents(n, force)
+
+ if ( len(self.pids) > 0 ):
+ self.pids.write(self.pid_file)
+ else:
+ os.remove(self.pid_file)
+
+ return
+
+if __name__ == "__main__":
+ stopper = StopDucc()
+ stopper.main(sys.argv[1:])
+
+
Added: uima/sandbox/uima-ducc/trunk/src/main/admin/stop_sim
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/stop_sim?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/stop_sim (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/stop_sim Wed Jan 2 22:13:03 2013
@@ -0,0 +1,144 @@
+#!/usr/bin/env python
+# -----------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# -----------------------------------------------------------------------
+
+
+import os
+import sys
+
+from ducc_boot import *
+set_ducc_home()
+
+
+import getopt
+
+from ducc_util import DuccUtil
+from ducc_util import DuccProperties
+from ducc import Ducc
+
+class StopSim(DuccUtil):
+
+ def signal_process(self, inst, data, signal):
+ (node, pid, pname) = data.split(' ')
+ if ( not (inst in self.default_components )):
+ cmp = 'agent'
+ else:
+ cmp = inst
+ print 'Stopping process', inst, 'on', node, pid, pname, 'with signal', signal
+ self.ssh(node, False, 'kill', signal, pid)
+
+ if ( inst == 'or' ):
+ self.remove_orchestrator_lock()
+
+ def usage(self, msg):
+
+ if ( msg != None ):
+ print ' '.join(msg)
+
+
+ print "Usage:"
+ print " stop_sim [options]"
+ print " If no options are given, all ducc processes from sim.pids are stopped using SIGINT"
+ print ""
+ print "Options:"
+ print " -c --component compenent name"
+ print " The name is one of", self.default_components, "or an ID from sim.pids or the nodelist"
+ print " that was used to start DUCC"
+ print ""
+ print " -i --instance instancid"
+ print " Sends SIGINT to the indicated process, enabling orderly shutdown."
+ print ""
+ print " -k --kill"
+ print " Sends SIGKILL to the indicated process"
+ print ""
+ print " -p --pause"
+ print " Sends SIGSTOP to the indicated process"
+ print ""
+ print " -r --resume"
+ print " Sends SIGCONT to the indicated process"
+ print ""
+ print " -v, --version"
+ print " Print the current DUCC version"
+ print ""
+ sys.exit(1)
+
+
+ def invalid(self, *msg):
+ if ( msg[0] != None ):
+ print ' '.join(msg)
+
+ print "For usage run"
+ print " stop_sim -h"
+ print 'or'
+ print ' stop_sim --help'
+ sys.exit(1)
+
+ def main(self, argv):
+
+ components = []
+ instances = []
+ signal = '-INT'
+
+ try:
+ opts, args = getopt.getopt(argv, 'c:i:kprvh?', ['component=', 'instance=', 'kill' 'pause', 'resume', 'version'])
+ except:
+ self.invalid('Invalid arguments', ' '.join(argv))
+
+ for ( o, a ) in opts:
+ if o in ( '-i', '--instance' ):
+ instances.append(a)
+ elif o in ( '-c', '--component' ):
+ instances.append(a)
+ elif o in ( '-k', '--kill' ):
+ signal = '-KILL'
+ elif o in ( '-p', '--pause' ):
+ signal = '-STOP'
+ elif o in ( '-r', '--resume' ):
+ signal = '-CONT'
+ elif o in ( '-v', '--version' ):
+ print self.version()
+ sys.exit(0)
+ elif o in ( '-h', '--help' ):
+ self.usage(None)
+ elif ( o == '-?'):
+ self.usage(None)
+ else:
+ self.invalid('bad args: ', ' '.join(argv))
+
+ pids = DuccProperties()
+ pids.load('sim.pids')
+
+ if ( (len(components) + len(instances)) == 0 ):
+ for (inst, data) in pids.items():
+ self.signal_process(inst, data, signal)
+ if ( signal in ('-KILL', '-INT') ):
+ pids.delete(inst)
+
+ else:
+ for inst in instances:
+ data = pids.get(inst)
+ self.signal_process(inst, pids.get(inst), signal)
+ if ( signal in ('-KILL', '-INT') ):
+ pids.delete(inst)
+
+ pids.write('sim.pids')
+
+if __name__ == "__main__":
+ stopper = StopSim()
+ stopper.main(sys.argv[1:])
Added: uima/sandbox/uima-ducc/trunk/src/main/admin/verify_ducc
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/verify_ducc?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/verify_ducc (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/verify_ducc Wed Jan 2 22:13:03 2013
@@ -0,0 +1,323 @@
+#!/usr/bin/env python
+# -----------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# -----------------------------------------------------------------------
+
+
+import os
+import sys
+
+from ducc_boot import *
+set_ducc_home()
+
+import string
+import re
+import getopt
+
+global errors
+errors = 0
+
+from ducc_util import DuccUtil
+from ducc_util import DuccProperties
+from ducc import Ducc
+
+class VerifyDucc(DuccUtil):
+
+ #
+ # Make sure ducc_ling is set up ok.
+ # Make sure ducc_ling is configured in ducc.properties
+ # Make sure the broker address is set in ducc.properties.
+ # Make sure reserved.nodes has at least one of the nodes named in ducc.nodes
+ #
+
+ def check_duckling(self):
+ global errors
+ self.verify_duccling()
+
+ #
+ # allnodes is a dictionary. The key is the name of a nodefile, the value is a
+ # list of all nodes in that file.
+ def check_remote_nodes(self, allnodes, environment):
+ global errors
+
+ duckling_ok = True
+
+ for (nodefile, nodes) in allnodes.items():
+ for node in nodes:
+ checklist = []
+ mem = ''
+ lines = self.ssh(node, True, self.DUCC_HOME + '/admin/verify_ducc', '-d')
+ for line in lines:
+ line = line.strip()
+ if ( line.startswith('ENV') ):
+ if (line.find('not found') >= 0):
+ print 'NOTOK', node, 'from', nodefile, line
+ errors = errors + 1
+ else:
+ checklist.append(line)
+ elif (line.startswith('MEM')):
+ mem = line
+ elif ( line != 'ducc_ling OK'):
+ print 'NOTOK:', node, 'from', nodefile, line, mem
+ errors = errors + 1
+ duccling_ok = False
+ else:
+ print 'OK:', node, line, mem
+ for ( local, remote ) in zip(environment, checklist):
+ if (local != remote):
+ print 'DIFFERENCE on node', node, ':'
+ print '%20s %s' % ('LOCAL:', local)
+ print '%20s %s' % (node, remote)
+
+ return duckling_ok
+
+
+ def check_broker(self, broker_conf):
+ global errors
+
+ #broker_conf = broker_loc + '/apache-activemq-5.5.0/conf/activemq.xml'
+ broker_uri = None
+
+ #look for something like this: <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
+ f = open(broker_conf)
+ for line in f:
+ if ( not line ):
+ break
+ line = line.strip()
+ toks = line.split()
+ if ( not line ):
+ continue
+ if ( toks[0] == '<transportConnector' ):
+ # we need to parse out the uri and if localhost or 0.0.0.0 is specified,
+ # we need to replace it with the hostname
+
+ url = toks[2]
+ toks = url.split('"')
+ address = toks[1]
+ toks = address.split(':')
+ protocol = toks[0]
+ host = toks[1]
+ if ( (toks[1] == '//0.0.0.0') or (toks[1] == 'localhost') ):
+ host = os.uname()[1]
+ else:
+ host = host[2:] # strip //
+ shorthost = host
+ ttoks = host.split('.') #strip domain for easier matching later
+ if ( len(ttoks) > 1 ):
+ shorthost = ttoks[0]
+ port = toks[2]
+
+ amqok = True
+ protocols = ['tcp', 'nio']
+ if ( not ((protocol in protocols) and (self.broker_protocol in protocols)) ):
+ amqok = False
+ if ( host != self.broker_host ):
+ amqok = False
+ if ( port != self.broker_port ):
+ amqok = False
+
+ if ( amqok ):
+ print 'OK DUCC Configured ActiveMQ URL', self.broker_url, 'matches ActiveMQ configured URL.'
+ else:
+ print 'NOTOK DUCC Configured ActiveMQ URL', self.broker_url, 'does not match ActiveMQ configured URL:', address
+ errors = errors + 1
+
+ return amqok
+
+ def compare_nodes(self, n1, n2):
+
+ if ( n1 == n2 ): # exact match - covers both short and both long
+ return True
+
+ if ( n1.find('.') >= 0 ): # shortened n1 == n2?
+ t1 = n1.split('.')
+ n1A = t1[0]
+ if ( n1A == n2 ):
+ return True
+
+ if ( n2.find('.') >= 0 ): # n1 == shortened n2?
+ t2 = n2.split('.')
+ n2A = t2[0]
+ if ( n1 == n2A ):
+ return True
+
+ return False
+
+ def check_nodepools(self, allnodes):
+ global errors
+
+ classfile = self.ducc_properties.get('ducc.rm.class.definitions')
+ classfile = self.resolve(classfile, self.propsfile) # resolve the classfile relative to ducc.properties
+
+ classprops = DuccProperties()
+ classprops.load(classfile)
+
+ #
+ # First make sure that all the nodepools that are declared have definition files
+ # and that the defined nodes are in some nodelist.
+ #
+ nodepools = classprops.get('scheduling.nodepool').split()
+ nodepools_ok = True
+ for np in nodepools:
+ npkey = 'scheduling.nodepool.' + np
+ npfilename = classprops.get(npkey)
+ npfile = self.DUCC_HOME + '/resources/' + npfilename
+ if ( not os.path.exists(npfile) ):
+ print 'NOTOK: Cannot find nodepool file', npfile
+ errors = errors + 1
+ continue
+
+ npnodes = DuccProperties()
+ npnodes.load(npfile)
+ for ( node, v ) in npnodes.items():
+ found = False
+ for (nodefile, nodelist) in allnodes.items():
+ for n in nodelist:
+ if ( self.compare_nodes(n, node)):
+ found = True
+ break
+ if ( not found ):
+ print 'NOTOK: Cannot find node defined in pool "' +np+'" in any nodefile:', node
+ errors = errors + 1
+ nodepools_ok = False
+
+ #
+ # Now make sure that all classes that reference nodepools have corresponding
+ # nodepool definitions
+ #
+
+ for ( k, v ) in classprops.items():
+ if ( k.startswith('scheduling.class.') and k.endswith('.nodepool') ):
+ if ( not ( v in nodepools ) ):
+ toks = k.split('.')
+ classname = toks[2]
+ print 'NOTOK: Class', classname, 'references non-existent nodepool', v
+ errors = errors + 1
+ nodepools_ok = False
+
+ if ( nodepools_ok ):
+ print 'OK: All nodepools are verified'
+ else:
+ print 'NOTOK: some nodepools are not correctly defined.'
+
+ def usage(self, msg=None):
+ if ( msg != None ):
+ print msg
+ print 'verify_ducc [-b broker_install_dir] [-d] [-n] [-h | -?] [-v]'
+ print ''
+ print 'Where'
+ print ' -b broker_conf - specify the configuration file for the broker you are using.'
+ print ' Example: verify_ducc -b /home/challngr/amqbroker/amq/conf/activemq-nojournal5.xml'
+ print ''
+ print ' -n nodelist - use this nodelist.'
+ print ' May be specified multiple times.'
+ print ''
+ print ' -h or -? gives this help message'
+ print ''
+ print ' -v shows the DUCC version'
+ print ''
+ print 'Internally verify_ducc recursively uses a -d flag, not intended for general use.'
+ print ' -d just verify duccling on the local host'
+ print ''
+ print 'When invoked with no arguments, this performs installation verification checks for DUCC.'
+ sys.exit(1)
+
+ def main(self, argv):
+ global errors
+
+ environ = self.show_ducc_environment()
+ jars = []
+ for e in environ:
+ if ( e.startswith('ENV:') ):
+ jars.append(e)
+ print e
+
+ do_duckling = False
+ nodelists = []
+ amqhome = None
+
+ try:
+ opts, args = getopt.getopt(argv, 'b:dn:h?v')
+ except:
+ self.usage('Invalid arguments.')
+
+
+ for ( o, a ) in opts:
+ if ( o == '-v' ) :
+ print self.version()
+ sys.exit(0)
+ elif ( o == '-d'):
+ do_duckling = True
+ elif ( o == '-b'):
+ amqhome = a
+ elif ( o == '-n'):
+ nodelists.append(a)
+ elif ( o == '-h'):
+ self.usage(None)
+ elif ( o == '-?'):
+ self.usage(None)
+ else:
+ self.usage('bad arg: ' + a)
+
+ if ( do_duckling ):
+ self.check_duckling()
+ return
+
+ HOME = os.environ['HOME']
+ DEFAULT_MQ = HOME + '/activemq/apache-activemq-5.5.0/conf/activemq.xml'
+ MQ_DIR = DEFAULT_MQ
+ MQ_VERSION = 'apache-activemq-5.5.0' # required
+
+ if ( amqhome == None ):
+ MQ_DIR = DEFAULT_MQ
+ else:
+ MQ_DIR = amqhome
+ print 'ActiveMQ directory:', MQ_DIR
+
+ if ( len(nodelists) == 0 ):
+ nodelists = self.default_nodefiles
+
+ activemq_loc = MQ_DIR
+
+ # read all nodes into a dictionary keyed off the nodefile name
+ tmp = {}
+ for nodefile in nodelists:
+ tmp = self.read_nodefile(nodefile, tmp)
+
+ # transfer nodes into an array with only stuff that could be
+ # found, emitting errors as needed
+ allnodes = {}
+ for ( k, v ) in tmp.items():
+ if ( v == None ):
+ print 'NOTOK: Cannot read nodefile', k
+ errors = errors + 1
+ else:
+ allnodes[k] = v
+
+ self.check_broker(activemq_loc) # reads activemq.conf and verifies the url against the configured url
+ self.check_nodepools(allnodes)
+ self.check_remote_nodes(allnodes, jars)
+
+ print 'Verified with', errors, 'errors'
+
+
+if __name__ == "__main__":
+ verifier = VerifyDucc()
+ verifier.main(sys.argv[1:])
+
+
Added: uima/sandbox/uima-ducc/trunk/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/assembly/bin.xml?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/assembly/bin.xml (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/assembly/bin.xml Wed Jan 2 22:13:03 2013
@@ -0,0 +1,422 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<assembly>
+ <id>bin</id>
+ <formats>
+ <format>tar.gz</format>
+ <format>zip</format>
+ </formats>
+
+ <baseDirectory>apache-uima-ducc-${project.version}</baseDirectory>
+ <includeBaseDirectory>true</includeBaseDirectory>
+
+ <dependencySets>
+ <dependencySet>
+ <includes>
+ <include>org.apache.uima:uima-ducc-common</include>
+ <include>org.apache.uima:uima-ducc-transport</include>
+ <include>org.apache.uima:uima-ducc-agent</include>
+ <include>org.apache.uima:uima-ducc-cli</include>
+ <include>org.apache.uima:uima-ducc-jd</include>
+ <include>org.apache.uima:uima-ducc-pm</include>
+ <include>org.apache.uima:uima-ducc-rm</include>
+ <include>org.apache.uima:uima-ducc-sm</include>
+ <include>org.apache.uima:uima-ducc-orchestrator</include>
+ </includes>
+ <outputFileNameMapping>${artifact.artifactId}.jar</outputFileNameMapping>
+ <outputDirectory>ducc_runtime/lib</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <!-- UIMA Core + UIMA-AS -->
+ <dependencySet>
+ <includes>
+ <include>org.apache.uima:uimaj-as-core</include>
+ <include>org.apache.uima:uimaj-as-jms</include>
+ <include>org.apache.uima:uimaj-as-activemq</include>
+ <include>org.apache.uima:uimaj-core</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/uima</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <!-- dependencySet>
+ <unpack>false</unpack>
+ <outputDirectory>runtime/webserver2/lib</outputDirectory>
+ <useTransitiveDependencies>true</useTransitiveDependencies>
+ <includes>
+ <include>org.eclipse.jetty:jetty-server</include>
+ <include>org.eclipse.jetty:jetty-ajp</include>
+ <include>org.eclipse.jetty:jetty-annotations</include>
+ <include>org.eclipse.jetty:jetty-client</include>
+ <include>org.eclipse.jetty:jetty-continuation</include>
+ <include>org.eclipse.jetty:jetty-deploy</include>
+ <include>org.eclipse.jetty:jetty-http</include>
+ <include>org.eclipse.jetty:jetty-io</include>
+ <include>org.eclipse.jetty:jetty-jmx</include>
+ <include>org.eclipse.jetty:jetty-jndi</include>
+ <include>org.eclipse.jetty:jetty-overlay-deployer</include>
+ <include>org.eclipse.jetty:jetty-plus</include>
+ <include>org.eclipse.jetty:jetty-policy</include>
+ <include>org.eclipse.jetty:jetty-rewrite</include>
+ <include>org.eclipse.jetty:jetty-security</include>
+ <include>org.eclipse.jetty:jetty-servlet</include>
+ <include>org.eclipse.jetty:jetty-servlets</include>
+ <include>org.eclipse.jetty:jetty-util</include>
+ <include>org.eclipse.jetty:jetty-webapp</include>
+ <include>org.eclipse.jetty:jetty-websocket</include>
+ <include>org.eclipse.jetty:jetty-xml</include>
+ <include>javax.servlet:servlet-api</include>
+ </includes>
+ </dependencySet -->
+
+
+
+
+
+ <dependencySet>
+ <includes>
+ <include>commons-cli:commons-cli</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-commons-cli</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>log4j:log4j</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-log4j</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.apache.xmlbeans:xmlbeans</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/xmlbeans</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>com.google.guava:guava</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/guava</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>joda-time:joda-time</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/joda-time</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.apache.httpcomponents:httpclient</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/http-client</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>commons-codec:commons-codec</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/http-client</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>commons-collections:commons-collections</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-commons-collections</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>commons-lang:commons-lang</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-commons-lang</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.apache.commons:commons-math</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-commons-math</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>junit:junit</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/junit</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.apache.activemq:activemq-web</include>
+ <include>org.apache.activemq:activemq-core</include>
+ <include>org.apache.activemq:activemq-optional</include>
+ <include>org.apache.activemq:activemq-spring</include>
+ <include>org.apache.activemq:activemq-web</include>
+ <include>org.apache.activemq:activemq-web</include>
+ <include>org.apache.activemq:activemq-web</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-activemq</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.apache.camel:camel-context</include>
+ <include>org.apache.camel:camel-http</include>
+ <include>org.apache.camel:camel-http4</include>
+ <include>org.apache.camel:camel-jetty</include>
+ <include>org.apache.camel:camel-jms</include>
+ <include>org.apache.camel:camel-mina</include>
+ <include>org.apache.camel:camel-servlet</include>
+ <include>org.apache.camel:camel-test-spring</include>
+ <include>org.apache.camel:camel-test</include>
+ <include>org.apache.camel:camel-spring</include>
+ <include>org.apache.camel:camel-stream</include>
+ <include>org.apache.camel:camel-xmlbeans</include>
+ <include>org.apache.camel:camel-xstream</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/apache-camel</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+ <dependencySet>
+ <includes>
+ <include>org.springframework:spring-core</include>
+ <include>org.springframework:spring-expression</include>
+ <include>org.springframework:spring-beans</include>
+ <include>org.springframework:spring-aop</include>
+ <include>org.springframework:spring-tx</include>
+ <include>org.springframework:spring-asm</include>
+ <include>org.springframework:spring-jms</include>
+ <include>org.springframework:spring-context</include>
+ <include>org.springframework:spring-context-support</include>
+ </includes>
+ <outputDirectory>ducc_runtime/lib/springframework</outputDirectory>
+ <useProjectArtifact>false</useProjectArtifact>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </dependencySet>
+
+
+ </dependencySets>
+
+ <!-- Add other files - scripts, documentation, examples -->
+ <fileSets>
+
+ <fileSet>
+ <directory>src/main/resources</directory>
+ <outputDirectory>ducc_runtime/resources</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes />
+ </fileSet>
+
+ <fileSet>
+ <directory>../uima-ducc-cli/target</directory>
+ <outputDirectory>ducc_runtime/lib</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>uima-ducc-cli.jar</exclude>
+ </excludes>
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/config</directory>
+ <outputDirectory>ducc_runtime/resources</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes />
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/admin</directory>
+ <outputDirectory>ducc_runtime/admin</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes />
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/scripts</directory>
+ <outputDirectory>ducc_runtime/bin</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes />
+ <excludes>
+ <exclude>dd2spring.bat</exclude>
+ <exclude>dd2spring.xsl</exclude>
+ </excludes>
+ </fileSet>
+
+ <fileSet>
+ <directory>../uima-ducc-spawn/src</directory>
+ <outputDirectory>ducc_runtime/duccling/src</outputDirectory>
+ <fileMode>750</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes />
+ <excludes />
+ </fileSet>
+
+ <fileSet>
+ <directory>../uima-ducc-spawn</directory>
+ <outputDirectory>ducc_runtime/duccling</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ <includes>
+ <include>README*</include>
+ </includes>
+ <excludes />
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/saxon</directory>
+ <outputDirectory>ducc_runtime/lib/saxon</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/webserver</directory>
+ <outputDirectory>ducc_runtime/webserver</outputDirectory>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </fileSet>
+
+
+ <fileSet>
+ <directory>../uima-ducc-ducbook/target/site/d</directory>
+ <outputDirectory>ducc_runtime/docs</outputDirectory>
+ <excludes>
+ <exclude>css/*</exclude>
+ </excludes>
+ <fileMode>644</fileMode>
+ <directoryMode>755</directoryMode>
+ </fileSet>
+
+ </fileSets>
+
+ <files>
+
+ <file>
+ <source>README.BUILD</source>
+ <outputDirectory>ducc_runtime</outputDirectory>
+ <destName>README.BUILD</destName>
+ <fileMode>644</fileMode>
+ </file>
+ <file>
+ <source>README.INSTALL</source>
+ <outputDirectory>ducc_runtime</outputDirectory>
+ <destName>README.INSTALL</destName>
+ <fileMode>644</fileMode>
+ </file>
+ <file>
+ <source>RELEASE.NOTES</source>
+ <outputDirectory>ducc_runtime</outputDirectory>
+ <destName>RELEASE.NOTES</destName>
+ <fileMode>644</fileMode>
+ </file>
+
+
+ <!-- file>
+ <source>target/uimaj/apache-uima/examples/.project</source>
+ <outputDirectory>examples</outputDirectory>
+ <fileMode>644</fileMode>
+ </file>
+ <file>
+ <source>target/uimaj/apache-uima/RELEASE_NOTES.html</source>
+ <outputDirectory/>
+ <destName>RELEASE_NOTES.uimaj.html</destName>
+ <fileMode>644</fileMode>
+ </file>
+
+ <file>
+ <source>target/uimaj/apache-uima/LICENSE</source>
+ <outputDirectory/>
+ <destName>LICENSE.uimaj.txt</destName>
+ <fileMode>644</fileMode>
+ </file>
+
+ <file>
+ <source>target/uimaj/apache-uima/NOTICE</source>
+ <outputDirectory/>
+ <destName>NOTICE.uimaj.txt</destName>
+ <fileMode>644</fileMode>
+ </file>
+
+
+ <file>
+ <source>src/main/eclipseProject/classpath</source>
+ <outputDirectory>examples</outputDirectory>
+ <destName>.classpath</destName>
+ <fileMode>644</fileMode>
+ </file -->
+ </files>
+</assembly>
Propchange: uima/sandbox/uima-ducc/trunk/src/main/assembly/bin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/src/main/config/activemq-nojournal5.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/config/activemq-nojournal5.xml?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/config/activemq-nojournal5.xml (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/config/activemq-nojournal5.xml Wed Jan 2 22:13:03 2013
@@ -0,0 +1,53 @@
+<beans
+ xmlns="http://www.springframework.org/schema/beans"
+ xmlns:amq="http://activemq.apache.org/schema/core"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
+
+ <!-- Allows us to use system properties as variables in this configuration file -->
+ <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
+
+ <broker xmlns="http://activemq.apache.org/schema/core" persistent="false">
+
+ <destinationPolicy>
+ <policyMap>
+ <policyEntries>
+ <policyEntry topic=">" producerFlowControl="false" optimizedDispatch="true">
+ <pendingSubscriberPolicy>
+ <vmCursor />
+ </pendingSubscriberPolicy>
+ </policyEntry>
+ <policyEntry queue=">" producerFlowControl="false" optimizedDispatch="true" maxPageSize="2000">
+ <pendingQueuePolicy>
+ <vmQueueCursor/>
+ </pendingQueuePolicy>
+ </policyEntry>
+ </policyEntries>
+ </policyMap>
+ </destinationPolicy>
+
+ <managementContext>
+ <managementContext createConnector="true" connectorPort="1099"/>
+ </managementContext>
+
+ <systemUsage>
+ <systemUsage>
+ <memoryUsage>
+ <memoryUsage limit="500 mb"/>
+ </memoryUsage>
+ <storeUsage>
+ <storeUsage limit="1 gb" name="foo"/>
+ </storeUsage>
+ <tempUsage>
+ <tempUsage limit="500 mb"/>
+ </tempUsage>
+ </systemUsage>
+ </systemUsage>
+
+ <transportConnectors>
+ <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?transport.soWriteTimeout=45000"/>
+ </transportConnectors>
+
+ </broker>
+</beans>
Propchange: uima/sandbox/uima-ducc/trunk/src/main/config/activemq-nojournal5.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/src/main/config/log4j.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/config/log4j.xml?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/config/log4j.xml (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/config/log4j.xml Wed Jan 2 22:13:03 2013
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="cli-console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="cli-console-ts" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="rmlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/rm.log"/>
+ <param name="maxBackupIndex" value="50" />
+ <param name="maxFileSize" value="20MB" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="orlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/or.log"/>
+ <param name="maxBackupIndex" value="20" />
+ <param name="maxFileSize" value="20MB" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="ormon" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/or.mon"/>
+ <param name="maxBackupIndex" value="20" />
+ <param name="maxFileSize" value="20MB" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="smlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/sm.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="pmlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/pm.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="wslog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/ws.${NodeName}.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="vizlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/viz.${NodeName}.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="jdout" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${ducc.process.log.dir}/jd.out.log"/>
+ <param name="maxBackupIndex" value="20" />
+ <param name="maxFileSize" value="20MB" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %c{2} %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="jderr" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${ducc.process.log.dir}/jd.err.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %c{2} %m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="agentlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender">
+ <param name="append" value="true"/>
+ <param name="file" value="${DUCC_HOME}/logs/${NodeName}.${ducc.deploy.components}.log"/>
+ <param name="maxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <category name="org.apache.uima.ducc.rm.scheduler" additivity="true">
+ <priority value="info"/>
+ <appender-ref ref="rmlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.rm.JobManagerConverter" additivity="true">
+ <priority value="trace"/>
+ <appender-ref ref="rmlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.rm.NodeStability" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="rmlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.rm.ResourceManagerComponent" additivity="true">
+ <priority value="info"/>
+ <appender-ref ref="rmlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.orchestrator" additivity="true">
+ <priority value="info"/>
+ <appender-ref ref="orlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.orchestrator.monitor" additivity="false">
+ <priority value="info"/>
+ <appender-ref ref="ormon" />
+ </category>
+
+ <category name="org.apache.uima.ducc.agent" additivity="false">
+ <priority value="debug"/>
+ <appender-ref ref="agentlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.agent.deploy" additivity="false">
+ <priority value="off"/>
+ <appender-ref ref="agentlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.jd" additivity="false">
+ <priority value="debug"/>
+ <appender-ref ref="jdout" />
+ </category>
+
+ <category name="org.apache.uima.ducc.sm" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="smlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.pm" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="pmlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.ws" additivity="true">
+ <priority value="info"/>
+ <appender-ref ref="wslog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.viz" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="vizlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.duccsight" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="vizlog" />
+ </category>
+
+ <category name="org.apache.uima.ducc.user.logs" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="jdout" />
+ </category>
+
+ <category name="org.apache.uima.ducc.user.out" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="jdout" />
+ </category>
+
+ <category name="org.apache.uima.ducc.user.err" additivity="true">
+ <priority value="debug"/>
+ <appender-ref ref="jderr" />
+ </category>
+
+ <category name="org.springframework.beans.factory">
+ <priority value="off"/>
+ </category>
+
+ <category name="org.apache.camel">
+ <priority value="off"/>
+ </category>
+
+ <category name="org.apache.uima.ducc.cli" additivity="false">
+ <priority value="info"/>
+ <appender-ref ref="cli-console" />
+ </category>
+
+ <category name="org.apache.uima.ducc.cli-ts" additivity="false">
+ <priority value="info"/>
+ <appender-ref ref="cli-console-ts" />
+ </category>
+
+ <root>
+ <priority value ="info" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
Propchange: uima/sandbox/uima-ducc/trunk/src/main/config/log4j.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.administrators Wed Jan 2 22:13:03 2013
@@ -0,0 +1,3 @@
+bobtheadmin
+joehelper
+billywho
Added: uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.classes
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.classes?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.classes (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.classes Wed Jan 2 22:13:03 2013
@@ -0,0 +1,77 @@
+scheduling.class_set = background low normal high urgent weekly fixed reserve JobDriver
+scheduling.default.name = normal
+
+scheduling.nodepool = reserve
+scheduling.nodepool.reserve = reserved.nodes
+
+#
+# The first five classes are blade-like unfair share
+#
+scheduling.class.background.policy = FAIR_SHARE
+scheduling.class.background.share_weight = 1
+scheduling.class.background.priority = 10
+scheduling.class.background.cap = 0
+
+scheduling.class.low.policy = FAIR_SHARE
+scheduling.class.low.share_weight = 50
+scheduling.class.low.priority = 10
+scheduling.class.low.cap = 0
+
+scheduling.class.normal.policy = FAIR_SHARE
+scheduling.class.normal.share_weight = 100
+scheduling.class.normal.priority = 10
+scheduling.class.normal.cap = 0
+
+# Note that it is possible to override some of the the global scheduling parameters
+# on a class-wise basis
+scheduling.class.normal.prediction = true
+scheduling.class.normal.prediction.fudge = 10000
+scheduling.class.normal.expand.by.doubling = true
+scheduling.class.normal.initialization.cap = 2
+
+scheduling.class.high.policy = FAIR_SHARE
+scheduling.class.high.share_weight = 200
+scheduling.class.high.priority = 10
+scheduling.class.high.cap = 0
+
+scheduling.class.urgent.policy = FAIR_SHARE
+scheduling.class.urgent.share_weight = 10000
+scheduling.class.urgent.priority = 10
+scheduling.class.urgent.cap = 0
+
+#
+# Some number of fixed share aka pinned shares
+#
+scheduling.class.fixed.policy = FIXED_SHARE
+scheduling.class.fixed.priority = 5
+scheduling.class.fixed.max_shares = 10 #max per user
+#scheduling.class.fixed.cap = 20%
+
+#
+# This is for weekly. It will eat the system if there's enough work for it but
+# relinquish resources as things complete. So we cap it at 80% to allow some bits of
+# work to trickle through
+#
+scheduling.class.weekly.policy = FAIR_SHARE
+scheduling.class.weekly.share_weight = 100
+scheduling.class.weekly.priority = 3
+scheduling.class.weekly.cap = 80%
+
+#
+# Reservations -
+#
+scheduling.class.reserve.policy = RESERVE
+scheduling.class.reserve.priority = 1
+scheduling.class.reserve.cap = 0
+scheduling.class.reserve.enforce.memory = false
+#scheduling.class.reserve.nodepool = reserve
+
+#
+# Job driver, always going to succeed
+#
+scheduling.class.JobDriver.policy = RESERVE
+scheduling.class.JobDriver.priority = 0
+scheduling.class.JobDriver.cap = 0
+#scheduling.class.JobDriver.nodepool = reserve
+scheduling.class.JobDriver.enforce.memory = false
+scheduling.class.JobDriver.max_machines = 5
Added: uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.properties
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.properties?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.properties (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.properties Wed Jan 2 22:13:03 2013
@@ -0,0 +1,307 @@
+# Declare which components to load into the jvm on process startup.
+
+ducc.jms.provider=activemq
+
+# ---------------------------------------------------
+# deprecated ducc.broker.url in favor of breaking a url into pieces
+# as defined below
+#ducc.broker.url=tcp://localhost:61616
+# ---------------------------------------------------
+# define broker protocol. Should typically be tcp. *** Dont specify : or // ***
+ducc.broker.protocol=tcp
+# define hostname where the broker is running
+ducc.broker.hostname=localhost
+# define broker port
+ducc.broker.port=61616
+# define broker url parms (url decoration). *** Dont specify leading ? ***
+#
+# recoveryInterval=30000 - Specifies an interval between recovery attempts, i.e. when
+# a connection is being refreshed, in milliseconds
+# jms.useCompression=true - Compress message body
+#
+ducc.broker.url.decoration=wireFormat.maxInactivityDuration=0&recoveryInterval=30000&jms.useCompression=true
+
+# To enable tracing of RM messages arriving in OR and NodeMetrics arriving in WS.
+#ducc.transport.trace = orchestrator:RmStateDuccEvent webserver:NodeMetricsUpdateDuccEvent
+
+# define broker name. This name should match the actual broker name
+# defined in activemq-nojournal5.xml. The name is used by JD to
+# connect to a remote broker in order to remove its queue when
+# JD is done processing
+ducc.broker.name=localhost
+ducc.broker.jmx.port=1099
+
+ducc.cluster.name=DUCC!
+
+ducc.authentication.implementer=com.ibm.ducc.authentication.AuthenticationManager
+
+# ducc.runmode=Test
+
+ducc.locale.language=en
+ducc.locale.country=us
+
+# Specify a minimum amount of free swap space available on a node.
+# If an agent detects free swap space dipping below the value defined
+# below, it will find the fattest (in terms of memory) process in its
+# inventory and kill it. The value of the parameter below is expressed
+# in Megabytes.
+ducc.node.min.swap.threshold=1000000
+
+# Specify the jvm here. If not here, java must be in your path. If java is in neither place DUCC won't start.
+#ducc.jvm = /share/ibm-java-sr10-x86_64-60/bin/java
+
+# administrative endpoint for all ducc components
+ducc.admin.endpoint=ducc.admin.channel
+# endpoint type choices[vm,queue,topic]
+ducc.admin.endpoint.type=topic
+
+# jmx port number for Ducc process. Each Ducc process will attempt
+# to use this port for its JMX Connector. If the port is not available
+# port+1 will be used until an available port is found.
+ducc.jmx.port=2099
+
+ducc.agent.jvm.args = -Xmx100M
+ducc.orchestrator.jvm.args = -Xmx1G
+ducc.rm.jvm.args = -Xmx1G
+ducc.pm.jvm.args = -Xmx1G
+ducc.sm.jvm.args = -Xmx1G
+ducc.ws.jvm.args = -Xmx8G
+ducc.viz.jvm.args = -Xmx8G
+
+# ========== CLI Configuration block ==========
+#ducc.submit.threads.limit=200
+#ducc.submit.driver.jvm.args=-XX:+HeapDumpOnOutOfMemoryError
+#ducc.submit.process.jvm.args=-XX:+HeapDumpOnOutOfMemoryError
+# No timeout
+ducc.cli.httpclient.sotimeout=0
+#------------------------------------------------------------------------------
+# off, // CLI submit and cancel signature enforcement disabled
+# on, // CLI submit and cancel signature enforcement enabled (default)
+ducc.signature.required=on
+#------------------------------------------------------------------------------
+
+# ========== Web Server Configuration block ==========
+ducc.ws.configuration.class=org.apache.uima.ducc.ws.config.WebServerConfiguration
+# Optionally configure the webserver node
+#ducc.ws.node = my.node.com
+# Optionally configure the webserver IP address
+#ducc.ws.ipaddress = 192.168.3.77
+# Optionally configure the webserver IP port for HTTP requests, default is 42133
+ducc.ws.port = 42133
+# Optionally configure the webserver IP port for HTTPS requests, default is 42155
+ducc.ws.port.ssl = 42155
+# Optionally configure the webserver ssl pw for HTTPS requests, default is quackquack
+ducc.ws.port.ssl.pw = quackquack
+# Optionally configure the webserver login session timeout, default is 30
+ducc.ws.session.minutes = 60
+# Optionally configure the webserver max history entries for each of Jobs/Reservations/Services
+ducc.ws.max.history.entries = 4096
+# <for Apache only>
+#uncomment this line and set pw for login to webserver, otherwise no pw required to login.
+#ducc.ws.authentication.pw = ducksoup
+# </for Apache only>
+#ducc.beta.host = bluej02.watson.ibm.com
+#ducc.beta.port = 42133
+# ========== Web Server Configuration block ==========
+
+# ========== Viz Configuration block ==========
+ducc.viz.configuration.class=org.apache.uima.ducc.viz.config.VizServerConfiguration
+# Configure the webserver host and IP port for HTTP requests, default is 42134
+ducc.viz.host = bluej02.watson.ibm.com
+ducc.viz.port = 42134
+#uncomment this line to record the serialized objects to ~/serializedDuccWorkMaps:
+#ducc.viz.writeSerObjsToDir = serializedDuccWorkMaps
+#uncomment this line to read and replay the serialized objects in ~/DuccsightRecordings:
+#ducc.viz.readSerObjsFromDir = DuccsightRecordings
+#this variable defines how long the hourly svg snapshots are kept in the webserver root/viz/history directory
+ducc.viz.numOfDaysToKeepSnapshots = 7
+# ========== Viz Configuration block ==========
+
+# ========== Job Driver Configuration block ==========
+ducc.jd.configuration.class=org.apache.uima.ducc.jd.config.JobDriverConfiguration
+ducc.jd.state.update.endpoint=ducc.jd.state
+# endpoint type choices[vm,queue,topic]
+ducc.jd.state.update.endpoint.type=topic
+ducc.jd.state.publish.rate=15000
+ducc.jd.queue.prefix=ducc.jd.queue.
+ducc.jd.host.class=JobDriver
+ducc.jd.host.description=Job Driver
+ducc.jd.host.memory.size=8GB
+ducc.jd.host.number.of.machines=2
+ducc.jd.host.user=System
+# ========== Job Driver Configuration block ==========
+
+
+# ========== Service Manager Configuration block ==========
+ducc.sm.configuration.class=org.apache.uima.ducc.sm.config.ServiceManagerConfiguration
+ducc.sm.state.update.endpoint=ducc.sm.state
+ducc.sm.state.update.endpoint.type=topic
+ducc.sm.meta.ping.rate = 60000
+ducc.sm.meta.ping.stability = 10
+ducc.sm.meta.ping.timeout = 500
+ducc.sm.http.port=19989
+ducc.sm.http.node=localhost
+ducc.sm.default.linger=300
+# === END == Service Manager Configuration block ==========
+
+# ========== Orchestrator Configuration block ==========
+ducc.orchestrator.configuration.class=org.apache.uima.ducc.orchestrator.config.OrchestratorConfiguration
+#ducc.orchestrator.checkpoint=off
+ducc.orchestrator.checkpoint=on
+#------------------------------------------------------------------------------
+# cold, // Recover: All is lost JD host: employ new
+# warm, // Recover: Reservations only (default) JD host: employ new
+# hot , // Recover: Reservations and Jobs, JD host: employ current
+ducc.orchestrator.start.type=warm
+#------------------------------------------------------------------------------
+#ducc.orchestrator.retain.completed.hours=200
+ducc.orchestrator.request.endpoint=ducc.orchestrator.request?requestTimeout=180000
+# endpoint type choices[vm,queue,topic]
+ducc.orchestrator.request.endpoint.type=queue
+#------------------------------------------------------------------------------
+ducc.orchestrator.state.update.endpoint=ducc.orchestrator.state
+# endpoint type choices[vm,queue,topic]
+ducc.orchestrator.state.update.endpoint.type=topic
+ducc.orchestrator.state.publish.rate=15000
+#------------------------------------------------------------------------------
+ducc.orchestrator.abbreviated.state.update.endpoint=ducc.orchestrator.abbreviated.state
+# endpoint type choices[vm,queue,topic]
+ducc.orchestrator.abbreviated.state.update.endpoint.type=topic
+ducc.orchestrator.abbreviated.state.publish.rate=15000
+#------------------------------------------------------------------------------
+ducc.orchestrator.maintenance.rate=60000
+#------------------------------------------------------------------------------
+#ducc.orchestrator.job.factory.classpath.order=ducc-before-user
+ducc.orchestrator.job.factory.classpath.order=user-before-ducc
+#------------------------------------------------------------------------------
+# orchestrator's jetty http port
+ducc.orchestrator.http.port=19988
+# !!!!!!!! Node where OR is running. This is needed by CLI
+# to compose a URL to access OR jetty server
+ducc.orchestrator.node=localhost
+# ========== Orchestrator Configuration block ==========
+
+# Resource Manager Configuration block
+ducc.rm.configuration.class=org.apache.uima.ducc.rm.config.ResourceManagerConfiguration
+ducc.rm.state.update.endpoint=ducc.rm.state
+# endpoint type choices[vm,queue,topic]
+ducc.rm.state.update.endpoint.type=topic
+# This is the scheduling epoch in milliseconds. We publish at the end of each epoch.
+# No longer used.
+ducc.rm.state.publish.rate = 60000
+# Number of orchestrator updates to accumulate before sheduling
+ducc.rm.state.publish.ratio = 4
+# Amount of Dram to reserve before computing shares for a machine In GB
+ducc.rm.reserved.dram = 0
+# Base size of dram quantum in Gb
+ducc.rm.share.quantum = 15
+# Implementation class for actual scheduling algorithm
+#ducc.rm.scheduler = org.apache.uima.ducc.sm.pm.orchestrator.agent.jd.rm.rm.scheduler.ClassBasedScheduler
+ducc.rm.scheduler = org.apache.uima.ducc.rm.scheduler.NodepoolScheduler
+# File defining thescheduler classes - found in DUCC_HOME/resources
+ducc.rm.class.definitions = ducc.classes
+# default number of questions if not specified in job
+ducc.rm.default.tasks = 10
+# default memory, in GB, if not specified in job
+ducc.rm.default.memory = 15
+#default number of threads, if not specified in job
+ducc.rm.default.threads = 4
+# number of node metrics heartbeats to wait for before rm starts up
+ducc.rm.init.stability = 3
+# number of missed node metrics updates to consider node down
+ducc.rm.node.stability = 5
+# which policy to use when shrinking/evicting shares - alternatively, SHRINK_BY_MACHINE
+ducc.rm.eviction.policy = SHRINK_BY_INVESTMENT
+# max nodes to initially allocate until init is complete
+ducc.rm.initialization.cap = 2
+# When true, jobs expand not all at once after init, but a bit slower, doubling each epoch
+# until max fair-share is set. If false, jobs increase immediately to their fair share,
+# at the cost of mass evictions.
+ducc.rm.expand.by.doubling = true
+# Predict when a job will end and avoid expanding if not needed
+ducc.rm.prediction = true
+# Add this fudge factor (milliseconds) to the expansion target when using prediction
+ducc.rm.prediction.fudge = 10000
+ducc.rm.defragmentation = true
+# What is minimum number of shares before we do defrag?
+ducc.rm.fragmentation.threshold = 2
+
+# Agent Configuration block
+ducc.agent.configuration.class=org.apache.uima.ducc.agent.config.AgentConfiguration
+ducc.agent.request.endpoint=ducc.agent
+# endpoint type choices[vm,queue,topic]
+ducc.agent.request.endpoint.type=topic
+
+# Endpoint where uima as service wrapper reports status
+ducc.agent.managed.process.state.update.endpoint=ducc.managed.process.state.update
+# endpoint type choices[vm,queue,topic,socket]
+ducc.agent.managed.process.state.update.endpoint.type=socket
+# endpoint parameters which are transport specific. For socket
+# transport params are:
+# - transferExchange=true - include Camel Exchange wrapper in a message
+# - synch=false - use socket transport for one-way messaging (no replies neeeded)
+ducc.agent.managed.process.state.update.endpoint.params=transferExchange=true&sync=false
+
+ducc.agent.node.metrics.publish.rate=60000
+ducc.agent.node.metrics.endpoint=ducc.node.metrics
+# endpoint type choices[vm,queue,topic]
+ducc.agent.node.metrics.endpoint.type=topic
+# Rate at which an agent publishes its process inventory
+# The agent will only publish at this rate if there are
+# changes since the last publish.
+ducc.agent.node.inventory.publish.rate=10000
+# If no changes in inventory, publish every 30 intervals defined by ducc.agent.node.inventory.publish.rate
+ducc.agent.node.inventory.publish.rate.skip=30
+ducc.agent.node.inventory.endpoint=ducc.node.inventory
+# endpoint type choices[vm,queue,topic]
+ducc.agent.node.inventory.endpoint.type=topic
+ducc.agent.launcher.thread.pool.size=10
+# enable/disable use of ducc_ling
+ducc.agent.launcher.use.ducc_spawn=true
+# specify location of ducc_ling in the filesystem
+ducc.agent.launcher.ducc_spawn_path=${DUCC_HOME}/admin/ducc_ling
+#ducc.agent.simulation.machine.config = resources/hw4.config
+# Max amount of time (in millis) agent allows the process to stop before issuing kill -9
+ducc.agent.launcher.process.stop.timeout=60000
+# Max tim in millis allowed for AE initialization. Default 2 hours 7200000.
+ducc.agent.launcher.process.init.timeout=7200000
+# exclude the following user ids while detecting rogue processes
+ducc.agent.rogue.process.user.exclusion.filter=root,postfix,ntp,nobody,daemon,100
+#exclude the following processes while detecting rogue processes
+ducc.agent.rogue.process.exclusion.filter=sshd:,-bash,-sh,/bin/sh,/bin/bash,grep,ps
+# Fudge Factor (in terms of percantage) that agent uses to multiply a share size when
+# determining if a JP exceeds its alloted memory, which is calculated as follows
+# (fudge factor/100)*share size + share size. If this number exceeds JPs RSS, the agent
+# kills the process.
+ducc.agent.share.size.fudge.factor=5
+
+# Process Manager Configuration block
+ducc.pm.configuration.class=org.apache.uima.ducc.pm.config.ProcessManagerConfiguration
+ducc.pm.request.endpoint=ducc.pm
+# endpoint type choices[vm,queue,topic]
+ducc.pm.request.endpoint.type=queue
+#------------------------------------------------------------------------------
+ducc.pm.state.update.endpoint=ducc.pm.state
+# endpoint type choices[vm,queue,topic]
+ducc.pm.state.update.endpoint.type=topic
+ducc.pm.state.publish.rate=25000
+
+# UIMA AS Managed Process Configuration block
+ducc.uima-as.configuration.class=org.apache.uima.ducc.agent.deploy.uima.UimaAsServiceConfiguration
+ducc.uima-as.endpoint=ducc.job.managed.service
+# endpoint type choices[vm,queue,topic,socket]
+ducc.uima-as.endpoint.type=socket
+# endpoint parameters which are transport specific. For socket
+# transport params are:
+# - transferExchange=true - include Camel Exchange wrapper in a message
+# - synch=false - use socket transport for one-way messaging (no replies neeeded)
+ducc.uima-as.endpoint.params=transferExchange=true&sync=false
+
+
+ducc.uima-as.saxon.jar.path=file:${DUCC_HOME}/lib/saxon8/saxon8.jar
+ducc.uima-as.dd2spring.xsl.path=${DUCC_HOME}/admin/dd2spring.xsl
+# custom Flow Controller to use for Ducc Job Processes
+ducc.uima-as.flow-controller.specifier=org.apache.uima.ducc.common.uima.DuccJobProcessFC
+
+
+
Propchange: uima/sandbox/uima-ducc/trunk/src/main/resources/ducc.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/src/main/saxon/saxon8.jar
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/saxon/saxon8.jar?rev=1428087&view=auto
==============================================================================
Binary file - no diff available.
Propchange: uima/sandbox/uima-ducc/trunk/src/main/saxon/saxon8.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: uima/sandbox/uima-ducc/trunk/src/main/scripts/__init__.py
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/scripts/__init__.py?rev=1428087&view=auto
==============================================================================
(empty)
Propchange: uima/sandbox/uima-ducc/trunk/src/main/scripts/__init__.py
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/src/main/scripts/dd2spring.bat
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/scripts/dd2spring.bat?rev=1428087&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/scripts/dd2spring.bat (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/scripts/dd2spring.bat Wed Jan 2 22:13:03 2013
@@ -0,0 +1,39 @@
+@echo off
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+
+@setlocal
+
+if not defined UIMA_HOME goto USAGE_UIMA
+if "%1" == "" goto usage
+goto RUN
+
+:USAGE_UIMA
+echo UIMA_HOME environment variable is not set
+goto EXIT
+
+:usage
+echo USAGE: dd2spring source-deployment-descriptor output-file-path
+echo for instance: %%UIMA_HOME%%\bin\dd2spring %%UIMA_HOME%%\examples\deploy\as\Deploy_MeetingDetectorTAE.xml c:\temp\dd2so.xml
+goto EXIT
+
+:RUN
+set UIMA_CLASSPATH=%UIMA_CLASSPATH%;%UIMA_HOME%\saxon\saxon8.jar
+set UIMA_JVM_OPTS=%UIMA_JVM_OPTS% -Xmx256M
+@call "%UIMA_HOME%\bin\runUimaClass.bat" net.sf.saxon.Transform -l -s "%1" -o "%2" "%UIMA_HOME%\bin\dd2spring.xsl" %3 %4 %5 %6 %7 %8 %9
+
+:EXIT
\ No newline at end of file
Propchange: uima/sandbox/uima-ducc/trunk/src/main/scripts/dd2spring.bat
------------------------------------------------------------------------------
svn:eol-style = native