alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Android example source code file (ForwardService.java)

This example Android source code file (ForwardService.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Android by Example" TM.

Java - Android tags/keywords

android, bufferedreader, default_test_host, file, filereader, forward_host_conf, forwardserver, forwardservice, io, ioexception, logtag, os, string, util, utilities, utils

The ForwardService.java Android example source code

/*
 * Copyright (C) 2009 The Android Open Source Project
 *
 * 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 com.android.dumprendertree.forwarder;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import android.os.Environment;
import android.util.Log;

public class ForwardService {

    private ForwardServer fs8000, fs8080, fs8443;

    private static ForwardService inst;

    private static final String LOGTAG = "ForwardService";

    private static final String DEFAULT_TEST_HOST = "android-browser-test.mtv.corp.google.com";

    private static final String FORWARD_HOST_CONF =
        Environment.getExternalStorageDirectory() + "/drt_forward_host.txt";

    private ForwardService() {
        int addr = getForwardHostAddr();
        if (addr != -1) {
            fs8000 = new ForwardServer(8000, addr, 8000);
            fs8080 = new ForwardServer(8080, addr, 8080);
            fs8443 = new ForwardServer(8443, addr, 8443);
        }
    }

    public static ForwardService getForwardService() {
        if (inst == null) {
            inst = new ForwardService();
        }
        return inst;
    }

    public void startForwardService() {
        try {
            if (fs8000 != null)
                fs8000.start();
            if (fs8080 != null)
                fs8080.start();
            if (fs8443 != null)
                fs8443.start();
        } catch (IOException ioe) {
            Log.w(LOGTAG, "failed to start forwarder. http tests will fail.", ioe);
            return;
        }
    }

    public void stopForwardService() {
        if (fs8000 != null) {
            fs8000.stop();
            fs8000 = null;
        }
        if (fs8080 != null) {
            fs8080.stop();
            fs8080 = null;
        }
        if (fs8443 != null) {
            fs8443.stop();
            fs8443 = null;
        }
        Log.v(LOGTAG, "forwarders stopped.");
    }

    private static int getForwardHostAddr() {
        int addr = -1;
        String host = null;
        File forwardHostConf = new File(FORWARD_HOST_CONF);
        if (forwardHostConf.isFile()) {
            BufferedReader hostReader = null;
            try {
                hostReader = new BufferedReader(new FileReader(forwardHostConf));
                host = hostReader.readLine();
                Log.v(LOGTAG, "read forward host from file: " + host);
            } catch (IOException ioe) {
                Log.v(LOGTAG, "cannot read forward host from file", ioe);
            } finally {
                if (hostReader != null) {
                    try {
                        hostReader.close();
                    } catch (IOException ioe) {
                        // burn!!!
                    }
                }
            }
        }
        if (host == null || host.length() == 0)
            host = DEFAULT_TEST_HOST;
        try {
            addr = AdbUtils.resolve(host);
        } catch (IOException ioe) {
            Log.e(LOGTAG, "failed to resolve server address", ioe);
        }
        return addr;
    }
}

Other Android examples (source code examples)

Here is a short list of links related to this Android ForwardService.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.