@@ -0,0 +1,1270 @@
+/*%0A * Copyright 2014 OrgSync%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A*/%0Apackage com.orgsync.api;%0A%0Aimport java.util.concurrent.ThreadFactory;%0Aimport java.util.concurrent.atomic.AtomicLong;%0A%0A/**%0A * Create threads with a name...  Roll my own so I don't have to include a library.%0A *%0A * @author steffyj%0A */%0A/* package */class NamedThreadFactory implements ThreadFactory %7B%0A%0A    private final String namePrefix;%0A    private final AtomicLong counter = new AtomicLong(0);%0A%0A    /* package */NamedThreadFactory(String namePrefix) %7B%0A        this.namePrefix = namePrefix;%0A    %7D%0A%0A    @Override%0A    public Thread newThread(Runnable r) %7B%0A        String name = String.format(%22%25s-%25d%22, namePrefix, counter.incrementAndGet());%0A        return new Thread(r, name);%0A    %7D%0A%7D%0A

Add `NamedThreadFactory` for use with `Executor`.