
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_java_rmi_activation_DefaultActivationSystem__
#define __gnu_java_rmi_activation_DefaultActivationSystem__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace rmi
      {
        namespace activation
        {
            class DefaultActivationSystem;
        }
      }
    }
  }
  namespace java
  {
    namespace rmi
    {
      namespace activation
      {
          class ActivationSystem;
      }
    }
  }
}

class gnu::java::rmi::activation::DefaultActivationSystem : public ::java::lang::Object
{

public:
  DefaultActivationSystem();
  static ::java::rmi::activation::ActivationSystem * get();
public: // actually package-private
  static ::java::rmi::activation::ActivationSystem * system;
  static jint ACTIVATION_REGISTRY_PORT;
  static ::java::lang::String * AS_PORT_PROPERTY;
  static ::java::lang::String * ACTIVATION_SYSTEM_NAME;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_rmi_activation_DefaultActivationSystem__
