[REEF-97] Add the REEF.NET code base The REEF.Net REEF code is now found in the lang/cs/ folder.
JIRA: [REEF-97] https://issues.apache.org/jira/browse/REEF-97 Pull Request: This closes #56 Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/2ae282de Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/2ae282de Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/2ae282de Branch: refs/heads/master Commit: 2ae282de19a1a6dec2f8563936a3fac19232c76f Parents: 5cc6071 Author: Julia Wang <[email protected]> Authored: Fri Jan 23 13:34:36 2015 -0800 Committer: Markus Weimer <[email protected]> Committed: Thu Jan 29 12:39:17 2015 -0800 ---------------------------------------------------------------------- lang/cs/.gitignore | 10 + lang/cs/.nuget/NuGet.Config | 24 + lang/cs/.nuget/NuGet.targets | 162 +++ lang/cs/ReefDotNet.sln | 161 +++ .../CLRBridgeClient/CLRBridgeClient.cs | 148 +++ .../CLRBridgeClient/CLRBridgeClient.csproj | 114 ++ .../CLRBridgeClient/Properties/AssemblyInfo.cs | 55 + .../reef-applications/CLRBridgeClient/run.cmd | 45 + .../reef-applications/Evaluator/Evaluator.cs | 260 ++++ .../Evaluator/Evaluator.csproj | 105 ++ .../Evaluator/Properties/AssemblyInfo.cs | 55 + .../reef-applications/Evaluator/packages.config | 22 + .../ReefCommon/ClientJobStatusHandler.cs | 142 +++ .../REEF/reef-common/ReefCommon/Constants.cs | 38 + .../EvaluatorHeartBeatSanityChecker.cs | 55 + .../reef-common/ReefCommon/FailedRuntime.cs | 49 + .../ReefCommon/IContextAndTaskSubmittable.cs | 55 + .../ReefCommon/IContextSubmittable.cs | 42 + .../ReefCommon/IJobMessageObserver.cs | 30 + .../reef-common/ReefCommon/ITaskSubmittable.cs | 35 + .../ReefCommon/Properties/AssemblyInfo.cs | 55 + .../reef-common/ReefCommon/ReefCommon.csproj | 215 ++++ .../ReefCommon/api/AbstractFailure.cs | 142 +++ .../ReefCommon/api/IAbstractFailure.cs | 25 + .../REEF/reef-common/ReefCommon/api/IFailure.cs | 57 + .../ReefCommon/api/IResourceLaunchHandler.cs | 28 + .../ReefCommon/api/IResourceReleaseHandler.cs | 28 + .../ReefCommon/api/IResourceRequestHandler.cs | 28 + .../ReefCommon/avro/AvroDriverInfo.cs | 65 + .../ReefCommon/avro/AvroHttpRequest.cs | 79 ++ .../ReefCommon/avro/AvroHttpSerializer.cs | 36 + .../ReefCommon/avro/AvroJsonSerializer.cs | 52 + .../ReefCommon/avro/AvroReefServiceInfo.cs | 55 + .../ReefCommon/catalog/INodeDescriptor.cs | 36 + .../ReefCommon/catalog/IRackDescriptor.cs | 25 + .../ReefCommon/catalog/IResourceCatalog.cs | 37 + .../ReefCommon/catalog/NodeDescriptorImpl.cs | 116 ++ .../ReefCommon/catalog/RackDescriptorImpl.cs | 75 ++ .../ReefCommon/catalog/ResourceCatalogImpl.cs | 95 ++ .../ReefCommon/catalog/capabilities/CPU.cs | 60 + .../catalog/capabilities/ICapability.cs | 25 + .../ReefCommon/catalog/capabilities/RAM.cs | 51 + .../ReefCommon/context/ContextMessage.cs | 66 + .../ReefCommon/context/IContextMessage.cs | 28 + .../context/IContextMessageHandler.cs | 27 + .../ReefCommon/context/IContextMessageSource.cs | 28 + .../DefaultLocalHttpDriverConnection.cs | 45 + .../DefaultYarnClusterHttpDriverConnection.cs | 44 + .../DefaultYarnOneBoxHttpDriverConnection.cs | 46 + .../ReefCommon/evaluator/DriverInformation.cs | 136 ++ .../evaluator/EvaluatorOperationState.cs | 39 + .../evaluator/EvaluatorRuntimeState.cs | 39 + .../ReefCommon/evaluator/EvaluatorType.cs | 39 + .../ReefCommon/evaluator/IDriverConnection.cs | 26 + .../ReefCommon/events/IContextStart.cs | 26 + .../ReefCommon/events/IContextStop.cs | 26 + .../ReefCommon/exceptions/EvaluatorException.cs | 75 ++ .../ReefCommon/exceptions/JobException.cs | 58 + .../reef-common/ReefCommon/io/INameClient.cs | 71 ++ .../reef-common/ReefCommon/io/NameAssignment.cs | 60 + .../ReefCommon/io/NamingConfiguration.cs | 45 + .../ReefCommon/io/NamingConfigurationOptions.cs | 36 + .../REEF/reef-common/ReefCommon/packages.config | 26 + .../ReefCommon/protobuf/cs/ClientRuntime.pb.cs | 147 +++ .../ReefCommon/protobuf/cs/DriverRuntime.pb.cs | 339 +++++ .../protobuf/cs/EvaluatorRunTime.pb.cs | 305 +++++ .../ReefCommon/protobuf/cs/ReefProtocol.pb.cs | 78 ++ .../ReefCommon/protobuf/cs/ReefService.pb.cs | 393 ++++++ .../ReefCommon/protobuf/cs/Serializer.cs | 130 ++ .../cs/codec/EvaluatorHeartbeatProtoCodec.cs | 41 + .../protobuf/cs/codec/REEFMessageCodec.cs | 37 + .../protobuf/proto/client_runtime.proto | 56 + .../protobuf/proto/driver_runtime.proto | 90 ++ .../protobuf/proto/evaluator_runtime.proto | 91 ++ .../protobuf/proto/reef_protocol.proto | 44 + .../protobuf/proto/reef_service_protos.proto | 117 ++ .../ReefCommon/runtime/MachineStatus.cs | 137 +++ .../ReefCommon/runtime/evaluator/Constants.cs | 40 + .../runtime/evaluator/EvaluatorRuntime.cs | 255 ++++ .../runtime/evaluator/EvaluatorSettings.cs | 185 +++ .../runtime/evaluator/HeartBeatManager.cs | 390 ++++++ .../evaluator/ReefMessageProtoObserver.cs | 140 +++ .../context/ContextClientCodeException.cs | 70 ++ .../evaluator/context/ContextConfiguration.cs | 140 +++ .../evaluator/context/ContextLifeCycle.cs | 105 ++ .../runtime/evaluator/context/ContextManager.cs | 362 ++++++ .../runtime/evaluator/context/ContextRuntime.cs | 478 ++++++++ .../evaluator/context/ContextStartImpl.cs | 33 + .../evaluator/context/ContextStopImpl.cs | 33 + .../evaluator/context/RootContextLauncher.cs | 125 ++ .../runtime/evaluator/task/CloseEventImpl.cs | 48 + .../runtime/evaluator/task/DriverMessageImpl.cs | 52 + .../runtime/evaluator/task/SuspendEventImpl.cs | 48 + .../evaluator/task/TaskClientCodeException.cs | 65 + .../runtime/evaluator/task/TaskLifeCycle.cs | 69 ++ .../runtime/evaluator/task/TaskRuntime.cs | 328 +++++ .../runtime/evaluator/task/TaskStartImpl.cs | 34 + .../runtime/evaluator/task/TaskState.cs | 40 + .../runtime/evaluator/task/TaskStatus.cs | 330 +++++ .../runtime/evaluator/task/TaskStopImpl.cs | 35 + .../evaluator/utils/EvaluatorConfigurations.cs | 121 ++ .../runtime/evaluator/utils/RemoteManager.cs | 25 + .../reef-common/ReefCommon/services/IService.cs | 25 + .../ReefCommon/services/ServiceConfiguration.cs | 83 ++ .../services/ServicesConfigurationOptions.cs | 31 + .../ReefCommon/tasks/IDriverMessageHandler.cs | 31 + .../ReefCommon/tasks/IRunningTask.cs | 53 + .../REEF/reef-common/ReefCommon/tasks/ITask.cs | 28 + .../ReefCommon/tasks/ITaskMessageSource.cs | 31 + .../ReefCommon/tasks/TaskConfiguration.cs | 148 +++ .../tasks/TaskConfigurationOptions.cs | 69 ++ .../reef-common/ReefCommon/tasks/TaskMessage.cs | 68 + .../defaults/DefaultDriverMessageHandler.cs | 42 + .../tasks/defaults/DefaultTaskMessageSource.cs | 49 + .../ReefCommon/tasks/events/ICloseEvent.cs | 28 + .../ReefCommon/tasks/events/IDriverMessage.cs | 28 + .../ReefCommon/tasks/events/ISuspendEvent.cs | 25 + .../ReefCommon/tasks/events/ITaskStart.cs | 26 + .../ReefCommon/tasks/events/ITaskStop.cs | 26 + .../reef-common/ReefDriver/ClientManager.cs | 43 + .../REEF/reef-common/ReefDriver/Constants.cs | 114 ++ .../ReefDriver/DriverConfigGenerator.cs | 151 +++ .../ReefDriver/DriverConfigurationSettings.cs | 135 ++ .../reef-common/ReefDriver/DriverManager.cs | 540 ++++++++ .../ReefDriver/DriverRuntimeConfiguration.cs | 64 + .../DriverRuntimeConfigurationOptions.cs | 42 + .../ReefDriver/DriverSubmissionSettings.cs | 185 +++ .../reef-common/ReefDriver/EvaluatorManager.cs | 655 ++++++++++ .../REEF/reef-common/ReefDriver/FailedJob.cs | 51 + .../REEF/reef-common/ReefDriver/IDriver.cs | 28 + .../reef-common/ReefDriver/IStartHandler.cs | 26 + .../ReefDriver/Properties/AssemblyInfo.cs | 55 + .../reef-common/ReefDriver/ReefDriver.csproj | 208 ++++ .../ReefDriver/bridge/BridgeLogger.cs | 65 + .../ReefDriver/bridge/ClrClientHelper.cs | 175 +++ .../ReefDriver/bridge/ClrHandlerHelper.cs | 177 +++ .../ReefDriver/bridge/ClrSystemHandler.cs | 53 + .../bridge/ClrSystemHandlerWrapper.cs | 273 +++++ .../ReefDriver/bridge/DriverBridge.cs | 321 +++++ .../bridge/DriverBridgeConfiguration.cs | 273 +++++ .../bridge/DriverBridgeConfigurationOptions.cs | 154 +++ .../ReefDriver/bridge/HttpMessage.cs | 60 + .../ReefDriver/bridge/HttpServerHandler.cs | 165 +++ .../ReefDriver/bridge/HttpServerPort.cs | 33 + .../ReefDriver/bridge/IHttpHandler.cs | 39 + .../ReefDriver/bridge/IHttpMessage.cs | 33 + .../ReefDriver/bridge/ReefHttpRequest.cs | 49 + .../ReefDriver/bridge/ReefHttpResponse.cs | 30 + .../bridge/clr2java/IActiveContextClr2Java.cs | 36 + .../clr2java/IAllocatedEvaluaotrClr2Java.cs | 42 + .../bridge/clr2java/IClosedContextClr2Java.cs | 34 + .../ReefDriver/bridge/clr2java/IClr2Java.cs | 26 + .../clr2java/ICompletedEvaluatorClr2Java.cs | 30 + .../bridge/clr2java/ICompletedTaskClr2Java.cs | 28 + .../bridge/clr2java/IContextMessageClr2Java.cs | 30 + .../clr2java/IEvaluatorRequestorClr2Java.cs | 28 + .../bridge/clr2java/IFailedContextClr2Java.cs | 36 + .../bridge/clr2java/IFailedEvaluatorClr2Java.cs | 30 + .../bridge/clr2java/IFailedTaskClr2Java.cs | 28 + .../clr2java/IHttpServerBridgeClr2Java.cs | 34 + .../bridge/clr2java/IRunningTaskClr2Java.cs | 30 + .../bridge/clr2java/ISuspendedTaskClr2Java.cs | 42 + .../bridge/clr2java/ITaskMessageClr2Java.cs | 26 + .../ReefDriver/bridge/events/ActiveContext.cs | 117 ++ .../bridge/events/AllocatedEvaluator.cs | 175 +++ .../ReefDriver/bridge/events/ClosedContext.cs | 98 ++ .../bridge/events/CompletedEvaluator.cs | 60 + .../ReefDriver/bridge/events/CompletedTask.cs | 75 ++ .../ReefDriver/bridge/events/ContextMessage.cs | 53 + .../bridge/events/EvaluatorRequstor.cs | 95 ++ .../ReefDriver/bridge/events/FailedContext.cs | 110 ++ .../ReefDriver/bridge/events/FailedEvaluator.cs | 72 ++ .../ReefDriver/bridge/events/FailedTask.cs | 140 +++ .../ReefDriver/bridge/events/RunningTask.cs | 97 ++ .../ReefDriver/bridge/events/SuspendedTask.cs | 81 ++ .../ReefDriver/bridge/events/TaskMessage.cs | 64 + .../ReefDriver/context/ContextConfiguration.cs | 93 ++ .../context/ContextConfigurationOptions.cs | 60 + .../ReefDriver/context/EvaluatorContext.cs | 148 +++ .../ReefDriver/context/IActiveContext.cs | 29 + .../ReefDriver/context/IClosedContext.cs | 26 + .../reef-common/ReefDriver/context/IContext.cs | 45 + .../ReefDriver/context/IFailedContext.cs | 28 + .../defaults/DefaultContextMessageSource.cs | 42 + .../defaults/DefaultContextStartHandler.cs | 48 + .../defaults/DefaultContextStopHandler.cs | 48 + .../ReefDriver/contract/IBridgeContract.cs | 26 + .../defaults/DefaultClientCloseHandler.cs | 53 + .../DefaultClientCloseWithMessageHandler.cs | 54 + .../defaults/DefaultClientMessageHandler.cs | 54 + .../defaults/DefaultContextActiveHandler.cs | 56 + .../defaults/DefaultContextClosureHandler.cs | 55 + .../defaults/DefaultContextFailureHandler.cs | 51 + .../defaults/DefaultContextMessageHandler.cs | 55 + .../defaults/DefaultCustomTraceListener.cs | 45 + .../DefaultDriverRestartContextActiveHandler.cs | 56 + .../defaults/DefaultDriverRestartHandler.cs | 54 + .../DefaultDriverRestartTaskRunningHandler.cs | 54 + .../DefaultEvaluatorAllocationHandler.cs | 57 + .../DefaultEvaluatorCompletionHandler.cs | 54 + .../defaults/DefaultEvaluatorFailureHandler.cs | 55 + .../DefaultEvaluatorRequestorHandler.cs | 61 + .../ReefDriver/defaults/DefaultHttpHandler.cs | 49 + .../defaults/DefaultTaskCompletionHandler.cs | 60 + .../defaults/DefaultTaskFailureHandler.cs | 53 + .../defaults/DefaultTaskMessageHandler.cs | 55 + .../defaults/DefaultTaskRunningHandler.cs | 54 + .../defaults/DefaultTaskSuspensionHandler.cs | 53 + .../evaluator/EvaluatorDescriptorImpl.cs | 218 ++++ .../ReefDriver/evaluator/EvaluatorRequest.cs | 108 ++ .../evaluator/EvaluatorRequestBuilder.cs | 60 + .../ReefDriver/evaluator/IAllocatedEvaluator.cs | 55 + .../ReefDriver/evaluator/ICompletedEvaluator.cs | 30 + .../evaluator/IEvaluatorDescriptor.cs | 57 + .../ReefDriver/evaluator/IEvaluatorRequest .cs | 42 + .../ReefDriver/evaluator/IEvaluatorRequestor.cs | 47 + .../ReefDriver/evaluator/IFailedEvaluator.cs | 41 + .../REEF/reef-common/ReefDriver/packages.config | 24 + .../ReefDriver/task/ICompletedTask.cs | 29 + .../reef-common/ReefDriver/task/IFailedTask.cs | 30 + .../reef-common/ReefDriver/task/IRunningTask.cs | 65 + .../ReefDriver/task/ISuspendedTask.cs | 29 + .../reef-common/ReefDriver/task/ITaskMessage.cs | 28 + .../ReefDriver/task/RunningTaskImpl.cs | 127 ++ .../HelloCLRBridge/HelloCLRBridge.csproj | 118 ++ .../HelloCLRBridge/HelloTraceListener.cs | 48 + .../HelloCLRBridge/Properties/AssemblyInfo.cs | 55 + .../AnotherHelloAllocatedEvaluatorHandler.cs | 48 + .../handlers/HelloActiveContextHandler.cs | 82 ++ .../handlers/HelloAllocatedEvaluatorHandler.cs | 131 ++ .../handlers/HelloCompletedEvaluatorHandler.cs | 59 + .../HelloDriverRestartActiveContextHandler.cs | 69 ++ .../HelloDriverRestartRunningTaskHandler.cs | 67 + .../handlers/HelloEvaluatorRequestorHandler.cs | 65 + .../handlers/HelloFailedEvaluatorHandler.cs | 68 + .../handlers/HelloFailedTaskHandler.cs | 67 + .../HelloCLRBridge/handlers/HelloHttpHandler.cs | 51 + .../handlers/HelloRestartHandler.cs | 48 + .../handlers/HelloRunningTaskHandler.cs | 65 + .../handlers/HelloSimpleEventHandlers.cs | 421 +++++++ .../handlers/HelloStartHandler.cs | 64 + .../handlers/HelloTaskMessageHandler.cs | 54 + .../Properties/AssemblyInfo.cs | 55 + .../RetainedEvalCLRBridge.csproj | 98 ++ .../handler/RetainedEvalActiveContextHandler.cs | 56 + .../RetainedEvalAllocatedEvaluatorHandler.cs | 48 + .../RetainedEvalEvaluatorRequestorHandler.cs | 48 + .../handler/RetainedEvalStartHandler.cs | 90 ++ .../Naming/Codec/NamingLookupRequestCodec.cs | 41 + .../Naming/Codec/NamingLookupResponseCodec.cs | 55 + .../Naming/Codec/NamingRegisterRequestCodec.cs | 47 + .../Naming/Codec/NamingRegisterResponseCodec.cs | 44 + .../Codec/NamingUnregisterRequestCodec.cs | 41 + .../Naming/Contracts/AvroNamingAssignment.cs | 62 + .../Naming/Contracts/AvroNamingLookupRequest.cs | 51 + .../Contracts/AvroNamingLookupResponse.cs | 51 + .../Contracts/AvroNamingRegisterRequest.cs | 62 + .../Contracts/AvroNamingUnRegisterRequest.cs | 50 + .../Network/Naming/Events/NamingEvent.cs | 35 + .../Naming/Events/NamingGetAllRequest.cs | 29 + .../Naming/Events/NamingGetAllResponse.cs | 38 + .../Naming/Events/NamingLookupRequest.cs | 36 + .../Naming/Events/NamingLookupResponse.cs | 39 + .../Naming/Events/NamingRegisterRequest.cs | 36 + .../Naming/Events/NamingRegisterResponse.cs | 34 + .../Naming/Events/NamingUnregisterRequest.cs | 34 + .../Naming/Events/NamingUnregisterResponse.cs | 34 + .../REEF/reef-io/Network/Naming/INameServer.cs | 69 ++ .../REEF/reef-io/Network/Naming/NameClient.cs | 279 +++++ .../reef-io/Network/Naming/NameLookupClient.cs | 97 ++ .../Network/Naming/NameRegisterClient.cs | 67 + .../REEF/reef-io/Network/Naming/NameServer.cs | 196 +++ .../Network/Naming/NamingConfiguration.cs | 50 + .../Naming/NamingConfigurationOptions.cs | 41 + .../Observers/NamingGetAllRequestObserver.cs | 47 + .../Observers/NamingLookupRequestObserver.cs | 50 + .../Observers/NamingRegisterRequestObserver.cs | 51 + .../NamingUnregisterRequestObserver.cs | 47 + .../Source/REEF/reef-io/Network/Network.csproj | 159 +++ .../NetworkService/Codec/ControlMessageCodec.cs | 43 + .../NetworkService/Codec/NsMessageCodec.cs | 85 ++ .../NetworkService/Codec/NsMessageProto.cs | 63 + .../Network/NetworkService/ControlMessage.cs | 39 + .../Network/NetworkService/IConnection.cs | 40 + .../Network/NetworkService/INetworkService.cs | 58 + .../Network/NetworkService/NetworkService.cs | 156 +++ .../NetworkServiceConfiguration.cs | 57 + .../NetworkService/NetworkServiceOptions.cs | 33 + .../Network/NetworkService/NsConnection.cs | 139 +++ .../reef-io/Network/NetworkService/NsMessage.cs | 71 ++ .../reef-io/Network/Properties/AssemblyInfo.cs | 55 + .../Utilities/BlockingCollectionExtensions.cs | 78 ++ .../REEF/reef-io/Network/Utilities/Utils.cs | 76 ++ .../Source/REEF/reef-io/Network/packages.config | 26 + .../reef-tasks/Tasks/FailedTask/FailedTask.cs | 44 + .../reef-tasks/Tasks/HelloTask/HelloService.cs | 58 + .../reef-tasks/Tasks/HelloTask/HelloTask.cs | 123 ++ .../Tasks/HelloTask/HelloTaskMessage.cs | 49 + .../reef-tasks/Tasks/Properties/AssemblyInfo.cs | 55 + .../reef-tasks/Tasks/ShellTask/ShellTask.cs | 90 ++ .../Tasks/StreamingTasks/StreamTask1.cs | 66 + .../Tasks/StreamingTasks/StreamTask2.cs | 50 + .../Source/REEF/reef-tasks/Tasks/Tasks.csproj | 93 ++ lang/cs/Source/TANG/Examples/AnonymousType.cs | 57 + lang/cs/Source/TANG/Examples/CheckChild.cs | 37 + .../Examples/DocumentedLocalNamedParameter.cs | 43 + lang/cs/Source/TANG/Examples/Examples.csproj | 95 ++ lang/cs/Source/TANG/Examples/FileNames.cs | 39 + .../TANG/Examples/ForksInjectorInConstructor.cs | 59 + lang/cs/Source/TANG/Examples/GenericArgument.cs | 48 + .../Source/TANG/Examples/GenericAsArgument.cs | 44 + .../TANG/Examples/NamedParameterConstructors.cs | 40 + .../TANG/Examples/Properties/AssemblyInfo.cs | 55 + lang/cs/Source/TANG/Examples/ShortNameFooAB.cs | 38 + .../Source/TANG/Examples/SimpleConstructors.cs | 42 + lang/cs/Source/TANG/Examples/TestClasses.cs | 57 + lang/cs/Source/TANG/Examples/Timer.cs | 46 + lang/cs/Source/TANG/Examples/TweetExample.cs | 90 ++ .../Tang/Annotations/DefaultImplementation.cs | 43 + lang/cs/Source/TANG/Tang/Annotations/Inject.cs | 28 + lang/cs/Source/TANG/Tang/Annotations/Name.cs | 28 + .../TANG/Tang/Annotations/NamedParameter.cs | 44 + .../Source/TANG/Tang/Annotations/Parameter.cs | 39 + lang/cs/Source/TANG/Tang/Annotations/Unit.cs | 29 + .../TANG/Tang/Exceptions/BindException.cs | 36 + .../Tang/Exceptions/ClassHierarchyException.cs | 34 + .../Tang/Exceptions/IllegalStateException.cs | 40 + .../TANG/Tang/Exceptions/InjectionException.cs | 35 + .../Tang/Exceptions/NameResolutionException.cs | 37 + .../TANG/Tang/Exceptions/ParseException.cs | 36 + .../AvroConfiguration.cs | 47 + .../ConfigurationEntry.cs | 44 + .../Tang/Formats/AvroConfigurationSerializer.cs | 324 +++++ .../TANG/Tang/Formats/ConfigurationFile.cs | 371 ++++++ .../TANG/Tang/Formats/ConfigurationModule.cs | 302 +++++ .../Tang/Formats/ConfigurationModuleBuilder.cs | 519 ++++++++ .../Tang/Formats/IConfigurationSerializer.cs | 49 + lang/cs/Source/TANG/Tang/Formats/IImpl.cs | 31 + lang/cs/Source/TANG/Tang/Formats/IParam.cs | 31 + .../cs/Source/TANG/Tang/Formats/OptionalImpl.cs | 31 + .../TANG/Tang/Formats/OptionalParameter.cs | 31 + lang/cs/Source/TANG/Tang/Formats/Provides.cs | 31 + .../cs/Source/TANG/Tang/Formats/RequiredImpl.cs | 31 + .../TANG/Tang/Formats/RequiredParameter.cs | 31 + .../ClassHierarchy/AbstractNode.cs | 131 ++ .../ClassHierarchy/ClassHierarchyImpl.cs | 526 ++++++++ .../ClassHierarchy/ClassNodeImpl.cs | 157 +++ .../ClassHierarchy/ConstructorArgImpl.cs | 97 ++ .../ClassHierarchy/ConstructorDefImpl.cs | 203 +++ .../ClassHierarchy/NamedParameterNodeImpl.cs | 88 ++ .../ClassHierarchy/NodeFactory.cs | 315 +++++ .../ClassHierarchy/PackageNodeImpl.cs | 49 + .../ClassHierarchy/ParameterParser.cs | 199 +++ .../Configuration/ConfigurationBuilderImpl.cs | 364 ++++++ .../Configuration/ConfigurationImpl.cs | 122 ++ .../Configuration/Configurations.cs | 55 + .../Configuration/CsConfigurationBuilderImpl.cs | 489 ++++++++ .../Configuration/CsConfigurationImpl.cs | 34 + .../InjectionPlan/Constructor.cs | 217 ++++ .../Implementations/InjectionPlan/CsInstance.cs | 90 ++ .../InjectionPlan/InjectionFuture.cs | 100 ++ .../InjectionPlan/InjectionFuturePlan.cs | 73 ++ .../InjectionPlan/InjectionPlan.cs | 222 ++++ .../InjectionPlan/InjectorImpl.cs | 1091 +++++++++++++++++ .../InjectionPlan/ListInjectionPlan.cs | 117 ++ .../InjectionPlan/SetInjectionPlan.cs | 122 ++ .../Implementations/InjectionPlan/Subplan.cs | 235 ++++ .../Tang/Implementations/Tang/TangFactory.cs | 30 + .../TANG/Tang/Implementations/Tang/TangImpl.cs | 201 +++ lang/cs/Source/TANG/Tang/Interface/IAspect.cs | 31 + .../TANG/Tang/Interface/IClassHierarchy.cs | 30 + .../TANG/Tang/Interface/IConfiguration.cs | 49 + .../Tang/Interface/IConfigurationBuilder.cs | 54 + .../TANG/Tang/Interface/ICsClassHierarchy.cs | 33 + .../Tang/Interface/ICsConfigurationBuilder.cs | 121 ++ .../ICsInternalConfigurationBuilder.cs | 70 ++ .../TANG/Tang/Interface/IExternalConstructor.cs | 26 + lang/cs/Source/TANG/Tang/Interface/IInjector.cs | 180 +++ lang/cs/Source/TANG/Tang/Interface/ITang.cs | 46 + .../Source/TANG/Tang/Properties/AssemblyInfo.cs | 55 + .../Protobuf/ProtocolBufferClassHierarchy.cs | 473 +++++++ .../Protobuf/ProtocolBufferInjectionPlan.cs | 204 +++ .../TANG/Tang/Protobuf/class_hierarchy.cs | 274 +++++ .../Source/TANG/Tang/Protobuf/injection_plan.cs | 132 ++ lang/cs/Source/TANG/Tang/Tang.csproj | 179 +++ lang/cs/Source/TANG/Tang/Types/IClassNode.cs | 37 + .../Source/TANG/Tang/Types/IConstructorArg.cs | 32 + .../Source/TANG/Tang/Types/IConstructorDef.cs | 34 + .../TANG/Tang/Types/INamedParameterNode.cs | 38 + lang/cs/Source/TANG/Tang/Types/INode.cs | 37 + lang/cs/Source/TANG/Tang/Types/IPackageNode.cs | 24 + lang/cs/Source/TANG/Tang/Types/ITraversable.cs | 27 + .../TANG/Tang/Util/AbstractMonotonicMultiMap.cs | 263 ++++ lang/cs/Source/TANG/Tang/Util/AssemblyLoader.cs | 70 ++ lang/cs/Source/TANG/Tang/Util/GenericType.cs | 49 + .../Source/TANG/Tang/Util/MonotonicHashMap.cs | 83 ++ .../Source/TANG/Tang/Util/MonotonicHashSet.cs | 131 ++ .../TANG/Tang/Util/MonotonicMultiHashMap.cs | 30 + .../Source/TANG/Tang/Util/MonotonicMultiMap.cs | 30 + lang/cs/Source/TANG/Tang/Util/MonotonicSet.cs | 106 ++ .../Source/TANG/Tang/Util/MonotonicTreeMap.cs | 68 + .../TANG/Tang/Util/ReflectionUtilities.cs | 594 +++++++++ lang/cs/Source/TANG/Tang/Util/SetValuedKey.cs | 62 + lang/cs/Source/TANG/Tang/packages.config | 24 + .../ClassHierarchyBuilder.csproj | 90 ++ .../Tools/ClassHierarchyBuilder/Program.cs | 97 ++ .../Properties/AssemblyInfo.cs | 55 + .../Tools/ReefAll/Properties/AssemblyInfo.cs | 55 + lang/cs/Source/Tools/ReefAll/ReefAll.csproj | 102 ++ lang/cs/Source/Utilities/AvroUtils.cs | 61 + lang/cs/Source/Utilities/ByteUtilities.cs | 45 + .../Diagnostics/DiagnosticsMessages.cs | 42 + .../Source/Utilities/Diagnostics/Exceptions.cs | 282 +++++ lang/cs/Source/Utilities/IIdentifiable.cs | 26 + lang/cs/Source/Utilities/IMessage.cs | 33 + .../Utilities/Logging/JavaLoggingSetting.cs | 39 + lang/cs/Source/Utilities/Logging/Level.cs | 59 + lang/cs/Source/Utilities/Logging/Logger.cs | 227 ++++ lang/cs/Source/Utilities/NetUtilities.cs | 51 + lang/cs/Source/Utilities/Optional.cs | 116 ++ .../Source/Utilities/Properties/AssemblyInfo.cs | 55 + lang/cs/Source/Utilities/Utilities.csproj | 97 ++ lang/cs/Source/Utilities/ValidationUtilities.cs | 42 + lang/cs/Source/Utilities/packages.config | 23 + lang/cs/Source/WAKE/Wake/AbstractEStage.cs | 42 + lang/cs/Source/WAKE/Wake/IEStage.cs | 26 + lang/cs/Source/WAKE/Wake/IEventHandler.cs | 34 + lang/cs/Source/WAKE/Wake/IIdentifier.cs | 57 + lang/cs/Source/WAKE/Wake/IIdentifierFactory.cs | 35 + lang/cs/Source/WAKE/Wake/IObserverFactory.cs | 32 + lang/cs/Source/WAKE/Wake/IStage.cs | 29 + .../WAKE/Wake/Impl/LoggingEventHandler.cs | 53 + .../Wake/Impl/MissingStartHandlerHandler.cs | 49 + .../Source/WAKE/Wake/Impl/MultiEventHandler.cs | 65 + lang/cs/Source/WAKE/Wake/Impl/PeriodicEvent.cs | 26 + .../Source/WAKE/Wake/Impl/PubSubEventHandler.cs | 94 ++ .../Source/WAKE/Wake/Impl/SingleThreadStage.cs | 100 ++ lang/cs/Source/WAKE/Wake/Impl/SyncStage.cs | 48 + .../cs/Source/WAKE/Wake/Impl/ThreadPoolStage.cs | 100 ++ lang/cs/Source/WAKE/Wake/Impl/TimerStage.cs | 66 + .../Source/WAKE/Wake/Properties/AssemblyInfo.cs | 55 + .../WAKE/Wake/Protobuf/RemoteProtocol.proto | 36 + .../WAKE/Wake/Protobuf/WakeRemoteProtosGen.cs | 96 ++ lang/cs/Source/WAKE/Wake/RX/AbstractObserver.cs | 45 + lang/cs/Source/WAKE/Wake/RX/AbstractRxStage.cs | 54 + lang/cs/Source/WAKE/Wake/RX/IRxStage.cs | 28 + .../cs/Source/WAKE/Wake/RX/IStaticObservable.cs | 31 + lang/cs/Source/WAKE/Wake/RX/ISubject.cs | 31 + .../Source/WAKE/Wake/RX/Impl/PubSubSubject.cs | 180 +++ lang/cs/Source/WAKE/Wake/RX/Impl/RxSyncStage.cs | 70 ++ .../WAKE/Wake/RX/Impl/RxThreadPoolStage.cs | 134 ++ .../cs/Source/WAKE/Wake/RX/Impl/RxTimerStage.cs | 67 + .../Source/WAKE/Wake/RX/Impl/SimpleSubject.cs | 59 + .../WAKE/Wake/RX/ObserverCompletedException.cs | 46 + lang/cs/Source/WAKE/Wake/Remote/ICodec.cs | 34 + .../cs/Source/WAKE/Wake/Remote/ICodecFactory.cs | 35 + lang/cs/Source/WAKE/Wake/Remote/IDecoder.cs | 38 + lang/cs/Source/WAKE/Wake/Remote/IEncoder.cs | 38 + lang/cs/Source/WAKE/Wake/Remote/ILink.cs | 73 ++ lang/cs/Source/WAKE/Wake/Remote/IRemoteEvent.cs | 42 + .../WAKE/Wake/Remote/IRemoteIdentifier.cs | 28 + .../Wake/Remote/IRemoteIdentifierFactory.cs | 26 + .../Source/WAKE/Wake/Remote/IRemoteManager.cs | 42 + .../Source/WAKE/Wake/Remote/IRemoteMessage.cs | 39 + .../WAKE/Wake/Remote/ISubscriptionManager.cs | 26 + .../Source/WAKE/Wake/Remote/Impl/ByteCodec.cs | 41 + .../WAKE/Wake/Remote/Impl/ByteCodecFactory.cs | 41 + lang/cs/Source/WAKE/Wake/Remote/Impl/Channel.cs | 258 ++++ .../Wake/Remote/Impl/DefaultRemoteManager.cs | 338 +++++ .../Wake/Remote/Impl/DefaultRemoteMessage.cs | 34 + .../WAKE/Wake/Remote/Impl/IPEndpointComparer.cs | 59 + .../cs/Source/WAKE/Wake/Remote/Impl/IntCodec.cs | 42 + lang/cs/Source/WAKE/Wake/Remote/Impl/Link.cs | 256 ++++ .../Source/WAKE/Wake/Remote/Impl/MultiCodec.cs | 89 ++ .../WAKE/Wake/Remote/Impl/MultiDecoder.cs | 110 ++ .../WAKE/Wake/Remote/Impl/MultiEncoder.cs | 87 ++ .../WAKE/Wake/Remote/Impl/ObserverContainer.cs | 132 ++ .../Source/WAKE/Wake/Remote/Impl/RemoteEvent.cs | 59 + .../WAKE/Wake/Remote/Impl/RemoteEventCodec.cs | 43 + .../WAKE/Wake/Remote/Impl/RemoteEventDecoder.cs | 39 + .../WAKE/Wake/Remote/Impl/RemoteEventEncoder.cs | 43 + .../Wake/Remote/Impl/RemoteEventEndpoint.cs | 42 + .../Wake/Remote/Impl/SocketRemoteIdentifier.cs | 76 ++ .../Source/WAKE/Wake/Remote/Impl/StringCodec.cs | 46 + .../WAKE/Wake/Remote/Impl/StringIdentifier.cs | 53 + .../Wake/Remote/Impl/StringIdentifierFactory.cs | 41 + .../WAKE/Wake/Remote/Impl/TransportClient.cs | 133 ++ .../WAKE/Wake/Remote/Impl/TransportEvent.cs | 42 + .../WAKE/Wake/Remote/Impl/TransportServer.cs | 195 +++ .../WAKE/Wake/Remote/Proto/WakeRemoteProtos.cs | 76 ++ .../WAKE/Wake/Remote/RemoteConfiguration.cs | 57 + .../WAKE/Wake/Remote/RemoteRuntimeException.cs | 54 + lang/cs/Source/WAKE/Wake/Time/Event/Alarm.cs | 41 + .../cs/Source/WAKE/Wake/Time/Event/StartTime.cs | 31 + lang/cs/Source/WAKE/Wake/Time/Event/StopTime.cs | 31 + lang/cs/Source/WAKE/Wake/Time/IClock.cs | 89 ++ .../WAKE/Wake/Time/Runtime/Event/ClientAlarm.cs | 34 + .../WAKE/Wake/Time/Runtime/Event/IdleClock.cs | 28 + .../Wake/Time/Runtime/Event/RuntimeAlarm.cs | 34 + .../Wake/Time/Runtime/Event/RuntimeStart.cs | 28 + .../WAKE/Wake/Time/Runtime/Event/RuntimeStop.cs | 37 + lang/cs/Source/WAKE/Wake/Time/Runtime/ITimer.cs | 49 + .../WAKE/Wake/Time/Runtime/LogicalTimer.cs | 55 + .../Source/WAKE/Wake/Time/Runtime/RealTimer.cs | 64 + .../WAKE/Wake/Time/Runtime/RuntimeClock.cs | 257 ++++ lang/cs/Source/WAKE/Wake/Time/Time.cs | 82 ++ lang/cs/Source/WAKE/Wake/Util/Actionable.cs | 42 + lang/cs/Source/WAKE/Wake/Util/Disposable.cs | 63 + .../Wake/Util/FixedThreadPoolTaskService.cs | 105 ++ lang/cs/Source/WAKE/Wake/Util/IStartable.cs | 32 + lang/cs/Source/WAKE/Wake/Util/ITaskService.cs | 34 + .../LimitedConcurrencyLevelTaskScheduler.cs | 187 +++ lang/cs/Source/WAKE/Wake/Util/NetworkUtils.cs | 66 + .../WAKE/Wake/Util/SerializationHelper.cs | 46 + lang/cs/Source/WAKE/Wake/Util/TaskExtensions.cs | 34 + lang/cs/Source/WAKE/Wake/Util/TimeHelper.cs | 49 + lang/cs/Source/WAKE/Wake/Wake.csproj | 214 ++++ .../cs/Source/WAKE/Wake/WakeRuntimeException.cs | 54 + lang/cs/Source/WAKE/Wake/packages.config | 24 + .../src/main/cs/Examples/P2p/IEventSource.cs | 35 + .../Wake/src/main/cs/Examples/P2p/Pull2Push.cs | 103 ++ .../WAKE/Wake/src/main/cs/PeriodicEvent.cs | 23 + lang/cs/Source/WAKE/Wake/testkey.snk | Bin 0 -> 596 bytes .../Tests/ReefTests/ConfigFiles/evaluator.conf | Bin 0 -> 2837 bytes .../EvaluatorConfigurationsTests.cs | 42 + .../ReefTests/Evaluator.Tests/EvaluatorTests.cs | 94 ++ .../Functional.Tests/Bridge/TestBridgeClient.cs | 99 ++ .../Bridge/TestHelloBridgeHandlers.cs | 101 ++ .../Bridge/TestSimpleEventHandlers.cs | 110 ++ .../Driver/DriverTestStartHandler.cs | 46 + .../Functional.Tests/Driver/TestDriver.cs | 68 + .../Functional.Tests/Messaging/MessageDriver.cs | 122 ++ .../Functional.Tests/Messaging/MessageTask.cs | 106 ++ .../Messaging/TestTaskMessage.cs | 75 ++ .../Functional.Tests/ReefFunctionalTest.cs | 200 +++ .../BlockingCollectionExtensionTests.cs | 78 ++ .../Tests/ReefTests/IO.Tests/NameServerTests.cs | 274 +++++ .../ReefTests/IO.Tests/NetworkServiceTests.cs | 202 +++ .../Tests/ReefTests/Properties/AssemblyInfo.cs | 55 + lang/cs/Tests/ReefTests/ReefTests.csproj | 192 +++ .../Utility.Test/TestDriverConfigGenerator.cs | 101 ++ .../ReefTests/Utility.Test/TestExceptions.cs | 49 + ...bridge-0.11.0-incubating-SNAPSHOT-shaded.jar | Bin 0 -> 13555831 bytes lang/cs/Tests/ReefTests/bin/run.cmd | 45 + lang/cs/Tests/ReefTests/packages.config | 32 + .../ClassHierarchy/TestAnonymousType.cs | 63 + .../ClassHierarchy/TestClassHierarchy.cs | 717 +++++++++++ .../TestClassHierarchyRoundTrip.cs | 69 ++ .../TangTests/ClassHierarchy/TestGeneric.cs | 46 + .../ClassHierarchy/TestMultipleInterface.cs | 103 ++ .../ClassHierarchy/TestParameterParser.cs | 323 +++++ .../ClassHierarchy/TestSerilization.cs | 234 ++++ .../Configuration/TestAvroConfiguration.cs | 68 + .../TestAvroSerializerRoundTrip.cs | 71 ++ .../Configuration/TestConfiguration.cs | 566 +++++++++ .../TestCsConfigurationBuilderExtension.cs | 178 +++ .../TangTests/Format/TestConfigurationModule.cs | 522 ++++++++ .../Format/TestConfigurationModuleForList.cs | 145 +++ .../TangTests/Format/TestTaskConfiguration.cs | 389 ++++++ .../Injection/TestAmbigousConstructors.cs | 80 ++ .../TangTests/Injection/TestForkInjection.cs | 79 ++ .../Tests/TangTests/Injection/TestInjection.cs | 386 ++++++ .../TangTests/Injection/TestInjectionFuture.cs | 240 ++++ .../TangTests/Injection/TestListInjection.cs | 565 +++++++++ .../Injection/TestMissingParameters.cs | 151 +++ .../Injection/TestMissingParamtersInNested.cs | 142 +++ .../Injection/TestMultipleConstructors.cs | 360 ++++++ .../TangTests/Injection/TestNamedParameter.cs | 357 ++++++ .../TangTests/Injection/TestSetInjection.cs | 739 +++++++++++ .../Tests/TangTests/Properties/AssemblyInfo.cs | 55 + .../ScenarioTest/HttpHandlerConfiguration.cs | 35 + .../ScenarioTest/HttpRuntimeConfiguration.cs | 36 + .../ScenarioTest/HttpRuntimeStartHandler.cs | 50 + .../ScenarioTest/HttpRuntimeStopHandler.cs | 50 + .../Tests/TangTests/ScenarioTest/HttpServer.cs | 49 + .../TangTests/ScenarioTest/IHttpHandler.cs | 27 + .../TangTests/ScenarioTest/JettyHandler.cs | 44 + .../ScenarioTest/TestDefaultConstructor.cs | 79 ++ .../TangTests/ScenarioTest/TestHttpService.cs | 194 +++ .../TangTests/ScenarioTest/TestRuntimeClock.cs | 253 ++++ .../ScenarioTest/TestTrackingURIProvider.cs | 59 + .../ScenarioTest/TrackingURIProvider.cs | 63 + .../ScenarioTest/TrackingYRIProvider.cs | 25 + .../cs/Tests/TangTests/SmokeTest/AnInterface.cs | 29 + .../SmokeTest/AnInterfaceImplementation.cs | 65 + .../TangTests/SmokeTest/CyclicDependency.cs | 70 ++ .../SmokeTest/CyclicDependencyClassOne.cs | 61 + .../SmokeTest/CyclicDependencyClassTwo.cs | 55 + lang/cs/Tests/TangTests/SmokeTest/Handler.cs | 26 + .../TangTests/SmokeTest/InjectableClass.cs | 60 + .../TangTests/SmokeTest/ListOfBaseTypes.cs | 108 ++ .../Tests/TangTests/SmokeTest/ObjectTreeTest.cs | 54 + .../TangTests/SmokeTest/RootImplementation.cs | 178 +++ .../Tests/TangTests/SmokeTest/RootInterface.cs | 26 + .../Tests/TangTests/SmokeTest/RoundTripTest.cs | 40 + .../Tests/TangTests/SmokeTest/SetInterface.cs | 31 + .../TangTests/SmokeTest/SetInterfaceImplOne.cs | 82 ++ .../TangTests/SmokeTest/SetInterfaceImplTwo.cs | 82 ++ .../Tests/TangTests/SmokeTest/SetOfBaseTypes.cs | 105 ++ .../TangTests/SmokeTest/SetOfImplementations.cs | 72 ++ .../SmokeTest/TestConfigurationModuleBuilder.cs | 107 ++ .../TangTests/Tang/TestDefaultImpementaion.cs | 196 +++ .../TangTests/Tang/TestExternalConstructors.cs | 148 +++ .../TangTests/Tang/TestLegacyConstructors.cs | 73 ++ lang/cs/Tests/TangTests/Tang/TestTang.cs | 1158 ++++++++++++++++++ lang/cs/Tests/TangTests/TangTests.csproj | 180 +++ .../Tests/TangTests/Utilities/TestUtilities.cs | 294 +++++ lang/cs/Tests/TangTests/Utilities/Utilities.cs | 62 + lang/cs/Tests/TangTests/evaluator.conf | Bin 0 -> 2837 bytes lang/cs/Tests/TangTests/packages.config | 24 + .../TangTests/simpleConstructorJavaProto.bin | Bin 0 -> 1994 bytes lang/cs/Tests/WakeTests/ClockTest.cs | 183 +++ lang/cs/Tests/WakeTests/MultiCodecTest.cs | 102 ++ .../Tests/WakeTests/Properties/AssemblyInfo.cs | 55 + lang/cs/Tests/WakeTests/PubSubSubjectTest.cs | 209 ++++ lang/cs/Tests/WakeTests/RemoteManagerTest.cs | 344 ++++++ lang/cs/Tests/WakeTests/TransportTest.cs | 205 ++++ lang/cs/Tests/WakeTests/WakeTests.csproj | 103 ++ lang/cs/Tests/WakeTests/packages.config | 23 + .../externals/Org.Apache.Reef.Driver.dll | Bin 121344 -> 121344 bytes pom.xml | 19 +- 621 files changed, 59262 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/.gitignore ---------------------------------------------------------------------- diff --git a/lang/cs/.gitignore b/lang/cs/.gitignore new file mode 100644 index 0000000..aeaff29 --- /dev/null +++ b/lang/cs/.gitignore @@ -0,0 +1,10 @@ +bin +!Tests/ReefTests/bin/ +packages +TestResults +**/*.exe +**/*.suo +**/*.csproj.user +**/obj + + http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/.nuget/NuGet.Config ---------------------------------------------------------------------- diff --git a/lang/cs/.nuget/NuGet.Config b/lang/cs/.nuget/NuGet.Config new file mode 100644 index 0000000..0ebb37e --- /dev/null +++ b/lang/cs/.nuget/NuGet.Config @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +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. +--> +<configuration> + <solution> + <add key="disableSourceControlIntegration" value="true" /> + </solution> +</configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/.nuget/NuGet.targets ---------------------------------------------------------------------- diff --git a/lang/cs/.nuget/NuGet.targets b/lang/cs/.nuget/NuGet.targets new file mode 100644 index 0000000..401dcdd --- /dev/null +++ b/lang/cs/.nuget/NuGet.targets @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +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. +--> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir> + + <!-- Enable the restore command to run before builds --> + <RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages> + + <!-- Property that enables building a package from a project --> + <BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage> + + <!-- Determines if package restore consent is required to restore packages --> + <RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent> + + <!-- Download NuGet.exe if it does not already exist --> + <DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe> + </PropertyGroup> + + <ItemGroup Condition=" '$(PackageSources)' == '' "> + <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used --> + <!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list --> + <!-- + <PackageSource Include="https://www.nuget.org/api/v2/" /> + <PackageSource Include="https://my-nuget-source/nuget/" /> + --> + </ItemGroup> + + <PropertyGroup Condition=" '$(OS)' == 'Windows_NT'"> + <!-- Windows specific commands --> + <NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath> + </PropertyGroup> + + <PropertyGroup Condition=" '$(OS)' != 'Windows_NT'"> + <!-- We need to launch nuget.exe with the mono command if we're not on windows --> + <NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath> + </PropertyGroup> + + <PropertyGroup> + <PackagesProjectConfig Condition=" '$(OS)' == 'Windows_NT'">$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config</PackagesProjectConfig> + <PackagesProjectConfig Condition=" '$(OS)' != 'Windows_NT'">$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config</PackagesProjectConfig> + </PropertyGroup> + + <PropertyGroup> + <PackagesConfig Condition="Exists('$(MSBuildProjectDirectory)\packages.config')">$(MSBuildProjectDirectory)\packages.config</PackagesConfig> + <PackagesConfig Condition="Exists('$(PackagesProjectConfig)')">$(PackagesProjectConfig)</PackagesConfig> + </PropertyGroup> + + <PropertyGroup> + <!-- NuGet command --> + <NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath> + <PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources> + + <NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand> + <NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 "$(NuGetExePath)"</NuGetCommand> + + <PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir> + + <RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch> + <NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch> + + <PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir> + <PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir> + + <!-- Commands --> + <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand> + <BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand> + + <!-- We need to ensure packages are restored prior to assembly resolve --> + <BuildDependsOn Condition="$(RestorePackages) == 'true'"> + RestorePackages; + $(BuildDependsOn); + </BuildDependsOn> + + <!-- Make the build depend on restore packages --> + <BuildDependsOn Condition="$(BuildPackage) == 'true'"> + $(BuildDependsOn); + BuildPackage; + </BuildDependsOn> + </PropertyGroup> + + <Target Name="CheckPrerequisites"> + <!-- Raise an error if we're unable to locate nuget.exe --> + <Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" /> + <!-- + Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once. + This effectively acts as a lock that makes sure that the download operation will only happen once and all + parallel builds will have to wait for it to complete. + --> + <MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" /> + </Target> + + <Target Name="_DownloadNuGet"> + <DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" /> + </Target> + + <Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites"> + <Exec Command="$(RestoreCommand)" + Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" /> + + <Exec Command="$(RestoreCommand)" + LogStandardErrorAsError="true" + Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" /> + </Target> + + <Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites"> + <Exec Command="$(BuildCommand)" + Condition=" '$(OS)' != 'Windows_NT' " /> + + <Exec Command="$(BuildCommand)" + LogStandardErrorAsError="true" + Condition=" '$(OS)' == 'Windows_NT' " /> + </Target> + + <UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> + <ParameterGroup> + <OutputFilename ParameterType="System.String" Required="true" /> + </ParameterGroup> + <Task> + <Reference Include="System.Core" /> + <Using Namespace="System" /> + <Using Namespace="System.IO" /> + <Using Namespace="System.Net" /> + <Using Namespace="Microsoft.Build.Framework" /> + <Using Namespace="Microsoft.Build.Utilities" /> + <Code Type="Fragment" Language="cs"> + <![CDATA[ + try { + OutputFilename = Path.GetFullPath(OutputFilename); + + Log.LogMessage("Downloading latest version of NuGet.exe..."); + WebClient webClient = new WebClient(); + webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename); + + return true; + } + catch (Exception ex) { + Log.LogErrorFromException(ex); + return false; + } + ]]> + </Code> + </Task> + </UsingTask> +</Project> http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/ReefDotNet.sln ---------------------------------------------------------------------- diff --git a/lang/cs/ReefDotNet.sln b/lang/cs/ReefDotNet.sln new file mode 100644 index 0000000..bbd2250 --- /dev/null +++ b/lang/cs/ReefDotNet.sln @@ -0,0 +1,161 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{2B7EE9D5-CA54-4204-B89D-B48A7FC6E3CD}" + ProjectSection(SolutionItems) = preProject + .nuget\NuGet.Config = .nuget\NuGet.Config + .nuget\NuGet.exe = .nuget\NuGet.exe + .nuget\NuGet.targets = .nuget\NuGet.targets + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utilities", "Source\Utilities\Utilities.csproj", "{79E7F89A-1DFB-45E1-8D43-D71A954AEB98}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wake", "Source\WAKE\Wake\Wake.csproj", "{CDFB3464-4041-42B1-9271-83AF24CD5008}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tang", "Source\TANG\Tang\Tang.csproj", "{97DBB573-3994-417A-9F69-FFA25F00D2A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Source\TANG\Examples\Examples.csproj", "{31B4389E-925A-4181-A1F6-21A1A0AD8A1C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReefCommon", "Source\REEF\reef-common\ReefCommon\ReefCommon.csproj", "{545A0582-4105-44CE-B99C-B1379514A630}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReefDriver", "Source\REEF\reef-common\ReefDriver\ReefDriver.csproj", "{A6BAA2A7-F52F-4329-884E-1BCF711D6805}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Network", "Source\REEF\reef-io\Network\Network.csproj", "{883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "Source\REEF\reef-tasks\Tasks\Tasks.csproj", "{75503F90-7B82-4762-9997-94B5C68F15DB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CLRBridgeClient", "Source\REEF\reef-applications\CLRBridgeClient\CLRBridgeClient.csproj", "{5094C35B-4FDB-4322-AC05-45D684501CBF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Evaluator", "Source\REEF\reef-applications\Evaluator\Evaluator.csproj", "{1B983182-9C30-464C-948D-F87EB93A8240}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloCLRBridge", "Source\REEF\reef-examples\HelloCLRBridge\HelloCLRBridge.csproj", "{A78DD8E8-31D0-4506-8738-DAA9DA86D55B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RetainedEvalCLRBridge", "Source\REEF\reef-examples\RetainedEvalCLRBridge\RetainedEvalCLRBridge.csproj", "{A33C20FB-A76E-494C-80C5-BCE4BAD876D3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassHierarchyBuilder", "Source\Tools\ClassHierarchyBuilder\ClassHierarchyBuilder.csproj", "{34A9CD98-0D15-4CA0-AEA5-E53593A31047}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReefAll", "Source\Tools\ReefAll\ReefAll.csproj", "{4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TangTests", "Tests\TangTests\TangTests.csproj", "{D5EB94D0-3ABA-4853-9050-E36B196E17D2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WakeTests", "Tests\WakeTests\WakeTests.csproj", "{214C64C6-04E5-4867-B69A-E3502EA50871}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReefTests", "Tests\ReefTests\ReefTests.csproj", "{988F90CF-A48D-4938-A4D2-FA3B758FB5A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Debug|x64.ActiveCfg = Debug|Any CPU + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Release|Any CPU.Build.0 = Release|Any CPU + {79E7F89A-1DFB-45E1-8D43-D71A954AEB98}.Release|x64.ActiveCfg = Release|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Debug|x64.ActiveCfg = Debug|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Release|Any CPU.Build.0 = Release|Any CPU + {CDFB3464-4041-42B1-9271-83AF24CD5008}.Release|x64.ActiveCfg = Release|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Debug|x64.ActiveCfg = Debug|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Release|Any CPU.Build.0 = Release|Any CPU + {97DBB573-3994-417A-9F69-FFA25F00D2A6}.Release|x64.ActiveCfg = Release|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Debug|x64.ActiveCfg = Debug|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Release|Any CPU.Build.0 = Release|Any CPU + {31B4389E-925A-4181-A1F6-21A1A0AD8A1C}.Release|x64.ActiveCfg = Release|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Debug|Any CPU.Build.0 = Debug|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Debug|x64.ActiveCfg = Debug|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Release|Any CPU.ActiveCfg = Release|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Release|Any CPU.Build.0 = Release|Any CPU + {545A0582-4105-44CE-B99C-B1379514A630}.Release|x64.ActiveCfg = Release|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Debug|x64.ActiveCfg = Debug|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Release|Any CPU.Build.0 = Release|Any CPU + {A6BAA2A7-F52F-4329-884E-1BCF711D6805}.Release|x64.ActiveCfg = Release|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Debug|x64.ActiveCfg = Debug|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Release|Any CPU.Build.0 = Release|Any CPU + {883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}.Release|x64.ActiveCfg = Release|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Debug|x64.ActiveCfg = Debug|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Release|Any CPU.Build.0 = Release|Any CPU + {75503F90-7B82-4762-9997-94B5C68F15DB}.Release|x64.ActiveCfg = Release|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Debug|x64.ActiveCfg = Debug|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Release|Any CPU.Build.0 = Release|Any CPU + {5094C35B-4FDB-4322-AC05-45D684501CBF}.Release|x64.ActiveCfg = Release|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Debug|x64.ActiveCfg = Debug|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Release|Any CPU.Build.0 = Release|Any CPU + {1B983182-9C30-464C-948D-F87EB93A8240}.Release|x64.ActiveCfg = Release|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Debug|x64.ActiveCfg = Debug|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Release|Any CPU.Build.0 = Release|Any CPU + {A78DD8E8-31D0-4506-8738-DAA9DA86D55B}.Release|x64.ActiveCfg = Release|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Debug|x64.ActiveCfg = Debug|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Release|Any CPU.Build.0 = Release|Any CPU + {A33C20FB-A76E-494C-80C5-BCE4BAD876D3}.Release|x64.ActiveCfg = Release|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Debug|Any CPU.Build.0 = Debug|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Debug|x64.ActiveCfg = Debug|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Release|Any CPU.ActiveCfg = Release|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Release|Any CPU.Build.0 = Release|Any CPU + {34A9CD98-0D15-4CA0-AEA5-E53593A31047}.Release|x64.ActiveCfg = Release|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Release|Any CPU.Build.0 = Release|Any CPU + {4C137C79-3A28-47D2-BFB9-A3CAB1EEDACE}.Release|x64.ActiveCfg = Release|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Debug|x64.ActiveCfg = Debug|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Release|Any CPU.Build.0 = Release|Any CPU + {D5EB94D0-3ABA-4853-9050-E36B196E17D2}.Release|x64.ActiveCfg = Release|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Debug|Any CPU.Build.0 = Debug|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Debug|x64.ActiveCfg = Debug|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Release|Any CPU.ActiveCfg = Release|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Release|Any CPU.Build.0 = Release|Any CPU + {214C64C6-04E5-4867-B69A-E3502EA50871}.Release|x64.ActiveCfg = Release|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Debug|x64.ActiveCfg = Debug|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Release|Any CPU.Build.0 = Release|Any CPU + {988F90CF-A48D-4938-A4D2-FA3B758FB5A7}.Release|x64.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.cs b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.cs new file mode 100644 index 0000000..51023e7 --- /dev/null +++ b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.cs @@ -0,0 +1,148 @@ +/** + * 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. + */ + +using Org.Apache.Reef.Common.Evaluator; +using Org.Apache.Reef.Driver; +using Org.Apache.Reef.Driver.bridge; +using Org.Apache.Reef.Driver.Bridge; +using Org.Apache.Reef.Driver.Defaults; +using Org.Apache.Reef.Examples.HelloCLRBridge; +using Org.Apache.Reef.Examples.HelloCLRBridge.Handlers; +using Org.Apache.Reef.IO.Network.Naming; +using Org.Apache.Reef.Tasks; +using Org.Apache.Reef.Utilities.Logging; +using Org.Apache.Reef.Tang.Interface; +using Org.Apache.Reef.Tang.Util; +using System; +using System.Collections.Generic; +using System.IO; + +namespace Org.Apache.Reef.CLRBridgeClient +{ + public class CLRBridgeClient + { + public const string ReefHome = "REEF_HOME"; + public const string DefaultClrFolder = @"lang\java\reef-bridge-project\reef-bridge\dotnetHello"; + public const string DefaultReefJar = @"lang\java\reef-bridge-project\reef-bridge\target\" + Constants.BridgeJarFileName; + public const string DefaultRunCommand = "run.cmd"; + + private static string _clrFolder = null; + private static string _reefJar = null; + private static string _className = Constants.BridgeLaunchClass; + private static string _runCommand = DefaultRunCommand; + private static string _submitControlForAllocatedEvaluator = "submitContextAndTask"; // submitContext, submitContextAndTask, submitContextAndServiceAndTask + + public static HashSet<string> AppDll + { + get + { + HashSet<string> appDlls = new HashSet<string>(); + appDlls.Add(typeof(HelloStartHandler).Assembly.GetName().Name); + appDlls.Add(typeof(HelloTask).Assembly.GetName().Name); + appDlls.Add(typeof(INameServer).Assembly.GetName().Name); + return appDlls; + } + } + + public static IConfiguration ClrConfigurations + { + get + { + return DriverBridgeConfiguration.ConfigurationModule + .Set(DriverBridgeConfiguration.OnDriverStarted, GenericType<HelloStartHandler>.Class) + .Set(DriverBridgeConfiguration.OnEvaluatorAllocated, GenericType<HelloAllocatedEvaluatorHandler>.Class) + .Set(DriverBridgeConfiguration.OnEvaluatorAllocated, GenericType<AnotherHelloAllocatedEvaluatorHandler>.Class) + .Set(DriverBridgeConfiguration.OnContextActive, GenericType<HelloActiveContextHandler>.Class) + .Set(DriverBridgeConfiguration.OnTaskMessage, GenericType<HelloTaskMessageHandler>.Class) + .Set(DriverBridgeConfiguration.OnEvaluatorFailed, GenericType<HelloFailedEvaluatorHandler>.Class) + .Set(DriverBridgeConfiguration.OnTaskFailed, GenericType<HelloFailedTaskHandler>.Class) + .Set(DriverBridgeConfiguration.OnTaskRunning, GenericType<HelloRunningTaskHandler>.Class) + .Set(DriverBridgeConfiguration.OnEvaluatorRequested, GenericType<HelloEvaluatorRequestorHandler>.Class) + .Set(DriverBridgeConfiguration.OnHttpEvent, GenericType<HelloHttpHandler>.Class) + .Set(DriverBridgeConfiguration.OnEvaluatorCompleted, GenericType<HelloCompletedEvaluatorHandler>.Class) + .Set(DriverBridgeConfiguration.CustomTraceListeners, GenericType<DefaultCustomTraceListener>.Class) + .Set(DriverBridgeConfiguration.CustomTraceLevel, Level.Info.ToString()) + .Set(DriverBridgeConfiguration.CommandLineArguments, _submitControlForAllocatedEvaluator) // this is for testing purpose only + .Set(DriverBridgeConfiguration.OnDriverRestarted, GenericType<HelloRestartHandler>.Class) + .Set(DriverBridgeConfiguration.OnDriverReconnect, GenericType<DefaultLocalHttpDriverConnection>.Class) + .Set(DriverBridgeConfiguration.OnDirverRestartContextActive, GenericType<HelloDriverRestartActiveContextHandler>.Class) + .Set(DriverBridgeConfiguration.OnDriverRestartTaskRunning, GenericType<HelloDriverRestartRunningTaskHandler>.Class) + .Build(); + } + } + + public static void Main(string[] args) + { + Console.WriteLine("start running client: " + DateTime.Now); + bool runOnYarn = false; + if (args != null) + { + if (args.Length > 0) + { + runOnYarn = bool.Parse(args[0]); + } + + if (args.Length > 1) + { + _className = args[1]; + } + if (args.Length > 2) + { + _clrFolder = args[2]; + } + if (args.Length > 3) + { + _reefJar = args[3]; + } + if (args.Length > 4) + { + _runCommand = args[4]; + } + } + + if (string.IsNullOrWhiteSpace(_reefJar)) + { + _reefJar = Path.Combine(Environment.GetEnvironmentVariable(ReefHome), DefaultReefJar); + } + + if (string.IsNullOrWhiteSpace(_clrFolder)) + { + _clrFolder = Path.Combine(Environment.GetEnvironmentVariable(ReefHome), DefaultClrFolder); + } + + // Configurable driver submission settings: + // DriverMemory, default to 512 + // DriverIdentifer, default to "ReefClrBridge" + // Submit, default to True. Setting it to false and Java client will construct the driver.config and write to to FS without submitting the job + // ClientWaitTime, default to -1 which means client will wait till Driver is done + // SubmissionDirectory, default to a tmp folder on (H)DFS according to the YARN assigned application id, if user sets it, it must be guaranteed to be unique across multiple jobs + // RunOnYarn, default to false to run on local runtime. + // UpdateJarBeforeSubmission, default to true. Setting it to false can reduce startup time, but only if the jar file already contains all application dlls. + // JavaLogLevel, default to INFO. + DriverSubmissionSettings driverSubmissionSettings = new DriverSubmissionSettings() + { + RunOnYarn = runOnYarn, + SubmissionDirectory = "reefClrBridgeTmp/job_" + Guid.NewGuid().ToString("N").Substring(0, 8) + }; + + Console.WriteLine("start calling Run: " + DateTime.Now); + ClrClientHelper.Run(AppDll, ClrConfigurations, driverSubmissionSettings, _reefJar, _runCommand, _clrFolder, _className); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.csproj ---------------------------------------------------------------------- diff --git a/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.csproj b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.csproj new file mode 100644 index 0000000..0f333d3 --- /dev/null +++ b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/CLRBridgeClient.csproj @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +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. +--> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{5094C35B-4FDB-4322-AC05-45D684501CBF}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Org.Apache.Reef.CLRBridgeClient</RootNamespace> + <AssemblyName>Org.Apache.Reef.CLRBridgeClient</AssemblyName> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\..\..\bin\Debug\Org.Apache.Reef.CLRBridgeClient\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\..\..\bin\Release\Microsoft.Reef.CLRBridgeClient\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="CLRBridgeClient.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="run.cmd" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\Tang\Tang\Tang.csproj"> + <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project> + <Name>Tang</Name> + </ProjectReference> + <ProjectReference Include="..\..\..\Utilities\Utilities.csproj"> + <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project> + <Name>Utilities</Name> + </ProjectReference> + <ProjectReference Include="..\..\..\WAKE\Wake\Wake.csproj"> + <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project> + <Name>Wake</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-common\ReefCommon\ReefCommon.csproj"> + <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project> + <Name>ReefCommon</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-common\ReefDriver\ReefDriver.csproj"> + <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project> + <Name>ReefDriver</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-examples\HelloCLRBridge\HelloCLRBridge.csproj"> + <Project>{a78dd8e8-31d0-4506-8738-daa9da86d55b}</Project> + <Name>HelloCLRBridge</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-examples\RetainedEvalCLRBridge\RetainedEvalCLRBridge.csproj"> + <Project>{a33c20fb-a76e-494c-80c5-bce4bad876d3}</Project> + <Name>RetainedEvalCLRBridge</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-io\NetWork\NetWork.csproj"> + <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project> + <Name>NetWork</Name> + </ProjectReference> + <ProjectReference Include="..\..\reef-tasks\Tasks\Tasks.csproj"> + <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project> + <Name>Tasks</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/Properties/AssemblyInfo.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/Properties/AssemblyInfo.cs b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0cfd271 --- /dev/null +++ b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +/** + * 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. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CLRBridgeClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CLRBridgeClient")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8717944c-5e99-4f95-a916-5ca3c3f8e697")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2ae282de/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/run.cmd ---------------------------------------------------------------------- diff --git a/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/run.cmd b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/run.cmd new file mode 100644 index 0000000..3dca837 --- /dev/null +++ b/lang/cs/Source/REEF/reef-applications/CLRBridgeClient/run.cmd @@ -0,0 +1,45 @@ +@REM +@REM Copyright (C) 2013 Microsoft Corporation +@REM +@REM Licensed under the Apache License, Version 2.0 (the "License"); +@REM you may not use this file except in compliance with the License. +@REM You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. +@REM + +@echo off +:: +:: Copyright (C) 2013 Microsoft Corporation +:: +:: 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. +:: + + +:: RUNTIME +set SHADED_JAR=%REEF_HOME%\lang\java\reef-bridge-project\reef-bridge\target\reef-bridge-0.11.0-incubating-SNAPSHOT-shaded.jar + +set LOGGING_CONFIG=-Djava.util.logging.config.class=org.apache.reef.util.logging.CLRLoggingConfig + +set CLASSPATH=%HADOOP_HOME%\share\hadoop\hdfs\lib\*;%HADOOP_HOME%\share\hadoop\hdfs\*;%HADOOP_HOME%\share\hadoop\common\*;%HADOOP_HOME%\share\hadoop\common\lib\*;%HADOOP_HOME%\share\hadoop\mapreduce\lib\*;%HADOOP_HOME%\share\hadoop\mapreduce\*;%HADOOP_HOME%\share\hadoop\yarn\*;%HADOOP_HOME%\share\hadoop\yarn\lib\* + +set CMD=%JAVA_HOME%\bin\java.exe -cp %HADOOP_HOME%\etc\hadoop;%SHADED_JAR%;%CLASSPATH% %LOGGING_CONFIG% %* +::%LOGGING_CONFIG% +echo %CMD% +%CMD%
