com.pureinfo.srm.srm2rpms.action.BuildAction.java Source code

Java tutorial

Introduction

Here is the source code for com.pureinfo.srm.srm2rpms.action.BuildAction.java

Source

/**
 * PureInfo Quake
 * @(#)BuildAction.java   1.0 Jun 28, 2006
 * 
 * Copyright(c) 2004-2005, PureInfo Information Technology Corp. Ltd. 
 * All rights reserved, see the license file.
 * 
 * www.pureinfo.com.cn
 */

package com.pureinfo.srm.srm2rpms.action;

import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForward;

import com.pureinfo.ark.interaction.ActionBase;
import com.pureinfo.force.exception.PureException;
import com.pureinfo.srm.srm2rpms.BuildInfo;
import com.pureinfo.srm.srm2rpms.SRM2RPMSImporter;

public class BuildAction extends ActionBase {

    public ActionForward executeAction() throws PureException {
        //why@2006-12-27 
        final String sItemFlags = StringUtils.join(request.getParameterValues("data"), ',');
        logger.debug("data=" + sItemFlags);

        if (!BuildInfo.isRunning()) {
            BuildInfo.setRunning(true);
            new Thread(new Runnable() {
                public void run() {
                    try {
                        SRM2RPMSImporter.run(sItemFlags);
                        BuildInfo.setSuccess(true);
                        BuildInfo.setUpdateTime(new Date());
                        BuildInfo.setUpdated(true);
                        BuildInfo.setRunning(false);
                    } catch (Exception e) {
                        try {
                            BuildInfo.setSuccess(false);
                            BuildInfo.setUpdateTime(new Date());
                            logger.error("build error", e);
                            BuildInfo.setRunning(false);
                        } catch (Exception ex) {
                            logger.error("print error", ex);
                        }
                    }
                }

            }).start();
        }

        request.setAttribute("data", sItemFlags);
        return mapping.findForward("success");
    }

}