Modified: manifoldcf/trunk/framework/crawler-ui/src/main/webapp/execute.jsp URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/execute.jsp?rev=1685187&r1=1685186&r2=1685187&view=diff ============================================================================== --- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/execute.jsp (original) +++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/execute.jsp Fri Jun 12 22:54:43 2015 @@ -2,1378 +2,1666 @@ <% - /* $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. - */ -%> - -<% - // 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"/> -<% -} 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) { - 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"/> -<% -} 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"/> -<% - } -} 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"); +* 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. +*/ %> -<jsp:forward page="error.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"/> <% - } -} else { + } + 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) + { + 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
[... 535 lines stripped ...]
