You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by hz...@apache.org on 2016/03/01 23:35:53 UTC
[07/37] incubator-trafodion git commit: rename role name and package
name
rename role name and package name
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/794662e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/794662e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/794662e1
Branch: refs/heads/master
Commit: 794662e18067c137301b5e5f960e5b568a558b8a
Parents: 4894918
Author: Kevin Xu <ka...@esgyn.cn>
Authored: Wed Dec 23 12:37:33 2015 +0800
Committer: Kevin Xu <ka...@esgyn.cn>
Committed: Wed Dec 23 12:37:33 2015 +0800
----------------------------------------------------------------------
core/conn/spj_mgmt/Makefile | 10 +-
core/conn/spj_mgmt/pom.xml | 2 +-
.../java/org/trafodion/libmgmt/FileMgmt.java | 434 +++++++++++++++++++
.../java/org/trafodion/spjmgmt/FileMgmt.java | 434 -------------------
.../spj_mgmt/src/main/resources/init_libmgmt.sh | 155 +++++++
.../spj_mgmt/src/main/resources/init_spj.sh | 155 -------
.../com/trafodion/libmgmt/JarFileMgmtTest.java | 27 ++
.../com/trafodion/mgmt/JarFileMgmtTest.java | 27 --
8 files changed, 622 insertions(+), 622 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/Makefile
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/Makefile b/core/conn/spj_mgmt/Makefile
index dce7d14..a32c511 100644
--- a/core/conn/spj_mgmt/Makefile
+++ b/core/conn/spj_mgmt/Makefile
@@ -24,11 +24,11 @@ INSTALL_SCRIPTSDIR := ${MY_SQROOT}/sql/scripts
CP :=/bin/cp -f
all:
@$(MAVEN) package
- ${CP} target/spj_mgmt-*.jar ${INSTALL_LIBDIR}/spj_mgmt.jar
- ${CP} src/main/resources/init_spj.sh ${INSTALL_SCRIPTSDIR}/
- @chmod +x ${INSTALL_SCRIPTSDIR}/init_spj.sh
+ ${CP} target/spj_mgmt-*.jar ${INSTALL_LIBDIR}/lib_mgmt.jar
+ ${CP} src/main/resources/init_libmgmt.sh ${INSTALL_SCRIPTSDIR}/
+ @chmod +x ${INSTALL_SCRIPTSDIR}/init_libmgmt.sh
clean:
- @rm ${INSTALL_LIBDIR}/spj_mgmt.jar
- @rm -f ${INSTALL_SCRIPTSDIR}/init_spj.sh
+ @rm ${INSTALL_LIBDIR}/lib_mgmt.jar
+ @rm -f ${INSTALL_SCRIPTSDIR}/init_libmgmt.sh
@$(MAVEN) clean
cleanall: clean
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/pom.xml
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/pom.xml b/core/conn/spj_mgmt/pom.xml
index e033fda..8b08de4 100644
--- a/core/conn/spj_mgmt/pom.xml
+++ b/core/conn/spj_mgmt/pom.xml
@@ -24,7 +24,7 @@
-->
<modelVersion>4.0.0</modelVersion>
<groupId>org.trafodion</groupId>
- <artifactId>spj_mgmt</artifactId>
+ <artifactId>lib_mgmt</artifactId>
<version>${env.TRAFODION_VER}</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java b/core/conn/spj_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
new file mode 100644
index 0000000..ed6a725
--- /dev/null
+++ b/core/conn/spj_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
@@ -0,0 +1,434 @@
+/**
+* @@@ START COPYRIGHT @@@
+*
+* 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.
+*
+* @@@ END COPYRIGHT @@@
+ */
+package org.trafodion.libmgmt;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.RandomAccessFile;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileMgmt {
+ private static final Logger LOG = LoggerFactory.getLogger(FileMgmt.class);
+ private static final String url = "jdbc:default:connection";
+ // 100Mb
+ private static final long MAX_JAR_FILE_SIZE = 104857600;
+ private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ private static final int MaxDataSize = 102400;
+ private static final String CHARTSET = "ISO-8859-1";
+
+ /**
+ * Print help info
+ *
+ * @param helps:
+ * INOUT parameter like PUT/LS/...
+ */
+ public static void help(String[] helps) {
+ String[] help = new String[] {
+ "PUT - Upload a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.PUT for more info.",
+ "LS - List JARs. SHOWDDL PROCEDURE DEFAULT_SPJ.LS for more info.",
+ "LSALL - List all JARs. SHOWDDL PROCEDURE DEFAULT_SPJ.LSALL for more info.",
+ "RM - Remove a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.RM for more info.",
+ "RMREX - Remove JARs by a perticular pattern. SHOWDDL PROCEDURE DEFAULT_SPJ.RMREX for more info.",
+ "GETFILE - Download a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.GETFILE for more info."
+ };
+ List<String> index = new ArrayList<String>(help.length);
+ index.add("PUT");
+ index.add("LS");
+ index.add("LSALL");
+ index.add("RM");
+ index.add("RMREX");
+ index.add("GETFILE");
+ String tmp = helps[0].trim().toUpperCase();
+ helps[0] = "HELP:\r\n";
+ switch (index.indexOf(tmp)) {
+ case 0:
+ helps[0] = help[0];
+ break;
+ case 1:
+ helps[0] = help[1];
+ break;
+ case 2:
+ helps[0] = help[2];
+ break;
+ case 3:
+ helps[0] = help[3];
+ break;
+ case 4:
+ helps[0] = help[4];
+ break;
+ case 5:
+ helps[0] = help[5];
+ break;
+ default:
+ for (String h : help) {
+ helps[0] += h + "\r\n";
+ }
+
+ }
+
+ }
+
+ public static void syncJar(String userPath, String fileName) throws SQLException, IOException {
+ checkFileName(fileName);
+ LOG.info("syncJars " + fileName);
+ String nodes = System.getenv("MY_NODES");
+ if (nodes != null && !"".equals(nodes.trim())) {
+ execShell("pdcp " + nodes + " " + userPath + fileName.trim() + " " + userPath + " ");
+ execShell("pdsh " + nodes + " chmod 755 " + userPath + fileName.trim());
+ }
+ }
+
+ private static String execShell(String cmd) throws IOException {
+ Process p = Runtime.getRuntime().exec(cmd);
+ if (p != null) {
+ StringBuilder sb = new StringBuilder();
+ InputStream in = null;
+ try {
+ in = p.getInputStream();
+ int c = -1;
+ while ((c = in.read()) != -1) {
+ sb.append((char) c);
+ }
+ } finally {
+ if (in != null)
+ in.close();
+ }
+ try {
+ in = p.getErrorStream();
+ int c = -1;
+ boolean flag = true;
+ while ((c = in.read()) != -1) {
+ if (flag) {
+ sb.append("\r\n");
+ } else {
+ flag = false;
+ }
+ sb.append((char) c);
+ }
+ } finally {
+ if (in != null)
+ in.close();
+ }
+ return sb.toString();
+ }
+ return null;
+ }
+
+ /**
+ * Download a JAR file
+ *
+ * @param fileName
+ * @param offset
+ * @param fileData
+ * @throws SQLException
+ * @throws IOException
+ */
+ public static void get(String fileName, int offset, String[] fileData, long[] fileLength)
+ throws SQLException, IOException {
+ checkFileName(fileName);
+ Connection conn = getConn();
+ LOG.info("Get " + fileName);
+ String userPath = getCodeFilePath(conn);
+ close(conn);
+ File file = new File(userPath + fileName);
+ if (!file.exists()) {
+ throw new SQLException("No such file[" + fileName + "]");
+ }
+ RandomAccessFile rAFile = null;
+ try {
+ rAFile = new RandomAccessFile(file, "r");
+ rAFile.seek(offset);
+ byte bArray[] = new byte[MaxDataSize];
+ int bytesRead = rAFile.read(bArray, 0, MaxDataSize);
+ if (bytesRead != -1) {
+ fileData[0] = new String(Arrays.copyOf(bArray, bytesRead), CHARTSET);
+ fileLength[0] = file.length();
+ LOG.info("Download: " + fileName + ", offset:" + offset + ",compressed length:" + fileData[0].length()
+ + ",file length:" + fileLength[0]);
+ }
+ } finally {
+ if (rAFile != null) {
+ try {
+ rAFile.close();
+ } catch (Exception e) {
+ LOG.warn("Something wrong while close file[" + fileName + "] stream: " + e.getMessage());
+ }
+ }
+ }
+
+ }
+
+ /**
+ * Remove exact file
+ *
+ * @param fileName
+ * @throws SQLException
+ */
+ public static void rm(String fileName) throws SQLException {
+ checkFileName(fileName);
+ Connection conn = getConn();
+ LOG.info("Remove " + fileName);
+ String userPath = getCodeFilePath(conn);
+ close(conn);
+ File file = new File(userPath + fileName);
+ if (file.exists()) {
+ file.delete();
+ LOG.info("Remove " + fileName + " successfully!");
+ return;
+ } else {
+ throw new SQLException("No such file[" + fileName + "]");
+ }
+ }
+
+ /**
+ * Remove files via regular formulation
+ *
+ * @param pattern:
+ * to be deleted
+ * @param names
+ * : file names to be deleted
+ * @throws SQLException
+ */
+ public static void rmRex(String pattern, String[] names) throws SQLException {
+ checkFileName(pattern);
+ Connection conn = getConn();
+ LOG.info("Try to remove files[" + pattern + "]");
+ String userPath = getCodeFilePath(conn);
+ close(conn);
+ File[] files = getFiles(pattern, new File(userPath));
+ StringBuilder sb = new StringBuilder();
+ sb.append("<rmRex>");
+ sb.append(toXML(files, "rmList"));
+ sb.append("<message>");
+ boolean hasError = false;
+ for (File f : files) {
+ try {
+ f.delete();
+ } catch (Exception e) {
+ hasError = true;
+ LOG.error(e.getMessage(), e);
+ sb.append("<error fileName='" + f.getName() + "'>" + e.getMessage() + "</error>");
+ }
+ }
+ if (!hasError) {
+ sb.append("Remove the files successfully!");
+ }
+ sb.append("</message>");
+ sb.append("</rmRex>");
+ names[0] = sb.toString();
+ LOG.info("Done for removing files[" + pattern + "].");
+ }
+
+ public static void lsAll(String[] names) throws SQLException {
+ ls("*", names);
+ }
+
+ /**
+ * list the Jars matching PATTERN
+ *
+ * @param pattern:
+ * @param names
+ * @throws SQLException
+ */
+ public static void ls(String pattern, String[] names) throws SQLException {
+ checkFileName(pattern);
+ Connection conn = getConn();
+ LOG.info("List files[" + pattern + "]");
+ String userPath = getCodeFilePath(conn);
+ close(conn);
+ File dir = new File(userPath);
+ if (!dir.exists() || !dir.isDirectory()) {
+ LOG.error("Directory [" + userPath + "] is not found!");
+ throw new SQLException("Directory [" + userPath + "] is not found!");
+ }
+ if (pattern == null) {
+ LOG.error("File pattern should not be empty!");
+ throw new SQLException("Pattern is empty!");
+ }
+ File[] files = getFiles(pattern, dir);
+ names[0] = toXML(files, "ls");
+ }
+
+ /**
+ * upload a JAR file
+ *
+ * @param fileData
+ * @param fileName
+ * @param appendFlag
+ * 0: append; otherwise overwrite
+ * @throws SQLException
+ */
+ public static void put(String fileData, String fileName, int appendFlag) throws SQLException {
+ checkFileName(fileName);
+ try {
+ byte[] data = fileData.getBytes(CHARTSET);
+
+ Connection conn = getConn();
+ LOG.info("Put " + fileName + ", length: " + data.length + ", file string length:" + fileData.length());
+ String userPath = getCodeFilePath(conn);
+ close(conn);
+ String fname = userPath + fileName;
+ checkFile(fname, data.length);
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(fname, (appendFlag == 0));
+ fos.write(Arrays.copyOf(data, data.length));
+ fos.flush();
+ } finally {
+ if (fos != null)
+ fos.close();
+ }
+
+ syncJar(userPath, fileName);
+
+ } catch (Throwable t) {
+ LOG.error(t.getMessage(), t);
+ throw new SQLException(t.getMessage());
+ }
+ }
+
+ private static void checkFileName(String fileName) throws SQLException {
+ if (fileName.contains("/") || fileName.contains("\\"))
+ throw new SQLException("Illegal file name: " + fileName
+ + ". File name must not contain \"/\".");
+ }
+
+ private static void checkFile(String fname, int dataSize) throws SQLException {
+ File jar = new File(fname);
+ if (jar.length() + dataSize > MAX_JAR_FILE_SIZE) {
+ LOG.error("Jar file size is over the threshold[100Mb]");
+ throw new SQLException("Jar file size is over the threshold[100Mb]");
+ }
+ }
+
+ private static String getCodeFilePath(Connection conn) throws SQLException {
+ String user = getCurrentUser(conn);
+ String root = System.getenv("MY_SQROOT");
+ if (root == null || "".equals(root.trim())) {
+ LOG.error("Cant get your traf installation path!");
+ throw new SQLException("Cant get your traf installation path!");
+ }
+ File file = new File(root + "/udr/lib/" + user);
+ if (!file.exists()) {
+ file.mkdirs();
+ } else if (!file.isDirectory()) {
+ throw new SQLException("User Directory is not valide or you dont have permission!");
+ }
+ LOG.info("SPJ JARs location: " + file.getAbsolutePath());
+ return file.getAbsolutePath() + "/";
+ }
+
+ private static Connection getConn() throws SQLException {
+ Connection conn = null;
+ try {
+ conn = DriverManager.getConnection(url);
+ LOG.info("Create connection successfully. " + conn);
+ } catch (Throwable t) {
+ LOG.error("Error encountered while getting connection ", t);
+ throw new SQLException(t.getMessage());
+ }
+ return conn;
+ }
+
+ private static String getCurrentUser(Connection conn) throws SQLException {
+ Statement st = null;
+ ResultSet rs = null;
+ String user = null;
+ try {
+ st = conn.createStatement();
+ rs = st.executeQuery("values(session_user)");
+ if (rs.next()) {
+ user = rs.getString(1);
+ }
+ } catch (Exception e) {
+ LOG.error(e.getMessage(), e);
+ throw new SQLException(e);
+ } finally {
+ if (rs != null) {
+ try {
+ rs.close();
+ } catch (Exception e) {
+ LOG.warn(e.getMessage(), e);
+ }
+ }
+ if (st != null) {
+ try {
+ st.close();
+ } catch (Exception e) {
+ LOG.warn(e.getMessage(), e);
+ }
+ }
+ }
+
+ return user.replaceAll("[\\\\/]", "_");
+ }
+
+ private static File[] getFiles(String pattern, File dir) {
+ final String p = pattern.replaceAll("\\*", ".*").trim().toUpperCase();
+ return dir.listFiles(new FileFilter() {
+
+ @Override
+ public boolean accept(File name) {
+ if (name == null || !name.isFile()) {
+ return false;
+ }
+ return name.getName().trim().toUpperCase().matches(p);
+ }
+ });
+ }
+
+ private static String toXML(File[] files, String root) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("<" + root + ">");
+ for (File f : files) {
+ sb.append("<file name='" + f.getName() + "' lastModifyTime='" + format.format(new Date(f.lastModified()))
+ + "' size='" + f.length() + "'/>");
+ }
+ sb.append("</" + root + ">");
+ return sb.toString();
+ }
+
+ private static void close(Connection conn) {
+ try {
+ conn.close();
+ LOG.info("Closed connection");
+ } catch (Exception e) {
+ LOG.warn(e.getMessage());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/main/java/org/trafodion/spjmgmt/FileMgmt.java
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/main/java/org/trafodion/spjmgmt/FileMgmt.java b/core/conn/spj_mgmt/src/main/java/org/trafodion/spjmgmt/FileMgmt.java
deleted file mode 100644
index 8b6d5b1..0000000
--- a/core/conn/spj_mgmt/src/main/java/org/trafodion/spjmgmt/FileMgmt.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-*
-* 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.
-*
-* @@@ END COPYRIGHT @@@
- */
-package org.trafodion.spjmgmt;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.RandomAccessFile;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileMgmt {
- private static final Logger LOG = LoggerFactory.getLogger(FileMgmt.class);
- private static final String url = "jdbc:default:connection";
- // 100Mb
- private static final long MAX_JAR_FILE_SIZE = 104857600;
- private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- private static final int MaxDataSize = 102400;
- private static final String CHARTSET = "ISO-8859-1";
-
- /**
- * Print help info
- *
- * @param helps:
- * INOUT parameter like PUT/LS/...
- */
- public static void help(String[] helps) {
- String[] help = new String[] {
- "PUT - Upload a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.PUT for more info.",
- "LS - List JARs. SHOWDDL PROCEDURE DEFAULT_SPJ.LS for more info.",
- "LSALL - List all JARs. SHOWDDL PROCEDURE DEFAULT_SPJ.LSALL for more info.",
- "RM - Remove a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.RM for more info.",
- "RMREX - Remove JARs by a perticular pattern. SHOWDDL PROCEDURE DEFAULT_SPJ.RMREX for more info.",
- "GETFILE - Download a JAR. SHOWDDL PROCEDURE DEFAULT_SPJ.GETFILE for more info."
- };
- List<String> index = new ArrayList<String>(help.length);
- index.add("PUT");
- index.add("LS");
- index.add("LSALL");
- index.add("RM");
- index.add("RMREX");
- index.add("GETFILE");
- String tmp = helps[0].trim().toUpperCase();
- helps[0] = "HELP:\r\n";
- switch (index.indexOf(tmp)) {
- case 0:
- helps[0] = help[0];
- break;
- case 1:
- helps[0] = help[1];
- break;
- case 2:
- helps[0] = help[2];
- break;
- case 3:
- helps[0] = help[3];
- break;
- case 4:
- helps[0] = help[4];
- break;
- case 5:
- helps[0] = help[5];
- break;
- default:
- for (String h : help) {
- helps[0] += h + "\r\n";
- }
-
- }
-
- }
-
- public static void syncJar(String userPath, String fileName) throws SQLException, IOException {
- checkFileName(fileName);
- LOG.info("syncJars " + fileName);
- String nodes = System.getenv("MY_NODES");
- if (nodes != null && !"".equals(nodes.trim())) {
- execShell("pdcp " + nodes + " " + userPath + fileName.trim() + " " + userPath + " ");
- execShell("pdsh " + nodes + " chmod 755 " + userPath + fileName.trim());
- }
- }
-
- private static String execShell(String cmd) throws IOException {
- Process p = Runtime.getRuntime().exec(cmd);
- if (p != null) {
- StringBuilder sb = new StringBuilder();
- InputStream in = null;
- try {
- in = p.getInputStream();
- int c = -1;
- while ((c = in.read()) != -1) {
- sb.append((char) c);
- }
- } finally {
- if (in != null)
- in.close();
- }
- try {
- in = p.getErrorStream();
- int c = -1;
- boolean flag = true;
- while ((c = in.read()) != -1) {
- if (flag) {
- sb.append("\r\n");
- } else {
- flag = false;
- }
- sb.append((char) c);
- }
- } finally {
- if (in != null)
- in.close();
- }
- return sb.toString();
- }
- return null;
- }
-
- /**
- * Download a JAR file
- *
- * @param fileName
- * @param offset
- * @param fileData
- * @throws SQLException
- * @throws IOException
- */
- public static void get(String fileName, int offset, String[] fileData, long[] fileLength)
- throws SQLException, IOException {
- checkFileName(fileName);
- Connection conn = getConn();
- LOG.info("Get " + fileName);
- String userPath = getCodeFilePath(conn);
- close(conn);
- File file = new File(userPath + fileName);
- if (!file.exists()) {
- throw new SQLException("No such file[" + fileName + "]");
- }
- RandomAccessFile rAFile = null;
- try {
- rAFile = new RandomAccessFile(file, "r");
- rAFile.seek(offset);
- byte bArray[] = new byte[MaxDataSize];
- int bytesRead = rAFile.read(bArray, 0, MaxDataSize);
- if (bytesRead != -1) {
- fileData[0] = new String(Arrays.copyOf(bArray, bytesRead), CHARTSET);
- fileLength[0] = file.length();
- LOG.info("Download: " + fileName + ", offset:" + offset + ",compressed length:" + fileData[0].length()
- + ",file length:" + fileLength[0]);
- }
- } finally {
- if (rAFile != null) {
- try {
- rAFile.close();
- } catch (Exception e) {
- LOG.warn("Something wrong while close file[" + fileName + "] stream: " + e.getMessage());
- }
- }
- }
-
- }
-
- /**
- * Remove exact file
- *
- * @param fileName
- * @throws SQLException
- */
- public static void rm(String fileName) throws SQLException {
- checkFileName(fileName);
- Connection conn = getConn();
- LOG.info("Remove " + fileName);
- String userPath = getCodeFilePath(conn);
- close(conn);
- File file = new File(userPath + fileName);
- if (file.exists()) {
- file.delete();
- LOG.info("Remove " + fileName + " successfully!");
- return;
- } else {
- throw new SQLException("No such file[" + fileName + "]");
- }
- }
-
- /**
- * Remove files via regular formulation
- *
- * @param pattern:
- * to be deleted
- * @param names
- * : file names to be deleted
- * @throws SQLException
- */
- public static void rmRex(String pattern, String[] names) throws SQLException {
- checkFileName(pattern);
- Connection conn = getConn();
- LOG.info("Try to remove files[" + pattern + "]");
- String userPath = getCodeFilePath(conn);
- close(conn);
- File[] files = getFiles(pattern, new File(userPath));
- StringBuilder sb = new StringBuilder();
- sb.append("<rmRex>");
- sb.append(toXML(files, "rmList"));
- sb.append("<message>");
- boolean hasError = false;
- for (File f : files) {
- try {
- f.delete();
- } catch (Exception e) {
- hasError = true;
- LOG.error(e.getMessage(), e);
- sb.append("<error fileName='" + f.getName() + "'>" + e.getMessage() + "</error>");
- }
- }
- if (!hasError) {
- sb.append("Remove the files successfully!");
- }
- sb.append("</message>");
- sb.append("</rmRex>");
- names[0] = sb.toString();
- LOG.info("Done for removing files[" + pattern + "].");
- }
-
- public static void lsAll(String[] names) throws SQLException {
- ls("*", names);
- }
-
- /**
- * list the Jars matching PATTERN
- *
- * @param pattern:
- * @param names
- * @throws SQLException
- */
- public static void ls(String pattern, String[] names) throws SQLException {
- checkFileName(pattern);
- Connection conn = getConn();
- LOG.info("List files[" + pattern + "]");
- String userPath = getCodeFilePath(conn);
- close(conn);
- File dir = new File(userPath);
- if (!dir.exists() || !dir.isDirectory()) {
- LOG.error("Directory [" + userPath + "] is not found!");
- throw new SQLException("Directory [" + userPath + "] is not found!");
- }
- if (pattern == null) {
- LOG.error("File pattern should not be empty!");
- throw new SQLException("Pattern is empty!");
- }
- File[] files = getFiles(pattern, dir);
- names[0] = toXML(files, "ls");
- }
-
- /**
- * upload a JAR file
- *
- * @param fileData
- * @param fileName
- * @param appendFlag
- * 0: append; otherwise overwrite
- * @throws SQLException
- */
- public static void put(String fileData, String fileName, int appendFlag) throws SQLException {
- checkFileName(fileName);
- try {
- byte[] data = fileData.getBytes(CHARTSET);
-
- Connection conn = getConn();
- LOG.info("Put " + fileName + ", length: " + data.length + ", file string length:" + fileData.length());
- String userPath = getCodeFilePath(conn);
- close(conn);
- String fname = userPath + fileName;
- checkFile(fname, data.length);
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(fname, (appendFlag == 0));
- fos.write(Arrays.copyOf(data, data.length));
- fos.flush();
- } finally {
- if (fos != null)
- fos.close();
- }
-
- syncJar(userPath, fileName);
-
- } catch (Throwable t) {
- LOG.error(t.getMessage(), t);
- throw new SQLException(t.getMessage());
- }
- }
-
- private static void checkFileName(String fileName) throws SQLException {
- if (fileName.contains("/") || fileName.contains("\\"))
- throw new SQLException("Illegal file name: " + fileName
- + ". File name must not contain \"/\".");
- }
-
- private static void checkFile(String fname, int dataSize) throws SQLException {
- File jar = new File(fname);
- if (jar.length() + dataSize > MAX_JAR_FILE_SIZE) {
- LOG.error("Jar file size is over the threshold[100Mb]");
- throw new SQLException("Jar file size is over the threshold[100Mb]");
- }
- }
-
- private static String getCodeFilePath(Connection conn) throws SQLException {
- String user = getCurrentUser(conn);
- String root = System.getenv("MY_SQROOT");
- if (root == null || "".equals(root.trim())) {
- LOG.error("Cant get your traf installation path!");
- throw new SQLException("Cant get your traf installation path!");
- }
- File file = new File(root + "/udr/lib/" + user);
- if (!file.exists()) {
- file.mkdirs();
- } else if (!file.isDirectory()) {
- throw new SQLException("User Directory is not valide or you dont have permission!");
- }
- LOG.info("SPJ JARs location: " + file.getAbsolutePath());
- return file.getAbsolutePath() + "/";
- }
-
- private static Connection getConn() throws SQLException {
- Connection conn = null;
- try {
- conn = DriverManager.getConnection(url);
- LOG.info("Create connection successfully. " + conn);
- } catch (Throwable t) {
- LOG.error("Error encountered while getting connection ", t);
- throw new SQLException(t.getMessage());
- }
- return conn;
- }
-
- private static String getCurrentUser(Connection conn) throws SQLException {
- Statement st = null;
- ResultSet rs = null;
- String user = null;
- try {
- st = conn.createStatement();
- rs = st.executeQuery("values(session_user)");
- if (rs.next()) {
- user = rs.getString(1);
- }
- } catch (Exception e) {
- LOG.error(e.getMessage(), e);
- throw new SQLException(e);
- } finally {
- if (rs != null) {
- try {
- rs.close();
- } catch (Exception e) {
- LOG.warn(e.getMessage(), e);
- }
- }
- if (st != null) {
- try {
- st.close();
- } catch (Exception e) {
- LOG.warn(e.getMessage(), e);
- }
- }
- }
-
- return user.replaceAll("[\\\\/]", "_");
- }
-
- private static File[] getFiles(String pattern, File dir) {
- final String p = pattern.replaceAll("\\*", ".*").trim().toUpperCase();
- return dir.listFiles(new FileFilter() {
-
- @Override
- public boolean accept(File name) {
- if (name == null || !name.isFile()) {
- return false;
- }
- return name.getName().trim().toUpperCase().matches(p);
- }
- });
- }
-
- private static String toXML(File[] files, String root) {
- StringBuilder sb = new StringBuilder();
- sb.append("<" + root + ">");
- for (File f : files) {
- sb.append("<file name='" + f.getName() + "' lastModifyTime='" + format.format(new Date(f.lastModified()))
- + "' size='" + f.length() + "'/>");
- }
- sb.append("</" + root + ">");
- return sb.toString();
- }
-
- private static void close(Connection conn) {
- try {
- conn.close();
- LOG.info("Closed connection");
- } catch (Exception e) {
- LOG.warn(e.getMessage());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/main/resources/init_libmgmt.sh
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/main/resources/init_libmgmt.sh b/core/conn/spj_mgmt/src/main/resources/init_libmgmt.sh
new file mode 100644
index 0000000..9dd16b1
--- /dev/null
+++ b/core/conn/spj_mgmt/src/main/resources/init_libmgmt.sh
@@ -0,0 +1,155 @@
+#!/bin/bash
+# @@@ START COPYRIGHT @@@
+#
+# 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.
+#
+# @@@ END COPYRIGHT @@@
+
+SERVER_JAR=${MY_SQROOT}/export/lib/spj_mgmt.jar
+CI=sqlci
+CATALOG_NAME=TRAFODION
+CIS_SCHEMA="_LIBMGR_"
+DB__LIBMGRROLE=DB__LIBMGRROLE
+
+function dropAndCreateSchema {
+ echo "Creating Schema for SPJ_MGMT"
+ ${CI} << sqlciEOF
+
+ cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'on';
+ cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'on';
+
+ DROP SCHEMA $CATALOG_NAME.$CIS_SCHEMA CASCADE;
+ CREATE SCHEMA $CATALOG_NAME.$CIS_SCHEMA;
+
+ cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'off';
+ cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'off';
+
+ exit;
+sqlciEOF
+}
+
+function createProcedures {
+
+ echo "Creating Procedures in schema '$CATALOG_NAME.$CIS_SCHEMA' "
+ ${CI} << procEOF
+
+ cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'on';
+ cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'on';
+
+ -- Creating Procedures
+ set schema $CATALOG_NAME.$CIS_SCHEMA;
+
+ DROP LIBRARY SPJMGMT CASCADE;
+ CREATE LIBRARY SPJMGMT FILE '${SERVER_JAR}';
+ CREATE ROLE ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE HELP (
+ INOUT COMMANDNAME VARCHAR(2560) CHARACTER SET ISO88591)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.help (java.lang.String[])'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE HELP TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE PUT (
+ IN FILEDATA VARCHAR(102400) CHARACTER SET ISO88591,
+ IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
+ IN CREATEFLAG INTEGER)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.put(java.lang.String,java.lang.String,int)'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE PUT TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE LS (
+ IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
+ OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.ls(java.lang.String,java.lang.String[])'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE LS TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE LSALL (
+ OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.lsAll(java.lang.String[])'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE LSALL TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE RM (
+ IN FILENAME VARCHAR(256) CHARACTER SET ISO88591)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.rm(java.lang.String)'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE RM TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE RMREX (
+ IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
+ OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.rmRex(java.lang.String, java.lang.String[])'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE RMREX TO ${DB__LIBMGRROLE};
+
+ CREATE PROCEDURE GETFILE (
+ IN FILENAME VARCHAR(256) CHARACTER SET UTF8,
+ IN OFFSET INTEGER,
+ OUT FILEDATA VARCHAR(51200) CHARACTER SET UTF8,
+ OUT DATALENGTH LARGEINT)
+ EXTERNAL NAME 'org.trafodion.libmgmt.FileMgmt.get (java.lang.String,int,java.lang.String[],long[])'
+ EXTERNAL SECURITY DEFINER
+ LIBRARY SPJMGMT
+ LANGUAGE JAVA
+ PARAMETER STYLE JAVA
+ READS SQL DATA
+ ;
+ GRANT EXECUTE ON PROCEDURE GETFILE TO ${DB__LIBMGRROLE};
+
+ cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'off';
+ cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'off';
+
+ exit;
+procEOF
+
+}
+
+dropAndCreateSchema
+createProcedures
+echo "Successfully completed installation of SPJs."
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/main/resources/init_spj.sh
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/main/resources/init_spj.sh b/core/conn/spj_mgmt/src/main/resources/init_spj.sh
deleted file mode 100644
index 40d7b51..0000000
--- a/core/conn/spj_mgmt/src/main/resources/init_spj.sh
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/bin/bash
-# @@@ START COPYRIGHT @@@
-#
-# 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.
-#
-# @@@ END COPYRIGHT @@@
-
-SERVER_JAR=${MY_SQROOT}/export/lib/spj_mgmt.jar
-CI=sqlci
-CATALOG_NAME=TRAFODION
-CIS_SCHEMA="_SPJ_"
-SPJ_EXECROLE=SPJ_EXECROLE
-
-function dropAndCreateSchema {
- echo "Creating Schema for SPJ_MGMT"
- ${CI} << sqlciEOF
-
- cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'on';
- cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'on';
-
- DROP SCHEMA $CATALOG_NAME.$CIS_SCHEMA CASCADE;
- CREATE SCHEMA $CATALOG_NAME.$CIS_SCHEMA;
-
- cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'off';
- cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'off';
-
- exit;
-sqlciEOF
-}
-
-function createProcedures {
-
- echo "Creating Procedures in schema '$CATALOG_NAME.$CIS_SCHEMA' "
- ${CI} << procEOF
-
- cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'on';
- cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'on';
-
- -- Creating Procedures
- set schema $CATALOG_NAME.$CIS_SCHEMA;
-
- DROP LIBRARY SPJMGMT CASCADE;
- CREATE LIBRARY SPJMGMT FILE '${SERVER_JAR}';
- CREATE ROLE ${SPJ_EXECROLE};
-
- CREATE PROCEDURE HELP (
- INOUT COMMANDNAME VARCHAR(2560) CHARACTER SET ISO88591)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.help (java.lang.String[])'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE HELP TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE PUT (
- IN FILEDATA VARCHAR(102400) CHARACTER SET ISO88591,
- IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
- IN CREATEFLAG INTEGER)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.put(java.lang.String,java.lang.String,int)'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE PUT TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE LS (
- IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
- OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.ls(java.lang.String,java.lang.String[])'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE LS TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE LSALL (
- OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.lsAll(java.lang.String[])'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE LSALL TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE RM (
- IN FILENAME VARCHAR(256) CHARACTER SET ISO88591)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.rm(java.lang.String)'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE RM TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE RMREX (
- IN FILENAME VARCHAR(256) CHARACTER SET ISO88591,
- OUT FILENAMES VARCHAR(10240) CHARACTER SET ISO88591)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.rmRex(java.lang.String, java.lang.String[])'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE RMREX TO ${SPJ_EXECROLE};
-
- CREATE PROCEDURE GETFILE (
- IN FILENAME VARCHAR(256) CHARACTER SET UTF8,
- IN OFFSET INTEGER,
- OUT FILEDATA VARCHAR(51200) CHARACTER SET UTF8,
- OUT DATALENGTH LARGEINT)
- EXTERNAL NAME 'org.trafodion.spjmgmt.FileMgmt.get (java.lang.String,int,java.lang.String[],long[])'
- EXTERNAL SECURITY DEFINER
- LIBRARY SPJMGMT
- LANGUAGE JAVA
- PARAMETER STYLE JAVA
- READS SQL DATA
- ;
- GRANT EXECUTE ON PROCEDURE GETFILE TO ${SPJ_EXECROLE};
-
- cqd CAT_IGNORE_ALREADY_EXISTS_ERROR 'off';
- cqd CAT_IGNORE_DOES_NOT_EXIST_ERROR 'off';
-
- exit;
-procEOF
-
-}
-
-dropAndCreateSchema
-createProcedures
-echo "Successfully completed installation of SPJs."
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/test/java/com/trafodion/libmgmt/JarFileMgmtTest.java
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/test/java/com/trafodion/libmgmt/JarFileMgmtTest.java b/core/conn/spj_mgmt/src/test/java/com/trafodion/libmgmt/JarFileMgmtTest.java
new file mode 100644
index 0000000..2636316
--- /dev/null
+++ b/core/conn/spj_mgmt/src/test/java/com/trafodion/libmgmt/JarFileMgmtTest.java
@@ -0,0 +1,27 @@
+/**
+* @@@ START COPYRIGHT @@@
+*
+* 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.
+*
+* @@@ END COPYRIGHT @@@
+ */
+package com.trafodion.libmgmt;
+
+public class JarFileMgmtTest {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/794662e1/core/conn/spj_mgmt/src/test/java/com/trafodion/mgmt/JarFileMgmtTest.java
----------------------------------------------------------------------
diff --git a/core/conn/spj_mgmt/src/test/java/com/trafodion/mgmt/JarFileMgmtTest.java b/core/conn/spj_mgmt/src/test/java/com/trafodion/mgmt/JarFileMgmtTest.java
deleted file mode 100644
index d424f0f..0000000
--- a/core/conn/spj_mgmt/src/test/java/com/trafodion/mgmt/JarFileMgmtTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
-* @@@ START COPYRIGHT @@@
-*
-* 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.
-*
-* @@@ END COPYRIGHT @@@
- */
-package com.trafodion.mgmt;
-
-public class JarFileMgmtTest {
-
-}