From 298b3ed015086536ce1706daccf20ccd79b95e4c Mon Sep 17 00:00:00 2001 From: Nate Jensen Date: Thu, 16 May 2013 10:25:38 -0500 Subject: [PATCH] Issue #1989 remove dead files Change-Id: I21e955cc4ebf98f75d26d46f95c2e889c64d1266 Former-commit-id: b01f942e664260bc101d9b73e3f5714ee50be66f [formerly 9f8654e4ffa5e671c58b3b92e36abed92a33fcf6] [formerly 1ecdd989df060d6f9c08ca672bdc231fa4cb8c9e] [formerly b01f942e664260bc101d9b73e3f5714ee50be66f [formerly 9f8654e4ffa5e671c58b3b92e36abed92a33fcf6] [formerly 1ecdd989df060d6f9c08ca672bdc231fa4cb8c9e] [formerly ce2579a289c2abafa0014621246c8d85a0a6e6a4 [formerly 1ecdd989df060d6f9c08ca672bdc231fa4cb8c9e [formerly 354c2f6a304bb48d82243daf2e80236f7fe05a54]]]] Former-commit-id: ce2579a289c2abafa0014621246c8d85a0a6e6a4 Former-commit-id: d71f246645686f44beddbb2f23b9aa3a4b6e5395 [formerly 53f994c0a8a624a7d75113aec55f7d810fa8abf0] [formerly 2076bee14faf74bd27ac75d44642ca376db29ce9 [formerly 04c7c4a4dabff8931542edbf8fcdddf36b1dbb20]] Former-commit-id: 3719af426331d3f6e0af07178ef4589133d1d3c9 [formerly b9bfcead05bc6633a65de311e888464beb0250d0] Former-commit-id: 6a1c713e6f8bf1afdee2da3f2f4e60d10f77e5e0 --- cots/com.sun.jndi.nis/.classpath | 8 - cots/com.sun.jndi.nis/.project | 28 - .../.settings/org.eclipse.jdt.core.prefs | 8 - cots/com.sun.jndi.nis/META-INF/MANIFEST.MF | 19 - cots/com.sun.jndi.nis/build.properties | 4 - cots/com.sun.jndi.nis/com.sun.jndi.nis.ecl | 0 cots/com.sun.jndi.nis/nis.jar | Bin 134033 -> 0 bytes cots/com.sun.jndi.nis/providerutil.jar | Bin 77117 -> 0 bytes .../org.apache.tomcat.nativ.ecl | 0 .../build.edex/esb/conf/cache/jta.properties | 100 - .../build.edex/esb/conf/cache/treecache.xml | 158 -- edexOsgi/build.edex/opt/activemq/bin/activemq | 155 -- .../opt/activemq/bin/activemq-clustered | 15 - .../opt/activemq/bin/activemq-standalone | 8 - .../build.edex/opt/activemq/bin/activemq.bat | 117 - .../build.edex/opt/activemq/conf/activemq.xml | 114 - .../opt/activemq/conf/clustered-template.xml | 102 - .../bin/mule-1.4.0-spring-configuration.dtd | 1947 ----------------- edexOsgi/build.edex/opt/esb/bin/start.sh | 174 -- edexOsgi/build.edex/opt/esb/bin/winstart.bat | 137 -- .../build.edex/opt/esb/conf/ConfigFxaDb.xml | 43 - .../build.edex/opt/esb/conf/ConfigIhfsDb.xml | 37 - .../opt/esb/conf/ConfigMetadataDb.xml | 38 - .../build.edex/opt/esb/conf/log4jbean.xml | 37 - .../build.edex/opt/esb/js/AIREPRequest.js | 110 - .../build.edex/opt/esb/js/BUFRMOSRequest.js | 111 - .../build.edex/opt/esb/js/BUFRUARequest.js | 111 - .../build.edex/opt/esb/js/BarnesAnalysis.js | 212 -- edexOsgi/build.edex/opt/esb/js/BaseRequest.js | 82 - .../build.edex/opt/esb/js/CatalogQuery.js | 28 - .../build.edex/opt/esb/js/FilteredImage.js | 155 -- .../opt/esb/js/GOESSoundingRequest.js | 111 - edexOsgi/build.edex/opt/esb/js/GfeTask.js | 29 - edexOsgi/build.edex/opt/esb/js/GribImage.js | 101 - edexOsgi/build.edex/opt/esb/js/GribWinds.js | 119 - edexOsgi/build.edex/opt/esb/js/GridRequest.js | 160 -- edexOsgi/build.edex/opt/esb/js/HelloWorld.js | 38 - edexOsgi/build.edex/opt/esb/js/LatestTime.js | 9 - .../build.edex/opt/esb/js/LightningRequest.js | 70 - .../opt/esb/js/ModelSoundingRequest.js | 111 - .../build.edex/opt/esb/js/ObsIcaoRequest.js | 46 - edexOsgi/build.edex/opt/esb/js/ObsRequest.js | 132 -- edexOsgi/build.edex/opt/esb/js/ObsSpatial.js | 101 - .../opt/esb/js/ObsStationRequest.js | 104 - .../build.edex/opt/esb/js/PIREPRequest.js | 111 - .../opt/esb/js/POESSoundingRequest.js | 111 - .../build.edex/opt/esb/js/ProfilerRequest.js | 111 - .../build.edex/opt/esb/js/RECCORequest.js | 111 - .../build.edex/opt/esb/js/RadarRequest.js | 130 -- .../build.edex/opt/esb/js/RedbookRequest.js | 111 - .../build.edex/opt/esb/js/RetrieveHibStats.js | 8 - .../build.edex/opt/esb/js/SatelliteRequest.js | 127 -- .../build.edex/opt/esb/js/SfcObsRequest.js | 111 - .../build.edex/opt/esb/js/SpatialDataQuery.js | 129 -- .../build.edex/opt/esb/js/StopLightMaker.js | 148 -- .../build.edex/opt/esb/js/TableRequest.js | 96 - .../build.edex/opt/esb/js/TableResponse.js | 49 - edexOsgi/build.edex/opt/esb/js/TafRequest.js | 83 - .../opt/esb/js/VtecEventRetrieval.js | 91 - .../build.edex/opt/esb/js/VtecEventUpdate.js | 84 - .../opt/esb/js/VtecObjectRetrieval.js | 112 - .../build.edex/opt/esb/js/VtecRetrieval.js | 102 - .../build.edex/opt/esb/js/WarningRequest.js | 76 - .../build.edex/opt/esb/js/WindStopLight.js | 180 -- .../opt/javadoc/jdk/1.5/package-list | 167 -- .../opt/javadoc/mule/1.3/package-list | 174 -- .../com.raytheon.uf.common.qpf.ecl | 0 .../feature.xml | 6 - 68 files changed, 7617 deletions(-) delete mode 100644 cots/com.sun.jndi.nis/.classpath delete mode 100644 cots/com.sun.jndi.nis/.project delete mode 100644 cots/com.sun.jndi.nis/.settings/org.eclipse.jdt.core.prefs delete mode 100644 cots/com.sun.jndi.nis/META-INF/MANIFEST.MF delete mode 100644 cots/com.sun.jndi.nis/build.properties delete mode 100644 cots/com.sun.jndi.nis/com.sun.jndi.nis.ecl delete mode 100644 cots/com.sun.jndi.nis/nis.jar delete mode 100644 cots/com.sun.jndi.nis/providerutil.jar delete mode 100644 cots/org.apache.tomcat.nativ/org.apache.tomcat.nativ.ecl delete mode 100644 edexOsgi/build.edex/esb/conf/cache/jta.properties delete mode 100644 edexOsgi/build.edex/esb/conf/cache/treecache.xml delete mode 100755 edexOsgi/build.edex/opt/activemq/bin/activemq delete mode 100644 edexOsgi/build.edex/opt/activemq/bin/activemq-clustered delete mode 100644 edexOsgi/build.edex/opt/activemq/bin/activemq-standalone delete mode 100644 edexOsgi/build.edex/opt/activemq/bin/activemq.bat delete mode 100755 edexOsgi/build.edex/opt/activemq/conf/activemq.xml delete mode 100644 edexOsgi/build.edex/opt/activemq/conf/clustered-template.xml delete mode 100644 edexOsgi/build.edex/opt/esb/bin/mule-1.4.0-spring-configuration.dtd delete mode 100644 edexOsgi/build.edex/opt/esb/bin/start.sh delete mode 100644 edexOsgi/build.edex/opt/esb/bin/winstart.bat delete mode 100644 edexOsgi/build.edex/opt/esb/conf/ConfigFxaDb.xml delete mode 100644 edexOsgi/build.edex/opt/esb/conf/ConfigIhfsDb.xml delete mode 100644 edexOsgi/build.edex/opt/esb/conf/ConfigMetadataDb.xml delete mode 100644 edexOsgi/build.edex/opt/esb/conf/log4jbean.xml delete mode 100644 edexOsgi/build.edex/opt/esb/js/AIREPRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/BUFRMOSRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/BUFRUARequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/BarnesAnalysis.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/BaseRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/CatalogQuery.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/FilteredImage.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/GOESSoundingRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/GfeTask.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/GribImage.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/GribWinds.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/GridRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/HelloWorld.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/LatestTime.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/LightningRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ModelSoundingRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ObsIcaoRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ObsRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ObsSpatial.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ObsStationRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/PIREPRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/POESSoundingRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/ProfilerRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/RECCORequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/RadarRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/RedbookRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/RetrieveHibStats.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/SatelliteRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/SfcObsRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/SpatialDataQuery.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/StopLightMaker.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/TableRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/TableResponse.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/TafRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/VtecEventRetrieval.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/VtecEventUpdate.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/VtecObjectRetrieval.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/VtecRetrieval.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/WarningRequest.js delete mode 100644 edexOsgi/build.edex/opt/esb/js/WindStopLight.js delete mode 100644 edexOsgi/build.edex/opt/javadoc/jdk/1.5/package-list delete mode 100644 edexOsgi/build.edex/opt/javadoc/mule/1.3/package-list delete mode 100644 edexOsgi/com.raytheon.uf.common.qpf/com.raytheon.uf.common.qpf.ecl diff --git a/cots/com.sun.jndi.nis/.classpath b/cots/com.sun.jndi.nis/.classpath deleted file mode 100644 index 5029c6c98d..0000000000 --- a/cots/com.sun.jndi.nis/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/cots/com.sun.jndi.nis/.project b/cots/com.sun.jndi.nis/.project deleted file mode 100644 index 21c995b6e0..0000000000 --- a/cots/com.sun.jndi.nis/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - com.sun.jndi.nis - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/cots/com.sun.jndi.nis/.settings/org.eclipse.jdt.core.prefs b/cots/com.sun.jndi.nis/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index d86495aa8f..0000000000 --- a/cots/com.sun.jndi.nis/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -#Thu Jul 14 11:28:20 CDT 2011 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/cots/com.sun.jndi.nis/META-INF/MANIFEST.MF b/cots/com.sun.jndi.nis/META-INF/MANIFEST.MF deleted file mode 100644 index fac06e0a5c..0000000000 --- a/cots/com.sun.jndi.nis/META-INF/MANIFEST.MF +++ /dev/null @@ -1,19 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Nis Plugin-in -Bundle-SymbolicName: com.sun.jndi.nis -Bundle-Version: 1.0.0.qualifier -Bundle-Vendor: SUN -Bundle-ClassPath: nis.jar, - providerutil.jar -Export-Package: com.sun.jndi.internal.net.DNS, - com.sun.jndi.internal.onc.rpc, - com.sun.jndi.internal.onc.yp, - com.sun.jndi.nis, - com.sun.jndi.toolkit.chars, - com.sun.jndi.toolkit.corba, - com.sun.jndi.toolkit.ctx, - com.sun.jndi.toolkit.dir, - com.sun.jndi.toolkit.url, - com.sun.jndi.url.jndi, - com.sun.jndi.url.nis diff --git a/cots/com.sun.jndi.nis/build.properties b/cots/com.sun.jndi.nis/build.properties deleted file mode 100644 index 79c6a52c53..0000000000 --- a/cots/com.sun.jndi.nis/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -bin.includes = META-INF/,\ - nis.jar,\ - providerutil.jar -jars.compile.order = diff --git a/cots/com.sun.jndi.nis/com.sun.jndi.nis.ecl b/cots/com.sun.jndi.nis/com.sun.jndi.nis.ecl deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/cots/com.sun.jndi.nis/nis.jar b/cots/com.sun.jndi.nis/nis.jar deleted file mode 100644 index a1ce8de5c5a5200c0c194f07080cdd14455b275d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134033 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%0DQ_=g7|m{CET6C0rn^W(-xJp(; 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 diff --git a/cots/org.apache.tomcat.nativ/org.apache.tomcat.nativ.ecl b/cots/org.apache.tomcat.nativ/org.apache.tomcat.nativ.ecl deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/edexOsgi/build.edex/esb/conf/cache/jta.properties b/edexOsgi/build.edex/esb/conf/cache/jta.properties deleted file mode 100644 index 9dfb1f2417..0000000000 --- a/edexOsgi/build.edex/esb/conf/cache/jta.properties +++ /dev/null @@ -1,100 +0,0 @@ -# SAMPLE PROPERTIES FILE FOR THE TRANSACTION SERVICE -# THIS FILE ILLUSTRATES THE DIFFERENT SETTINGS FOR THE TRANSACTION MANAGER -# UNCOMMENT THE ASSIGNMENTS TO OVERRIDE DEFAULT VALUES; - -# Required: factory implementation class of the transaction core. -# NOTE: there is no default for this, so it MUST be specified! -# -com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory - - -# Set base name of file where messages are output -# (also known as the 'console file'). -# -com.atomikos.icatch.console_file_name = tm.log - -# Size limit (in bytes) for the console file; -# negative means unlimited. -# - com.atomikos.icatch.console_file_limit=314572800 - -# For size-limited console files, this option -# specifies a number of rotating files to -# maintain. -# -# com.atomikos.icatch.console_file_count=1 - -# Set the number of log writes between checkpoints -# -# com.atomikos.icatch.checkpoint_interval=500 - -# Set output directory where console file and other files are to be put -# make sure this directory exists! -# njensen: this lies, it's actually the below comment -# -com.atomikos.icatch.output_dir = ../logs/ - -# Set directory of log files; make sure this directory exists! -# njensen: this lies, it's actually the above comment -# -com.atomikos.icatch.log_base_dir = ./ - -# Set base name of log file -# this name will be used as the first part of -# the system-generated log file name -# -# com.atomikos.icatch.log_base_name = tmlog - -# Set the max number of active local transactions -# or -1 for unlimited. -# -com.atomikos.icatch.max_actives = 50 - -# Set the default timeout (in milliseconds) for local transactions -# -com.atomikos.icatch.default_jta_timeout = 300000 - -# Set the max timeout (in milliseconds) for local transactions -# -com.atomikos.icatch.max_timeout = 300000 - -# The globally unique name of this transaction manager process -# override this value with a globally unique name -# -# com.atomikos.icatch.tm_unique_name = tm - -# Do we want to use parallel subtransactions? JTA's default -# is NO for J2EE compatibility -# -# com.atomikos.icatch.serial_jta_transactions=true - -# If you want to do explicit resource registration then -# you need to set this value to false. -# -# com.atomikos.icatch.automatic_resource_registration=true - -# Set this to WARN, INFO or DEBUG to control the granularity -# of output to the console file. -# -com.atomikos.icatch.console_log_level=WARN - -# Do you want transaction logging to be enabled or not? -# If set to false, then no logging overhead will be done -# at the risk of losing data after restart or crash. -# -com.atomikos.icatch.enable_logging=false - -# Should two-phase commit be done in (multi-)threaded mode or not? -# Set this to false if you want commits to be ordered according -# to the order in which resources are added to the transaction. -# -# NOTE: threads are reused on JDK 1.5 or higher. -# For JDK 1.4, thread reuse is enabled as soon as the -# concurrent backport is in the classpath - see -# http://mirrors.ibiblio.org/pub/mirrors/maven2/backport-util-concurrent/backport-util-concurrent/ -# -# com.atomikos.icatch.threaded_2pc=true - -# Should shutdown of the VM trigger shutdown of the transaction core too? -# -com.atomikos.icatch.force_shutdown_on_vm_exit=true diff --git a/edexOsgi/build.edex/esb/conf/cache/treecache.xml b/edexOsgi/build.edex/esb/conf/cache/treecache.xml deleted file mode 100644 index 2c83ffc50a..0000000000 --- a/edexOsgi/build.edex/esb/conf/cache/treecache.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/edexOsgi/build.edex/opt/activemq/bin/activemq b/edexOsgi/build.edex/opt/activemq/bin/activemq deleted file mode 100755 index fb03ee991d..0000000000 --- a/edexOsgi/build.edex/opt/activemq/bin/activemq +++ /dev/null @@ -1,155 +0,0 @@ -#!/bin/sh -# ------------------------------------------------------------------------ -# 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. -# ------------------------------------------------------------------------ - -# load system-wide activemq configuration -if [ -f "/etc/activemq.conf" ] ; then - . /etc/activemq.conf -fi - -# provide default values for people who don't use RPMs -if [ -z "$usejikes" ] ; then - usejikes=false; -fi - -# load user activemq configuration -if [ -f "$HOME/.activemqrc" ] ; then - . "$HOME/.activemqrc" -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -case "`uname`" in - CYGWIN*) cygwin=true ;; - Darwin*) darwin=true - if [ -z "$JAVA_HOME" ] ; then - JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home - fi - ;; -esac - -if [ -z "$ACTIVEMQ_HOME" ] ; then - # try to find ACTIVEMQ - if [ -d /opt/activemq ] ; then - ACTIVEMQ_HOME=/opt/activemq - fi - - if [ -d "${HOME}/opt/activemq" ] ; then - ACTIVEMQ_HOME="${HOME}/opt/activemq" - fi - - ## resolve links - $0 may be a link to activemq's home - PRG="$0" - progname=`basename "$0"` - saveddir=`pwd` - - # need this for relative symlinks - dirname_prg=`dirname "$PRG"` - cd "$dirname_prg" - - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '.*/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi - done - - ACTIVEMQ_HOME=`dirname "$PRG"`/.. - - cd "$saveddir" - - # make it fully qualified - ACTIVEMQ_HOME=`cd "$ACTIVEMQ_HOME" && pwd` -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$ACTIVEMQ_HOME" ] && - ACTIVEMQ_HOME=`cygpath --unix "$ACTIVEMQ_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD=`which java 2> /dev/null ` - if [ -z "$JAVACMD" ] ; then - JAVACMD=java - fi - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." - echo " We cannot execute $JAVACMD" - exit 1 -fi - -if [ -z "$ACTIVEMQ_BASE" ] ; then - ACTIVEMQ_BASE="$ACTIVEMQ_HOME" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - ACTIVEMQ_HOME=`cygpath --windows "$ACTIVEMQ_HOME"` - ACTIVEMQ_BASE=`cygpath --windows "$ACTIVEMQ_BASE"` - JAVA_HOME=`cygpath --windows "$JAVA_HOME"` - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - CYGHOME=`cygpath --windows "$HOME"` -fi - -if [ -z "$ACTIVEMQ_OPTS" ] ; then - ACTIVEMQ_OPTS="-Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Dderby.system.home=${ACTIVEMQ_BASE}/data -Dderby.storage.fileSyncTransactionLog=true" -fi - -if [ -z "$SUNJMX" ] ; then - #SUNJMX="-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" - SUNJMX="-Dcom.sun.management.jmxremote" -fi - -if [ -z "$SSL_OPTS" ] ; then - SSL_OPTS="-Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore=${ACTIVEMQ_BASE}/conf/broker.ks -Djavax.net.ssl.trustStore=${ACTIVEMQ_BASE}/conf/broker.ts" -fi - -ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS $SUNJMX $SSL_OPTS" -# Uncomment to enable YourKit profiling -#ACTIVEMQ_DEBUG_OPTS="-Xrunyjpagent" - -# Uncomment to enable remote debugging -#ACTIVEMQ_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" - -#ACTIVEMQ_TASK="start" -if [ -n "$CYGHOME" ]; then - exec "$JAVACMD" $ACTIVEMQ_DEBUG_OPTS $ACTIVEMQ_OPTS -classpath "${ACTIVEMQ_CLASSPATH}" -Dactivemq.home="${ACTIVEMQ_HOME}" -Dactivemq.base="${ACTIVEMQ_BASE}" -Dcygwin.user.home="$CYGHOME" -jar "${ACTIVEMQ_HOME}/bin/run.jar" $ACTIVEMQ_TASK $@ -else - exec "$JAVACMD" $ACTIVEMQ_DEBUG_OPTS $ACTIVEMQ_OPTS -classpath "${ACTIVEMQ_CLASSPATH}" -Dactivemq.home="${ACTIVEMQ_HOME}" -Dactivemq.base="${ACTIVEMQ_BASE}" -jar "${ACTIVEMQ_HOME}/bin/run.jar" $ACTIVEMQ_TASK $@ -fi - - diff --git a/edexOsgi/build.edex/opt/activemq/bin/activemq-clustered b/edexOsgi/build.edex/opt/activemq/bin/activemq-clustered deleted file mode 100644 index 8d411d1c0f..0000000000 --- a/edexOsgi/build.edex/opt/activemq/bin/activemq-clustered +++ /dev/null @@ -1,15 +0,0 @@ -#change to the program directory -dir=${0%/*} -if [ "$dir" = "$0" ]; then - dir="." -fi -cd "$dir" - -#get the network name -name=`uname -n` - -#replace @brokername@ in template with this name -sed s/@brokername@/$name/g ../conf/clustered-template.xml > ../conf/clustered.xml - -#start activemq with updated file -./activemq xbean:file:../conf/clustered.xml diff --git a/edexOsgi/build.edex/opt/activemq/bin/activemq-standalone b/edexOsgi/build.edex/opt/activemq/bin/activemq-standalone deleted file mode 100644 index 5f1076e537..0000000000 --- a/edexOsgi/build.edex/opt/activemq/bin/activemq-standalone +++ /dev/null @@ -1,8 +0,0 @@ -#change to the program directory -dir=${0%/*} -if [ "$dir" = "$0" ]; then - dir="." -fi -cd "$dir" - -./activemq xbean:file:../conf/activemq.xml diff --git a/edexOsgi/build.edex/opt/activemq/bin/activemq.bat b/edexOsgi/build.edex/opt/activemq/bin/activemq.bat deleted file mode 100644 index fec94d5424..0000000000 --- a/edexOsgi/build.edex/opt/activemq/bin/activemq.bat +++ /dev/null @@ -1,117 +0,0 @@ -@echo off - -REM ------------------------------------------------------------------------ -REM Licensed to the Apache Software Foundation (ASF) under one or more -REM contributor license agreements. See the NOTICE file distributed with -REM this work for additional information regarding copyright ownership. -REM The ASF licenses this file to You under the Apache License, Version 2.0 -REM (the "License"); you may not use this file except in compliance with -REM 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, software -REM distributed under the License is distributed on an "AS IS" BASIS, -REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -REM See the License for the specific language governing permissions and -REM limitations under the License. -REM ------------------------------------------------------------------------ - -if exist "%HOME%\activemqrc_pre.bat" call "%HOME%\activemqrc_pre.bat" - -if "%OS%"=="Windows_NT" @setlocal - -rem %~dp0 is expanded pathname of the current script under NT -set DEFAULT_ACTIVEMQ_HOME=%~dp0.. - -if "%ACTIVEMQ_HOME%"=="" set ACTIVEMQ_HOME=%DEFAULT_ACTIVEMQ_HOME% -set DEFAULT_ACTIVEMQ_HOME= - -rem Slurp the command line arguments. This loop allows for an unlimited number -rem of arguments (up to the command line limit, anyway). -set ACTIVEMQ_CMD_LINE_ARGS=%1 -if ""%1""=="""" goto doneStart -shift -:setupArgs -if ""%1""=="""" goto doneStart -set ACTIVEMQ_CMD_LINE_ARGS=%ACTIVEMQ_CMD_LINE_ARGS% %1 -shift -goto setupArgs -rem This label provides a place for the argument list loop to break out -rem and for NT handling to skip to. - -:doneStart -rem find ACTIVEMQ_HOME if it does not exist due to either an invalid value passed -rem by the user or the %0 problem on Windows 9x -if exist "%ACTIVEMQ_HOME%\README.txt" goto checkJava - -rem check for activemq in Program Files on system drive -if not exist "%SystemDrive%\Program Files\activemq" goto checkSystemDrive -set ACTIVEMQ_HOME=%SystemDrive%\Program Files\activemq -goto checkJava - -:checkSystemDrive -rem check for activemq in root directory of system drive -if not exist %SystemDrive%\activemq\README.txt goto checkCDrive -set ACTIVEMQ_HOME=%SystemDrive%\activemq -goto checkJava - -:checkCDrive -rem check for activemq in C:\activemq for Win9X users -if not exist C:\activemq\README.txt goto noAntHome -set ACTIVEMQ_HOME=C:\activemq -goto checkJava - -:noAntHome -echo ACTIVEMQ_HOME is set incorrectly or activemq could not be located. Please set ACTIVEMQ_HOME. -goto end - -:checkJava -set _JAVACMD=%JAVACMD% - -set JAVA_EXT_DIRS=%JAVA_HOME%\lib\ext;%ACTIVEMQ_HOME%;%ACTIVEMQ_HOME%\lib;%ACTIVEMQ_HOME%\lib\optional - -if "%JAVA_HOME%" == "" goto noJavaHome -if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome -if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe -goto runAnt - -:noJavaHome -if "%_JAVACMD%" == "" set _JAVACMD=java.exe -echo. -echo Warning: JAVA_HOME environment variable is not set. -echo. - -:runAnt - -if "%ACTIVEMQ_BASE%" == "" set ACTIVEMQ_BASE=%ACTIVEMQ_HOME% - -if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Dderby.system.home="%ACTIVEMQ_BASE%\data" -Dderby.storage.fileSyncTransactionLog=true - -if "%SUNJMX%" == "" set SUNJMX=-Dcom.sun.management.jmxremote -REM set SUNJMX=-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false - -if "%SSL_OPTS%" == "" set SSL_OPTS=-Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore="%ACTIVEMQ_BASE%/conf/broker.ks" -Djavax.net.ssl.trustStore="%ACTIVEMQ_BASE%/conf/broker.ts" - -REM Uncomment to enable YourKit profiling -REM SET ACTIVEMQ_DEBUG_OPTS="-Xrunyjpagent" - -REM Uncomment to enable remote debugging -REM SET ACTIVEMQ_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 - -set ACTIVEMQ_TASK="start" -"%_JAVACMD%" %SUNJMX% %ACTIVEMQ_DEBUG_OPTS% %ACTIVEMQ_OPTS% %SSL_OPTS% -classpath "%ACTIVEMQ_CLASSPATH%" -Dactivemq.home="%ACTIVEMQ_HOME%" -Dactivemq.base="%ACTIVEMQ_BASE%" -jar "%ACTIVEMQ_HOME%/bin/run.jar" %ACTIVEMQ_TASK% %ACTIVEMQ_CMD_LINE_ARGS% - -goto end - - -:end -set _JAVACMD= -set ACTIVEMQ_CMD_LINE_ARGS= - -if "%OS%"=="Windows_NT" @endlocal - -:mainEnd -if exist "%HOME%\activemqrc_post.bat" call "%HOME%\activemqrc_post.bat" - - diff --git a/edexOsgi/build.edex/opt/activemq/conf/activemq.xml b/edexOsgi/build.edex/opt/activemq/conf/activemq.xml deleted file mode 100755 index d80b78f391..0000000000 --- a/edexOsgi/build.edex/opt/activemq/conf/activemq.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/activemq/conf/clustered-template.xml b/edexOsgi/build.edex/opt/activemq/conf/clustered-template.xml deleted file mode 100644 index f902a35f53..0000000000 --- a/edexOsgi/build.edex/opt/activemq/conf/clustered-template.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/edexOsgi/build.edex/opt/esb/bin/mule-1.4.0-spring-configuration.dtd b/edexOsgi/build.edex/opt/esb/bin/mule-1.4.0-spring-configuration.dtd deleted file mode 100644 index 572653fd70..0000000000 --- a/edexOsgi/build.edex/opt/esb/bin/mule-1.4.0-spring-configuration.dtd +++ /dev/null @@ -1,1947 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/edexOsgi/build.edex/opt/esb/bin/start.sh b/edexOsgi/build.edex/opt/esb/bin/start.sh deleted file mode 100644 index 541c19a3ff..0000000000 --- a/edexOsgi/build.edex/opt/esb/bin/start.sh +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/sh -## -# This software was developed and / or modified by Raytheon Company, -# pursuant to Contract DG133W-05-CQ-1067 with the US Government. -# -# U.S. EXPORT CONTROLLED TECHNICAL DATA -# This software product contains export-restricted data whose -# export/transfer/disclosure is restricted by U.S. law. Dissemination -# to non-U.S. persons whether in the United States or abroad requires -# an export license or other authorization. -# -# Contractor Name: Raytheon Company -# Contractor Address: 6825 Pine Street, Suite 340 -# Mail Stop B8 -# Omaha, NE 68106 -# 402.291.0100 -# -# See the AWIPS II Master Rights File ("Master Rights File.pdf") for -# further licensing information. -## -#------------------------------------------------------------------------- -# This script will start mule in the mode specified on the command line -# Usage: -# start.sh [options] mode -# -# mode is one of client, distribute, server, standalone -# options: -# -d, --dev sets DEV_MODE to on (in environment) -# -b, --debug starts Mule using debug config file. -# -# file history -# Date PTR Engineer Comment -# ------- --- -------- ----------------- -# 09May07 TO6 MW Fegan Initial creation. -# 06Jun07 279 MW Fegan Added optional devmode flag. -# 10Apr08 1040 MW Fegan Added debug command line flag. (removes -# the devmode flag.) -# 01Aug08 1363 MW Fegan Turn off GfePurgeSrv on cluster clients. -# 28Oct2008 1524 MW Fegan Added export of MULE_HOME -#------------------------------------------------------------------------- - -#change to the directory this file runs in -dir=${0%/*} -if [ "$dir" = "$0" ]; then - dir="." -fi -cd "$dir" - -#------------------------------------------------------------------------- -#read and interpret the command line arguments -#------------------------------------------------------------------------- -DEV_FLAG=off -DEBUG_FLAG=off -RUN_MODE= -for arg in $@ -do - case $arg in - -d|--dev) DEV_FLAG=on;; - -b|--debug) DEBUG_FLAG=on;; - -db|-bd) DEV_FLAG=on; DEBUG_FLAG=on;; - *) RUN_MODE=$arg;; - esac -done - -#------------------------------------------------------------------------- -#get computer name -#export the name of the mule application (defines name of mule log file) -#------------------------------------------------------------------------- -export NODE_ID=`uname -n` -export MULE_APP=$NODE_ID-${RUN_MODE} - - - -#------------------------------------------------------------------------- -# setup basic internal variables for the script -# r -- points to the esb conf directory -# p -- points to install directory of EDEX data decoder plugins -# g -- contains the relative path to the global xml file -# s -- contains comma separated list of files to skip when -# building Mule startup configuration string -#------------------------------------------------------------------------- -r=../conf -p=../../../mule/lib/user/plugins -g=$r/global.xml -s=global.xml -files="file:$g" - -#------------------------------------------------------------------------- -# set clustered flag and skip files based on the execution type -# note: modify s as needed to exclude end points from running -# on specific installations -#------------------------------------------------------------------------- -case ${RUN_MODE} in - client) clustered=true;s=$s,fileToJMS.xml,purge.xml,smartInit.xml,gfePurge.xml;; - distribute) clustered=true;s=$s,ingest.xml;; - server) clustered=true;; - standalone) clustered=false;; - *) echo "unknown mode ${RUN_MODE}, exiting...";exit 1;; -esac - -echo "starting Mule in ${RUN_MODE} mode..." - -#------------------------------------------------------------------------- -# set up the runtime environment -#------------------------------------------------------------------------- -export MULE_HOME=$PWD/../../../mule -MULE_CONF=$MULE_HOME/conf -export MULE_LIB=$MULE_HOME/lib - -export HIBERNATE_CONF=$PWD/../conf/db -echo "HIBERNATE_CONF set to ${HIBERNATE_CONF}" - -#------------------------------------------------------------------------- -#set and export DEV_MODE to the environment -#------------------------------------------------------------------------- -if [ $DEV_FLAG = 'off' ] -then - export DEV_MODE=off -else - export DEV_MODE=on -fi -echo "DEV_MODE = ${DEV_MODE}" - -#------------------------------------------------------------------------- -#set the wrapper startup config file based on the DEBUG_FLAG -#------------------------------------------------------------------------- -if [ -e $MULE_CONF/wrapper.conf ] -then - rm $MULE_CONF/wrapper.conf -fi -if [ $DEBUG_FLAG = 'off' ] -then - cp $MULE_CONF/wrapper.conf.normal $MULE_CONF/wrapper.conf -else - cp $MULE_CONF/wrapper.conf.debug $MULE_CONF/wrapper.conf -fi -echo Remote Debugging $DEBUG_FLAG - -#------------------------------------------------------------------------- -#replace clustered tag -#------------------------------------------------------------------------- -sed 's/[a-z][a-z]*<\/clustered>/'$clustered'<\/clustered>/g' ../conf/res/site/environment.xml > ../conf/res/site/environment.xml.tmp -mv ../conf/res/site/environment.xml.tmp ../conf/res/site/environment.xml - - -#------------------------------------------------------------------------- -#run rea to extract end-point descriptors from jars -#------------------------------------------------------------------------- -java -jar rea.jar $MULE_HOME/lib/user/plugins ../conf -java -jar rea.jar $MULE_HOME/lib/user/services ../conf - -#------------------------------------------------------------------------- -# identify the "core" config files to include -#------------------------------------------------------------------------- -for x in `ls $r/*.xml` -do - if [ -f $x ] - then - f=`basename $x` - if [ 0 -eq `expr $s : .*$f` ] - then - files=$files,file:$x - fi - fi -done - -#------------------------------------------------------------------------- -# start Mule -#------------------------------------------------------------------------- -${MULE_HOME}/bin/mule console \ --config ${files} \ --builder org.mule.extras.spring.config.SpringConfigurationBuilder - - diff --git a/edexOsgi/build.edex/opt/esb/bin/winstart.bat b/edexOsgi/build.edex/opt/esb/bin/winstart.bat deleted file mode 100644 index ed1b57602d..0000000000 --- a/edexOsgi/build.edex/opt/esb/bin/winstart.bat +++ /dev/null @@ -1,137 +0,0 @@ -@echo off -rem ************************************************************************** -rem Uses discovery to identify the available config files and build the -rem start-up string for Mule. Depends on Win2K command extnesions. -rem -rem Usage: -rem winstart mode [devmode] -rem where mode is one of client, distribute, and standalone -rem devmode, when present, starts mule in EDEX dev mode. -rem -rem from start-client.bat: -rem Using relative paths to ease moving installation around. -rem Uses the MULE ESB launcher to build the classpath. Any -rem application jar in ..\lib directory gets added to the -rem run time classpath within MULE. -rem -rem Uses the Spring configuration builder which means that the MULE -rem configuration is defined in Spring Beans. This allows one configuration -rem file to be used to configure both Spring and Mule. -rem -rem History: -rem -------------------------------------------------------------------------- -rem Apr 2007 MW Fegan Created. Partially based on start-XXX.bat -rem 06Jun2007 MW Fegan DR279 Added optional devmode flag. -rem 28Oct2008 MW Fegan DR1524 Added export of MULE_HOME -rem ************************************************************************** - - -rem --------------------- -rem localize the env. -rem --------------------- -setlocal -setlocal ENABLEDELAYEDEXPANSION - -rem --------------------- -rem set basic env. -rem --------------------- -SET MULE_HOME=..\..\..\mule -SET MULE_LIB=%MULE_HOME%\lib -SET JYTHON_HOME=..\..\..\jython -SET CUSTOM_LIB=..\lib -SET CONF_DIR=..\conf -SET PLUGIN_DIR=%MULE_HOME%\lib\user\plugins -SET CLASSPATH=%CONF_DIR%;%JYTHON_HOME% -SET HIBERNATE_CONF=../conf/db - -rem --------------------- -rem set the config files -rem to be ignored -rem --------------------- -SET GLOBAL_XML=global.xml -SET IGNORE_SET=%GLOBAL_XML%,vtec.xml -SET EDEX_MODE=%1 -SHIFT -IF /I %EDEX_MODE%. == client. ( - SET IGNORE_SET=%IGNORE_SET%,fileToJMS.xml,purge.xml -) ELSE ( - IF /I %EDEX_MODE%. == distribute. ( - SET IGNORE_SET=%IGNORE_SET%,ingest.xml - ) ELSE ( - IF /I NOT %EDEX_MODE%. == standalone. ( - ECHO startup mode not specified, defaulting to standalone - ) - ) -) - -rem --------------------- -rem check for dev mode -rem --------------------- -SET DEV_MODE= -IF "%1" == "" ( - SET DEV_MODE=off -) ELSE ( - SET DEV_MODE=on -) -SHIFT - -rem --------------------- -rem hides the files that -rem are to be ignored -rem --------------------- -FOR %%d IN (%CONF_DIR% %PLUGIN_DIR%) DO ( - IF EXIST %%d\NUL ( - FOR %%s IN (%IGNORE_SET%) DO ( - IF EXIST %%d\%%s ( - ATTRIB +h %%d\%%s - ) - ) - ) -) - -rem --------------------- -rem start with the global -rem config file -rem --------------------- -SET FILE_LIST=file:%CONF_DIR%\%GLOBAL_XML% - -java -jar rea.jar %MULE_HOME%/lib/user/plugins ../conf -java -jar rea.jar %MULE_HOME%/lib/user/services ../conf - -rem --------------------- -rem find the config files -rem to load -rem --------------------- -FOR %%d IN (%CONF_DIR% %PLUGIN_DIR%) DO ( - IF EXIST %%d\NUL ( - FOR %%a IN (%%d\*.xml) DO ( - SET FILE_LIST=!FILE_LIST!, file:%%a - ) - ) -) - -echo about to call %MULE_HOME%\bin\mule.bat - -rem --------------------- -rem start the application -rem --------------------- -CALL %MULE_HOME%\bin\mule.bat console ^ --config "%FILE_LIST%" ^ --builder org.mule.extras.spring.config.SpringConfigurationBuilder - -:END_OF_SCRIPT -rem --------------------- -rem un hide files that -rem were ignored -rem --------------------- -FOR %%d IN (%CONF_DIR% %PLUGIN_DIR%) DO ( - IF EXIST %%d\NUL ( - FOR %%s IN (%IGNORE_SET%) DO ( - IF EXIST %%d\%%s ( - ATTRIB -h %%d\%%s - ) - ) - ) -) - -endlocal diff --git a/edexOsgi/build.edex/opt/esb/conf/ConfigFxaDb.xml b/edexOsgi/build.edex/opt/esb/conf/ConfigFxaDb.xml deleted file mode 100644 index a49f6d16bd..0000000000 --- a/edexOsgi/build.edex/opt/esb/conf/ConfigFxaDb.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - hibernateConfig/fxa/hibernate.cfg.xml - - - - - plugins/plugin-text.jar - services/textdb.jar - - - - - - - - diff --git a/edexOsgi/build.edex/opt/esb/conf/ConfigIhfsDb.xml b/edexOsgi/build.edex/opt/esb/conf/ConfigIhfsDb.xml deleted file mode 100644 index 380667c200..0000000000 --- a/edexOsgi/build.edex/opt/esb/conf/ConfigIhfsDb.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - hibernateConfig/ihfs/hibernate.cfg.xml - - - - - - - diff --git a/edexOsgi/build.edex/opt/esb/conf/ConfigMetadataDb.xml b/edexOsgi/build.edex/opt/esb/conf/ConfigMetadataDb.xml deleted file mode 100644 index 553ff3c715..0000000000 --- a/edexOsgi/build.edex/opt/esb/conf/ConfigMetadataDb.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - hibernateConfig/metadata/hibernate.cfg.xml - - - - - - - - - - diff --git a/edexOsgi/build.edex/opt/esb/conf/log4jbean.xml b/edexOsgi/build.edex/opt/esb/conf/log4jbean.xml deleted file mode 100644 index c20b32dcfe..0000000000 --- a/edexOsgi/build.edex/opt/esb/conf/log4jbean.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/AIREPRequest.js b/edexOsgi/build.edex/opt/esb/js/AIREPRequest.js deleted file mode 100644 index e10d8e17b2..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/AIREPRequest.js +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Performs a TermQuery for AIREP data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080105 713 jkorman Initial Coding. - */ -function AIREPRequest(){ - this.plugin = "airep"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -AIREPRequest.prototype.execute = _execute; -AIREPRequest.prototype.makeXmlResponse = _makeXmlResponse; -AIREPRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -AIREPRequest.prototype.addParameter = _addParameter; -AIREPRequest.prototype.addList = _addList; -AIREPRequest.prototype.setCount = _setCount; -AIREPRequest.prototype.setSortValue = _setSortValue; -AIREPRequest.prototype.enableSubscription = _enableSubscription; -AIREPRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/BUFRMOSRequest.js b/edexOsgi/build.edex/opt/esb/js/BUFRMOSRequest.js deleted file mode 100644 index cbd3ab3e20..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/BUFRMOSRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for BUFRMOS data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080303 862 jkorman Initial Coding. - */ -function BUFRMOSRequest(){ - this.plugin = "bufrmos"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -BUFRMOSRequest.prototype.execute = _execute; -BUFRMOSRequest.prototype.makeXmlResponse = _makeXmlResponse; -BUFRMOSRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -BUFRMOSRequest.prototype.addParameter = _addParameter; -BUFRMOSRequest.prototype.addList = _addList; -BUFRMOSRequest.prototype.setCount = _setCount; -BUFRMOSRequest.prototype.setSortValue = _setSortValue; -BUFRMOSRequest.prototype.enableSubscription = _enableSubscription; -BUFRMOSRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/BUFRUARequest.js b/edexOsgi/build.edex/opt/esb/js/BUFRUARequest.js deleted file mode 100644 index a295b3ed53..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/BUFRUARequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for BUFRUA data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080105 713 jkorman Initial Coding. - */ -function BUFRUARequest(){ - this.plugin = "bufrua"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -BUFRUARequest.prototype.execute = _execute; -BUFRUARequest.prototype.makeXmlResponse = _makeXmlResponse; -BUFRUARequest.prototype.makeAsciiResponse = _makeAsciiResponse; -BUFRUARequest.prototype.addParameter = _addParameter; -BUFRUARequest.prototype.addList = _addList; -BUFRUARequest.prototype.setCount = _setCount; -BUFRUARequest.prototype.setSortValue = _setSortValue; -BUFRUARequest.prototype.enableSubscription = _enableSubscription; -BUFRUARequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/BarnesAnalysis.js b/edexOsgi/build.edex/opt/esb/js/BarnesAnalysis.js deleted file mode 100644 index b3587746d7..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/BarnesAnalysis.js +++ /dev/null @@ -1,212 +0,0 @@ -/** - * Performs Barnes Scheme Analysis on a single grid. Both the grid parameter - * to retrieve and the observation parameter used to modify it are set using - * property setters. Following the analysis, the result is returned as a - * displayable image. - * - * This script represents a complete product generation. As such, it is not - * intended to be called from other scripts. - * - * Implementation note: - * Barnes Analysis requires two queries, one for the grid and one for the - * observations used to modify the grid. For this reason, the query property - * setters, addParameter, addList, setCount and setSortValue, have a an - * initial, boolean parameter. Setting this parameter 'true' performs the - * action on the grid query; setting it 'false' performs the query on the - * observation query. - * - * Usage: - * This is an example of a script that retrieves and corrects a temperature - * grid: - * include("BarnesAnalysis.js"); - * var barnes = new BarnesAnalysis(); - * barnes.addParameter(true,"paramid","Temperature"); - * barnes.addParameter(true,"levelinfo","2.0_m"); - * barnes.addParameter(true,"forecasttime","0"); - * barnes.addParameter(true,"gridid",212); - * barnes.setCount(true,1); - * barnes.setSortValue(true,"basetime"); - * barnes.setSpatialBounds(43.00, -98.00, 37.00, -92.00); - * barnes.addParameter(false,"refhour","20070601190000"); - * barnes.setCount(false,0); - * barnes.setSortValue(false,"timeobs"); - * barnes.setObParameter("temperature"); - * barnes.setBarnesParameters("50000.0","0.50","1","1"); - * barnes.setColorMap("GribTempRGB"); - * barnes.setFormat("png"); - * barnes.setScaleFactor(3.0); - * barnes.execute(); - */ - -/** - * Class constructor. - */ -function BarnesAnalysis() { - /* names of constants */ - this.grib = "grib"; - this.obs = "obs"; - this.icao = "icao"; - this.geometry = "geometry"; - /* settings for Barnes Analysis */ - this.obField = "temperature"; - this.radius = "50000.0"; - this.weight = "0.50"; - this.stations = "1"; - this.passes = "1"; - /* settings for image creation */ - this.reproject = false; - this.colormap = "StopLight"; - this.format = "png"; - this.scaleFactor = 3.0; - /* the queries */ - this.gridquery = new TermQuery(this.grib); - this.obsquery = new TermQuery(this.obs); - this.spatial = new SpatialQuery(); -} - -/** - * Main action method. Performs the the Barnes Analysis and creates the image. - * - * @return (String) XML string containing the results. - */ -function _execute() { - var response; - /* get the grib record */ - var gridResults = this.gridquery.execute(); - if(gridResults == null || gridResults.size() == 0) - { - response = new MakeResponseNull("Query for GRIB returned no results.",this.gridquery); - return response.execute(); - } - var grid = gridResults.get(0); - /* get the spatial information */ - this.spatial.addField(this.icao); - this.spatial.addField(this.geometry); - var spatialResults = this.spatial.execute(); - if (spatialResults == null || spatialResults.size() == 0) { - response = new MakeResponseNull("Spatial query returned no results.",this.spatial); - return response.execute(); - } - /* get the and geolocate the temperature observations */ - this.addList(false,"stationid",MEUtils.changeArrayListToString(spatialResults.get(this.icao))); - var obsResults = this.obsquery.execute(); - if (obsResults == null || obsResults.size() == 0) { - response = new MakeResponseNull("Ob query returned no results.",this.obsquery); - return response.execute(); - } - var mapObs = new MapAsciiData(this.obField, - obsResults, - spatialResults.get(this.icao), - spatialResults.get(this.geometry)); - /* get the GRIB record and perform the analysis */ - var fileIn = new FileIn(this.grib, grid); - var geom = grid.getGrid().getGridGeom(); - var crs = grid.getGrid().getCrs(); - var gribRecord = fileIn.execute(); - var analyzer = new ObjectiveAnalysis(gribRecord, - geom, - crs, - mapObs.execute()); - analyzer.addParameter("searchRadius",this.radius); - analyzer.addParameter("weight",this.weight); - analyzer.addParameter("minNoStns",this.stations); - analyzer.addParameter("numPasses",this.passes); - analyzer.addParameter("extrapolate","true"); - var analyzed = analyzer.execute(); - - /* create the derived image */ - var gribMap = new GribMap(this.grib, this.colormap, analyzed, geom); - gribMap.setScaleFactor(this.scaleFactor); - var imageData = gribMap.execute(); - geom = gribMap.getGridGeometry(); - var colorMap = new ColorMapImage(this.colormap, imageData, geom); - var imageOut = null; - if(this.reproject){ - var reproject = new ReprojectImage(colorMap.execute(), geom, crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format,geom); - } - var fileOut = new FileOut(imageOut.execute(), this.format); - var writeFile = fileOut.execute(); - var makeResponse = new MakeResponseUri(writeFile, - null, - grid.getDataURI(), - this.format); - return makeResponse.execute(); - -} -/* query related setter functions */ -function _addParameter(grib, name, value) { - var query = (grib)?this.gridquery:this.obsquery; - query.addParameter(name, value); -} - -function _addList(grib, name, value) { - var query = (grib)?this.gridquery:this.obsquery; - query.addParameter(name, value, "in"); -} - -function _setCount(grib, count){ - var query = (grib)?this.gridquery:this.obsquery; - query.setCount(count); -} - -function _setSortValue(grib, sortValue){ - var query = (grib)?this.gridquery:this.obsquery; - query.setSortBy(sortValue); -} - -/* image related setter functions */ -function _setScaleFactor(scale){ - this.scaleFactor = scale; -} - -function _reprojectImage(reproject){ - this.reproject = reproject; -} - -function _setColormap(colormap){ - this.colormap = colormap; -} - -function _setFormat(format){ - this.format = format; -} - -/* setters for the spatial query */ -function _setSpatialBounds(ulLat, ulLon, lrLat, lrLon) { - this.spatial.setUpperLeftLat(ulLat); - this.spatial.setUpperLeftLon(ulLon); - this.spatial.setLowerRightLat(lrLat); - this.spatial.setLowerRightLon(lrLon); -} - -/* setters for Barnes Analysis */ -function _setObParameter(param) { - this.obField = param; -} -function _setBarnesParameters(radius,weight,stations,passes) { - this.radius = radius; - this.weight = weight; - this.stations = stations; - this.passes = passes; -} - -/* map the functions to the class prototype */ -BarnesAnalysis.prototype.execute = _execute; -BarnesAnalysis.prototype.addParameter = _addParameter; -BarnesAnalysis.prototype.addList = _addList; -BarnesAnalysis.prototype.setSpatialBounds = _setSpatialBounds; -BarnesAnalysis.prototype.setScaleFactor = _setScaleFactor; -BarnesAnalysis.prototype.setCount = _setCount; -BarnesAnalysis.prototype.reprojectImage = _reprojectImage; -BarnesAnalysis.prototype.setColorMap = _setColormap; -BarnesAnalysis.prototype.setFormat = _setFormat; -BarnesAnalysis.prototype.setSortValue = _setSortValue; -BarnesAnalysis.prototype.setBarnesParameters = _setBarnesParameters; -BarnesAnalysis.prototype.setObParameter = _setObParameter; - diff --git a/edexOsgi/build.edex/opt/esb/js/BaseRequest.js b/edexOsgi/build.edex/opt/esb/js/BaseRequest.js deleted file mode 100644 index 74c063caba..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/BaseRequest.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Performs a TermQuery for plugin data. - * - * - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080516 njensen Initial Creation - */ -function BaseRequest(aPlugin){ - this.plugin = aPlugin; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - return this.makeXmlResponse(); - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -BaseRequest.prototype.execute = _execute; -BaseRequest.prototype.makeXmlResponse = _makeXmlResponse; -BaseRequest.prototype.addParameter = _addParameter; -BaseRequest.prototype.addList = _addList; -BaseRequest.prototype.setCount = _setCount; -BaseRequest.prototype.setSortValue = _setSortValue; -BaseRequest.prototype.enableSubscription = _enableSubscription; diff --git a/edexOsgi/build.edex/opt/esb/js/CatalogQuery.js b/edexOsgi/build.edex/opt/esb/js/CatalogQuery.js deleted file mode 100644 index 9a01eec383..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/CatalogQuery.js +++ /dev/null @@ -1,28 +0,0 @@ -function CatalogQuery(plugin){ - this.cat = new MetadataCatalogQuery(plugin); -} - -function _setDistinctField(name){ - this.cat.setDistinctField(name); -} - -function _addReturnedField(name){ - this.cat.addReturnedField(name); -} - -function _addConstraint(name, value,operand){ - if(arguments.length==2){ - this.cat.addParameter(name, value); - }else{ - this.cat.addParameter(name,value,operand); - } -} - -function _execute(){ - return this.cat.execute(); -} - -CatalogQuery.prototype.addReturnedField = _addReturnedField; -CatalogQuery.prototype.addConstraint = _addConstraint; -CatalogQuery.prototype.execute = _execute; -CatalogQuery.prototype.setDistinctField = _setDistinctField; diff --git a/edexOsgi/build.edex/opt/esb/js/FilteredImage.js b/edexOsgi/build.edex/opt/esb/js/FilteredImage.js deleted file mode 100644 index 5acdefcc3f..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/FilteredImage.js +++ /dev/null @@ -1,155 +0,0 @@ -/** - * Performs an enhancement of a satellite image. The image is enhanced in two - * ways. - * 1) the high and low pixel values are set to the background value, and - * 2) a custom color table is applied to the image. - * - * This script may be subscribed using the EDEX subscription service. - * - * This script is designed to create a visualization product. It is not intended - * to be embedded within another uEngine script. - * - * Usage: - * This script creates a filtered image product from an IR image over East CONUS. - * include("FilteredImage.js"); - * var dataRequest = new FilteredImage(); - * dataRequest.addParameter("satellite","GOES"); - * dataRequest.addParameter("area_subtype","East CONUS"); - * dataRequest.addParameter("parameter","Imager 11 micron IR"); - * dataRequest.setCount(1); - * dataRequest.setColormap("IREnhanced"); - * dataRequest.remapImage(64,192); - * dataRequest.setSortValue("valid_time"); - * dataRequest.execute(); - */ - -/** - * Class Constructor. - */ -function FilteredImage() { - this.format = "png"; - this.colormap = "BW"; - this.reproject = false; - this.plugin = "satellite"; - this.low = 0; - this.high = 255; - this.remap = false; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.createImage = false; - this.sortValue = ""; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} -/** - * Main action method. Performs the image creation. - * - * @return (String) XML string containing the result of the execution. - */ -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - var queryResults = this.query.execute(); - if(queryResults == null || queryResults.size() == 0) - { - response = new MakeResponseNull("Query returned 0 results.",this.query); - return response.execute(); - } - else - { - return this.makeImageResponse(queryResults); - } -} - -function _addParameter(name, value){ - this.query.addParameter(name, value); -} - -function _addList(name, value){ - this.query.addParameter(name, value, "in"); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _reprojectImage(reproject){ - this.reproject = reproject; -} - -function _setColormap(colormap){ - this.colormap = colormap; -} - -function _setFormat(format){ - this.format = format; -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _requestImage(image){ - this.createImage = image; -} - -/* helper methods */ -function _makeImageResponse(queryResults){ - var response = new Array(); - for(i=0; i < queryResults.size(); i++) - { - var currentQuery = queryResults.get(i); - var geom = currentQuery.getCoverage().getMapGeom(); - var crs = currentQuery.getCoverage().getCrs(); - var fileIn = new FileIn(this.plugin, currentQuery); - var record = fileIn.execute(); - var colorMap = null; - if (this.remap) { - colorMap = new ColorMapImage(this.colormap, MEUtils.byteHighLowFilterImage(record.getDataObject(),this.low,this.high), geom); - } else { - colorMap = new ColorMapImage(this.colormap, record.getDataObject(), geom); - } - var imageOut = null; - if(this.reproject){ - var reproject = new ReprojectImage(colorMap.execute(), geom, crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format); - } - var fileOut = new FileOut(imageOut.execute(), this.format); - var writeFile = fileOut.execute(); - var makeResponse = new MakeResponseUri(writeFile, null, currentQuery.getDataURI(), this.format); - response[i] = makeResponse.execute(); - } - return response; -} -function _remapImage(low,high) { - this.low = low; - this.high = high; - this.remap = true; -} - -/* map the functions to the class prototype */ -FilteredImage.prototype.remapImage = _remapImage; -FilteredImage.prototype.execute = _execute; -FilteredImage.prototype.makeImageResponse = _makeImageResponse; -FilteredImage.prototype.addParameter = _addParameter; -FilteredImage.prototype.addList = _addList; -FilteredImage.prototype.setCount = _setCount; -FilteredImage.prototype.enableSubscription = _enableSubscription; -FilteredImage.prototype.reprojectImage = _reprojectImage; -FilteredImage.prototype.setColormap = _setColormap; -FilteredImage.prototype.setFormat = _setFormat; -FilteredImage.prototype.setSortValue = _setSortValue; -FilteredImage.prototype.requestImage = _requestImage; diff --git a/edexOsgi/build.edex/opt/esb/js/GOESSoundingRequest.js b/edexOsgi/build.edex/opt/esb/js/GOESSoundingRequest.js deleted file mode 100644 index 155a11a5a8..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/GOESSoundingRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for GOESSoundingRequest data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080310 969 jkorman Initial implementation. - */ -function GOESSoundingRequest(){ - this.plugin = "goessounding"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -GOESSoundingRequest.prototype.execute = _execute; -GOESSoundingRequest.prototype.makeXmlResponse = _makeXmlResponse; -GOESSoundingRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -GOESSoundingRequest.prototype.addParameter = _addParameter; -GOESSoundingRequest.prototype.addList = _addList; -GOESSoundingRequest.prototype.setCount = _setCount; -GOESSoundingRequest.prototype.setSortValue = _setSortValue; -GOESSoundingRequest.prototype.enableSubscription = _enableSubscription; -GOESSoundingRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/GfeTask.js b/edexOsgi/build.edex/opt/esb/js/GfeTask.js deleted file mode 100644 index caf2d685da..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/GfeTask.js +++ /dev/null @@ -1,29 +0,0 @@ -function GfeTask(wsId,task){ - this.task = task; - this.wsId = wsId; -} - -function _addArgument(xml){ - this.task.addXml(xml); -} - -function _execute(){ - this.task.setWorkstationID(this.wsId); - var result = this.task.execute(); - - if(result==null){ - return new MakeResponseNull("GFE task generated NULL response",null).execute(); - }else{ - var count = result.size(); - var response = new Array(count); - for(i = 0; i < count; i++){ - var makeResponse = new MakeResponseXml(result.get(i)); - response[i] = makeResponse.execute(); - } - return response; - } - -} - -GfeTask.prototype.addArgument = _addArgument; -GfeTask.prototype.execute = _execute; diff --git a/edexOsgi/build.edex/opt/esb/js/GribImage.js b/edexOsgi/build.edex/opt/esb/js/GribImage.js deleted file mode 100644 index dd5877c502..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/GribImage.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Creates an image from a GRIB record. Maps a selected color map to the - * image, rescales the image and converts it to a specified output format. - * - * This file may be imported into a JS uEngine script needing to create - * an image from a GRIB record. - * - * Usage: - * include("GribImage.js"); - * var iMaker = new GribImage("grib"); - * iMaker.setColormap("GribRGB"); - * iMaker.setFormat("png"); - * iMaker.setGrid(grid); // 'grid' is set to a previously ingested grib data - * iMaker.setGeom(geom); // 'geom' is set to the geometry from the grib - * iMaker.setCrs(crs); // 'crs' is set to the CRS from the grib - * var image = iMaker.execute(); - */ - -/** - * Class constructor. - * - * @param plugin (String) identifies the data-type plugin - normally "grib" - */ -function GribImage(plugin) { - /* names of things */ - this.plugin = plugin; - /* grid attributes */ - this.grid = null; - this.geom = null; - this.crs = null; - /* image attributes */ - this.colormap = "GribRGB"; - this.format = "png"; - this.scaleFactor = 1; - this.reproject = false; -} -/** - * Main action method. Performs the the GRIB to an image object. - * - * @return (byte[]) raster containing the image - * (String) XML null response string on failure - */ -function _execute() { - var gribMap = new GribMap(this.grib, this.colormap, this.grid, this.geom); - gribMap.setScaleFactor(this.scaleFactor); - var imageData = gribMap.execute(); - this.geom = gribMap.getGridGeometry(); - var colorMap = new ColorMapImage(this.colormap, imageData, this.geom); - var imageOut = null; - if(this.reproject){ - var reproject = new ReprojectImage(colorMap.execute(), this.geom, this.crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format,this.geom); - } - return imageOut.execute(); -} -/* setters */ -function _setGrid(grid) { - this.grid = grid; -} -function _setGeom(geom) { - this.geom = geom; -} -function _setCrs(crs) { - this.crs = crs; -} -function _setColormap(colormap) { - this.colormap = colormap; -} -function _setFormat(format) { - this.format = format; -} -function _setScaleFactor(scale) { - this.scaleFactor = scale; -} -function _setReproject(reproject) { - this.reproject = reproject; -} -/* getters */ -function _getGeom() { - return this.geom; -} -function _getFormat() { - return this.format; -} - -/* map the functions to the class prototype */ -GribImage.prototype.execute = _execute; -GribImage.prototype.setGrid = _setGrid; -GribImage.prototype.setGeom = _setGeom; -GribImage.prototype.getGeom = _getGeom; -GribImage.prototype.setCrs = _setCrs; -GribImage.prototype.setColormap = _setColormap; -GribImage.prototype.setFormat = _setFormat; -GribImage.prototype.getFormat = _getFormat; -GribImage.prototype.setScaleFactor = _setScaleFactor; -GribImage.prototype.setReproject = _setReproject; diff --git a/edexOsgi/build.edex/opt/esb/js/GribWinds.js b/edexOsgi/build.edex/opt/esb/js/GribWinds.js deleted file mode 100644 index d22a77745f..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/GribWinds.js +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Computes a derived winds grid based on combining the wind-U - * and wind-V parameters for a specific GRIB parameter. - * - * Performs a pair of queries, one for wind-U and one for wind-V, - * based on a single set of criteria. A single instance will create - * either a wind speed or wind direction derived grid product. - * - * This class may be imported into a JS uEngine script needing to - * compute a derived winds grid. - * - * Usage: - * include("GribWinds.js"); - * var gQuery = new GribWinds("grib",true); - * gQuery.addParameter("levelinfo","10.0_m"); - * gQuery.addParameter("forecasttime","0"); - * gQuery.addParameter("gridid",212); - * gQuery.setSortby("basetime"); - * gQuery.setCount(1); - * var gResult = gQuery.execute(); - */ - -/** - * Class constructor. - * - * @param plugin (String) identifies the data-type plugin - normally "grib" - * @param speed (boolean) true to compute wind speed, false to compute wind direction - */ -function GribWinds(plugin,speed) { - this.plugin = plugin; - this.speed = speed; - this.params = new Object(); - this.count = 1; - this.sortby = "basetime"; - this.query = new TermQuery(this.plugin); - this.geom = null; - this.crs = null; - this.dataURI = null; -} -/** - * Main action method. Performs the the queries and creates the derived grid. - * - * @return (FloatDataRecord) the derived grid on success, or - * (String) XML null response string on failure - */ -function _execute() { - var response; - /* get the U wind grib */ - var query = new TermQuery(this.plugin); - for (name in this.params) { - query.addParameter(name,this.params[name]); - } - query.addParameter("paramid","U%wind","like"); - query.setCount(this.count); - query.setSortBy(this.sortby); - var uResult = query.execute(); - if (uResult.size() == 0) { - return this.makeError("Query for Wind-U returned 0 results.",this.query); - } - /* get the V wind grib */ - var query = new TermQuery(this.plugin); - for (name in this.params) { - query.addParameter(name,this.params[name]); - } - query.addParameter("paramid","V%wind","like"); - query.setCount(this.count); - query.setSortBy(this.sortby); - var vResult = query.execute(); - if (vResult.size() == 0) { - return this.makeError("Query for Wind-V returned 0 results.",this.query); - } - /* read the data from the data store */ - this.geom = uResult.get(0).getGrid().getGridGeom(); - this.crs = uResult.get(0).getGrid().getCrs(); - this.dataURI = uResult.get(0).getDataURI(); - var uFile = new FileIn(this.plugin,uResult.get(0)); - var vFile = new FileIn(this.plugin,vResult.get(0)); - var uData = uFile.execute(); - var vData = vFile.execute(); - /* combine the data into wind speed data */ - var windSpeed = new ConvertWindsData(uData,vData,this.speed); - return windSpeed.execute(); -} - -/* GWS accessors */ -function _setSortby(sortValue) { - this.sortby = sortValue; -} -function _setCount(count) { - this.count = count; -} -function _addParameter(name,value) { - this.params[name] = value; -} -function _getGeom() { - return this.geom; -} -function _getCRS () { - return this.crs; -} -function _getDataURI() { - return this.dataURI; -} - -/* helper methods */ -function _makeError(message,query) { - var response = new MakeResponseNull(message,query); - return response.execute(); -} - -/* map the functions to the class prototype */ -GribWinds.prototype.execute = _execute; -GribWinds.prototype.addParameter = _addParameter; -GribWinds.prototype.getGeom = _getGeom; -GribWinds.prototype.getCRS = _getCRS; -GribWinds.prototype.getDataURI = _getDataURI; -GribWinds.prototype.setCount = _setCount; -GribWinds.prototype.setSortby = _setSortby; -GribWinds.prototype.makeError = _makeError; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/GridRequest.js b/edexOsgi/build.edex/opt/esb/js/GridRequest.js deleted file mode 100644 index bddc7b3a6b..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/GridRequest.js +++ /dev/null @@ -1,160 +0,0 @@ -function GridRequest(){ - this.plugin = "grib"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.createImage = false; - this.reproject = false; - this.colormap = "BW"; - this.format = "png"; - this.scaleFactor = 1.0; - this.longitude = -91.0; - this.latitude = 42.0; - this.slice = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name, value, operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setScaleFactor(scale){ - this.scaleFactor = scale; -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _reprojectImage(reproject){ - this.reproject = reproject; -} - -function _setColormap(colormap){ - this.colormap = colormap; -} - -function _setFormat(format){ - this.format = format; -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _requestImage(image){ - this.createImage = image; -} -function _requestSlice(slice){ - this.createSlice = slice; -} - -function _setLatitude(latitude){ - this.latitude = latitude; -} -function _setLongitude(longitude){ - this.longitude = longitude; -} -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.",this.query); - return response.execute(); - } - else - { - - if(this.createSlice) { - return this.makegridslicerResponse(); - } - - if(this.createImage){ - return this.makeImageResponse(); - } - else{ - return this.makeXmlResponse(); - } } -} - -function _makeXmlResponse() -{ - var count = this.queryResults.size(); - var response = new Array(count); - for(i=0; i < count; i++) - { - var currentQuery = this.queryResults.get(i); - var fileIn = new FileIn(this.plugin, currentQuery); - var extractor = new GribExtractData(fileIn.execute(),currentQuery); - extractor.execute(); - - var makeResponse = new MakeResponseXml(currentQuery); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeImageResponse(){ - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var currentQuery = this.queryResults.get(i); - var geom = currentQuery.getSpatialInfo().getMapGeom(); - var crs = currentQuery.getSpatialInfo().getCrsObject(); - var fileIn = new FileIn(this.plugin, currentQuery); - var extractor = new GribExtractData(fileIn.execute(),currentQuery); - var gribMap = new GribMap(this.plugin, this.colormap, extractor.execute(), geom); - gribMap.setScaleFactor(this.scaleFactor); - var imageData = gribMap.execute(); - geom = gribMap.getGridGeometry(); - var colorMap = new ColorMapImage(this.colormap, imageData, geom); - var imageOut = null; - if(this.reproject){ - var reproject = new ReprojectImage(colorMap.execute(), geom, crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format,geom); - } - var fileOut = new FileOut(imageOut.execute(), this.format); - var writeFile = fileOut.execute(); - var makeResponse = new MakeResponseUri(writeFile, null, currentQuery.getIdentifier(), this.format); - response[i] = makeResponse.execute(); - } - return response; -} - -GridRequest.prototype.execute = _execute; -GridRequest.prototype.makeXmlResponse = _makeXmlResponse; -GridRequest.prototype.makeImageResponse = _makeImageResponse; -GridRequest.prototype.addParameter = _addParameter; -GridRequest.prototype.addList = _addList; -GridRequest.prototype.setCount = _setCount; -GridRequest.prototype.setScaleFactor = _setScaleFactor; -GridRequest.prototype.enableSubscription = _enableSubscription; -GridRequest.prototype.reprojectImage = _reprojectImage; -GridRequest.prototype.setColormap = _setColormap; -GridRequest.prototype.setFormat = _setFormat; -GridRequest.prototype.setSortValue = _setSortValue; -GridRequest.prototype.requestImage = _requestImage; -GridRequest.prototype.setLatitude = _setLatitude; -GridRequest.prototype.setLongitude = _setLongitude; diff --git a/edexOsgi/build.edex/opt/esb/js/HelloWorld.js b/edexOsgi/build.edex/opt/esb/js/HelloWorld.js deleted file mode 100644 index cf7f1dd49f..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/HelloWorld.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * uEngine implementation of the clasic "Hello World" program. - * When executed by the uEngine, the message set but the client - * is logged to the Mule system log as an "info" level log entry. - * The message is also eche'd back to the client as part of the - * response message. - * - * This class represents the mid tier of the 3-tier scripting - * model used by uEngine. - * - * Usage: - * include("HelloWorld.js"); - * var runner = new HelloWorld(); - * runner.setMessage("Hello World from Omaha."); - * runner.execute(); - * - */ -/* the class constructor */ -function HelloWorld() { - this.message = ""; -} - -/* class methods */ -function _execute() { - var logger = new SystemLog(); - logger.log("info",this.message); - /* empty response */ - var response = new MakeResponseGeneric(this.message); - return response.execute(); -} - -function _setMessage(text) { - this.message = text; -} - -/* attach methods to class - w/aliases */ -HelloWorld.prototype.execute = _execute; -HelloWorld.prototype.setMessage = _setMessage; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/LatestTime.js b/edexOsgi/build.edex/opt/esb/js/LatestTime.js deleted file mode 100644 index a4179d6498..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/LatestTime.js +++ /dev/null @@ -1,9 +0,0 @@ -function LatestTime(uriList){ - this.ltq = new LatestTimeQuery(uriList); -} - -function _execute(){ - return this.ltq.execute(); -} - -LatestTime.prototype.execute = _execute; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/LightningRequest.js b/edexOsgi/build.edex/opt/esb/js/LightningRequest.js deleted file mode 100644 index 713521dfab..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/LightningRequest.js +++ /dev/null @@ -1,70 +0,0 @@ -function LightningRequest(){ - this.plugin = "binlightning"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.sortValue = ""; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - response = new MakeResponseNull("Query returned 0 results.",this.query); - return response.execute(); - } - else - { - return this.makeXmlResponse(); } -} - -function _makeXmlResponse() -{ - var count = this.queryResults.size(); - var response = new Array(count); - for(i=0; i < count; i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -LightningRequest.prototype.execute = _execute; -LightningRequest.prototype.makeXmlResponse = _makeXmlResponse; -LightningRequest.prototype.addParameter = _addParameter; -LightningRequest.prototype.addList = _addList; -LightningRequest.prototype.setCount = _setCount; -LightningRequest.prototype.enableSubscription = _enableSubscription; -LightningRequest.prototype.setSortValue = _setSortValue; diff --git a/edexOsgi/build.edex/opt/esb/js/ModelSoundingRequest.js b/edexOsgi/build.edex/opt/esb/js/ModelSoundingRequest.js deleted file mode 100644 index 521c4f4049..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ModelSoundingRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for ModelSoundingRequest data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080310 969 jkorman Initial implementation. - */ -function ModelSoundingRequest(){ - this.plugin = "modelsounding"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -ModelSoundingRequest.prototype.execute = _execute; -ModelSoundingRequest.prototype.makeXmlResponse = _makeXmlResponse; -ModelSoundingRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -ModelSoundingRequest.prototype.addParameter = _addParameter; -ModelSoundingRequest.prototype.addList = _addList; -ModelSoundingRequest.prototype.setCount = _setCount; -ModelSoundingRequest.prototype.setSortValue = _setSortValue; -ModelSoundingRequest.prototype.enableSubscription = _enableSubscription; -ModelSoundingRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/ObsIcaoRequest.js b/edexOsgi/build.edex/opt/esb/js/ObsIcaoRequest.js deleted file mode 100644 index 286775951c..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ObsIcaoRequest.js +++ /dev/null @@ -1,46 +0,0 @@ -function ObsIcaoRequest(){ - this.plugin = "obsIcao"; - - this.obsicao = new ObsIcaoQuery(); - this.icao = null; -} - -function _addParameter(name,value,operand){ - this.icao = value; -} - -function _execute() -{ - - var station = null; - var icaos = new Array(); - - this.obsicao.setIcao(this.icao); - station = this.obsicao.execute(); - - if(station!=null){ - var response = new Array(); - response[0] = station; - var makeResponse = new MakeResponseXml(station); - response[0] = makeResponse.execute(); - return response; - } else { - var response = new MakeResponseNull("Query returned 0 results.", - this.obsicao); - return response.execute(); - } - -} - - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - - return response; -} - -ObsIcaoRequest.prototype.execute = _execute; -ObsIcaoRequest.prototype.makeXmlResponse = _makeXmlResponse; -ObsIcaoRequest.prototype.addParameter = _addParameter; diff --git a/edexOsgi/build.edex/opt/esb/js/ObsRequest.js b/edexOsgi/build.edex/opt/esb/js/ObsRequest.js deleted file mode 100644 index 1b9e04f2f6..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ObsRequest.js +++ /dev/null @@ -1,132 +0,0 @@ -function ObsRequest(){ - this.plugin = "obs"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.spatial = new SpatialQuery; - this.asciiResponse = false; - - this.upperLeftLat = null; - this.upperLeftLon = null; - this.lowerRightLat = null; - this.lowerRightLon = null; - - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - var stations = null; - var icaos = new Array(); - if(this.spatial!=null){ - stations=this.spatial.execute(); - - if(stations!=null){ - - for(i=0;i0){ - this.addParameter("stationID",icaos,"in"); - } - } - - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } } -} - -function _setSpatialBox(ulLat,ulLon,lrLat,lrLon){ - this.spatial.setUpperLeftLat(ulLat); - this.spatial.setUpperLeftLon(ulLon); - this.spatial.setLowerRightLat(lrLat); - this.spatial.setLowerRightLon(lrLon); -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -ObsRequest.prototype.execute = _execute; -ObsRequest.prototype.makeXmlResponse = _makeXmlResponse; -ObsRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -ObsRequest.prototype.addParameter = _addParameter; -ObsRequest.prototype.addList = _addList; -ObsRequest.prototype.setCount = _setCount; -ObsRequest.prototype.setSortValue = _setSortValue; -ObsRequest.prototype.enableSubscription = _enableSubscription; -ObsRequest.prototype.enableAsciiResponse = _enableAsciiResponse; -ObsRequest.prototype.setSpatialBox = _setSpatialBox; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/ObsSpatial.js b/edexOsgi/build.edex/opt/esb/js/ObsSpatial.js deleted file mode 100644 index 5910433148..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ObsSpatial.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Performs a spatial query and creates a list of Observation objects for the - * specified observation parameter for stations in the specified spatial region. - * - * First performs the spatial query for the region to create a list of stations, - * then queries for observations for the stations. Finally it creates a list of - * Observation objects for the specified parameter. - * - * This class may be imported into a JS uEngine script needing to perform a - * spatial query for a specific observation parameter. - * - * Usage: - * include("ObsSpatial.js"); - * var oQuery = new ObsSpatialQuery("obs","temperature"); - * oQuery.addParameter("refhour","20070601190000"); - * oQuery.setSortby("timeobs"); - * oQuery.setCount(0); - * oQuery.setSpatialBounds(43.00, -98.00, 37.00, -92.00,"icao","geometry"); - * var oResult = oQuery.execute(); - */ - -/** - * Class constructor. - * - * @param plugin (String) identifies the data-type plugin - normally "obs" - * @param obParam (String) the observation parameter to query. - */ -function ObsSpatialQuery(plugin,obParam) { - this.icao = "icao"; - this.geometry = "geometry"; - this.plugin = plugin; - this.obParam = obParam; - this.oQuery = new TermQuery(this.plugin); - this.sQuery = new SpatialQuery(); -} -/** - * Main action method. Performs the the queries and creates the Observation list. - * - * @return (ArrayList) the Observation list on success, or - * (String) XML null response string on failure - */ -function _execute() { - /* get the spatial results */ - var sResult = this.sQuery.execute(); - if(sResult == null || sResult.size() == 0) { - return this.makeError("Spatial query returned no results.",this.spatial); - } - /* get and geolocate the wind speed observations */ - this.addList("stationid",MEUtils.changeArrayListToString(sResult.get(this.icao))); - var oResult = this.oQuery.execute(); - if(oResult == null || oResult.size() == 0) { - return this.makeError("Ob query returned no results.",oQuery); - } - var oMap = new MapAsciiData(this.obParam, - oResult, - sResult.get(this.icao), - sResult.get(this.geometry)); - - return oMap.execute(); -} -/* OSQ accessors */ -function _setSortby(sortValue) { - this.oQuery.setSortBy(sortValue); -} -function _setCount(count) { - this.oQuery.setCount(count); -} -function _addParameter(name,value) { - this.oQuery.addParameter(name,value); -} -function _addList(name,value) { - this.oQuery.addParameter(name,value,"in"); -} - -/* setter for the spatial bounds */ -function _setSpatialBounds(ulLat, ulLon, lrLat, lrLon, icao, geom) { - this.icao = icao; - this.geometry = geom; - this.sQuery.setUpperLeftLat(ulLat); - this.sQuery.setUpperLeftLon(ulLon); - this.sQuery.setLowerRightLat(lrLat); - this.sQuery.setLowerRightLon(lrLon); - /* preload fields of the query */ - this.sQuery.addField(this.icao); - this.sQuery.addField(this.geometry); -} - -/* helper methods */ -function _makeError(message,query) { - var response = new MakeResponseNull(message,query); - return response.execute(); -} - -/* map the functions to the class prototype */ -ObsSpatialQuery.prototype.execute = _execute; -ObsSpatialQuery.prototype.addParameter = _addParameter; -ObsSpatialQuery.prototype.setCount = _setCount; -ObsSpatialQuery.prototype.setSortby = _setSortby; -ObsSpatialQuery.prototype.makeError = _makeError; -ObsSpatialQuery.prototype.setSpatialBounds = _setSpatialBounds; -ObsSpatialQuery.prototype.addList = _addList; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/ObsStationRequest.js b/edexOsgi/build.edex/opt/esb/js/ObsStationRequest.js deleted file mode 100644 index aa8a78c74a..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ObsStationRequest.js +++ /dev/null @@ -1,104 +0,0 @@ -function ObsRequest(){ - this.plugin = "obs"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.spatial = new SpatialQuery; - - this.upperLeftLat = null; - this.upperLeftLon = null; - this.lowerRightLat = null; - this.lowerRightLon = null; - - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - var stations = null; - var icaos = new Array(); - if(this.spatial!=null){ - stations=this.spatial.execute(); - - if(stations!=null){ - - for(i=0;i0){ - this.addParameter("stationID",icaos,"in"); - } - } - - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - return this.makeXmlResponse(); } -} - -function _setSpatialBox(ulLat,ulLon,lrLat,lrLon){ - this.spatial.setUpperLeftLat(ulLat); - this.spatial.setUpperLeftLon(ulLon); - this.spatial.setLowerRightLat(lrLat); - this.spatial.setLowerRightLon(lrLon); -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -ObsRequest.prototype.execute = _execute; -ObsRequest.prototype.makeXmlResponse = _makeXmlResponse; -ObsRequest.prototype.addParameter = _addParameter; -ObsRequest.prototype.addList = _addList; -ObsRequest.prototype.setCount = _setCount; -ObsRequest.prototype.setSortValue = _setSortValue; -ObsRequest.prototype.enableSubscription = _enableSubscription; -ObsRequest.prototype.setSpatialBox = _setSpatialBox; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/PIREPRequest.js b/edexOsgi/build.edex/opt/esb/js/PIREPRequest.js deleted file mode 100644 index 6f4866f858..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/PIREPRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for PIREP data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080105 713 jkorman Initial Coding. - */ -function PIREPRequest(){ - this.plugin = "pirep"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -PIREPRequest.prototype.execute = _execute; -PIREPRequest.prototype.makeXmlResponse = _makeXmlResponse; -PIREPRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -PIREPRequest.prototype.addParameter = _addParameter; -PIREPRequest.prototype.addList = _addList; -PIREPRequest.prototype.setCount = _setCount; -PIREPRequest.prototype.setSortValue = _setSortValue; -PIREPRequest.prototype.enableSubscription = _enableSubscription; -PIREPRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/POESSoundingRequest.js b/edexOsgi/build.edex/opt/esb/js/POESSoundingRequest.js deleted file mode 100644 index 4d4be863aa..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/POESSoundingRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for POESSoundingRequest data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080423 1078 jkorman Initial implementation. - */ -function POESSoundingRequest(){ - this.plugin = "poessounding"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -POESSoundingRequest.prototype.execute = _execute; -POESSoundingRequest.prototype.makeXmlResponse = _makeXmlResponse; -POESSoundingRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -POESSoundingRequest.prototype.addParameter = _addParameter; -POESSoundingRequest.prototype.addList = _addList; -POESSoundingRequest.prototype.setCount = _setCount; -POESSoundingRequest.prototype.setSortValue = _setSortValue; -POESSoundingRequest.prototype.enableSubscription = _enableSubscription; -POESSoundingRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/ProfilerRequest.js b/edexOsgi/build.edex/opt/esb/js/ProfilerRequest.js deleted file mode 100644 index 5f426f7f4f..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/ProfilerRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for Profiler data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080310 969 jkorman Initial implementation. - */ -function ProfilerRequest(){ - this.plugin = "profiler"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -ProfilerRequest.prototype.execute = _execute; -ProfilerRequest.prototype.makeXmlResponse = _makeXmlResponse; -ProfilerRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -ProfilerRequest.prototype.addParameter = _addParameter; -ProfilerRequest.prototype.addList = _addList; -ProfilerRequest.prototype.setCount = _setCount; -ProfilerRequest.prototype.setSortValue = _setSortValue; -ProfilerRequest.prototype.enableSubscription = _enableSubscription; -ProfilerRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/RECCORequest.js b/edexOsgi/build.edex/opt/esb/js/RECCORequest.js deleted file mode 100644 index 6e905de331..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/RECCORequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for RECCO data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080105 713 jkorman Initial Coding. - */ -function RECCORequest(){ - this.plugin = "recco"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -RECCORequest.prototype.execute = _execute; -RECCORequest.prototype.makeXmlResponse = _makeXmlResponse; -RECCORequest.prototype.makeAsciiResponse = _makeAsciiResponse; -RECCORequest.prototype.addParameter = _addParameter; -RECCORequest.prototype.addList = _addList; -RECCORequest.prototype.setCount = _setCount; -RECCORequest.prototype.setSortValue = _setSortValue; -RECCORequest.prototype.enableSubscription = _enableSubscription; -RECCORequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/RadarRequest.js b/edexOsgi/build.edex/opt/esb/js/RadarRequest.js deleted file mode 100644 index 53cf95944b..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/RadarRequest.js +++ /dev/null @@ -1,130 +0,0 @@ -function RadarRequest(){ - this.plugin = "radar"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.createImage = false; - this.reproject = false; - this.colormap = "BW"; - this.format = "png"; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name, value, operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _reprojectImage(reproject){ - this.reproject = reproject; -} - -function _setColormap(colormap){ - this.colormap = colormap; -} - -function _setFormat(format){ - this.format = format; -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _requestImage(image){ - this.createImage = image; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - response = new MakeResponseNull("Query returned 0 results.",this.query); - return response.execute(); - } - else - { - if(this.createImage){ - return this.makeImageResponse(); - } - else{ - return this.makeXmlResponse(); - } } -} - -function _makeXmlResponse() -{ - var count = this.queryResults.size(); - var response = new Array(count); - for(i=0; i < count; i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeImageResponse(){ - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var currentQuery = this.queryResults.get(i); - var fileIn = new FileIn(this.plugin, currentQuery); - var records = fileIn.retrieveGroup(); - var radarImage = new DecodeRadarImage(currentQuery, records); - - var geom = radarImage.getGridGeometry(); - var colorMap = new ColorMapImage(this.colormap, radarImage.execute(), geom); - - var imageOut = null; - if(this.reproject){ - var crs = radarImage.getCrs(); - var reproject = new ReprojectImage(colorMap.execute(), geom, crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format, geom); - } - - var fileOut = new FileOut(imageOut.execute(), this.format); - var writeFile = fileOut.execute(); - var makeResponse = new MakeResponseUri(writeFile, null, currentQuery.getDataURI(), this.format); - response[i] = makeResponse.execute(); - } - return response; -} - -RadarRequest.prototype.execute = _execute; -RadarRequest.prototype.makeXmlResponse = _makeXmlResponse; -RadarRequest.prototype.makeImageResponse = _makeImageResponse; -RadarRequest.prototype.addParameter = _addParameter; -RadarRequest.prototype.addList = _addList; -RadarRequest.prototype.setCount = _setCount; -RadarRequest.prototype.enableSubscription = _enableSubscription; -RadarRequest.prototype.reprojectImage = _reprojectImage; -RadarRequest.prototype.setColormap = _setColormap; -RadarRequest.prototype.setFormat = _setFormat; -RadarRequest.prototype.setSortValue = _setSortValue; -RadarRequest.prototype.requestImage = _requestImage; diff --git a/edexOsgi/build.edex/opt/esb/js/RedbookRequest.js b/edexOsgi/build.edex/opt/esb/js/RedbookRequest.js deleted file mode 100644 index bab1f0395d..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/RedbookRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for Redbook graphics data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080521 1131 jkorman Initial implementation. - */ -function RedbookRequest(){ - this.plugin = "redbook"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -RedbookRequest.prototype.execute = _execute; -RedbookRequest.prototype.makeXmlResponse = _makeXmlResponse; -RedbookRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -RedbookRequest.prototype.addParameter = _addParameter; -RedbookRequest.prototype.addList = _addList; -RedbookRequest.prototype.setCount = _setCount; -RedbookRequest.prototype.setSortValue = _setSortValue; -RedbookRequest.prototype.enableSubscription = _enableSubscription; -RedbookRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/RetrieveHibStats.js b/edexOsgi/build.edex/opt/esb/js/RetrieveHibStats.js deleted file mode 100644 index 0fbce2362e..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/RetrieveHibStats.js +++ /dev/null @@ -1,8 +0,0 @@ -function RetrieveHibStats(){ - this.cat = new HibernateStats(); -} -function _execute(){ - return this.cat.execute(); -} - -RetrieveHibStats.prototype.execute = _execute; \ No newline at end of file diff --git a/edexOsgi/build.edex/opt/esb/js/SatelliteRequest.js b/edexOsgi/build.edex/opt/esb/js/SatelliteRequest.js deleted file mode 100644 index 67c23b11b7..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/SatelliteRequest.js +++ /dev/null @@ -1,127 +0,0 @@ -function SatelliteRequest(){ - this.plugin = "satellite"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.createImage = false; - this.reproject = false; - this.colormap = "BW"; - this.format = "png"; - this.sortValue = ""; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _reprojectImage(reproject){ - this.reproject = reproject; -} - -function _setColormap(colormap){ - this.colormap = colormap; -} - -function _setFormat(format){ - this.format = format; -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _requestImage(image){ - this.createImage = image; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - response = new MakeResponseNull("Query returned 0 results.",this.query); - return response.execute(); - } - else - { - if(this.createImage){ - return this.makeImageResponse(); - } - else{ - return this.makeXmlResponse(); - } } -} - -function _makeXmlResponse() -{ - var count = this.queryResults.size(); - var response = new Array(count); - for(i=0; i < count; i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeImageResponse(){ - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var currentQuery = this.queryResults.get(i); - var geom = currentQuery.getSpatialInfo().getMapGeom(); - var crs = currentQuery.getSpatialInfo().getCrsObject(); - var fileIn = new FileIn(this.plugin, currentQuery); - var record = fileIn.execute(); - var colorMap = new ColorMapImage(this.colormap, record.getDataObject(), geom); - var imageOut = null; - if(this.reproject){ - var reproject = new ReprojectImage(colorMap.execute(), geom, crs); - var reprojectedImage = reproject.execute(); - imageOut = new ImageOut(reprojectedImage, this.format, reproject.getGridGeometry()); - } - else - { - imageOut = new ImageOut(colorMap.execute(), this.format,geom); - } - var fileOut = new FileOut(imageOut.execute(), this.format); - var writeFile = fileOut.execute(); - var makeResponse = new MakeResponseUri(writeFile, null, currentQuery.getIdentifier(), this.format); - response[i] = makeResponse.execute(); - } - return response; -} - -SatelliteRequest.prototype.execute = _execute; -SatelliteRequest.prototype.makeXmlResponse = _makeXmlResponse; -SatelliteRequest.prototype.makeImageResponse = _makeImageResponse; -SatelliteRequest.prototype.addParameter = _addParameter; -SatelliteRequest.prototype.addList = _addList; -SatelliteRequest.prototype.setCount = _setCount; -SatelliteRequest.prototype.enableSubscription = _enableSubscription; -SatelliteRequest.prototype.reprojectImage = _reprojectImage; -SatelliteRequest.prototype.setColormap = _setColormap; -SatelliteRequest.prototype.setFormat = _setFormat; -SatelliteRequest.prototype.setSortValue = _setSortValue; -SatelliteRequest.prototype.requestImage = _requestImage; diff --git a/edexOsgi/build.edex/opt/esb/js/SfcObsRequest.js b/edexOsgi/build.edex/opt/esb/js/SfcObsRequest.js deleted file mode 100644 index 84363a708c..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/SfcObsRequest.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Performs a TermQuery for SfcObs (Surface Synoptic) data. - * - * Usage: - * TBD - * - * SOFTWARE HISTORY - * - * Date Ticket# Engineer Description - * ------------ ---------- ----------- -------------------------- - * 20080105 713 jkorman Initial Coding. - */ -function SfcObsRequest(){ - this.plugin = "sfcobs"; - this.subscribe = false; - this.subscription = null; - this.queryResults = null; - this.asciiResponse = false; - this.query = new TermQuery(this.plugin, subscriptionDataFieldId, subscriptionDataQueryId); -} - -function _addParameter(name,value,operand){ - if(arguments.length==2){ - this.query.addParameter(name,value); - } else{ - this.query.addParameter(name,value,operand); - } -} - -function _addList(name, value){ - this.query.addList(name, value); -} - -function _setCount(count){ - this.query.setCount(count); -} - -function _setSortValue(sortValue){ - this.query.setSortBy(sortValue); -} - -function _enableSubscription(){ - this.subscribe = true; -} - -function _enableAsciiResponse(){ - this.asciiResponse = true; -} - -function _execute() -{ - if(this.subscribe){ - this.subscription = new Subscription(); - this.subscription.setup(this.query); - } - - this.queryResults = this.query.execute(); - if(this.queryResults == null || this.queryResults.size() == 0) - { - var response = new MakeResponseNull("Query returned 0 results.", - this.query); - return response.execute(); - } - else - { - if(this.asciiResponse) - { - return this.makeAsciiResponse(); - } - else - { - return this.makeXmlResponse(); - } - } -} - -function _makeXmlResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var makeResponse = new MakeResponseXml(this.queryResults.get(i)); - response[i] = makeResponse.execute(); - } - return response; -} - -function _makeAsciiResponse() -{ - var xmlResults = new Array(); - var response = new Array(); - for(i=0; i < this.queryResults.size(); i++) - { - var toXml = new DataToXml(this.queryResults.get(i)); - xmlResults[i] = toXml.execute(); - var makeResponse = new MakeResponseAscii(this.queryResults.get(i), xmlResults[i]); - response[i] = makeResponse.execute(); - } - return response; -} - -SfcObsRequest.prototype.execute = _execute; -SfcObsRequest.prototype.makeXmlResponse = _makeXmlResponse; -SfcObsRequest.prototype.makeAsciiResponse = _makeAsciiResponse; -SfcObsRequest.prototype.addParameter = _addParameter; -SfcObsRequest.prototype.addList = _addList; -SfcObsRequest.prototype.setCount = _setCount; -SfcObsRequest.prototype.setSortValue = _setSortValue; -SfcObsRequest.prototype.enableSubscription = _enableSubscription; -SfcObsRequest.prototype.enableAsciiResponse = _enableAsciiResponse; diff --git a/edexOsgi/build.edex/opt/esb/js/SpatialDataQuery.js b/edexOsgi/build.edex/opt/esb/js/SpatialDataQuery.js deleted file mode 100644 index acc06b2a76..0000000000 --- a/edexOsgi/build.edex/opt/esb/js/SpatialDataQuery.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Performs a query for all station data of a specific type over a specified - * region. - * - * This script represents a complete product generation. As such, it is not - * intended to be called from other scripts. - * - * Usage: - * This sample script retrieves all TAF's on the selected region. - * include("SpatialDataQuery.js"); - * var demo = new SpatialObQuery('taf'); - * demo.setSpatialBounds(45.00,-100.00,35.00,-90.00); - * demo.addSpatialField("icao"); - * demo.enableAsciiResponse(); - * demo.execute(); - */ - -/** - * Class constructor. - * - * @param plugin the name of the data-type plug-in for the query - */ -function SpatialDataQuery(plugin) { - /* named constants */ - this.icao = "icao"; - this.stationid = "stationid"; - /* the query objects */ - this.asciiResopnse = false; - this.plugin = (plugin!=null)?plugin:"obs"; - this.spatial = new SpatialQuery(); - this.query = new TermQuery(this.plugin); -} - -/** - * Main action method. Performs the the Barnes Analysis and creates the image. - * - * @return (String) XML string containing the results. - */ -function _execute() { - var response = this.spatial.execute(); - if (response.size() == 0 || response.get(this.icao).size() == 0) { - return this.makeNullResponse(null); - } - var icaos = this.listToString(response.get(this.icao),","); - this.query.addParameter(this.stationid,icaos,"in"); - this.query.setCount(0); - var result = this.query.execute(); - if (result.size() == 0) { - return this.makeNullResponse(this.query); - } else if (this.asciiResponse) { - return this.makeAsciiResponse(result); - } else { - return this.makeXmlResponse(result); - } -} - -/* converts a List to a string */ -function _listToString(list,sep){ - var string = new Array(); - for (i=0;i - -