Package com.sun.jini.test.impl.start

Source Code of com.sun.jini.test.impl.start.ServiceDescriptorProxyPreparationTest

/*
* 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 com.sun.jini.test.impl.start;

import java.util.logging.Level;


import java.io.File;
import java.io.IOException;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.net.URL;
import java.rmi.activation.ActivationException;
import java.rmi.activation.ActivationGroup;
import java.rmi.activation.ActivationGroupID;
import java.rmi.activation.ActivationID;
import java.rmi.activation.ActivationGroupDesc;
import java.rmi.activation.ActivationDesc;
import java.rmi.activation.UnknownGroupException;
import java.rmi.MarshalledObject;
import java.rmi.RemoteException;
import java.rmi.UnmarshalException;
import java.util.Properties;
import java.util.Arrays;
import java.util.List;
import java.util.Enumeration;

import com.sun.jini.qa.harness.TestException;
import com.sun.jini.qa.harness.SharedGroupAdmin;
import com.sun.jini.start.ActivateWrapper;
import com.sun.jini.start.ActivateWrapper.ActivateDesc;
import com.sun.jini.start.ClassLoaderUtil;
import com.sun.jini.start.ServiceStarter;
import com.sun.jini.start.NonActivatableServiceDescriptor;
//import com.sun.jini.start.NonActivatableServiceDescriptor.Created;
import com.sun.jini.start.SharedActivatableServiceDescriptor;
//import com.sun.jini.start.SharedActivatableServiceDescriptor.Created;
import com.sun.jini.start.SharedGroup;
import net.jini.config.EmptyConfiguration;
import net.jini.event.EventMailbox;
import net.jini.security.BasicProxyPreparer;
import net.jini.security.ProxyPreparer;

public class ServiceDescriptorProxyPreparationTest extends StarterBase {

    private final RemoteException antiMercuryException =
  new RemoteException("Mercury service encountered");

    private final ProxyPreparer antiMercuryProxyPreparer =
  new ProxyPreparer() {
      public Object prepareProxy(Object proxy) throws RemoteException {
    if (proxy instanceof EventMailbox) {
        throw antiMercuryException;
    }
                return null;
      }
  };

    private final ProxyPreparer noOpProxyPreparer =
  new BasicProxyPreparer();

    public void run() throws Exception {
        SharedGroup sg = null;
        sg = (SharedGroup)manager.startService("sharedGroup");
  SharedGroupAdmin sga = null;
  sga = (SharedGroupAdmin)manager.getAdmin(sg);

        String codebase =
            getConfig().genIntegrityCodebase(
                getConfig().getStringConfigVal(
                    "net.jini.event.EventMailbox.codebase", null), null);
        logger.log(Level.INFO, "codebase = " + codebase);
        String policy = getConfig().getStringConfigVal(
            "net.jini.event.EventMailbox.policyfile", null);
        logger.log(Level.INFO, "policy = " + policy);
        String act_impl = getConfig().getStringConfigVal(
            "net.jini.event.EventMailbox.activatable.impl", null);
        logger.log(Level.INFO, "activatable impl = " + act_impl);
        String trans_impl = getConfig().getStringConfigVal(
            "net.jini.event.EventMailbox.transient.impl", null);
        logger.log(Level.INFO, "transient impl = " + trans_impl);
        String classpath = getConfig().getStringConfigVal(
            "net.jini.event.EventMailbox.classpath", null);
        logger.log(Level.INFO, "classpath = " + classpath);
        if (codebase == null || policy == null ||
            act_impl == null || trans_impl == null ||
            classpath == null) {
            throw new TestException(
                "Service codebase, classpath, "
                + "impl, or policy was null");
        }

        String config = null;
  config =
      ServiceStarterCreateBadTransientServiceTest.getServiceConfigFile().toString();
 

  SharedActivatableServiceDescriptor antiMercuryInnerProxy =
            new SharedActivatableServiceDescriptor(
    codebase,
                policy,
                classpath,
                act_impl,
                sga.getSharedGroupLog().toString(),
                new String[] { config },
    antiMercuryProxyPreparer,
    noOpProxyPreparer,
    true);
        try {
            SharedActivatableServiceDescriptor.Created created =
                (SharedActivatableServiceDescriptor.Created)antiMercuryInnerProxy.create(
        EmptyConfiguration.INSTANCE);
      throw new TestException(
          "Created proxy: " + created.proxy
    + " with a bad inner proxy descriptor: "
    + antiMercuryInnerProxy);
        } catch (Exception e) {
      logger.log(Level.INFO,
    "Caught failure -- with a bad inner proxy descriptor: "
          + e);
            e.printStackTrace();
      if (!antiMercuryException.equals(e)) {
          throw new TestException("Caught unexpected exception");
      } else {
          logger.log(Level.INFO,
        "Expected failure caught.");
      }
        }

  config =
      ServiceStarterCreateBadTransientServiceTest.getServiceConfigFile().toString();
  SharedActivatableServiceDescriptor antiMercuryOuterProxy =
            new SharedActivatableServiceDescriptor(
    codebase,
                policy,
                classpath,
                act_impl,
                sga.getSharedGroupLog().toString(),
                new String[] { config },
    noOpProxyPreparer,
                antiMercuryProxyPreparer,
    true);
        try {
            SharedActivatableServiceDescriptor.Created created =
                (SharedActivatableServiceDescriptor.Created)antiMercuryOuterProxy.create(
        EmptyConfiguration.INSTANCE);
      throw new TestException(
          "Created proxy: " + created.proxy
    + " with a bad outer proxy descriptor: "
    + antiMercuryOuterProxy);
        } catch (Exception e) {
      logger.log(Level.INFO,
    "Caught failure -- with a bad outer proxy descriptor: "
          + e);
            e.printStackTrace();
      if (!antiMercuryException.equals(e)) {
          throw new TestException("Caught unexpected exception");
      } else {
          logger.log(Level.INFO,
        "Expected failure caught.");
      }
        }

  config =
      ServiceStarterCreateBadTransientServiceTest.getServiceConfigFile().toString();
  SharedActivatableServiceDescriptor antiMercuryInnerOuterProxy =
            new SharedActivatableServiceDescriptor(
    codebase,
                policy,
                classpath,
                act_impl,
                sga.getSharedGroupLog().toString(),
                new String[] { config },
    antiMercuryProxyPreparer,
                antiMercuryProxyPreparer,
    true);
        try {
            SharedActivatableServiceDescriptor.Created created =
                (SharedActivatableServiceDescriptor.Created)antiMercuryInnerOuterProxy.create(
        EmptyConfiguration.INSTANCE);
      throw new TestException(
          "Created proxy: " + created.proxy
    + " with a bad inner-outer proxy descriptor: "
    + antiMercuryInnerOuterProxy);
        } catch (Exception e) {
      logger.log(Level.INFO,
    "Caught failure -- with a bad inner-outer proxy descriptor: "
          + e);
            e.printStackTrace();
      if (!antiMercuryException.equals(e)) {
          throw new TestException("Caught unexpected exception");
      } else {
          logger.log(Level.INFO,
        "Expected failure caught.");
      }
        }

  config =
      ServiceStarterCreateBadTransientServiceTest.getServiceConfigFile().toString();
  NonActivatableServiceDescriptor antiNonActMercuryProxy =
            new NonActivatableServiceDescriptor(
    codebase,
                policy,
                classpath,
                trans_impl,
                new String[] { config },
    antiMercuryProxyPreparer);
        try {
            NonActivatableServiceDescriptor.Created created =
                (NonActivatableServiceDescriptor.Created)antiNonActMercuryProxy.create(
        EmptyConfiguration.INSTANCE);
      throw new TestException(
          "Created proxy: " + created.proxy
    + " with a bad trans proxy descriptor: "
    + antiNonActMercuryProxy);
        } catch (Exception e) {
      logger.log(Level.INFO,
    "Caught failure -- with a bad trans proxy descriptor: "
          + e);
            e.printStackTrace();
      if (!antiMercuryException.equals(e)) {
          throw new TestException("Caught unexpected exception");
      } else {
          logger.log(Level.INFO,
        "Expected failure caught.");
      }
        }
    }
}
TOP

Related Classes of com.sun.jini.test.impl.start.ServiceDescriptorProxyPreparationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.