com.francetelecom.admindm.changedustate.callviaacs.CallChangeDUStateUpdateCapabilityOnEdgeAcs.java Source code

Java tutorial

Introduction

Here is the source code for com.francetelecom.admindm.changedustate.callviaacs.CallChangeDUStateUpdateCapabilityOnEdgeAcs.java

Source

/**
 * Product Name : Modus TR-069 Orange
 *
 * Copyright c 2014 Orange
 *
 * This software is distributed 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 or see the "license.txt" file for
 * more details
 *
 * 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.
 *
 * Author: Anne Gerodolle - Orange
 * Mail: anne.gerodolle@orange.com
 * Author: Antonin Chazalet - Orange
 * Mail: antonin.chazalet@orange.com;antonin.chazale@gmail.com
 */

package com.francetelecom.admindm.changedustate.callviaacs;

import java.io.IOException;
import java.security.InvalidParameterException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.PostMethod;
import org.json.simple.JSONObject;

/**
 * @author: Anne Gerodolle
 * @mail: anne.gerodolle@orange.com
 * @author: JZBV7415
 * @mail: antonin.chazalet@orange.com,antonin.chazalet@gmail.com
 */
public class CallChangeDUStateUpdateCapabilityOnEdgeAcs {

    /**
     * @param args
     */
    public static void main(final String[] args) {
        HttpClient client = new HttpClient();
        // client.getHostConfiguration().setProxy("", );

        String host = null;
        String port = null;
        String address = "http://" + host + ":" + port + "/edge/api/";

        String acsUsername = null;
        String acsPassword = null;

        if (host == null || port == null || acsUsername == null || acsPassword == null) {
            throw new InvalidParameterException("Fill host: " + host + ", port: " + port + ", acsUsername: "
                    + acsUsername + ", and acsPassword: " + acsPassword + ".");
        }

        String realm = "NBBS_API_Realm";

        AuthScope authscope = new AuthScope(host, Integer.parseInt(port), realm);

        // client.getState().setCredentials(realm, host,
        // new UsernamePasswordCredentials(acsUsername, acsPassword));

        client.getState().setCredentials(authscope, new UsernamePasswordCredentials(acsUsername, acsPassword));

        PostMethod post = null;

        // -----
        // ----- Execution de la capability : changeDUStateUpdate
        // -----

        post = new PostMethod(address + "capability/execute");

        post.addParameter(new NameValuePair("deviceId", "10003"));
        post.addParameter(new NameValuePair("timeoutMs", "60000"));
        post.addParameter(new NameValuePair("capability", "\"changeDUStateUpdate\""));

        // UUID: string
        // Version: string
        // URL: string
        // Username: string
        // Password: string

        JSONObject object = new JSONObject();
        object.put("UUID", "45");
        object.put("Version", "1.0.0");
        object.put("URL", "http://127.0.0.1:8085/a/org.apache.felix.http.jetty-2.2.0.jar");
        object.put("Username", "Username_value");
        object.put("Password", "Password_value");
        post.addParameter(new NameValuePair("input", object.toString()));

        post.setDoAuthentication(true);

        // post.addParameter(new NameValuePair("deviceId", "60001"));

        // -----
        // ----- Partie commune : Execution du post
        // -----

        try {
            int status = client.executeMethod(post);
            System.out.println("status: " + status);
            String resp = post.getResponseBodyAsString();
            System.out.println("resp: " + resp);
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // release any connection resources used by the method
            post.releaseConnection();
        }
    }
}