[ 
https://issues.apache.org/jira/browse/STORM-1230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15144193#comment-15144193
 ] 

ASF GitHub Bot commented on STORM-1230:
---------------------------------------

Github user abhishekagarwal87 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/1100#discussion_r52710990
  
    --- Diff: storm-core/src/jvm/org/apache/storm/ProcessSimulator.java ---
    @@ -0,0 +1,89 @@
    +/**
    + * 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.
    + */
    +package org.apache.storm;
    +import org.apache.storm.daemon.Shutdownable;
    +
    +import java.util.Collection;
    +import java.util.Set;
    +import java.util.concurrent.ConcurrentHashMap;
    +
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
    +public class ProcessSimulator {
    +    private static Logger LOG = 
LoggerFactory.getLogger(ProcessSimulator.class);
    +    protected static Object lock = new Object();
    +    protected static ConcurrentHashMap<String, Shutdownable> processMap = 
new ConcurrentHashMap<String, Shutdownable>();
    +
    +    /**
    +     * Register a process' handle
    +     * 
    +     * @param pid
    +     * @param shutdownable
    +     */
    +    public static void registerProcess(String pid, Shutdownable 
shutdownable) {
    +        processMap.put(pid, shutdownable);
    +    }
    +
    +    /**
    +     * Get a process' handle
    +     * 
    +     * @param pid
    +     * @return
    +     */
    +    protected static Shutdownable getProcessHandle(String pid) {
    +        return processMap.get(pid);
    +    }
    +
    +    /**
    +     * Get all process handles
    +     * 
    +     * @return
    +     */
    +    public static Collection<Shutdownable> getAllProcessHandles() {
    +        return processMap.values();
    +    }
    +
    +    /**
    +     * Kill a process
    +     * 
    +     * @param pid
    +     */
    +    public static void killProcess(String pid) {
    +        synchronized (lock) {
    +            LOG.info("Begin killing process " + pid);
    +            Shutdownable shutdownHandle = getProcessHandle(pid);
    +            if (shutdownHandle != null) {
    +                shutdownHandle.shutdown();
    +            }
    +            processMap.remove(pid);
    +            LOG.info("Successfully killing process " + pid);
    --- End diff --
    
    and should this be logged only if pid is present?


> port  backtype.storm.process-simulator to java
> ----------------------------------------------
>
>                 Key: STORM-1230
>                 URL: https://issues.apache.org/jira/browse/STORM-1230
>             Project: Apache Storm
>          Issue Type: New Feature
>          Components: storm-core
>            Reporter: Robert Joseph Evans
>            Assignee: Zhuo Liu
>              Labels: java-migration, jstorm-merger
>
> Provides a way to simulate a worker process using threads instead for local 
> mode.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to