You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2015/05/08 17:18:01 UTC
svn commit: r1678377 - in /uima/sandbox/uima-ducc/trunk:
src/main/admin/build_duccling src/main/admin/ducc_post_install
src/main/resources/default.ducc.properties
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java
Author: challngr
Date: Fri May 8 15:18:01 2015
New Revision: 1678377
URL: http://svn.apache.org/r1678377
Log:
UIMA-4358 Install ducc_ling in architecture-dependent location.
Added:
uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling (with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java
Modified:
uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_post_install
uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties
Added: uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling?rev=1678377&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling (added)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling Fri May 8 15:18:01 2015
@@ -0,0 +1,92 @@
+#!/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
+import glob
+import shutil
+import subprocess
+
+# simple bootstratp to establish DUCC_HOME and to set the python path so it can
+# find the common code in DUCC_HOME/admin
+# Infer DUCC_HOME from our location - no longer use a (possibly inaccurate) environment variable
+me = os.path.abspath(__file__)
+ndx = me.rindex('/')
+ndx = me.rindex('/', 0, ndx)
+DUCC_HOME = me[:ndx] # split from 0 to ndx
+
+sys.path.append(DUCC_HOME + '/bin')
+from ducc_base import DuccBase
+from properties import Properties
+
+
+def main():
+
+ props = Properties()
+ props.load('../resources/ducc.properties')
+ java = props.get('ducc.jvm')
+ print 'Using', java
+
+ fn = '../lib/uima-ducc/uima-ducc-common*.jar'
+ common_jar = glob.glob(fn)
+
+ osarch = 'org.apache.uima.ducc.common.utils.OsArch'
+
+ CMD = ' '.join([java, '-cp', common_jar[0], osarch])
+ print CMD
+
+ proc = subprocess.Popen(CMD, shell=True, bufsize=0, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ lines = []
+ for line in proc.stdout:
+ lines.append(line.strip())
+ proc.wait()
+ rc = proc.returncode
+
+ if ( rc != 0 ):
+ print 'build_duccling: Cannot find java property os.arch. The following command failed:'
+ print CMD
+ sys.exit(1)
+
+ arch = lines[0]
+ print 'Os Architecture:', arch
+
+ if ( not os.path.exists(arch) ):
+ os.mkdir(arch)
+
+ here = os.getcwd()
+ os.chdir("../duccling/src")
+ rc = os.system("make clean all")
+ if ( rc != 0 ):
+ print 'Cannot run "make" in ../duccling/src. Insure you have a C compiler on this system.'
+ sys.exit(1)
+ os.chdir(here)
+
+ shutil.copyfile("../duccling/src/ducc_ling", arch + '/ducc_ling')
+ os.chmod(arch + '/ducc_ling', 0755)
+
+ CMD = ' '.join([arch + '/ducc_ling', '-v'])
+ rc = os.system(CMD)
+ if ( rc != 0 ):
+ print 'Could not run', arch +'ducc_ling -v'
+
+ print 'ducc_ling is installed for architecture', arch + '. See the installation guide for multi-user setup.'
+
+
+main()
Propchange: uima/sandbox/uima-ducc/trunk/src/main/admin/build_duccling
------------------------------------------------------------------------------
svn:executable = *
Modified: uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_post_install
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_post_install?rev=1678377&r1=1678376&r2=1678377&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_post_install (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/ducc_post_install Fri May 8 15:18:01 2015
@@ -385,23 +385,20 @@ class PostInstall():
os.symlink(duccbook, ws_duccbook)
print '\nDUCC book installed into webserver root\n'
- # Make duccling
- here = os.getcwd()
- os.chdir("../duccling/src")
- os.system("make clean all")
- os.chdir(here)
- shutil.copyfile("../duccling/src/ducc_ling", self.DUCC_HOME + "/admin/ducc_ling")
- os.chmod(self.DUCC_HOME + '/admin/ducc_ling', 0755)
- print 'Initial ducc_ling is installed. See the installation guide for multi-user setup.'
-
+ # set up the local properties, required to build ducc_ling
self.ducc_private_properties.write(keystore_properties_name)
self.ducc_site_properties.write(self.site_properties_name)
self.merge_properties()
- #amqhome = self.ducc_head
- #os.chdir(amqhome + '/bin')
- # os.system("sed -i.bak 's/\r//' activemq")
- os.chdir(here)
+ # Make duccling
+ rc = os.system('build_duccling')
+ if ( rc != 0 ):
+ print 'Could not build ducc_ling. Run the command'
+ print ' build_duccling'
+ print 'to complete the installation (it must run without error).'
+ sys.exit(1)
+
+ print 'Initial DUCC setup complete.'
if __name__ == "__main__":
Modified: uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties?rev=1678377&r1=1678376&r2=1678377&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/default.ducc.properties Fri May 8 15:18:01 2015
@@ -425,7 +425,7 @@ ducc.agent.launcher.thread.pool.size=10
# ducc.agent.launcher.use.ducc_spawn: true, use ducc_ling. Default: false
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.launcher.ducc_spawn_path=${DUCC_HOME}/admin/${os.arch}/ducc_ling
# Max amount of time (in millis) agent allows the process to stop before issuing kill -9
ducc.agent.launcher.process.stop.timeout=60000
# Max time in millis allowed for AE initialization. Default 2 hours 7200000.
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java?rev=1678377&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/OsArch.java Fri May 8 15:18:01 2015
@@ -0,0 +1,30 @@
+/*
+ * 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.
+*/
+package org.apache.uima.ducc.common.utils;
+
+/**
+ * For setting up ducc_ling, find curren't java's opinion of the os architecture.
+ */
+public class OsArch
+{
+ public static void main(String[] args)
+ {
+ System.out.println(System.getProperty("os.arch"));
+ }
+}