Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/execute.jsp URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/execute.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/execute.jsp (original) +++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/execute.jsp Tue Jun 9 01:30:36 2015 @@ -2,1666 +2,1410 @@ <% -/* $Id$ */ + /* $Id$ */ /** -* 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. -*/ + * 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. + */ +%> + +<% + // The purpose of this jsp is to execute commands, and then dispatch to the right form or display page using + // jsp:forward. + // Note that, for errors, the logic must involve another step. That step involves dispatching to the error + // page, and passing in the error and the name of the page to go to when the error is accepted by the user. + // This page must therefore NEVER cause text to be streamed, and must ALWAYS pass information to the page + // it forwards to using arguments and thread context only. + // + // The parameters that the page expects depend on the operation. The operation is passed as the parameter "op". + // For many operations there is a secondary parameter determining the type of entity being operated on. + // This is passed in the parameter "type". + // + // Dispatches are handled within the logic for each operation type. This includes dispatches to the error page. + // The error page receives the following argument values: "text" (the error text), and "target" (the page to go to + // on confirmation). + // + // If no operation at all is present, or if no dispatch occurs, then this code simply dispatches to the home admin page. + + try { + // Make a few things we will need + // Get the job manager handle + IJobManager manager = JobManagerFactory.make(threadContext); + IAuthorityGroupManager authGroupManager = AuthorityGroupManagerFactory.make(threadContext); + IRepositoryConnectionManager connManager = RepositoryConnectionManagerFactory.make(threadContext); + INotificationConnectionManager notificationManager = NotificationConnectionManagerFactory.make(threadContext); + IAuthorityConnectionManager authConnManager = AuthorityConnectionManagerFactory.make(threadContext); + IMappingConnectionManager mappingConnManager = MappingConnectionManagerFactory.make(threadContext); + IOutputConnectionManager outputManager = OutputConnectionManagerFactory.make(threadContext); + ITransformationConnectionManager transformationManager = TransformationConnectionManagerFactory.make(threadContext); + + IOutputConnectorPool outputConnectorPool = OutputConnectorPoolFactory.make(threadContext); + ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext); + IRepositoryConnectorPool repositoryConnectorPool = RepositoryConnectorPoolFactory.make(threadContext); + INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext); + + String type = variableContext.getParameter("type"); + String op = variableContext.getParameter("op"); + if (type != null && op != null && type.equals("connection")) { + // -- Connection editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + IRepositoryConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = connManager.load(connectionName); + } + + if (connection == null) { + connection = connManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Fill in connection object from posted data + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("authorityname"); + if (x != null && x.length() > 0) { + if (x.equals("_none_")) + connection.setACLAuthority(null); + else + connection.setACLAuthority(x); + } + x = variableContext.getParameter("maxconnections"); + if (x != null && x.length() > 0) + connection.setMaxConnections(Integer.parseInt(x)); + + // Gather and save throttles + x = variableContext.getParameter("throttlecount"); + if (x != null) { + int throttleCount = Integer.parseInt(x); + connection.clearThrottleValues(); + int j = 0; + while (j < throttleCount) { + String regexp = variableContext.getParameter("throttle_" + Integer.toString(j)); + String desc = variableContext.getParameter("throttledesc_" + Integer.toString(j)); + if (desc == null) + desc = ""; + String value = variableContext.getParameter("throttlevalue_" + Integer.toString(j)); + connection.addThrottleValue(regexp, desc, (float) (((double) new Long(value).longValue()) / (double) (60000.0))); + j++; + } + x = variableContext.getParameter("throttleop"); + if (x != null && x.equals("Delete")) { + // Delete an item from the throttles list + x = variableContext.getParameter("throttlenumber"); + String regexp = variableContext.getParameter("throttle_" + x); + connection.deleteThrottleValue(regexp); + } else if (x != null && x.equals("Add")) { + // Add an item to the throttles list + String regexp = variableContext.getParameter("throttle"); + String desc = variableContext.getParameter("throttledesc"); + if (desc == null) + desc = ""; + Long value = new Long(variableContext.getParameter("throttlevalue")); + connection.addThrottleValue(regexp, desc, (float) (((double) value.longValue()) / (double) (60000.0))); + } + } + + String error = RepositoryConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listconnections.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="editconnection.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + connManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewconnection.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listconnections.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + connManager.delete(connectionName); +%> +<jsp:forward page="listconnections.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listconnections.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listconnections.jsp"/> +<% +} else if (op.equals("ClearHistory")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + connManager.cleanUpHistoryData(connectionName); +%> +<jsp:forward page="listconnections.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listconnections.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to connection execution page"); + variableContext.setParameter("target", "listconnections.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("group")) { + // -- Group editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + IAuthorityGroup group = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String groupName = variableContext.getParameter("groupname"); + // If the groupname is not null, load the group and prepopulate everything with what comes from it. + if (groupName != null && groupName.length() > 0 && !isNew) { + group = authGroupManager.load(groupName); + } + + if (group == null) { + group = authGroupManager.create(); + if (groupName != null && groupName.length() > 0) + group.setName(groupName); + } + + // Gather all the data from the form. + group.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + group.setDescription(x); + + if (op.equals("Continue")) { + threadContext.save("GroupObject", group); +%> +<jsp:forward page="editgroup.jsp"> + <jsp:param name="groupname" value="<%=groupName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + authGroupManager.save(group); + variableContext.setParameter("groupname", groupName); +%> +<jsp:forward page="viewgroup.jsp"> + <jsp:param name="groupname" value="<%=groupName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listgroups.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String groupName = variableContext.getParameter("groupname"); + if (groupName == null) + throw new ManifoldCFException("Missing group name parameter"); + authGroupManager.delete(groupName); +%> +<jsp:forward page="listgroups.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listgroups.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listgroups.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to authority group execution page"); + variableContext.setParameter("target", "listgroups.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + +} else if (type != null && op != null && type.equals("authority")) { + // -- Authority editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + IAuthorityConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = authConnManager.load(connectionName); + } + + if (connection == null) { + connection = authConnManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Gather all the data from the form. + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("maxconnections"); + if (x != null) + connection.setMaxConnections(Integer.parseInt(x)); + x = variableContext.getParameter("prerequisites_present"); + if (x != null && x.equals("true")) { + String y = variableContext.getParameter("prerequisites"); + if (y != null && y.length() == 0) + y = null; + connection.setPrerequisiteMapping(y); + } + x = variableContext.getParameter("authdomain"); + if (x != null) + connection.setAuthDomain(x); + x = variableContext.getParameter("authoritygroup"); + if (x != null) + connection.setAuthGroup(x); + + String error = AuthorityConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listauthorities.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="editauthority.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + authConnManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewauthority.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listauthorities.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + authConnManager.delete(connectionName); +%> +<jsp:forward page="listauthorities.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listauthorities.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listauthorities.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to authority execution page"); + variableContext.setParameter("target", "listauthorities.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("mapper")) { + // -- Mapping editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + IMappingConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = mappingConnManager.load(connectionName); + } + + if (connection == null) { + connection = mappingConnManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Gather all the data from the form. + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("maxconnections"); + if (x != null && x.length() > 0) + connection.setMaxConnections(Integer.parseInt(x)); + x = variableContext.getParameter("prerequisites_present"); + if (x != null && x.equals("true")) { + String y = variableContext.getParameter("prerequisites"); + if (y != null && y.length() == 0) + y = null; + connection.setPrerequisiteMapping(y); + } + + String error = MappingConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listmappers.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="editmapper.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + mappingConnManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewmapper.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listmappers.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + mappingConnManager.delete(connectionName); +%> +<jsp:forward page="listmappers.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listmappers.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listmappers.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to mapping execution page"); + variableContext.setParameter("target", "listmappers.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("output")) { + // -- Output connection editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + IOutputConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = outputManager.load(connectionName); + } + + if (connection == null) { + connection = outputManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Gather all the data from the form. + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("maxconnections"); + if (x != null && x.length() > 0) + connection.setMaxConnections(Integer.parseInt(x)); + + String error = OutputConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="editoutput.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + outputManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewoutput.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + outputManager.delete(connectionName); +%> +<jsp:forward page="listoutputs.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listoutputs.jsp"/> +<% +} else if (op.equals("ReingestAll")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + org.apache.manifoldcf.agents.system.ManifoldCF.signalOutputConnectionRedo(threadContext, connectionName); +%> +<jsp:forward page="listoutputs.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("RemoveAll")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + org.apache.manifoldcf.agents.system.ManifoldCF.signalOutputConnectionRemoved(threadContext, connectionName); +%> +<jsp:forward page="listoutputs.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to output connection execution page"); + variableContext.setParameter("target", "listoutputs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("transformation")) { + // -- Output connection editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + ITransformationConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = transformationManager.load(connectionName); + } + + if (connection == null) { + connection = transformationManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Gather all the data from the form. + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("maxconnections"); + if (x != null && x.length() > 0) + connection.setMaxConnections(Integer.parseInt(x)); + + String error = TransformationConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listtransformations.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="edittransformation.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + transformationManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewtransformation.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listtransformations.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + transformationManager.delete(connectionName); +%> +<jsp:forward page="listtransformations.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listtransformations.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listtransformations.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to transformation connection execution page"); + variableContext.setParameter("target", "listtransformations.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("notification")) { + // -- Notification connection editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + // Set up a connection object that is a merge of an existing connection object plus what was posted. + INotificationConnection connection = null; + boolean isNew = true; + String x = variableContext.getParameter("isnewconnection"); + if (x != null) + isNew = x.equals("true"); + + String connectionName = variableContext.getParameter("connname"); + // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. + if (connectionName != null && connectionName.length() > 0 && !isNew) { + connection = notificationManager.load(connectionName); + } + + if (connection == null) { + connection = notificationManager.create(); + if (connectionName != null && connectionName.length() > 0) + connection.setName(connectionName); + } + + // Gather all the data from the form. + connection.setIsNew(isNew); + x = variableContext.getParameter("description"); + if (x != null) + connection.setDescription(x); + x = variableContext.getParameter("classname"); + if (x != null) + connection.setClassName(x); + x = variableContext.getParameter("maxconnections"); + if (x != null && x.length() > 0) + connection.setMaxConnections(Integer.parseInt(x)); + + String error = NotificationConnectorFactory.processConfigurationPost(threadContext, connection.getClassName(), variableContext, pageContext.getRequest().getLocale(), connection.getConfigParams()); + + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listnotifications.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + + if (op.equals("Continue")) { + threadContext.save("ConnectionObject", connection); +%> +<jsp:forward page="editnotification.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + notificationManager.save(connection); + variableContext.setParameter("connname", connectionName); +%> +<jsp:forward page="viewnotification.jsp"> + <jsp:param name="connname" value="<%=connectionName%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listnotifications.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String connectionName = variableContext.getParameter("connname"); + if (connectionName == null) + throw new ManifoldCFException("Missing connection parameter"); + notificationManager.delete(connectionName); +%> +<jsp:forward page="listnotifications.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listnotifications.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { +%> +<jsp:forward page="listnotifications.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to notification connection execution page"); + variableContext.setParameter("target", "listnotifications.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && type.equals("job")) { + // -- Job editing operations -- + if (op.equals("Save") || op.equals("Continue")) { + try { + String jobID = variableContext.getParameter("jobid"); + IJobDescription job = null; + if (jobID != null) { + job = manager.load(new Long(jobID)); + } + if (job == null) + job = manager.createJob(); + + // Figure out what got posted. + String x = variableContext.getParameter("connectionpresent"); + boolean connectionPresent = (x != null && x.equals("true")); + + // Gather the rest of the data. + x = variableContext.getParameter("description"); + if (x != null) + job.setDescription(x); + x = variableContext.getParameter("connectionname"); + if (x != null) + job.setConnectionName(x); + x = variableContext.getParameter("scheduletype"); + if (x != null) + job.setType(Integer.parseInt(x)); + x = variableContext.getParameter("startmethod"); + if (x != null) + job.setStartMethod(Integer.parseInt(x)); + x = variableContext.getParameter("hopcountmode"); + if (x != null) + job.setHopcountMode(Integer.parseInt(x)); + x = variableContext.getParameter("pipeline_count"); + if (x != null) { + // Do we need to keep the old specifications around, or can we destroy them? + // Not clear that retention is required., so I'm not wasting time trying to implement that. + int count = Integer.parseInt(x); + job.clearPipeline(); + for (int j = 0; j < count; j++) { + // Gather everything first; we'll look at edits later + int precedent = Integer.parseInt(variableContext.getParameter("pipeline_" + j + "_precedent")); + boolean isOutput = variableContext.getParameter("pipeline_" + j + "_isoutput").equals("true"); + String connectionName = variableContext.getParameter("pipeline_" + j + "_connectionname"); + String description = variableContext.getParameter("pipeline_" + j + "_description"); + job.addPipelineStage(precedent, isOutput, connectionName, description); + } + } + x = variableContext.getParameter("notification_count"); + if (x != null) { + // Do we need to keep the old specifications around, or can we destroy them? + // Not clear that retention is required., so I'm not wasting time trying to implement that. + int count = Integer.parseInt(x); + job.clearNotifications(); + for (int j = 0; j < count; j++) { + // Gather everything first; we'll look at edits later + String connectionName = variableContext.getParameter("notification_" + j + "_connectionname"); + String description = variableContext.getParameter("notification_" + j + "_description"); + job.addNotification(connectionName, description); + } + } + + x = variableContext.getParameter("schedulerecords"); + String[] y; + + if (x != null) { + // Read records and put them into the job description + job.clearScheduleRecords(); + int recordCount = Integer.parseInt(x); + int j = 0; + while (j < recordCount) { + String indexValue = Integer.toString(j); + EnumeratedValues srDayOfWeek = null; + EnumeratedValues srDayOfMonth = null; + EnumeratedValues srMonthOfYear = null; + EnumeratedValues srYear = null; + EnumeratedValues srHourOfDay = null; + EnumeratedValues srMinutesOfHour = null; + Long srDuration = null; + boolean srRequestMinimum = false; + + y = variableContext.getParameterValues("dayofweek" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srDayOfWeek = null; + else + srDayOfWeek = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("dayofmonth" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srDayOfMonth = null; + else + srDayOfMonth = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("monthofyear" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srMonthOfYear = null; + else + srMonthOfYear = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("year" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srYear = null; + else + srYear = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("hourofday" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srHourOfDay = null; + else + srHourOfDay = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("minutesofhour" + indexValue); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srMinutesOfHour = null; + else + srMinutesOfHour = new EnumeratedValues(y); + } + x = variableContext.getParameter("duration" + indexValue); + if (x != null) { + if (x.length() == 0) + srDuration = null; + else + srDuration = new Long(new Long(x).longValue() * 60000L); + } + x = variableContext.getParameter("invocation" + indexValue); + if (x != null) { + srRequestMinimum = x.equals("minimal"); + } + + x = variableContext.getParameter("recordop" + j); + if (x == null || !x.equals("Remove Schedule")) { + ScheduleRecord sr = new ScheduleRecord(srDayOfWeek, srMonthOfYear, srDayOfMonth, srYear, srHourOfDay, srMinutesOfHour, + null, srDuration, srRequestMinimum); + job.addScheduleRecord(sr); + } + j++; + } + } + + // Check for operation that adds to schedule + x = variableContext.getParameter("recordop"); + if (x != null && x.equals("Add Scheduled Time")) { + EnumeratedValues srDayOfWeek = null; + EnumeratedValues srDayOfMonth = null; + EnumeratedValues srMonthOfYear = null; + EnumeratedValues srYear = null; + EnumeratedValues srHourOfDay = null; + EnumeratedValues srMinutesOfHour = null; + Long srDuration = null; + boolean srRequestMinimum = false; + + y = variableContext.getParameterValues("dayofweek"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srDayOfWeek = null; + else + srDayOfWeek = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("dayofmonth"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srDayOfMonth = null; + else + srDayOfMonth = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("monthofyear"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srMonthOfYear = null; + else + srMonthOfYear = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("year"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srYear = null; + else + srYear = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("hourofday"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srHourOfDay = null; + else + srHourOfDay = new EnumeratedValues(y); + } + y = variableContext.getParameterValues("minutesofhour"); + if (y != null) { + if (y.length >= 1 && y[0].equals("none")) + srMinutesOfHour = null; + else + srMinutesOfHour = new EnumeratedValues(y); + } + x = variableContext.getParameter("duration"); + if (x != null) { + if (x.length() == 0) + srDuration = null; + else + srDuration = new Long(new Long(x).longValue() * 60000L); + } + x = variableContext.getParameter("invocation"); + if (x != null) { + srRequestMinimum = x.equals("minimal"); + } + + ScheduleRecord sr = new ScheduleRecord(srDayOfWeek, srMonthOfYear, srDayOfMonth, srYear, srHourOfDay, srMinutesOfHour, + null, srDuration, srRequestMinimum); + job.addScheduleRecord(sr); + } + + x = variableContext.getParameter("priority"); + if (x != null) + job.setPriority(Integer.parseInt(x)); + x = variableContext.getParameter("recrawlinterval"); + if (x != null) { + if (x.length() == 0) + job.setInterval(null); + else + job.setInterval(new Long(new Long(x).longValue() * 60000L)); + } + x = variableContext.getParameter("maxrecrawlinterval"); + if (x != null) { + if (x.length() == 0) + job.setMaxInterval(null); + else + job.setMaxInterval(new Long(new Long(x).longValue() * 60000L)); + } + x = variableContext.getParameter("reseedinterval"); + if (x != null) { + if (x.length() == 0) + job.setReseedInterval(null); + else + job.setReseedInterval(new Long(new Long(x).longValue() * 60000L)); + } + x = variableContext.getParameter("expirationinterval"); + if (x != null) { + if (x.length() == 0) + job.setExpiration(null); + else + job.setExpiration(new Long(new Long(x).longValue() * 60000L)); + } + + IRepositoryConnection connection = null; + if (job.getConnectionName() != null && job.getConnectionName().length() > 0) + connection = connManager.load(job.getConnectionName()); + + if (connection != null) { + String[] relationshipTypes = RepositoryConnectorFactory.getRelationshipTypes(threadContext, connection.getClassName()); + + // Gather hopcount filters + x = variableContext.getParameter("hopfilters"); + if (x != null && relationshipTypes != null) { + job.clearHopCountFilters(); + int j = 0; + while (j < relationshipTypes.length) { + String relationshipType = relationshipTypes[j++]; + x = variableContext.getParameter("hopmax_" + relationshipType); + if (x != null && x.length() > 0) { + job.addHopCountFilter(relationshipType, new Long(x)); + } + } + } + } + + if (connectionPresent && connection != null) { + IRepositoryConnector repositoryConnector = repositoryConnectorPool.grab(connection); + if (repositoryConnector != null) { + try { + String error = repositoryConnector.processSpecificationPost(variableContext, pageContext.getRequest().getLocale(), job.getSpecification(), 0); + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + } finally { + repositoryConnectorPool.release(connection, repositoryConnector); + } + } + } + + // Process all pipeline stages + for (int j = 0; j < job.countPipelineStages(); j++) { + if (job.getPipelineStageIsOutputConnection(j)) { + IOutputConnection outputConnection = outputManager.load(job.getPipelineStageConnectionName(j)); + if (outputConnection != null) { + IOutputConnector outputConnector = outputConnectorPool.grab(outputConnection); + if (outputConnector != null) { + try { + String error = outputConnector.processSpecificationPost(variableContext, pageContext.getRequest().getLocale(), job.getPipelineStageSpecification(j), 1 + j); + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + } finally { + outputConnectorPool.release(outputConnection, outputConnector); + } + } + } +} else { + ITransformationConnection transformationConnection = transformationManager.load(job.getPipelineStageConnectionName(j)); + if (transformationConnection != null) { + ITransformationConnector transformationConnector = transformationConnectorPool.grab(transformationConnection); + if (transformationConnector != null) { + try { + String error = transformationConnector.processSpecificationPost(variableContext, pageContext.getRequest().getLocale(), job.getPipelineStageSpecification(j), 1 + j); + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + } finally { + transformationConnectorPool.release(transformationConnection, transformationConnector); + } + } + } + } + } + + for (int j = 0; j < job.countNotifications(); j++) { + INotificationConnection notificationConnection = notificationManager.load(job.getNotificationConnectionName(j)); + if (notificationConnection != null) { + INotificationConnector notificationConnector = notificationConnectorPool.grab(notificationConnection); + if (notificationConnector != null) { + try { + String error = notificationConnector.processSpecificationPost(variableContext, pageContext.getRequest().getLocale(), job.getNotificationSpecification(j), 1 + job.countPipelineStages() + j); + if (error != null) { + variableContext.setParameter("text", error); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } + } finally { + notificationConnectorPool.release(notificationConnection, notificationConnector); + } + } + } + } + + // Now, after gathering is complete, consider doing changes to the pipeline. + int currentStage = 0; + for (int j = 0; j < job.countPipelineStages(); j++) { + // Look at the operation + x = variableContext.getParameter("pipeline_" + j + "_op"); + if (x != null && x.equals("Delete")) { + // Delete this pipeline stage (and rewire other stages according to rules) + job.deletePipelineStage(currentStage); + } else if (x != null && x.equals("InsertTransformation")) { + // Insert a new stage before this one + String connectionName = variableContext.getParameter("transformation_connectionname"); + String description = variableContext.getParameter("transformation_description"); + job.insertPipelineStage(currentStage, false, connectionName, description); + currentStage++; + } else if (x != null && x.equals("InsertOutput")) { + // Insert a new stage before this one + String connectionName = variableContext.getParameter("output_connectionname"); + String description = variableContext.getParameter("output_description"); + job.insertPipelineStage(currentStage, true, connectionName, description); + currentStage++; + } else + currentStage++; + } + + x = variableContext.getParameter("output_op"); + if (x != null && x.equals("Add")) { + // Append a new stage at the end + int precedent = Integer.parseInt(variableContext.getParameter("output_precedent")); + String connectionName = variableContext.getParameter("output_connectionname"); + String description = variableContext.getParameter("output_description"); + job.addPipelineStage(precedent, true, connectionName, description); + } + + currentStage = 0; + for (int j = 0; j < job.countNotifications(); j++) { + // Look at the operation + x = variableContext.getParameter("notification_" + j + "_op"); + if (x != null && x.equals("Delete")) { + // Delete this pipeline stage (and rewire other stages according to rules) + job.deleteNotification(currentStage); + } else + currentStage++; + } + x = variableContext.getParameter("notification_op"); + if (x != null && x.equals("Add")) { + // Append a new stage at the end + String connectionName = variableContext.getParameter("notification_connectionname"); + String description = variableContext.getParameter("notification_description"); + job.addNotification(connectionName, description); + } + + if (op.equals("Continue")) { + threadContext.save("JobObject", job); +%> +<jsp:forward page="editjob.jsp"> + <jsp:param name="jobid" value="<%=jobID%>"/> +</jsp:forward> +<% +} else if (op.equals("Save")) { + manager.save(job); + // Reset the job schedule. We may want to make this explicit at some point; having + // this happen all the time seems wrong. + manager.resetJobSchedule(job.getID()); + variableContext.setParameter("jobid", job.getID().toString()); +%> +<jsp:forward page="viewjob.jsp"> + <jsp:param name="jobid" value="<%=job.getID().toString()%>"/> +</jsp:forward> +<% + } +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("StartOver")) { + try { + String jobID = variableContext.getParameter("jobid"); + if (jobID == null) + throw new ManifoldCFException("Missing job parameter"); + manager.clearJobSeedingState(new Long(jobID)); +%> +<jsp:forward page="listjobs.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Delete")) { + try { + String jobID = variableContext.getParameter("jobid"); + if (jobID == null) + throw new ManifoldCFException("Missing job parameter"); + manager.deleteJob(new Long(jobID)); +%> +<jsp:forward page="listjobs.jsp"/> +<% +} catch (ManifoldCFException e) { + e.printStackTrace(); + variableContext.setParameter("text", e.getMessage()); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op.equals("Cancel")) { + // Cancel operation +%> +<jsp:forward page="listjobs.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to job definition execution page: " + op); + variableContext.setParameter("target", "listjobs.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (type != null && op != null && (type.equals("simplereport") || type.equals("maxactivityreport") || + type.equals("maxbandwidthreport") || type.equals("resultreport") || + type.equals("documentstatus") || type.equals("queuestatus"))) { + // -- Report handling operations -- + if (op.equals("Continue") || op.equals("Report") || op.equals("Status")) { +%> +<jsp:forward page='<%=type+".jsp"%>'/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to report/status execution page: " + op); + variableContext.setParameter("target", "index.jsp"); +%> +<jsp:forward page="error.jsp"/> +<% + } +} else if (op != null && type != null && type.equals("jobstatus")) { + if (op.equals("Start") || op.equals("StartMinimal")) { + // -- Start a job -- + String jobID = variableContext.getParameter("jobid"); + manager.manualStart(new Long(jobID), op.equals("StartMinimal")); + // Forward to showjobstatus +%> +<jsp:forward page="showjobstatus.jsp"/> +<% +} else if (op.equals("Pause")) { + // -- Pause a job -- + String jobID = variableContext.getParameter("jobid"); + manager.pauseJob(new Long(jobID)); + // Forward to showjobstatus +%> +<jsp:forward page="showjobstatus.jsp"/> +<% +} else if (op.equals("Abort")) { + // -- Abort a job -- + String jobID = variableContext.getParameter("jobid"); + manager.manualAbort(new Long(jobID)); + // Forward to showjobstatus +%> +<jsp:forward page="showjobstatus.jsp"/> +<% +} else if (op.equals("Restart") || op.equals("RestartMinimal")) { + // -- Restart a job -- + String jobID = variableContext.getParameter("jobid"); + manager.manualAbortRestart(new Long(jobID), op.equals("RestartMinimal")); + // Forward to showjobstatus +%> +<jsp:forward page="showjobstatus.jsp"/> +<% +} else if (op.equals("Resume")) { + // -- Resume a job -- + String jobID = variableContext.getParameter("jobid"); + manager.restartJob(new Long(jobID)); + // Forward to showjobstatus +%> +<jsp:forward page="showjobstatus.jsp"/> +<% +} else { + // Error + variableContext.setParameter("text", "Illegal parameter to jobstatus execution page: " + op); + variableContext.setParameter("target", "index.jsp"); %> - -<% - // The purpose of this jsp is to execute commands, and then dispatch to the right form or display page using - // jsp:forward. - // Note that, for errors, the logic must involve another step. That step involves dispatching to the error - // page, and passing in the error and the name of the page to go to when the error is accepted by the user. - // This page must therefore NEVER cause text to be streamed, and must ALWAYS pass information to the page - // it forwards to using arguments and thread context only. - // - // The parameters that the page expects depend on the operation. The operation is passed as the parameter "op". - // For many operations there is a secondary parameter determining the type of entity being operated on. - // This is passed in the parameter "type". - // - // Dispatches are handled within the logic for each operation type. This includes dispatches to the error page. - // The error page receives the following argument values: "text" (the error text), and "target" (the page to go to - // on confirmation). - // - // If no operation at all is present, or if no dispatch occurs, then this code simply dispatches to the home admin page. - - try - { - // Make a few things we will need - // Get the job manager handle - IJobManager manager = JobManagerFactory.make(threadContext); - IAuthorityGroupManager authGroupManager = AuthorityGroupManagerFactory.make(threadContext); - IRepositoryConnectionManager connManager = RepositoryConnectionManagerFactory.make(threadContext); - INotificationConnectionManager notificationManager = NotificationConnectionManagerFactory.make(threadContext); - IAuthorityConnectionManager authConnManager = AuthorityConnectionManagerFactory.make(threadContext); - IMappingConnectionManager mappingConnManager = MappingConnectionManagerFactory.make(threadContext); - IOutputConnectionManager outputManager = OutputConnectionManagerFactory.make(threadContext); - ITransformationConnectionManager transformationManager = TransformationConnectionManagerFactory.make(threadContext); - - IOutputConnectorPool outputConnectorPool = OutputConnectorPoolFactory.make(threadContext); - ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext); - IRepositoryConnectorPool repositoryConnectorPool = RepositoryConnectorPoolFactory.make(threadContext); - INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext); - - String type = variableContext.getParameter("type"); - String op = variableContext.getParameter("op"); - if (type != null && op != null && type.equals("connection")) - { - // -- Connection editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - IRepositoryConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = connManager.load(connectionName); - } - - if (connection == null) - { - connection = connManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Fill in connection object from posted data - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("authorityname"); - if (x != null && x.length() > 0) - { - if (x.equals("_none_")) - connection.setACLAuthority(null); - else - connection.setACLAuthority(x); - } - x = variableContext.getParameter("maxconnections"); - if (x != null && x.length() > 0) - connection.setMaxConnections(Integer.parseInt(x)); - - // Gather and save throttles - x = variableContext.getParameter("throttlecount"); - if (x != null) - { - int throttleCount = Integer.parseInt(x); - connection.clearThrottleValues(); - int j = 0; - while (j < throttleCount) - { - String regexp = variableContext.getParameter("throttle_"+Integer.toString(j)); - String desc = variableContext.getParameter("throttledesc_"+Integer.toString(j)); - if (desc == null) - desc = ""; - String value = variableContext.getParameter("throttlevalue_"+Integer.toString(j)); - connection.addThrottleValue(regexp,desc,(float)(((double)new Long(value).longValue())/(double)(60000.0))); - j++; - } - x = variableContext.getParameter("throttleop"); - if (x != null && x.equals("Delete")) - { - // Delete an item from the throttles list - x = variableContext.getParameter("throttlenumber"); - String regexp = variableContext.getParameter("throttle_"+x); - connection.deleteThrottleValue(regexp); - } - else if (x != null && x.equals("Add")) - { - // Add an item to the throttles list - String regexp = variableContext.getParameter("throttle"); - String desc = variableContext.getParameter("throttledesc"); - if (desc == null) - desc = ""; - Long value = new Long(variableContext.getParameter("throttlevalue")); - connection.addThrottleValue(regexp,desc,(float)(((double)value.longValue())/(double)(60000.0))); - } - } - - String error = RepositoryConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listconnections.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="editconnection.jsp"/> -<% - } - else if (op.equals("Save")) - { - connManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewconnection.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listconnections.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - connManager.delete(connectionName); -%> - <jsp:forward page="listconnections.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listconnections.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listconnections.jsp"/> -<% - } - else if (op.equals("ClearHistory")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - connManager.cleanUpHistoryData(connectionName); -%> - <jsp:forward page="listconnections.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listconnections.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to connection execution page"); - variableContext.setParameter("target","listconnections.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("group")) - { - // -- Group editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - IAuthorityGroup group = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String groupName = variableContext.getParameter("groupname"); - // If the groupname is not null, load the group and prepopulate everything with what comes from it. - if (groupName != null && groupName.length() > 0 && !isNew) - { - group = authGroupManager.load(groupName); - } - - if (group == null) - { - group = authGroupManager.create(); - if (groupName != null && groupName.length() > 0) - group.setName(groupName); - } - - // Gather all the data from the form. - group.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - group.setDescription(x); - - if (op.equals("Continue")) - { - threadContext.save("GroupObject",group); -%> - <jsp:forward page="editgroup.jsp"/> -<% - } - else if (op.equals("Save")) - { - authGroupManager.save(group); - variableContext.setParameter("groupname",groupName); -%> - <jsp:forward page="viewgroup.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listgroups.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String groupName = variableContext.getParameter("groupname"); - if (groupName == null) - throw new ManifoldCFException("Missing group name parameter"); - authGroupManager.delete(groupName); -%> - <jsp:forward page="listgroups.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listgroups.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listgroups.jsp"/> -<% - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to authority group execution page"); - variableContext.setParameter("target","listgroups.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - } - else if (type != null && op != null && type.equals("authority")) - { - // -- Authority editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - IAuthorityConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = authConnManager.load(connectionName); - } - - if (connection == null) - { - connection = authConnManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Gather all the data from the form. - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("maxconnections"); - if (x != null) - connection.setMaxConnections(Integer.parseInt(x)); - x = variableContext.getParameter("prerequisites_present"); - if (x != null && x.equals("true")) - { - String y = variableContext.getParameter("prerequisites"); - if (y != null && y.length() == 0) - y = null; - connection.setPrerequisiteMapping(y); - } - x = variableContext.getParameter("authdomain"); - if (x != null) - connection.setAuthDomain(x); - x = variableContext.getParameter("authoritygroup"); - if (x != null) - connection.setAuthGroup(x); - - String error = AuthorityConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listauthorities.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="editauthority.jsp"/> -<% - } - else if (op.equals("Save")) - { - authConnManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewauthority.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listauthorities.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - authConnManager.delete(connectionName); -%> - <jsp:forward page="listauthorities.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listauthorities.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listauthorities.jsp"/> +<jsp:forward page="error.jsp"/> <% - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to authority execution page"); - variableContext.setParameter("target","listauthorities.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("mapper")) - { - // -- Mapping editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - IMappingConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = mappingConnManager.load(connectionName); - } - - if (connection == null) - { - connection = mappingConnManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Gather all the data from the form. - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("maxconnections"); - if (x != null && x.length() > 0) - connection.setMaxConnections(Integer.parseInt(x)); - x = variableContext.getParameter("prerequisites_present"); - if (x != null && x.equals("true")) - { - String y = variableContext.getParameter("prerequisites"); - if (y != null && y.length() == 0) - y = null; - connection.setPrerequisiteMapping(y); - } - - String error = MappingConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listmappers.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="editmapper.jsp"/> -<% - } - else if (op.equals("Save")) - { - mappingConnManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewmapper.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listmappers.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - mappingConnManager.delete(connectionName); -%> - <jsp:forward page="listmappers.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listmappers.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listmappers.jsp"/> -<% - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to mapping execution page"); - variableContext.setParameter("target","listmappers.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("output")) - { - // -- Output connection editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - IOutputConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = outputManager.load(connectionName); - } - - if (connection == null) - { - connection = outputManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Gather all the data from the form. - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("maxconnections"); - if (x != null && x.length() > 0) - connection.setMaxConnections(Integer.parseInt(x)); - - String error = OutputConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="editoutput.jsp"/> -<% - } - else if (op.equals("Save")) - { - outputManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewoutput.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - outputManager.delete(connectionName); -%> - <jsp:forward page="listoutputs.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listoutputs.jsp"/> -<% - } - else if (op.equals("ReingestAll")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - org.apache.manifoldcf.agents.system.ManifoldCF.signalOutputConnectionRedo(threadContext,connectionName); -%> - <jsp:forward page="listoutputs.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("RemoveAll")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - org.apache.manifoldcf.agents.system.ManifoldCF.signalOutputConnectionRemoved(threadContext,connectionName); -%> - <jsp:forward page="listoutputs.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to output connection execution page"); - variableContext.setParameter("target","listoutputs.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("transformation")) - { - // -- Output connection editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - ITransformationConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = transformationManager.load(connectionName); - } - - if (connection == null) - { - connection = transformationManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Gather all the data from the form. - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("maxconnections"); - if (x != null && x.length() > 0) - connection.setMaxConnections(Integer.parseInt(x)); - - String error = TransformationConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listtransformations.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="edittransformation.jsp"/> -<% - } - else if (op.equals("Save")) - { - transformationManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewtransformation.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listtransformations.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - transformationManager.delete(connectionName); -%> - <jsp:forward page="listtransformations.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listtransformations.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listtransformations.jsp"/> -<% - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to transformation connection execution page"); - variableContext.setParameter("target","listtransformations.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("notification")) - { - // -- Notification connection editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - // Set up a connection object that is a merge of an existing connection object plus what was posted. - INotificationConnection connection = null; - boolean isNew = true; - String x = variableContext.getParameter("isnewconnection"); - if (x != null) - isNew = x.equals("true"); - - String connectionName = variableContext.getParameter("connname"); - // If the connectionname is not null, load the connection description and prepopulate everything with what comes from it. - if (connectionName != null && connectionName.length() > 0 && !isNew) - { - connection = notificationManager.load(connectionName); - } - - if (connection == null) - { - connection = notificationManager.create(); - if (connectionName != null && connectionName.length() > 0) - connection.setName(connectionName); - } - - // Gather all the data from the form. - connection.setIsNew(isNew); - x = variableContext.getParameter("description"); - if (x != null) - connection.setDescription(x); - x = variableContext.getParameter("classname"); - if (x != null) - connection.setClassName(x); - x = variableContext.getParameter("maxconnections"); - if (x != null && x.length() > 0) - connection.setMaxConnections(Integer.parseInt(x)); - - String error = NotificationConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams()); - - if (error != null) - { - variableContext.setParameter("text",error); - variableContext.setParameter("target","listnotifications.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - - if (op.equals("Continue")) - { - threadContext.save("ConnectionObject",connection); -%> - <jsp:forward page="editnotification.jsp"/> -<% - } - else if (op.equals("Save")) - { - notificationManager.save(connection); - variableContext.setParameter("connname",connectionName); -%> - <jsp:forward page="viewnotification.jsp"/> -<% - } - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listnotifications.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Delete")) - { - try - { - String connectionName = variableContext.getParameter("connname"); - if (connectionName == null) - throw new ManifoldCFException("Missing connection parameter"); - notificationManager.delete(connectionName); -%> - <jsp:forward page="listnotifications.jsp"/> -<% - } - catch (ManifoldCFException e) - { - e.printStackTrace(); - variableContext.setParameter("text",e.getMessage()); - variableContext.setParameter("target","listnotifications.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (op.equals("Cancel")) - { -%> - <jsp:forward page="listnotifications.jsp"/> -<% - } - else - { - // Error - variableContext.setParameter("text","Illegal parameter to notification connection execution page"); - variableContext.setParameter("target","listnotifications.jsp"); -%> - <jsp:forward page="error.jsp"/> -<% - } - } - else if (type != null && op != null && type.equals("job")) - { - // -- Job editing operations -- - if (op.equals("Save") || op.equals("Continue")) - { - try - { - String jobID = variableContext.getParameter("jobid"); - IJobDescription job = null; - if (jobID != null) - { - job = manager.load(new Long(jobID)); - } - if (job == null) - job = manager.createJob(); - - // Figure out what got posted. - String x = variableContext.getParameter("connectionpresent"); - boolean connectionPresent = (x != null && x.equals("true")); - - // Gather the rest of the data. - x = variableContext.getParameter("description"); - if (x != null) - job.setDescription(x); - x = variableContext.getParameter("connectionname"); - if (x != null) - job.setConnectionName(x); - x = variableContext.getParameter("scheduletype"); - if (x != null) - job.setType(Integer.parseInt(x)); - x = variableContext.getParameter("startmethod"); - if (x != null) - job.setStartMethod(Integer.parseInt(x)); - x = variableContext.getParameter("hopcountmode"); - if (x != null) - job.setHopcountMode(Integer.parseInt(x)); - x = variableContext.getParameter("pipeline_count"); - if (x != null) - { - // Do we need to keep the old specifications around, or can we destroy them? - // Not clear that retention is required., so I'm not wasting time trying to implement that. - int count = Integer.parseInt(x); - job.clearPipeline(); - for (int j = 0; j < count; j++) - { - // Gather everything first; we'll look at edits later - int precedent = Integer.parseInt(variableContext.getParameter("pipeline_"+j+"_precedent")); - boolean isOutput = variableContext.getParameter("pipeline_"+j+"_isoutput").equals("true"); - String connectionName = variableContext.getParameter("pipeline_"+j+"_connectionname"); - String description = variableContext.getParameter("pipeline_"+j+"_description"); - job.addPipelineStage(precedent, isOutput, connectionName, description); - } - } - x = variableContext.getParameter("notification_count"); - if (x != null) - { - // Do we need to keep the old specifications around, or can we destroy them? - // Not clear that retention is required., so I'm not wasting time trying to implement that. - int count = Integer.parseInt(x); - job.clearNotifications(); - for (int j = 0; j < count; j++) - { - // Gather everything first; we'll look at edits later - String connectionName = variableContext.getParameter("notification_"+j+"_connectionname"); - String description = variableContext.getParameter("notification_"+j+"_description"); - job.addNotification(connectionName, description); - } - } - - x = variableContext.getParameter("schedulerecords"); - String[] y; - - if (x != null) - { - // Read records and put them into the job description - job.clearScheduleRecords(); - int recordCount = Integer.parseInt(x); - int j = 0; - while (j < recordCount) - { - String indexValue = Integer.toString(j); - EnumeratedValues srDayOfWeek = null; - EnumeratedValues srDayOfMonth = null; - EnumeratedValues srMonthOfYear = null; - EnumeratedValues srYear = null; - EnumeratedValues srHourOfDay = null; - EnumeratedValues srMinutesOfHour = null; - Long srDuration = null; - boolean srRequestMinimum = false; - - y = variableContext.getParameterValues("dayofweek"+indexValue); - if (y != null) - { - if (y.length >= 1 && y[0].equals("none")) - srDayOfWeek = null; - else - srDayOfWeek = new EnumeratedValues(y); - } - y = variableContext.getParameterValues("dayofmonth"+indexValue); - if (y != null) - { - if (y.length >= 1 && y[0].equals("none")) - srDayOfMonth = null; - else - srDayOfMonth = new EnumeratedValues(y); - } - y = variableContext.getParameterValues("monthofyear"+indexValue); - if (y != null) - { - if (y.length >= 1 && y[0].equals("none")) - srMonthOfYear = null; - else - srMonthOfYear = new EnumeratedValues(y); - } - y = variableContext.getParameterValues("year"+indexValue); - if (y != null) - { - if (y.length >= 1 && y[0].equals("none")) - srYear = null; - else - srYear = new EnumeratedValues(y); - } - y = variableContext.getParameterValues("hourofday"+indexValue); - if (y != null) - {
[... 576 lines stripped ...]
