Package org.nimbustools.messaging.gt4_0.ensemble

Source Code of org.nimbustools.messaging.gt4_0.ensemble.EnsembleService

/*
* Copyright 1999-2008 University of Chicago
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

package org.nimbustools.messaging.gt4_0.ensemble;

import org.nimbustools.messaging.gt4_0.generated.types.ReportResponse_Type;
import org.nimbustools.messaging.gt4_0.generated.types.ReportSend_Type;
import org.nimbustools.messaging.gt4_0.generated.types.WorkspaceUnknownFault;
import org.nimbustools.messaging.gt4_0.generated.ensemble.WorkspaceEnsembleFault;
import org.nimbustools.messaging.gt4_0.generated.ensemble.VoidType;
import org.nimbustools.messaging.gt4_0.service.InstanceUtil;
import org.nimbustools.messaging.gt4_0.common.CommonUtil;
import org.nimbustools.messaging.gt4_0.FaultUtil;
import org.globus.wsrf.ResourceException;
import org.globus.wsrf.ResourceContextException;
import org.globus.wsrf.ResourceContext;
import org.globus.wsrf.security.SecurityManager;
import org.nimbustools.api.services.rm.DoesNotExistException;
import org.nimbustools.api.repr.CannotTranslateException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class EnsembleService {

    // -------------------------------------------------------------------------
    // STATIC VARIABLES
    // -------------------------------------------------------------------------

    private static final Log logger =
            LogFactory.getLog(EnsembleService.class.getName());


    // -------------------------------------------------------------------------
    // HELPER
    // -------------------------------------------------------------------------

    protected EnsembleResource getEnsembleResource()
            throws ResourceException, ResourceContextException {
        final ResourceContext context =
                    ResourceContext.getResourceContext();
        return (EnsembleResource)context.getResource();
    }
   

    // -------------------------------------------------------------------------
    // methods corresponding to WorkspaceEnsemblePortType
    // -------------------------------------------------------------------------
   
    public VoidType done(VoidType none)
            throws WorkspaceEnsembleFault, WorkspaceUnknownFault {

        final String callerDN = SecurityManager.getManager().getCaller();

        if (callerDN == null) {
            logger.error("ENS-DONE: no caller identity");
            throw EnsembleUtil.makeEnsembleFault("no caller identity", null);
        }

        try {
            final EnsembleResource resource = getEnsembleResource();
            resource.done(callerDN);
        } catch (DoesNotExistException e) {
            final String err = CommonUtil.genericExceptionMessageWrapper(e);
            throw InstanceUtil.makeUnknownFault(err);
        } catch (Exception e) {
            logger.error(e);
            throw EnsembleUtil.makeEnsembleFault(e.getMessage(), e);
        } catch (Throwable t) {
            throw EnsembleUtil.makeEnsembleFault(
                    FaultUtil.unknown(t, "ensemble.done"), null);
        }

        return new VoidType();
    }

    public ReportResponse_Type report(ReportSend_Type send)
            throws WorkspaceEnsembleFault, WorkspaceUnknownFault {

        try {
            final EnsembleResource resource = getEnsembleResource();
            return resource.reports(send);
        } catch (DoesNotExistException e) {
            final String err = CommonUtil.genericExceptionMessageWrapper(e);
            throw InstanceUtil.makeUnknownFault(err);
        } catch (CannotTranslateException e) {
            logger.fatal(e.getMessage(), e);
            throw EnsembleUtil.makeEnsembleFault("Internal service error",
                                                 null);
        } catch (Exception e) {
            logger.error(e);
            throw EnsembleUtil.makeEnsembleFault(e.getMessage(), e);
        } catch (Throwable t) {
            logger.fatal(t.getMessage(), t);
            throw EnsembleUtil.makeEnsembleFault(
                    FaultUtil.unknown(t, "ensemble.report"), null);
        }
    }
}
TOP

Related Classes of org.nimbustools.messaging.gt4_0.ensemble.EnsembleService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.