You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by sh...@apache.org on 2022/11/11 05:18:24 UTC

[incubator-teaclave-java-tee-sdk] 44/48: [sdk] Cleanup JavaEnclave's code for contribution to Apache Teaclace

This is an automated email from the ASF dual-hosted git repository.

shaojunwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-java-tee-sdk.git

commit d4692bd9ca35005b741c77bd60b7f04b3538870d
Author: jeffery.wsj <je...@alibaba-inc.com>
AuthorDate: Tue Sep 20 11:50:27 2022 +0800

    [sdk] Cleanup JavaEnclave's code for contribution to Apache Teaclace
    
    Summary: Refactor JavaEnclave code, change all package names,  and add a Copyright header for all files.
    
    Test Plan: all tests pass
    
    Reviewers: lei.yul, cengfeng.lzy, sanhong.lsh
    
    Issue: https://aone.alibaba-inc.com/task/45079337
    
    CR: https://code.aone.alibaba-inc.com/java-tee/JavaEnclave/codereview/10200523
---
 .gitignore                                         |   1 +
 README.md                                          |  60 +--
 archetype/pom.xml                                  |  17 +-
 .../META-INF/maven/archetype-metadata.xml          |   1 -
 .../resources/archetype-resources/common/pom.xml   |   3 +-
 .../resources/archetype-resources/enclave/pom.xml  |   9 +-
 .../resources/archetype-resources/host/pom.xml     |  10 +-
 .../src/main/resources/archetype-resources/pom.xml |   9 +-
 benchmark/guomi/common/pom.xml                     |  21 +-
 .../benchmark/guomi/common/SMService.java          |  10 -
 .../javasdk/benchmark/guomi/common/SMService.java  |  27 ++
 benchmark/guomi/enclave/pom.xml                    |  31 +-
 .../benchmark/guomi/enclave/SM3ServiceImpl.java    |  15 -
 .../benchmark/guomi/enclave/SM2ServiceImpl.java    |  19 +-
 .../benchmark/guomi/enclave/SM3ServiceImpl.java    |  32 ++
 .../benchmark/guomi/enclave/SM4ServiceImpl.java    |  19 +-
 .../benchmark/guomi/enclave/SMServiceImpl.java     |  21 +-
 benchmark/guomi/host/pom.xml                       |  30 +-
 .../benchmark/guomi/host/GuoMiBenchMark.java       |  29 +-
 benchmark/guomi/pom.xml                            |  33 +-
 benchmark/guomi/run.sh                             |  21 +-
 benchmark/string/common/pom.xml                    |  21 +-
 .../string/common/StringOperationMetric.java       |   4 +-
 benchmark/string/enclave/pom.xml                   |  29 +-
 .../string/enclave/StringOperationMetricImpl.java  |   4 +-
 benchmark/string/host/pom.xml                      |  30 +-
 .../benchmark/string/host/StringBenchMark.java     |  10 +-
 benchmark/string/pom.xml                           |  31 +-
 benchmark/string/run.sh                            |   4 +-
 build.sh                                           |  34 +-
 coverage/run.sh                                    |  33 ++
 samples/helloworld/common/pom.xml                  |  21 +-
 .../alibaba/samples/helloworld/common/Service.java |   8 -
 .../javasdk/samples/helloworld/common/Service.java |  25 +
 samples/helloworld/enclave/pom.xml                 |  29 +-
 .../samples/helloworld/enclave/ServiceImpl.java    |  12 -
 .../samples/helloworld/enclave/ServiceImpl.java    |  29 ++
 samples/helloworld/host/pom.xml                    |  30 +-
 .../com/alibaba/samples/helloworld/host/Main.java  |  25 -
 .../javasdk/samples/helloworld/host/Main.java      |  42 ++
 samples/helloworld/pom.xml                         |  31 +-
 samples/helloworld/run.sh                          |   4 +-
 samples/springboot/common/pom.xml                  |  21 +-
 .../springboot/common/SBEnclaveService.java        |  11 -
 .../springboot/common/SBEnclaveService.java        |  28 ++
 samples/springboot/enclave/pom.xml                 |  31 +-
 .../springboot/enclave/EnclaveServiceImpl.java     |  21 +-
 samples/springboot/host/pom.xml                    |  30 +-
 .../samples/springboot/host/Application.java       |  25 -
 .../springboot/host/EnclaveDigestController.java   |  27 --
 .../springboot/host/EnclaveEncDecController.java   |  27 --
 .../samples/springboot/host/Application.java       |  42 ++
 .../springboot/host/EnclaveDigestController.java   |  44 ++
 .../springboot/host/EnclaveEncDecController.java   |  44 ++
 samples/springboot/pom.xml                         |  33 +-
 samples/springboot/run.sh                          |  21 +-
 sdk/common/pom.xml                                 |  21 +-
 .../common/annotations/EnclaveMethod.java          |  45 --
 .../exception/ConfidentialComputingException.java  |  35 --
 .../EmbeddedLibOSInnerAttestationReport.java       |  21 +-
 .../javasdk}/common/EnclaveInvocationContext.java  |  19 +-
 .../javasdk}/common/EnclaveInvocationResult.java   |  19 +-
 .../javasdk}/common/SerializationHelper.java       |  19 +-
 .../teaclave/javasdk}/common/ServiceHandler.java   |  19 +-
 .../common/SocketEnclaveInvocationContext.java     |  19 +-
 .../javasdk/common/annotations/EnclaveMethod.java  |  36 ++
 .../common/annotations/EnclaveService.java         |  43 +-
 .../exception/ConfidentialComputingException.java  |  52 ++
 sdk/enclave/docs/Incompatibilities.md              |  12 +-
 sdk/enclave/pom.xml                                |  25 +-
 .../enclave/EnclaveRandomFeature.java              |  18 -
 .../enclave/SUNECReplaceFeature.java               | 177 -------
 .../enclave/agent/RemoteAttestation.java           |  21 -
 .../enclave/framework/EnclaveMethodInvoker.java    |  16 -
 .../enclave/framework/LoadServiceInvoker.java      |  24 -
 .../enclave/framework/UnloadServiceInvoker.java    |  23 -
 .../enclave/substitutes/NativeSunECMethods.java    |  21 -
 .../enclave/substitutes/SUNECSubstitutions.java    |  53 --
 .../teaclave/javasdk}/enclave/EnclaveEntry.java    |  29 +-
 .../teaclave/javasdk}/enclave/EnclaveFeature.java  |  33 +-
 .../teaclave/javasdk}/enclave/EnclaveOptions.java  |  19 +-
 .../javasdk}/enclave/EnclavePlatFormSettings.java  |  19 +-
 .../teaclave/javasdk}/enclave/EnclavePrologue.java |  19 +-
 .../javasdk/enclave/EnclaveRandomFeature.java      |  35 ++
 .../javasdk}/enclave/InvocationWrapper.java        |  31 +-
 .../javasdk}/enclave/NativeCommandUtil.java        |  19 +-
 .../javasdk}/enclave/agent/EnclaveAgent.java       |  25 +-
 .../enclave/agent/EnclaveAgentServiceImpl.java     |  39 +-
 .../javasdk}/enclave/agent/EnclaveShutDown.java    |  19 +-
 .../javasdk/enclave/agent/RemoteAttestation.java   |  38 ++
 .../javasdk}/enclave/c/EnclaveEnvironment.java     |  44 +-
 .../cpufeatures/EnclaveAMD64CPUFeatureAccess.java  |  19 +-
 .../EnclaveAMD64CPUFeatureAccessFeature.java       |  21 +-
 .../javasdk}/enclave/framework/EnclaveContext.java |  23 +-
 .../enclave/framework/EnclaveMethodInvoker.java    |  33 ++
 .../enclave/framework/LoadServiceInvoker.java      |  41 ++
 .../enclave/framework/ServiceMethodInvoker.java    |  27 +-
 .../enclave/framework/UnloadServiceInvoker.java    |  40 ++
 .../substitutes/NativePRNGSubstitutions.java       |  25 +-
 .../enclave/system/EnclaveMemoryFeature.java       |  31 +-
 .../enclave/system/EnclaveMuslLibcFeature.java     |  19 +-
 .../enclave/system/EnclavePhysicalMemory.java      |  21 +-
 .../system/EnclaveVirtualMemoryProvider.java       |  21 +-
 .../remote_attestation_generate/Makefile           |  17 +
 .../jni_occlum_attestation_generate.c              |  19 +-
 .../jni_occlum_attestation_generate.h              |  39 +-
 .../platform/tee_sdk_svm/edge_routines/Makefile    |  17 +-
 .../platform/tee_sdk_svm/edge_routines/sgx_mmap.c  |  25 +-
 .../platform/tee_sdk_svm/edge_routines/sgx_mmap.h  |  17 +
 .../tee_sdk_svm/edge_routines/tee_sdk_symbol.c     |  18 +-
 .../tee_sdk_svm/edge_routines/tee_sdk_symbol.h     |  20 +-
 .../remote_attestation_generate/Makefile           |  17 +
 .../generate_attestation_report.c                  |  17 +
 .../generate_attestation_report.h                  |  17 +
 .../cpp/platform/tee_sdk_svm/wrapper/Makefile      |  17 +
 .../platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.c |  17 +
 .../platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.h |  17 +
 .../enclave/native-image.properties                |   0
 .../native-image/serialization-config.json         |   8 +-
 .../org.graalvm.compiler.options.OptionDescriptors |   2 +-
 .../src/main/resources/native/enc_environment.h    |  17 +
 .../src/main/resources/native/sunec/ECC_JNI.c      | 524 --------------------
 ...puting_enclave_substitutes_NativeSunECMethods.h |  53 --
 .../src/main/resources/native/sunec/ecc_impl.h     | 271 -----------
 .../src/main/resources/native/sunec/ecl-exp.h      | 201 --------
 .../src/main/resources/native/sunec/jlong.h        |  31 --
 .../src/main/resources/native/sunec/jlong_md.h     | 100 ----
 .../src/main/resources/native/sunec/jni_util.h     | 534 ---------------------
 .../enclave/NativeImageTestable.java               |  12 -
 .../enclave/ReplaceSunECTest.java                  |  76 ---
 .../confidentialcomputing/enclave/TestTarget.java  |  12 -
 .../enclave/testservice/EnclaveMem.java            |  10 -
 .../enclave/testservice/EncryptionService.java     |  10 -
 .../enclave/testservice/IntegerMath.java           |   8 -
 .../enclave/testservice/MathService.java           |  29 --
 .../enclave/testservice/MemService.java            |   8 -
 .../enclave/testservice/NumericMath.java           |  36 --
 .../enclave/testservice/Point.java                 |  16 -
 .../enclave/testservice/PointMath.java             |  19 -
 .../enclave/testservice/SunECOperations.java       |  12 -
 .../teaclave/javasdk}/enclave/ConfigMemTest.java   |  31 +-
 .../javasdk}/enclave/EnclaveTestHelper.java        |  41 +-
 .../teaclave/javasdk}/enclave/NativeImageTest.java |  27 +-
 .../javasdk/enclave/NativeImageTestable.java       |  29 ++
 .../javasdk}/enclave/RunWithNativeImageTest.java   |  49 +-
 .../javasdk}/enclave/SVMSimpleEnclaveCallTest.java |  39 +-
 .../teaclave/javasdk/enclave/TestTarget.java       |  29 ++
 .../framework/ServiceMethodInvokerTest.java        |  43 +-
 .../enclave/framework/ServiceOperationTest.java    |  31 +-
 .../javasdk/enclave/testservice/EnclaveMem.java    |  27 ++
 .../enclave/testservice/EncryptionService.java     |  27 ++
 .../javasdk/enclave/testservice/IntegerMath.java   |  25 +
 .../javasdk/enclave/testservice/MathService.java   |  46 ++
 .../javasdk/enclave/testservice/MemService.java    |  25 +
 .../javasdk/enclave/testservice/NumericMath.java   |  53 ++
 .../javasdk/enclave/testservice/Point.java         |  33 ++
 .../javasdk/enclave/testservice/PointMath.java     |  36 ++
 .../enclave/testservice/SunECOperations.java       |  29 ++
 ...computing.enclave.testservice.EncryptionService |   1 -
 ...entialcomputing.enclave.testservice.MathService |   3 -
 ...dentialcomputing.enclave.testservice.MemService |   1 -
 ...e.javasdk.enclave.testservice.EncryptionService |   1 +
 ...eaclave.javasdk.enclave.testservice.MathService |   3 +
 ...teaclave.javasdk.enclave.testservice.MemService |   1 +
 ...nfidentialcomputing_enclave_EnclaveTestHelper.h |  61 ---
 .../test/resources/native/enc_invoke_entry_test.c  |  31 +-
 sdk/enclave/src/test/resources/native/main_c.c     |  17 +
 ...he_teaclave_javasdk_enclave_EnclaveTestHelper.h |  78 +++
 sdk/host/docs/Configuration.md                     |  58 +--
 sdk/host/pom.xml                                   |  27 +-
 .../host/BaseEnclaveServicesRecycler.java          |  20 -
 .../host/EmbeddedLibOSAttestationReport.java       |  11 -
 .../confidentialcomputing/host/EnclaveDebug.java   |  29 --
 .../host/EnclaveInfoMXBean.java                    |  24 -
 .../host/EnclaveSimulate.java                      |  29 --
 .../host/RemoteAttestationVerifyResult.java        |  25 -
 .../host/TeeSdkAttestationReport.java              |  10 -
 .../host/exception/EnclaveCreatingException.java   |  33 --
 .../teaclave/javasdk}/host/AbstractEnclave.java    |  29 +-
 .../teaclave/javasdk}/host/AttestationReport.java  |  19 +-
 .../javasdk/host/BaseEnclaveServicesRecycler.java  |  37 ++
 .../host/EmbeddedLibOSAttestationReport.java       |  28 ++
 .../javasdk}/host/EmbeddedLibOSEnclave.java        |  25 +-
 .../host/EmbeddedLibOSEnclaveConfigure.java        |  37 +-
 .../apache/teaclave/javasdk}/host/Enclave.java     |  23 +-
 .../teaclave/javasdk}/host/EnclaveConfigure.java   |  27 +-
 .../apache/teaclave/javasdk/host/EnclaveDebug.java |  46 ++
 .../teaclave/javasdk}/host/EnclaveFactory.java     |  29 +-
 .../apache/teaclave/javasdk}/host/EnclaveInfo.java |  19 +-
 .../teaclave/javasdk/host/EnclaveInfoMXBean.java   |  41 ++
 .../teaclave/javasdk}/host/EnclaveInfoManager.java |  19 +-
 .../javasdk}/host/EnclaveServicesRecycler.java     |  21 +-
 .../teaclave/javasdk/host/EnclaveSimulate.java     |  46 ++
 .../teaclave/javasdk}/host/EnclaveToken.java       |  19 +-
 .../apache/teaclave/javasdk}/host/EnclaveType.java |  23 +-
 .../teaclave/javasdk}/host/ExtractLibrary.java     |  21 +-
 .../apache/teaclave/javasdk}/host/MetricTrace.java |  25 +-
 .../teaclave/javasdk}/host/MetricTraceContext.java |  19 +-
 .../teaclave/javasdk}/host/MockEnclaveInfo.java    |  19 +-
 .../teaclave/javasdk}/host/MockInJvmEnclave.java   |  25 +-
 .../teaclave/javasdk}/host/MockInSvmEnclave.java   |  31 +-
 .../javasdk}/host/MockInSvmEnclaveConfigure.java   |  21 +-
 .../host/ProxyEnclaveInvocationHandler.java        |  27 +-
 .../host/ProxyMockJvmInvocationHandler.java        |  19 +-
 .../teaclave/javasdk}/host/RemoteAttestation.java  |  23 +-
 .../host/RemoteAttestationVerifyResult.java        |  42 ++
 .../javasdk}/host/SGXAttestationReport.java        |  19 +-
 .../teaclave/javasdk}/host/SGXEnclaveInfo.java     |  19 +-
 .../javasdk}/host/SGXRemoteAttestationVerify.java  |  21 +-
 .../javasdk/host/TeeSdkAttestationReport.java      |  27 ++
 .../teaclave/javasdk}/host/TeeSdkEnclave.java      |  33 +-
 .../javasdk}/host/TeeSdkEnclaveConfigure.java      |  23 +-
 .../host/exception/EnclaveCreatingException.java   |  50 ++
 .../host/exception/EnclaveDestroyingException.java |  21 +-
 .../exception/EnclaveMethodInvokingException.java  |  21 +-
 .../exception/EnclaveNativeInvokingException.java  |  19 +-
 .../exception/MetricTraceLogWriteException.java    |  21 +-
 .../host/exception/RemoteAttestationException.java |  21 +-
 .../host/exception/ServicesLoadingException.java   |  21 +-
 .../host/exception/ServicesUnloadingException.java |  21 +-
 .../native/cpp/attestation_verify/sgx/jni/Makefile |  17 +-
 .../sgx/jni/jni_remote_attestation_verify.c        |  23 +-
 .../sgx/jni/jni_remote_attestation_verify.h        |  33 +-
 .../cpp/platform/libos_occlum_enclave/jni/Makefile |  17 +
 .../libos_occlum_enclave/jni/jni_occlum_enclave.c  |  21 +-
 .../libos_occlum_enclave/jni/jni_occlum_enclave.h  |  41 +-
 .../native/cpp/platform/mock_in_svm/jni/Makefile   |  17 +
 .../cpp/platform/mock_in_svm/jni/jni_mock_in_svm.c |  19 +-
 .../cpp/platform/mock_in_svm/jni/jni_mock_in_svm.h |  33 +-
 .../main/native/cpp/platform/tee_sdk_svm/Makefile  |  17 +-
 .../platform/tee_sdk_svm/edge_routines/Makefile    |  17 +-
 .../tee_sdk_svm/edge_routines/ocall_attestation.c  |  17 +
 .../tee_sdk_svm/edge_routines/ocall_attestation.h  |  17 +
 .../platform/tee_sdk_svm/edge_routines/ocall_svm.c |  17 +
 .../platform/tee_sdk_svm/edge_routines/ocall_svm.h |  17 +
 .../native/cpp/platform/tee_sdk_svm/jni/Makefile   |  17 +-
 .../tee_sdk_svm/jni/generate_attestation_report.c  |  17 +
 .../tee_sdk_svm/jni/generate_attestation_report.h  |  17 +
 .../cpp/platform/tee_sdk_svm/jni/jni_tee_sdk_svm.c |  21 +-
 .../cpp/platform/tee_sdk_svm/jni/jni_tee_sdk_svm.h |  55 ++-
 .../confidentialcomputing/host/Service.java        |  11 -
 .../host/ServiceExceptionTest.java                 |   7 -
 .../confidentialcomputing/host/ServiceImpl.java    |  26 -
 .../host/TestEnclaveFactory.java                   |  16 -
 .../teaclave/javasdk}/host/MockTestEnclave.java    |  27 +-
 .../org/apache/teaclave/javasdk/host/Service.java  |  28 ++
 .../javasdk/host/ServiceExceptionTest.java         |  24 +
 .../apache/teaclave/javasdk/host/ServiceImpl.java  |  43 ++
 .../javasdk}/host/TestAbstractEnclave.java         |  27 +-
 .../teaclave/javasdk/host/TestEnclaveFactory.java  |  33 ++
 .../javasdk}/host/TestRemoteAttestation.java       |  21 +-
 sdk/native/config/config.mk                        |  17 +
 .../libos_occlum_enclave/enclave/config.mk         |  17 +
 .../platform/libos_occlum_enclave/jni/config.mk    |  17 +
 .../config/platform/mock_in_svm/jni/config.mk      |  17 +
 .../platform/tee_sdk_svm/edl/tee_sdk_enclave.edl   |  17 +
 .../config/platform/tee_sdk_svm/jni/config.mk      |  17 +
 .../config/remote_attestation_verify/sgx/config.mk |  17 +
 sdk/native/config/template/TeeSDK.conf             |  17 +
 sdk/native/include/enc_environment.h               |  17 +
 sdk/native/include/enc_exported_symbol.h           |  17 +
 sdk/native/script/build_app/Makefile               |  17 +
 .../script/build_app/create_tee_sdk_configure.sh   |  17 +
 .../script/build_app/libos_occlum_enclave_build.sh |  19 +-
 sdk/native/script/build_app/make.sh                |  17 +
 sdk/native/script/build_enclave_sdk/Makefile       |  17 +-
 sdk/native/script/build_enclave_sdk/make.sh        |  17 +
 sdk/native/script/build_host_sdk/Makefile          |  17 +-
 sdk/native/script/build_host_sdk/make.sh           |  17 +
 sdk/pom.xml                                        |  26 +-
 test/common/pom.xml                                |  21 +-
 .../test/common/AESSealedTest.java                 |  25 -
 .../test/common/AESService.java                    |  10 -
 .../test/common/ConcurrencyCalculate.java          |  11 -
 .../test/common/EnclaveException.java              |   8 -
 .../test/common/EnclaveServiceStatistic.java       |   8 -
 .../test/common/JavaEnclaveException.java          |   7 -
 .../test/common/MetricTraceService.java            |   8 -
 .../test/common/RSAService.java                    |   8 -
 .../test/common/ReflectionCallService.java         |   9 -
 .../test/common/SHAService.java                    |   8 -
 .../test/common/SM2Service.java                    |   8 -
 .../test/common/SM3Service.java                    |   8 -
 .../test/common/SM4Service.java                    |   8 -
 .../test/common/SayHelloService.java               |   9 -
 .../javasdk/test/common/AESSealedTest.java         |  42 ++
 .../teaclave/javasdk/test/common/AESService.java   |  27 ++
 .../javasdk/test/common/ConcurrencyCalculate.java  |  28 ++
 .../javasdk/test/common/EnclaveException.java      |  25 +
 .../test/common/EnclaveServiceStatistic.java       |  25 +
 .../javasdk/test/common/JavaEnclaveException.java  |  24 +
 .../javasdk/test/common/MetricTraceService.java    |  25 +
 .../teaclave/javasdk/test/common/RSAService.java   |  25 +
 .../javasdk/test/common/ReflectionCallService.java |  26 +
 .../teaclave/javasdk/test/common/SHAService.java   |  25 +
 .../teaclave/javasdk/test/common/SM2Service.java   |  25 +
 .../teaclave/javasdk/test/common/SM3Service.java   |  25 +
 .../teaclave/javasdk/test/common/SM4Service.java   |  25 +
 .../javasdk/test/common/SMSignAndVerify.java       |   8 +
 .../javasdk/test/common/SayHelloService.java       |  26 +
 test/enclave/pom.xml                               |  31 +-
 .../test/enclave/Calculate.java                    |  11 -
 .../test/enclave/ConcurrencyCalculateImpl.java     |  35 --
 .../test/enclave/EnclaveExceptionImpl.java         |  13 -
 .../test/enclave/EnclaveServiceStatisticImpl.java  |  19 -
 .../test/enclave/MetricTraceServiceImpl.java       |  17 -
 .../test/enclave/SHAServiceImpl.java               |  22 -
 .../test/enclave/SM3ServiceImpl.java               |  19 -
 .../test/enclave/SayHelloServiceImpl.java          |  18 -
 .../javasdk}/test/enclave/AESServiceImpl.java      |  25 +-
 .../teaclave/javasdk}/test/enclave/AESUtil.java    |  19 +-
 .../teaclave/javasdk/test/enclave/Calculate.java   |  28 ++
 .../test/enclave/ConcurrencyCalculateImpl.java     |  52 ++
 .../javasdk/test/enclave/EnclaveExceptionImpl.java |  30 ++
 .../test/enclave/EnclaveServiceStatisticImpl.java  |  36 ++
 .../test/enclave/MetricTraceServiceImpl.java       |  34 ++
 .../javasdk}/test/enclave/RSAServiceImpl.java      |  21 +-
 .../test/enclave/ReflectionCallServiceImpl.java    |  21 +-
 .../javasdk/test/enclave/SHAServiceImpl.java       |  39 ++
 .../javasdk}/test/enclave/SM2ServiceImpl.java      |  21 +-
 .../javasdk/test/enclave/SM3ServiceImpl.java       |  36 ++
 .../javasdk}/test/enclave/SM4ServiceImpl.java      |  21 +-
 .../javasdk/test/enclave/SMSignAndVerifyImpl.java  |  47 ++
 .../javasdk/test/enclave/SayHelloServiceImpl.java  |  35 ++
 .../test/enclave/TestAESServiceImpl.java           |  22 -
 .../test/enclave/TestEnclaveException.java         |  14 -
 .../enclave/TestEnclaveServiceStatisticImpl.java   |  12 -
 .../test/enclave/TestReflectionCallService.java    |  15 -
 .../test/enclave/TestSayHelloServiceImpl.java      |  14 -
 .../javasdk/test/enclave/TestAESServiceImpl.java   |  39 ++
 .../javasdk/test/enclave/TestEnclaveException.java |  31 ++
 .../enclave/TestEnclaveServiceStatisticImpl.java   |  29 ++
 .../test/enclave/TestReflectionCallService.java    |  32 ++
 .../test/enclave/TestSayHelloServiceImpl.java      |  31 ++
 test/host/pom.xml                                  |  68 ++-
 .../javasdk}/test/host/TestEnclaveAES.java         |  31 +-
 .../javasdk}/test/host/TestEnclaveConcurrency.java |  29 +-
 .../javasdk/test/host/TestEnclaveException.java    |  54 +++
 .../javasdk}/test/host/TestEnclaveInfo.java        |  29 +-
 .../javasdk}/test/host/TestEnclaveInfoMXBean.java  |  25 +-
 .../javasdk}/test/host/TestEnclaveMetricTrace.java |  31 +-
 .../teaclave/javasdk/test/host/TestEnclaveRSA.java |  53 ++
 .../javasdk/test/host/TestEnclaveReflection.java   |  55 +++
 .../javasdk}/test/host/TestEnclaveSHA.java         |  29 +-
 .../javasdk/test/host/TestEnclaveServiceGC.java    |  55 +++
 .../teaclave/javasdk/test/host/TestHelloWorld.java |  56 +++
 .../teaclave/javasdk/test/host/TestMain.java       |  38 ++
 .../javasdk/test/host/TestRemoteAttestation.java   |  59 +++
 .../teaclave/javasdk}/test/host/TestSMEnclave.java |  55 ++-
 .../test/host/TestEnclaveException.java            |  37 --
 .../test/host/TestEnclaveRSA.java                  |  36 --
 .../test/host/TestEnclaveReflection.java           |  38 --
 .../test/host/TestEnclaveServiceGC.java            |  38 --
 .../test/host/TestHelloWorld.java                  |  39 --
 .../test/host/TestRemoteAttestation.java           |  37 --
 test/pom.xml                                       |  80 ++-
 test/run.sh                                        |  24 +
 third-party-libs/bouncycastle-native/Makefile      |  17 +
 .../bouncycastle-native/generate_bc_configs.sh     |  18 +
 third-party-libs/bouncycastle-native/make.sh       |  19 +
 third-party-libs/bouncycastle-native/pom.xml       |  17 +-
 .../alibaba/enclave/bouncycatsle/BCOptions.java    |  10 -
 .../BouncycastleJarNameFormatException.java        |   7 -
 .../thirdpartylibs/bouncycatsle/BCOptions.java     |  27 ++
 .../bouncycatsle/BouncyCastleFeature.java          |  21 +-
 .../BouncycastleJarNameFormatException.java        |  24 +
 .../bouncycastle-native/native-image.properties    |   0
 .../org.graalvm.compiler.options.OptionDescriptors |   2 +-
 .../alibaba/enclave/bouncycatsle/BcService.java    |  11 -
 .../alibaba/enclave/bouncycatsle/Sm2Service.java   |  11 -
 .../thirdpartylibs/bouncycatsle/BcService.java     |  28 ++
 .../bouncycatsle/BcServiceImpl.java                |  19 +-
 .../bouncycatsle/BouncyCastleTest.java             |  19 +-
 .../thirdpartylibs/bouncycatsle/Sm2Service.java    |  28 ++
 .../bouncycatsle/Sm2ServiceImpl.java               |  19 +-
 .../com.alibaba.enclave.bouncycatsle.BcService     |   1 -
 ...e.javasdk.thirdpartylibs.bouncycatsle.BcService |   1 +
 tools/cicd/dockerfile_base                         |  32 +-
 tools/cicd/dockerfile_release                      |  21 +-
 tools/cicd/graalvm/build_graalvm_jdk.sh            |  34 ++
 tools/cicd/graalvm/make.sh                         |  26 +
 tools/cicd/jenkinsfile                             |   6 +-
 tools/cicd/make.sh                                 |  79 ++-
 tools/cicd/teesdk/build_tee_sdk.sh                 |  39 ++
 tools/cicd/teesdk/make.sh                          |  26 +
 385 files changed, 6850 insertions(+), 4331 deletions(-)

diff --git a/.gitignore b/.gitignore
index 8e5dc50..0bf32f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@ hs_err_pid*
 .classpath
 .project
 .settings/
+.vscode
 
 # Maven compiled directory
 target/
diff --git a/README.md b/README.md
index a44d750..f63c6d2 100644
--- a/README.md
+++ b/README.md
@@ -1,34 +1,34 @@
-## What's JavaEnclave?
+## What's Teaclave-java-tee-sdk?
 
-JavaEnclave is a Java confidential computing programming model. It follows the host-and-enclave partition programming model defined by Intel-SGX SDK. JavaEnclave provides an elegant way to divide a java project into host and enclave modules, the enclave module is a provider of a user-defined service interface, it's similar to the SPI development model. JavaEnclave could help you to develop and build a Java confidential computing project with high efficiency.
+Teaclave-java-tee-sdk is a Java confidential computing programming model. It follows the host-and-enclave partition programming model defined by Intel-SGX SDK. Teaclave-java-tee-sdk provides an elegant way to divide a java project into host and enclave modules, the enclave module is a provider of a user-defined service interface, it's similar to the SPI development model. Teaclave-java-tee-sdk could help you to develop and build a Java confidential computing project with high efficiency.
 
-## Why do we need JavaEnclave?
+## Why do we need Teaclave-java-tee-sdk?
 
-Occlum and Gramine libOS solutions run the entire Java application inside the enclave. Although it's much easier for end users, it suffers from a large TCB(Trusted Computing Base) that may compromise the security to some degree. On the other hand, Intel-SGX and OpenEnclave SDKs are more secure by only running the sensitive code inside the enclave, but they are limited to C/C++ ecosystem, and the development experience for programmers is unfriendly. For Example, it requests the programmer [...]
+Occlum and Gramine libOS solutions run the entire Java application inside the enclave. Although it's much easier for end users, it suffers from a large TCB(Trusted Computing Base) that may compromise the security to some degree. On the other hand, Intel-SGX and OpenEnclave SDKs are more secure by only running the sensitive code inside the enclave, but they are limited to C/C++ ecosystem, and the development experience for programmers is unfriendly. For Example, it requests the programmer [...]
 
-## JavaEnclave architecture
+## Teaclave-java-tee-sdk architecture
 
-JavaEnclave provides seven components:
+Teaclave-java-tee-sdk provides seven components:
 
-- JavaEnclave Host .jar, provides API to create and destroy enclave instances, enclave service loading and unloading, remote attestation quote generation, and verification.
+- Teaclave-java-tee-sdk Host .jar, provides API to create and destroy enclave instances, enclave service loading and unloading, remote attestation quote generation, and verification.
 
-- JavaEnclave Enclave .jar, makes java native image runs in sgx enclave environment, and provides a stub between host and enclave for their interaction.
+- Teaclave-java-tee-sdk Enclave .jar, makes java native image runs in sgx enclave environment, and provides a stub between host and enclave for their interaction.
 
-- JavaEnclave Common .jar, provides an annotation for application, which helps to register user-defined interface parameters' type information for native image reflection. Also, it defines the interface between host and enclave for underlying interaction, and it's transparent for the application.
+- Teaclave-java-tee-sdk Common .jar, provides an annotation for application, which helps to register user-defined interface parameters' type information for native image reflection. Also, it defines the interface between host and enclave for underlying interaction, and it's transparent for the application.
 
-- JavaEnclave SDK, provides all kinds of underlying JNI .so and building toolchains.
+- Teaclave-java-tee-sdk SDK, provides all kinds of underlying JNI .so and building toolchains.
 
-- JavaEnclave Archetype project, helps the user to create a Java confidential computing project Structure.
+- Teaclave-java-tee-sdk Archetype project, helps the user to create a Java confidential computing project Structure.
 
 - Native BouncyCastle third-party package, helps the user to apply BouncyCastle in the enclave native environment without reflection issues.
 
-- JavaEnclave Docker, provides a standard build and execution environment for Java confidential computing applications.
+- Teaclave-java-tee-sdk Docker, provides a standard build and execution environment for Java confidential computing applications.
 
 ![avatar](./docs/resources/JavaEnclave_Architecture.png)
 
-## Confidential computing Java project structure based on JavaEnclave
+## Confidential computing Java project structure based on Teaclave-java-tee-sdk
 
-A Java confidential computing application project based on JavaEnclave is a maven project which consists of three submodules, they are host submodule, enclave submodule, and common submodule. The common submodule contains the service interface definition, the enclave submodule implements the interface defined in the common submodule, host submodule contains the management of the enclave instance and service instance. We can view the enclave submodule as an SPI provider, JavaEnclave will  [...]
+A Java confidential computing application project based on Teaclave-java-tee-sdk is a maven project which consists of three submodules, they are host submodule, enclave submodule, and common submodule. The common submodule contains the service interface definition, the enclave submodule implements the interface defined in the common submodule, host submodule contains the management of the enclave instance and service instance. We can view the enclave submodule as an SPI provider, Teaclav [...]
 
 ![avatar](./docs/resources/JavaEnclave_Application_Dependency.png)
 
@@ -44,7 +44,7 @@ A Java confidential computing application project based on JavaEnclave is a mave
 
 ![avatar](./docs/resources/SGX2_Supported_Check.png)
 
-if SGX2 is not supported, only MOCK_IN_JVM and MOCK_IN_SVM enclave modes in JavaEnclave could be run normally.
+if SGX2 is not supported, only MOCK_IN_JVM and MOCK_IN_SVM enclave modes in Teaclave-java-tee-sdk could be run normally.
 
 #### 2. Is the SGX2 driver installed?
 
@@ -54,21 +54,21 @@ if it is not, you need to install the sgx driver according to reference: https:/
 
 #### 3. enable_rdfsbase kernel module
 
-if Linux kernel before 5.9, please install the enable_rdfsbase kernel module according to reference: https://github.com/occlum/enable_rdfsbase. enable_rdfsbase kernel module is needed if you create an enclave instance with EMBEDDED_LIB_OS mode defined in JavaEnclave.
+if Linux kernel before 5.9, please install the enable_rdfsbase kernel module according to reference: https://github.com/occlum/enable_rdfsbase. enable_rdfsbase kernel module is needed if you create an enclave instance with EMBEDDED_LIB_OS mode defined in Teaclave-java-tee-sdk.
 
-#### 4. Enter JavaEnclave docker
+#### 4. Enter Teaclave-java-tee-sdk docker
 
-`docker run -it --privileged --network host -v /dev/sgx_enclave:/dev/sgx/enclave -v /dev/sgx_provision:/dev/sgx/provision javaenclave:v0.1.0-ubuntu18.04`
+`docker run -it --privileged --network host -v /dev/sgx_enclave:/dev/sgx/enclave -v /dev/sgx_provision:/dev/sgx/provision teaclave-java-tee-sdk:v0.1.0-ubuntu18.04`
 
-JavaEnclave Docker provides a compilation and deployment environment for a java confidential computing application based on JavaEnclave.
+Teaclave-java-tee-sdk Docker provides a compilation and deployment environment for a java confidential computing application based on Teaclave-java-tee-sdk.
 
 ### HelloWorld sample instruction
 
 #### 1. Create a HelloWorld project structure
 
-JavaEnclave provides a java confidential computing archetype project to help us create a basic project structure.
+Teaclave-java-tee-sdk provides a java confidential computing archetype project to help us create a basic project structure.
 
-`mvn archetype:generate -DgroupId=com.sample.helloworld -DartifactId=helloworld -DarchetypeGroupId=com.alibaba.confidentialcomputing -DarchetypeArtifactId=javaenclave-archetype -DarchetypeVersion=0.1.0 -DinteractiveMode=false`
+`mvn archetype:generate -DgroupId=com.sample.helloworld -DartifactId=helloworld -DarchetypeGroupId=org.apache.teaclave.javasdk -DarchetypeArtifactId=javaenclave-archetype -DarchetypeVersion=0.1.0 -DinteractiveMode=false`
 
 archetype creates a maven project with three submodules, a host submodule enclave submodule, and a common submodule.
 
@@ -81,7 +81,7 @@ then create a Service.java file to define an enclave service interface.
 ```java
 package com.sample.helloworld.common;
 
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
 
 @EnclaveService
 public interface Service {
@@ -89,7 +89,7 @@ public interface Service {
 }
 ```
 
-Note that we have to annotate this service interface with `@EnclaveService` which JavaEnclave provides.
+Note that we have to annotate this service interface with `@EnclaveService` which Teaclave-java-tee-sdk provides.
 
 #### 3. Create enclave service interface provider in enclave submodule
 
@@ -123,9 +123,9 @@ then create Main.java to show how to create and invoke an enclave service.
 ```java
 package com.sample.helloworld.host;
 
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
 
 import com.sample.helloworld.common.Service;
 
@@ -157,16 +157,16 @@ Note that parameter `-Pnative` should not be ignored.
 
 then we could run this sample: `OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar com.sample.helloworld.host.Main`
 
-## Four enclave types in JavaEnclave
+## Four enclave types in Teaclave-java-tee-sdk
 
 ### MOCK_IN_JVM mode
 
-`MOCK_IN_JVM` mode in JavaEnclave is a simulated mode, it doesn't need SGX hardware support. The host module and enclave module run in the same JVM environment.
+`MOCK_IN_JVM` mode in Teaclave-java-tee-sdk is a simulated mode, it doesn't need SGX hardware support. The host module and enclave module run in the same JVM environment.
 In essence, it's an SPI mechanism between host and enclave parts.
 
 ### MOCK_IN_SVM mode
 
-`MOCK_IN_SVM` mode in JavaEnclave is also a simulated mode, it doesn't need SGX hardware support. Compare with `MOCK_IN_JVM` mode, the enclave submodule
+`MOCK_IN_SVM` mode in Teaclave-java-tee-sdk is also a simulated mode, it doesn't need SGX hardware support. Compare with `MOCK_IN_JVM` mode, the enclave submodule
 will be compiled into a native image, and the host submodule run in a JVM environment. host part will load, create and invoke service defined in enclave by JNI native call.
 
 ### TEE_SDK mode
@@ -177,6 +177,6 @@ will be compiled into a native image, and the host submodule run in a JVM enviro
 
 `EMBEDDED_LIB_OS` mode is also a hardware mode, it must run on the platform with SGX2 hardware support. Compare with `TEE_SDK` mode, the enclave submodule will be compiled into a jar file, and it will be loaded and run in an enclave with libOS Occlum, an inner alpine JVM runs based on this libOS. The host part runs in another JVM based on a normal environment. The two JVM instances co-existence and run in one process.
 
-## JavaEnclave configuration
+## Teaclave-java-tee-sdk configuration
 
 please refer to the link: [Configuration.md](./sdk/host/docs/Configuration.md)
\ No newline at end of file
diff --git a/archetype/pom.xml b/archetype/pom.xml
index 8db96ac..c3bca7a 100644
--- a/archetype/pom.xml
+++ b/archetype/pom.xml
@@ -1,7 +1,20 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing</groupId>
+    <groupId>org.apache.teaclave.javasdk</groupId>
     <artifactId>javaenclave-archetype</artifactId>
     <version>0.1.0</version>
     <packaging>maven-archetype</packaging>
diff --git a/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
index 0cacd3d..d3ba772 100644
--- a/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="points"
     xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
diff --git a/archetype/src/main/resources/archetype-resources/common/pom.xml b/archetype/src/main/resources/archetype-resources/common/pom.xml
index cb01d3c..99ab92d 100644
--- a/archetype/src/main/resources/archetype-resources/common/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/common/pom.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>${groupId}</groupId>
@@ -38,7 +37,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/archetype/src/main/resources/archetype-resources/enclave/pom.xml b/archetype/src/main/resources/archetype-resources/enclave/pom.xml
index 780d40f..a7eb50f 100644
--- a/archetype/src/main/resources/archetype-resources/enclave/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/enclave/pom.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
@@ -14,7 +13,7 @@
     <url>http://maven.apache.org</url>
     <properties>
         <svm.maven.version>0.9.13</svm.maven.version>
-        <com.alibaba.enclave.privatePem.path></com.alibaba.enclave.privatePem.path>
+        <org.apache.teaclave.javasdk.enclave.privatePem.path></org.apache.teaclave.javasdk.enclave.privatePem.path>
     </properties>
     <profiles>
         <profile>
@@ -93,8 +92,8 @@
                                     <arguments>
                                         <argument>/opt/javaenclave/build_app/make.sh</argument>
                                         <argument>${project.basedir}</argument>
-                                        <argument>${com.alibaba.enclave.platform}</argument>
-                                        <argument>${com.alibaba.enclave.privatePem.path}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.platform}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.enclave.privatePem.path}</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
@@ -150,7 +149,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>enclave</artifactId>
         </dependency>
         <dependency>
diff --git a/archetype/src/main/resources/archetype-resources/host/pom.xml b/archetype/src/main/resources/archetype-resources/host/pom.xml
index a3d5b76..9c76841 100644
--- a/archetype/src/main/resources/archetype-resources/host/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/host/pom.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>${groupId}</groupId>
@@ -21,13 +20,6 @@
                     <include>**/*.tgz</include>
                 </includes>
             </resource>
-            <resource>
-                <directory>${project.basedir}/../enclave/src/main/resources</directory>
-                <includes>
-                    <include>**/embedded_libos_enclave.json</include>
-                    <include>**/tee_sdk_svm.conf</include>
-                </includes>
-            </resource>
         </resources>
         <plugins>
             <plugin>
@@ -74,7 +66,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>host</artifactId>
         </dependency>
         <dependency>
diff --git a/archetype/src/main/resources/archetype-resources/pom.xml b/archetype/src/main/resources/archetype-resources/pom.xml
index 27b93c5..f3f70ea 100644
--- a/archetype/src/main/resources/archetype-resources/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/pom.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>${groupId}</groupId>
@@ -11,22 +10,22 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>common</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>enclave</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>host</artifactId>
                 <version>0.1.0</version>
             </dependency>
diff --git a/benchmark/guomi/common/pom.xml b/benchmark/guomi/common/pom.xml
index a528117..e26eefb 100644
--- a/benchmark/guomi/common/pom.xml
+++ b/benchmark/guomi/common/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>guomi</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -38,7 +51,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/guomi/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/common/SMService.java b/benchmark/guomi/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/common/SMService.java
deleted file mode 100644
index 543ab6a..0000000
--- a/benchmark/guomi/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/common/SMService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.common;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-@EnclaveService
-public interface SMService {
-    String sm2Service(String plaintext, int weight) throws Exception;
-    byte[] sm3Service(String plainText, int weight) throws Exception;
-    String sm4Service(String plaintext, int weight) throws Exception;
-}
diff --git a/benchmark/guomi/common/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/common/SMService.java b/benchmark/guomi/common/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/common/SMService.java
new file mode 100644
index 0000000..80e8fbe
--- /dev/null
+++ b/benchmark/guomi/common/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/common/SMService.java
@@ -0,0 +1,27 @@
+// 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 org.apache.teaclave.javasdk.benchmark.guomi.common;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+@EnclaveService
+public interface SMService {
+    String sm2Service(String plaintext, int weight) throws Exception;
+    byte[] sm3Service(String plainText, int weight) throws Exception;
+    String sm4Service(String plaintext, int weight) throws Exception;
+}
diff --git a/benchmark/guomi/enclave/pom.xml b/benchmark/guomi/enclave/pom.xml
index a32b00e..d971f99 100644
--- a/benchmark/guomi/enclave/pom.xml
+++ b/benchmark/guomi/enclave/pom.xml
@@ -1,10 +1,23 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>guomi</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -14,7 +27,7 @@
     <url>http://maven.apache.org</url>
     <properties>
         <svm.maven.version>0.9.13</svm.maven.version>
-        <com.alibaba.enclave.privatePem.path></com.alibaba.enclave.privatePem.path>
+        <org.apache.teaclave.javasdk.enclave.privatePem.path></org.apache.teaclave.javasdk.enclave.privatePem.path>
     </properties>
     <profiles>
         <profile>
@@ -96,8 +109,8 @@
                                     <arguments>
                                         <argument>/opt/javaenclave/build_app/make.sh</argument>
                                         <argument>${project.basedir}</argument>
-                                        <argument>${com.alibaba.enclave.platform}</argument>
-                                        <argument>${com.alibaba.enclave.privatePem.path}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.platform}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.enclave.privatePem.path}</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
@@ -153,15 +166,15 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>enclave</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+            <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk.thirdpartylibs</groupId>
             <artifactId>bouncycastle-native</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM3ServiceImpl.java b/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM3ServiceImpl.java
deleted file mode 100644
index c74738a..0000000
--- a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM3ServiceImpl.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.enclave;
-
-import org.bouncycastle.crypto.Digest;
-import org.bouncycastle.crypto.digests.SM3Digest;
-
-class SM3ServiceImpl {
-    byte[] sm3Service(String plainText) throws Exception {
-        byte[] messages = plainText.getBytes();
-        Digest md = new SM3Digest();
-        md.update(messages, 0, messages.length);
-        byte[] digest = new byte[md.getDigestSize()];
-        md.doFinal(digest, 0);
-        return digest;
-    }
-}
diff --git a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM2ServiceImpl.java b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM2ServiceImpl.java
similarity index 80%
rename from benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM2ServiceImpl.java
rename to benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM2ServiceImpl.java
index 613647e..e84f2f7 100644
--- a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM2ServiceImpl.java
+++ b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM2ServiceImpl.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.enclave;
+// 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 org.apache.teaclave.javasdk.benchmark.guomi.enclave;
 
 import org.bouncycastle.asn1.gm.GMNamedCurves;
 import org.bouncycastle.asn1.x9.X9ECParameters;
diff --git a/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM3ServiceImpl.java b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM3ServiceImpl.java
new file mode 100644
index 0000000..d302574
--- /dev/null
+++ b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM3ServiceImpl.java
@@ -0,0 +1,32 @@
+// 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 org.apache.teaclave.javasdk.benchmark.guomi.enclave;
+
+import org.bouncycastle.crypto.Digest;
+import org.bouncycastle.crypto.digests.SM3Digest;
+
+class SM3ServiceImpl {
+    byte[] sm3Service(String plainText) throws Exception {
+        byte[] messages = plainText.getBytes();
+        Digest md = new SM3Digest();
+        md.update(messages, 0, messages.length);
+        byte[] digest = new byte[md.getDigestSize()];
+        md.doFinal(digest, 0);
+        return digest;
+    }
+}
diff --git a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM4ServiceImpl.java b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM4ServiceImpl.java
similarity index 70%
rename from benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM4ServiceImpl.java
rename to benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM4ServiceImpl.java
index 8bfcb78..d413edb 100644
--- a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SM4ServiceImpl.java
+++ b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SM4ServiceImpl.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.enclave;
+// 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 org.apache.teaclave.javasdk.benchmark.guomi.enclave;
 
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
diff --git a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SMServiceImpl.java b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SMServiceImpl.java
similarity index 50%
rename from benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SMServiceImpl.java
rename to benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SMServiceImpl.java
index 80f3588..fd4d368 100644
--- a/benchmark/guomi/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/enclave/SMServiceImpl.java
+++ b/benchmark/guomi/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/enclave/SMServiceImpl.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.benchmark.guomi.common.SMService;
+package org.apache.teaclave.javasdk.benchmark.guomi.enclave;
+
+import org.apache.teaclave.javasdk.benchmark.guomi.common.SMService;
 import com.google.auto.service.AutoService;
 
 @AutoService(SMService.class)
diff --git a/benchmark/guomi/host/pom.xml b/benchmark/guomi/host/pom.xml
index 3289f64..09bb0fd 100644
--- a/benchmark/guomi/host/pom.xml
+++ b/benchmark/guomi/host/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>guomi</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -21,13 +34,6 @@
                     <include>**/*.tgz</include>
                 </includes>
             </resource>
-            <resource>
-                <directory>${project.basedir}/../enclave/src/main/resources</directory>
-                <includes>
-                    <include>**/embedded_libos_enclave.json</include>
-                    <include>**/tee_sdk_svm.conf</include>
-                </includes>
-            </resource>
         </resources>
         <plugins>
             <plugin>
@@ -74,11 +80,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>host</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+            <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/guomi/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/host/GuoMiBenchMark.java b/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
similarity index 80%
rename from benchmark/guomi/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/host/GuoMiBenchMark.java
rename to benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
index 8f6df04..825a042 100644
--- a/benchmark/guomi/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/guomi/host/GuoMiBenchMark.java
+++ b/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.benchmark.guomi.host;
-
-import com.alibaba.confidentialcomputing.benchmark.guomi.common.SMService;
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
+// 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 org.apache.teaclave.javasdk.benchmark.guomi.host;
+
+import org.apache.teaclave.javasdk.benchmark.guomi.common.SMService;
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
 import org.openjdk.jmh.annotations.*;
 import org.openjdk.jmh.results.format.ResultFormatType;
 import org.openjdk.jmh.runner.Runner;
diff --git a/benchmark/guomi/pom.xml b/benchmark/guomi/pom.xml
index 3f4a9ec..20f1a39 100644
--- a/benchmark/guomi/pom.xml
+++ b/benchmark/guomi/pom.xml
@@ -1,7 +1,20 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
     <artifactId>guomi</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
@@ -12,42 +25,42 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>common</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>enclave</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>host</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
                 <artifactId>common</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
                 <artifactId>enclave</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark.guomi</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.guomi</groupId>
                 <artifactId>host</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk.thirdpartylibs</groupId>
                 <artifactId>bouncycastle-native</artifactId>
                 <version>0.1.0</version>
             </dependency>
diff --git a/benchmark/guomi/run.sh b/benchmark/guomi/run.sh
index 6fab631..91eec78 100755
--- a/benchmark/guomi/run.sh
+++ b/benchmark/guomi/run.sh
@@ -1,5 +1,22 @@
 #/bin/bash
 
-mvn --settings /root/tools/settings.xml -Pnative clean package
+# 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.
 
-OCCLUM_RELEASE_ENCLAVE=true java -Dcom.alibaba.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar com.alibaba.confidentialcomputing.benchmark.guomi.host.GuoMiBenchMark
+mvn -Pnative clean package
+
+OCCLUM_RELEASE_ENCLAVE=true java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.guomi.host.GuoMiBenchMark
diff --git a/benchmark/string/common/pom.xml b/benchmark/string/common/pom.xml
index 0340e10..12d7626 100644
--- a/benchmark/string/common/pom.xml
+++ b/benchmark/string/common/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>string</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -38,7 +51,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/string/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/common/StringOperationMetric.java b/benchmark/string/common/src/main/java/org/apache/teaclave/javasdk/benchmark/string/common/StringOperationMetric.java
similarity index 64%
rename from benchmark/string/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/common/StringOperationMetric.java
rename to benchmark/string/common/src/main/java/org/apache/teaclave/javasdk/benchmark/string/common/StringOperationMetric.java
index 6ced321..a9cead2 100644
--- a/benchmark/string/common/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/common/StringOperationMetric.java
+++ b/benchmark/string/common/src/main/java/org/apache/teaclave/javasdk/benchmark/string/common/StringOperationMetric.java
@@ -1,6 +1,6 @@
-package com.alibaba.confidentialcomputing.benchmark.string.common;
+package org.apache.teaclave.javasdk.benchmark.string.common;
 
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
 
 @EnclaveService
 public interface StringOperationMetric {
diff --git a/benchmark/string/enclave/pom.xml b/benchmark/string/enclave/pom.xml
index 97aadaf..b3b8f64 100644
--- a/benchmark/string/enclave/pom.xml
+++ b/benchmark/string/enclave/pom.xml
@@ -1,10 +1,23 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>string</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -14,7 +27,7 @@
     <url>http://maven.apache.org</url>
     <properties>
         <svm.maven.version>0.9.13</svm.maven.version>
-        <com.alibaba.enclave.privatePem.path></com.alibaba.enclave.privatePem.path>
+        <org.apache.teaclave.javasdk.enclave.privatePem.path></org.apache.teaclave.javasdk.enclave.privatePem.path>
     </properties>
     <profiles>
         <profile>
@@ -97,8 +110,8 @@
                                     <arguments>
                                         <argument>/opt/javaenclave/build_app/make.sh</argument>
                                         <argument>${project.basedir}</argument>
-                                        <argument>${com.alibaba.enclave.platform}</argument>
-                                        <argument>${com.alibaba.enclave.privatePem.path}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.platform}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.enclave.privatePem.path}</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
@@ -154,11 +167,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>enclave</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+            <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/string/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/enclave/StringOperationMetricImpl.java b/benchmark/string/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/string/enclave/StringOperationMetricImpl.java
similarity index 86%
rename from benchmark/string/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/enclave/StringOperationMetricImpl.java
rename to benchmark/string/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/string/enclave/StringOperationMetricImpl.java
index f27f974..db9c622 100644
--- a/benchmark/string/enclave/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/enclave/StringOperationMetricImpl.java
+++ b/benchmark/string/enclave/src/main/java/org/apache/teaclave/javasdk/benchmark/string/enclave/StringOperationMetricImpl.java
@@ -1,6 +1,6 @@
-package com.alibaba.confidentialcomputing.benchmark.string.enclave;
+package org.apache.teaclave.javasdk.benchmark.string.enclave;
 
-import com.alibaba.confidentialcomputing.benchmark.string.common.StringOperationMetric;
+import org.apache.teaclave.javasdk.benchmark.string.common.StringOperationMetric;
 import com.google.auto.service.AutoService;
 
 import java.util.regex.Pattern;
diff --git a/benchmark/string/host/pom.xml b/benchmark/string/host/pom.xml
index 124618b..a79bda3 100644
--- a/benchmark/string/host/pom.xml
+++ b/benchmark/string/host/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+        <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
         <artifactId>string</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -21,13 +34,6 @@
                     <include>**/*.tgz</include>
                 </includes>
             </resource>
-            <resource>
-                <directory>${project.basedir}/../enclave/src/main/resources</directory>
-                <includes>
-                    <include>**/embedded_libos_enclave.json</include>
-                    <include>**/tee_sdk_svm.conf</include>
-                </includes>
-            </resource>
         </resources>
         <plugins>
             <plugin>
@@ -74,11 +80,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>host</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+            <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/benchmark/string/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/host/StringBenchMark.java b/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
similarity index 93%
rename from benchmark/string/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/host/StringBenchMark.java
rename to benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
index 7d4baf8..7cdc5da 100644
--- a/benchmark/string/host/src/main/java/com/alibaba/confidentialcomputing/benchmark/string/host/StringBenchMark.java
+++ b/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
@@ -1,9 +1,9 @@
-package com.alibaba.confidentialcomputing.benchmark.string.host;
+package org.apache.teaclave.javasdk.benchmark.string.host;
 
-import com.alibaba.confidentialcomputing.benchmark.string.common.StringOperationMetric;
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
+import org.apache.teaclave.javasdk.benchmark.string.common.StringOperationMetric;
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
 import org.openjdk.jmh.annotations.*;
 import org.openjdk.jmh.results.format.ResultFormatType;
 import org.openjdk.jmh.runner.Runner;
diff --git a/benchmark/string/pom.xml b/benchmark/string/pom.xml
index 4c96a84..852d0ff 100644
--- a/benchmark/string/pom.xml
+++ b/benchmark/string/pom.xml
@@ -1,7 +1,20 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+    <groupId>org.apache.teaclave.javasdk.benchmark</groupId>
     <artifactId>string</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
@@ -12,37 +25,37 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>common</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>enclave</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>host</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
                 <artifactId>common</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
                 <artifactId>enclave</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.benchmark</groupId>
+                <groupId>org.apache.teaclave.javasdk.benchmark.string</groupId>
                 <artifactId>host</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
diff --git a/benchmark/string/run.sh b/benchmark/string/run.sh
index 3423a71..fb60d7e 100755
--- a/benchmark/string/run.sh
+++ b/benchmark/string/run.sh
@@ -1,5 +1,5 @@
 #/bin/bash
 
-mvn --settings /root/tools/settings.xml -Pnative clean package
+mvn -Pnative clean package
 
-OCCLUM_RELEASE_ENCLAVE=true java -Dcom.alibaba.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar com.alibaba.confidentialcomputing.benchmark.string.host.StringBenchMark
+OCCLUM_RELEASE_ENCLAVE=true java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.string.host.StringBenchMark
diff --git a/build.sh b/build.sh
index 0333b68..bd04b94 100755
--- a/build.sh
+++ b/build.sh
@@ -1,5 +1,22 @@
 #!/bin/bash
 
+# 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.
+
 STAGE=$1
 
 # set sgx enclave remote attestation PCCS_URL.
@@ -12,17 +29,22 @@ cd "${SHELL_FOLDER}"
 
 # workspace dir is the same as build.sh path location.
 WORKDIR="$PWD"
-SETTING="--settings /root/tools/settings.xml"
 
 if [ ! "$STAGE" -o "build" = "$STAGE" ]; then
-  pushd "${WORKDIR}"/sdk && mvn ${SETTING} clean install && popd
+  # Install local graal-processor.jar
+  mvn install:install-file -DgroupId=org.graalvm.compiler -DartifactId=graal-processor -Dversion=22.2.0 -Dpackaging=jar -Dfile="${GRAALVM_HOME}"/lib/graal/graal-processor.jar
+  # Build and Install Teaclave-java-tee-sdk.
+  pushd "${WORKDIR}"/sdk && mvn clean install && popd
   # Install BouncyCastle Native Package
-  pushd "${WORKDIR}"/third-party-libs/bouncycastle-native && mvn $SETTING clean install && popd
+  pushd "${WORKDIR}"/third-party-libs/bouncycastle-native && mvn clean install && popd
   # Install JavaEnclave archetype
-  pushd "${WORKDIR}"/archetype && mvn $SETTING clean install && popd
+  pushd "${WORKDIR}"/archetype && mvn clean install && popd
 elif [ ! "$STAGE" -o "test" = "$STAGE" ]; then
   # Test unit test cases in JavaEnclave
-  pushd "${WORKDIR}"/test && OCCLUM_RELEASE_ENCLAVE=true mvn $SETTING -Pnative clean package && popd
+  pushd "${WORKDIR}"/test && ./run.sh && popd
+elif [ ! "$STAGE" -o "coverage" = "$STAGE" ]; then
+  # collect and analysis JavaEnclave ut coverage
+  pushd "${WORKDIR}"/coverage && ./run.sh "${WORKDIR}"/test && popd
 elif [ ! "$STAGE" -o "samples" = "$STAGE" ]; then
   # samples in JavaEnclave
   pushd "${WORKDIR}"/samples/helloworld && ./run.sh && popd
@@ -31,4 +53,4 @@ elif [ ! "$STAGE" -o "benchmark" = "$STAGE" ]; then
   # benchmark in JavaEnclave
   pushd "${WORKDIR}"/benchmark/guomi && ./run.sh && popd
   pushd "${WORKDIR}"/benchmark/string && ./run.sh && popd
-fi
+fi
\ No newline at end of file
diff --git a/coverage/run.sh b/coverage/run.sh
new file mode 100755
index 0000000..21541e2
--- /dev/null
+++ b/coverage/run.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# 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.
+
+TEST_PATH=$1
+
+# Download jacoco agent from maven central repo.
+apt install unzip
+rm -rf jacoco && mkdir -p jacoco && rm -rf result && mkdir -p result/classes && rm -rf site
+pushd jacoco
+wget https://search.maven.org/remotecontent?filepath=org/jacoco/jacoco/0.8.3/jacoco-0.8.3.zip -O temp.zip && unzip temp.zip && rm -rf temp.zip
+popd
+
+# Generate Teaclave java sdk test coverage data.
+OCCLUM_RELEASE_ENCLAVE=true java -javaagent:jacoco/lib/jacocoagent.jar=destfile=./result/jacoco.exec,append=true,classdumpdir=result/classes,includes=org.apache.teaclave.javasdk.host.*:org.apache.teaclave.javasdk.common.*:org.apache.teaclave.javasdk.enclave.*,output=file -cp ${TEST_PATH}/host/target/host-0.1.0-jar-with-dependencies.jar:${TEST_PATH}enclave/target/enclave-0.1.0-jar-with-dependencies.jar org.apache.teaclave.javasdk.test.host.TestMain
+
+# Generate Teaclave java sdk test coverage report.
+java -jar jacoco/lib/jacococli.jar report result/jacoco.exec --classfiles result/classes --html site
\ No newline at end of file
diff --git a/samples/helloworld/common/pom.xml b/samples/helloworld/common/pom.xml
index 325070d..62cea64 100644
--- a/samples/helloworld/common/pom.xml
+++ b/samples/helloworld/common/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.samples.helloworld</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
     <parent>
-        <groupId>com.alibaba.samples.helloworld</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>helloworld</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -38,7 +51,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/helloworld/common/src/main/java/com/alibaba/samples/helloworld/common/Service.java b/samples/helloworld/common/src/main/java/com/alibaba/samples/helloworld/common/Service.java
deleted file mode 100644
index bbf0413..0000000
--- a/samples/helloworld/common/src/main/java/com/alibaba/samples/helloworld/common/Service.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.alibaba.samples.helloworld.common;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-@EnclaveService
-public interface Service {
-    String sayHelloWorld();
-}
diff --git a/samples/helloworld/common/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/common/Service.java b/samples/helloworld/common/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/common/Service.java
new file mode 100644
index 0000000..8a196fe
--- /dev/null
+++ b/samples/helloworld/common/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/common/Service.java
@@ -0,0 +1,25 @@
+// 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 org.apache.teaclave.javasdk.samples.helloworld.common;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+@EnclaveService
+public interface Service {
+    String sayHelloWorld();
+}
diff --git a/samples/helloworld/enclave/pom.xml b/samples/helloworld/enclave/pom.xml
index 7684ac3..0667d2e 100644
--- a/samples/helloworld/enclave/pom.xml
+++ b/samples/helloworld/enclave/pom.xml
@@ -1,10 +1,23 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.samples.helloworld</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
     <parent>
-        <groupId>com.alibaba.samples.helloworld</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>helloworld</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -14,7 +27,7 @@
     <url>http://maven.apache.org</url>
     <properties>
         <svm.maven.version>0.9.13</svm.maven.version>
-        <com.alibaba.enclave.privatePem.path></com.alibaba.enclave.privatePem.path>
+        <org.apache.teaclave.javasdk.enclave.privatePem.path></org.apache.teaclave.javasdk.enclave.privatePem.path>
     </properties>
     <profiles>
         <profile>
@@ -93,8 +106,8 @@
                                     <arguments>
                                         <argument>/opt/javaenclave/build_app/make.sh</argument>
                                         <argument>${project.basedir}</argument>
-                                        <argument>${com.alibaba.enclave.platform}</argument>
-                                        <argument>${com.alibaba.enclave.privatePem.path}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.platform}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.enclave.privatePem.path}</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
@@ -150,11 +163,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>enclave</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.samples.helloworld</groupId>
+            <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/helloworld/enclave/src/main/java/com/alibaba/samples/helloworld/enclave/ServiceImpl.java b/samples/helloworld/enclave/src/main/java/com/alibaba/samples/helloworld/enclave/ServiceImpl.java
deleted file mode 100644
index 282044c..0000000
--- a/samples/helloworld/enclave/src/main/java/com/alibaba/samples/helloworld/enclave/ServiceImpl.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.alibaba.samples.helloworld.enclave;
-
-import com.alibaba.samples.helloworld.common.Service;
-import com.google.auto.service.AutoService;
-
-@AutoService(Service.class)
-public class ServiceImpl implements Service {
-    @Override
-    public String sayHelloWorld() {
-        return "Hello World";
-    }
-}
diff --git a/samples/helloworld/enclave/src/main/java/org/apache/teaclave/samples/helloworld/enclave/ServiceImpl.java b/samples/helloworld/enclave/src/main/java/org/apache/teaclave/samples/helloworld/enclave/ServiceImpl.java
new file mode 100644
index 0000000..c8bb8ee
--- /dev/null
+++ b/samples/helloworld/enclave/src/main/java/org/apache/teaclave/samples/helloworld/enclave/ServiceImpl.java
@@ -0,0 +1,29 @@
+// 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 org.apache.teaclave.javasdk.samples.helloworld.enclave;
+
+import org.apache.teaclave.javasdk.samples.helloworld.common.Service;
+import com.google.auto.service.AutoService;
+
+@AutoService(Service.class)
+public class ServiceImpl implements Service {
+    @Override
+    public String sayHelloWorld() {
+        return "Hello World";
+    }
+}
diff --git a/samples/helloworld/host/pom.xml b/samples/helloworld/host/pom.xml
index 04522ae..3619e77 100644
--- a/samples/helloworld/host/pom.xml
+++ b/samples/helloworld/host/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.samples.helloworld</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
     <parent>
-        <groupId>com.alibaba.samples.helloworld</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>helloworld</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -21,13 +34,6 @@
                     <include>**/*.tgz</include>
                 </includes>
             </resource>
-            <resource>
-                <directory>${project.basedir}/../enclave/src/main/resources</directory>
-                <includes>
-                    <include>**/embedded_libos_enclave.json</include>
-                    <include>**/tee_sdk_svm.conf</include>
-                </includes>
-            </resource>
         </resources>
         <plugins>
             <plugin>
@@ -74,11 +80,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>host</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.samples.helloworld</groupId>
+            <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/helloworld/host/src/main/java/com/alibaba/samples/helloworld/host/Main.java b/samples/helloworld/host/src/main/java/com/alibaba/samples/helloworld/host/Main.java
deleted file mode 100644
index c8d3784..0000000
--- a/samples/helloworld/host/src/main/java/com/alibaba/samples/helloworld/host/Main.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.alibaba.samples.helloworld.host;
-
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
-import com.alibaba.samples.helloworld.common.Service;
-
-import java.util.Iterator;
-
-public class Main {
-    public static void main(String[] args) throws Exception {
-        EnclaveType[] enclaveTypes = {
-                EnclaveType.MOCK_IN_JVM,
-                EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
-
-        for (EnclaveType enclaveType : enclaveTypes) {
-            Enclave enclave = EnclaveFactory.create(enclaveType);
-            Iterator<Service> services = enclave.load(Service.class);
-            System.out.println(services.next().sayHelloWorld());
-            enclave.destroy();
-        }
-    }
-}
diff --git a/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java b/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java
new file mode 100644
index 0000000..e1fe92c
--- /dev/null
+++ b/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java
@@ -0,0 +1,42 @@
+// 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 org.apache.teaclave.javasdk.samples.helloworld.host;
+
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
+import org.apache.teaclave.javasdk.samples.helloworld.common.Service;
+
+import java.util.Iterator;
+
+public class Main {
+    public static void main(String[] args) throws Exception {
+        EnclaveType[] enclaveTypes = {
+                EnclaveType.MOCK_IN_JVM,
+                EnclaveType.MOCK_IN_SVM,
+                EnclaveType.TEE_SDK,
+                EnclaveType.EMBEDDED_LIB_OS};
+
+        for (EnclaveType enclaveType : enclaveTypes) {
+            Enclave enclave = EnclaveFactory.create(enclaveType);
+            Iterator<Service> services = enclave.load(Service.class);
+            System.out.println(services.next().sayHelloWorld());
+            enclave.destroy();
+        }
+    }
+}
diff --git a/samples/helloworld/pom.xml b/samples/helloworld/pom.xml
index 2d0cedb..226cf9d 100644
--- a/samples/helloworld/pom.xml
+++ b/samples/helloworld/pom.xml
@@ -1,7 +1,20 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.samples.helloworld</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples</groupId>
     <artifactId>helloworld</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
@@ -11,37 +24,37 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>common</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>enclave</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>host</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.samples.helloworld</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
                 <artifactId>common</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.samples.helloworld</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
                 <artifactId>enclave</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.samples.helloworld</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.helloworld</groupId>
                 <artifactId>host</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
diff --git a/samples/helloworld/run.sh b/samples/helloworld/run.sh
index 1d11d21..c87332b 100755
--- a/samples/helloworld/run.sh
+++ b/samples/helloworld/run.sh
@@ -1,5 +1,5 @@
 #/bin/bash
 
-mvn --settings /root/tools/settings.xml -Pnative clean package
+mvn -Pnative clean package
 
-OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar com.alibaba.samples.helloworld.host.Main
+OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.helloworld.host.Main
diff --git a/samples/springboot/common/pom.xml b/samples/springboot/common/pom.xml
index dbe2562..08a6139 100644
--- a/samples/springboot/common/pom.xml
+++ b/samples/springboot/common/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>springboot</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -38,7 +51,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/springboot/common/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/common/SBEnclaveService.java b/samples/springboot/common/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/common/SBEnclaveService.java
deleted file mode 100644
index 86d5749..0000000
--- a/samples/springboot/common/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/common/SBEnclaveService.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.alibaba.confidentialcomputing.samples.springboot.common;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-@EnclaveService
-public interface SBEnclaveService {
-    // calculate giving data's digest.
-    String digestData(String data);
-    // encrypt and decrypt giving string.
-    String encryptAndDecryptData(String data);
-}
diff --git a/samples/springboot/common/src/main/java/org/apache/teaclave/javasdk/samples/springboot/common/SBEnclaveService.java b/samples/springboot/common/src/main/java/org/apache/teaclave/javasdk/samples/springboot/common/SBEnclaveService.java
new file mode 100644
index 0000000..6e7cee5
--- /dev/null
+++ b/samples/springboot/common/src/main/java/org/apache/teaclave/javasdk/samples/springboot/common/SBEnclaveService.java
@@ -0,0 +1,28 @@
+// 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 org.apache.teaclave.javasdk.samples.springboot.common;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+@EnclaveService
+public interface SBEnclaveService {
+    // calculate giving data's digest.
+    String digestData(String data);
+    // encrypt and decrypt giving string.
+    String encryptAndDecryptData(String data);
+}
diff --git a/samples/springboot/enclave/pom.xml b/samples/springboot/enclave/pom.xml
index 6a8ea86..d57bd5b 100644
--- a/samples/springboot/enclave/pom.xml
+++ b/samples/springboot/enclave/pom.xml
@@ -1,10 +1,23 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>springboot</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -14,7 +27,7 @@
     <url>http://maven.apache.org</url>
     <properties>
         <svm.maven.version>0.9.13</svm.maven.version>
-        <com.alibaba.enclave.privatePem.path></com.alibaba.enclave.privatePem.path>
+        <org.apache.teaclave.javasdk.enclave.privatePem.path></org.apache.teaclave.javasdk.enclave.privatePem.path>
     </properties>
     <profiles>
         <profile>
@@ -93,8 +106,8 @@
                                     <arguments>
                                         <argument>/opt/javaenclave/build_app/make.sh</argument>
                                         <argument>${project.basedir}</argument>
-                                        <argument>${com.alibaba.enclave.platform}</argument>
-                                        <argument>${com.alibaba.enclave.privatePem.path}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.platform}</argument>
+                                        <argument>${org.apache.teaclave.javasdk.enclave.privatePem.path}</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
@@ -150,15 +163,15 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>enclave</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+            <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk.thirdpartylibs</groupId>
             <artifactId>bouncycastle-native</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/springboot/enclave/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/enclave/EnclaveServiceImpl.java b/samples/springboot/enclave/src/main/java/org/apache/teaclave/javasdk/samples/springboot/enclave/EnclaveServiceImpl.java
similarity index 82%
rename from samples/springboot/enclave/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/enclave/EnclaveServiceImpl.java
rename to samples/springboot/enclave/src/main/java/org/apache/teaclave/javasdk/samples/springboot/enclave/EnclaveServiceImpl.java
index 84ffa34..6b7ab62 100644
--- a/samples/springboot/enclave/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/enclave/EnclaveServiceImpl.java
+++ b/samples/springboot/enclave/src/main/java/org/apache/teaclave/javasdk/samples/springboot/enclave/EnclaveServiceImpl.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.samples.springboot.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.samples.springboot.common.SBEnclaveService;
+package org.apache.teaclave.javasdk.samples.springboot.enclave;
+
+import org.apache.teaclave.javasdk.samples.springboot.common.SBEnclaveService;
 import com.google.auto.service.AutoService;
 import org.bouncycastle.asn1.gm.GMNamedCurves;
 import org.bouncycastle.asn1.x9.X9ECParameters;
diff --git a/samples/springboot/host/pom.xml b/samples/springboot/host/pom.xml
index 0f2507e..ec4dd1a 100644
--- a/samples/springboot/host/pom.xml
+++ b/samples/springboot/host/pom.xml
@@ -1,9 +1,22 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+        <groupId>org.apache.teaclave.javasdk.samples</groupId>
         <artifactId>springboot</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
@@ -21,13 +34,6 @@
                     <include>**/*.tgz</include>
                 </includes>
             </resource>
-            <resource>
-                <directory>${project.basedir}/../enclave/src/main/resources</directory>
-                <includes>
-                    <include>**/embedded_libos_enclave.json</include>
-                    <include>**/tee_sdk_svm.conf</include>
-                </includes>
-            </resource>
         </resources>
         <plugins>
             <plugin>
@@ -78,11 +84,11 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>host</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+            <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/Application.java b/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/Application.java
deleted file mode 100644
index d817c6f..0000000
--- a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/Application.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.alibaba.confidentialcomputing.samples.springboot.host;
-
-import java.util.Arrays;
-
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-
-@SpringBootApplication
-public class Application {
-
-    public static void main(String[] args) {
-        SpringApplication.run(Application.class, args);
-    }
-
-    @Bean
-    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
-        return args -> {
-            String[] beanNames = ctx.getBeanDefinitionNames();
-            Arrays.sort(beanNames);
-        };
-    }
-}
diff --git a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveDigestController.java b/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveDigestController.java
deleted file mode 100644
index 0fd1aff..0000000
--- a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveDigestController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.alibaba.confidentialcomputing.samples.springboot.host;
-
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
-import com.alibaba.confidentialcomputing.samples.springboot.common.SBEnclaveService;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Iterator;
-
-@RestController
-public class EnclaveDigestController {
-    @RequestMapping("/enclaveDigestService")
-    public String enclaveDigestService(String data) {
-        try {
-            Enclave enclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
-            Iterator<SBEnclaveService> services = enclave.load(SBEnclaveService.class);
-            String result = services.next().digestData(data);
-            enclave.destroy();
-            return result;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveEncDecController.java b/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveEncDecController.java
deleted file mode 100644
index 4690595..0000000
--- a/samples/springboot/host/src/main/java/com/alibaba/confidentialcomputing/samples/springboot/host/EnclaveEncDecController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.alibaba.confidentialcomputing.samples.springboot.host;
-
-import com.alibaba.confidentialcomputing.host.Enclave;
-import com.alibaba.confidentialcomputing.host.EnclaveFactory;
-import com.alibaba.confidentialcomputing.host.EnclaveType;
-import com.alibaba.confidentialcomputing.samples.springboot.common.SBEnclaveService;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Iterator;
-
-@RestController
-public class EnclaveEncDecController {
-    @RequestMapping("/enclaveEncDecService")
-    public String enclaveEncDecService(String data) {
-        try {
-            Enclave enclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
-            Iterator<SBEnclaveService> services = enclave.load(SBEnclaveService.class);
-            String result = services.next().encryptAndDecryptData(data);
-            enclave.destroy();
-            return result;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-}
diff --git a/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/Application.java b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/Application.java
new file mode 100644
index 0000000..00e0bfe
--- /dev/null
+++ b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/Application.java
@@ -0,0 +1,42 @@
+// 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 org.apache.teaclave.javasdk.samples.springboot.host;
+
+import java.util.Arrays;
+
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+
+@SpringBootApplication
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+    @Bean
+    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
+        return args -> {
+            String[] beanNames = ctx.getBeanDefinitionNames();
+            Arrays.sort(beanNames);
+        };
+    }
+}
diff --git a/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveDigestController.java b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveDigestController.java
new file mode 100644
index 0000000..86d34b5
--- /dev/null
+++ b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveDigestController.java
@@ -0,0 +1,44 @@
+// 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 org.apache.teaclave.javasdk.samples.springboot.host;
+
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
+import org.apache.teaclave.javasdk.samples.springboot.common.SBEnclaveService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Iterator;
+
+@RestController
+public class EnclaveDigestController {
+    @RequestMapping("/enclaveDigestService")
+    public String enclaveDigestService(String data) {
+        try {
+            Enclave enclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
+            Iterator<SBEnclaveService> services = enclave.load(SBEnclaveService.class);
+            String result = services.next().digestData(data);
+            enclave.destroy();
+            return result;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveEncDecController.java b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveEncDecController.java
new file mode 100644
index 0000000..9cb6da5
--- /dev/null
+++ b/samples/springboot/host/src/main/java/org/apache/teaclave/javasdk/samples/springboot/host/EnclaveEncDecController.java
@@ -0,0 +1,44 @@
+// 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 org.apache.teaclave.javasdk.samples.springboot.host;
+
+import org.apache.teaclave.javasdk.host.Enclave;
+import org.apache.teaclave.javasdk.host.EnclaveFactory;
+import org.apache.teaclave.javasdk.host.EnclaveType;
+import org.apache.teaclave.javasdk.samples.springboot.common.SBEnclaveService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Iterator;
+
+@RestController
+public class EnclaveEncDecController {
+    @RequestMapping("/enclaveEncDecService")
+    public String enclaveEncDecService(String data) {
+        try {
+            Enclave enclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
+            Iterator<SBEnclaveService> services = enclave.load(SBEnclaveService.class);
+            String result = services.next().encryptAndDecryptData(data);
+            enclave.destroy();
+            return result;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/samples/springboot/pom.xml b/samples/springboot/pom.xml
index 279cf5f..9b2172a 100644
--- a/samples/springboot/pom.xml
+++ b/samples/springboot/pom.xml
@@ -1,4 +1,17 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
@@ -7,7 +20,7 @@
         <version>2.7.0</version>
         <relativePath/>
     </parent>
-    <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+    <groupId>org.apache.teaclave.javasdk.samples</groupId>
     <artifactId>springboot</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
@@ -17,42 +30,42 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>common</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>enclave</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk</groupId>
                 <artifactId>host</artifactId>
                 <version>0.1.0</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
                 <artifactId>common</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
                 <artifactId>enclave</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing.samples</groupId>
+                <groupId>org.apache.teaclave.javasdk.samples.springboot</groupId>
                 <artifactId>host</artifactId>
                 <version>1.0-SNAPSHOT</version>
             </dependency>
             <dependency>
-                <groupId>com.alibaba.confidentialcomputing</groupId>
+                <groupId>org.apache.teaclave.javasdk.thirdpartylibs</groupId>
                 <artifactId>bouncycastle-native</artifactId>
                 <version>0.1.0</version>
             </dependency>
diff --git a/samples/springboot/run.sh b/samples/springboot/run.sh
index f77e13e..eb88d0d 100755
--- a/samples/springboot/run.sh
+++ b/samples/springboot/run.sh
@@ -1,10 +1,27 @@
 #!/bin/bash
 
+# 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.
+
 # step1: build springboot application service.
-mvn --settings /root/tools/settings.xml -Pnative clean package
+mvn -Pnative clean package
 
 # step2: startup springboot application service.
-OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar com.alibaba.confidentialcomputing.samples.springboot.host.Application &
+OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.springboot.host.Application &
 sleep 5
 # shellcheck disable=SC2006
 # shellcheck disable=SC2009
diff --git a/sdk/common/pom.xml b/sdk/common/pom.xml
index efe3fa5..ff2a8dc 100644
--- a/sdk/common/pom.xml
+++ b/sdk/common/pom.xml
@@ -1,17 +1,28 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing</groupId>
+        <groupId>org.apache.teaclave.javasdk</groupId>
         <artifactId>JavaEnclave</artifactId>
         <version>0.1.0</version>
     </parent>
     <artifactId>common</artifactId>
     <packaging>jar</packaging>
     <name>JavaEnclave-Common</name>
-    <url></url>
     <build>
         <plugins>
             <plugin>
@@ -53,7 +64,7 @@
                 <version>0.8.3</version>
                 <configuration>
                     <includes>
-                        <include>com/alibaba/confidentialcomputing/common/*</include>
+                        <include>org/apache/teaclave/javasdk/common/*</include>
                     </includes>
                 </configuration>
                 <executions>
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveMethod.java b/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveMethod.java
deleted file mode 100644
index 7a5fa94..0000000
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveMethod.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2021, 2021, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2021, 2021, Alibaba Group Holding Limited. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.alibaba.confidentialcomputing.common.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Mark a method is running inside the Enclave, but can be directly invoked from the Host.
- * So its parameters and returned value types are required to get serialized.
- * If a service provider's interface has been marked with {@link EnclaveService}, there is no need to mark its methods with
- * this annotation.
- * <p>
- * Please refer {@link EnclaveService} for the details about automatic serialization type registration in native image scenario.
- */
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface EnclaveMethod {
-}
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/exception/ConfidentialComputingException.java b/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/exception/ConfidentialComputingException.java
deleted file mode 100644
index eaaba57..0000000
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/exception/ConfidentialComputingException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.alibaba.confidentialcomputing.common.exception;
-
-/**
- * ConfidentialComputingException {@link ConfidentialComputingException} is base exception in
- * JavaEnclave. All exceptions thrown in JavaEnclave will inherit this base exception.
- * Programmers need to handle ConfidentialComputingException seriously.
- */
-public class ConfidentialComputingException extends Exception {
-
-    private static final long serialVersionUID = 5964126736764332957L;
-
-    public ConfidentialComputingException() {super();}
-
-    /**
-     * @param info exception information.
-     */
-    public ConfidentialComputingException(String info) {
-        super(info);
-    }
-
-    /**
-     * @param e exception.
-     */
-    public ConfidentialComputingException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * @param info exception information.
-     * @param e    exception.
-     */
-    public ConfidentialComputingException(String info, Throwable e) {
-        super(info, e);
-    }
-}
\ No newline at end of file
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EmbeddedLibOSInnerAttestationReport.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport.java
similarity index 52%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EmbeddedLibOSInnerAttestationReport.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport.java
index 29e2c9f..d3b6601 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EmbeddedLibOSInnerAttestationReport.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 import java.io.Serializable;
 
 /**
- * This class is used to transfer embedded lib os attestation report between JavaEnclave's
+ * This class is used to transfer embedded lib os attestation report between Teaclave-java-tee-sdk's
  * host and enclave module.
  */
 public final class EmbeddedLibOSInnerAttestationReport implements Serializable {
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationContext.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationContext.java
similarity index 70%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationContext.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationContext.java
index de7244f..aa1982d 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationContext.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationContext.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 import java.io.Serializable;
 
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationResult.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationResult.java
similarity index 64%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationResult.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationResult.java
index aea12e1..1a4c44a 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/EnclaveInvocationResult.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/EnclaveInvocationResult.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 import java.io.Serializable;
 
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SerializationHelper.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SerializationHelper.java
similarity index 60%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SerializationHelper.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SerializationHelper.java
index 5b678ab..b4d0aa3 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SerializationHelper.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SerializationHelper.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 import java.io.IOException;
 import java.io.ByteArrayInputStream;
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/ServiceHandler.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/ServiceHandler.java
similarity index 67%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/ServiceHandler.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/ServiceHandler.java
index b81632e..850cd37 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/ServiceHandler.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/ServiceHandler.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 import java.io.Serializable;
 
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SocketEnclaveInvocationContext.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SocketEnclaveInvocationContext.java
similarity index 69%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SocketEnclaveInvocationContext.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SocketEnclaveInvocationContext.java
index 93926b5..dd8eb9c 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/SocketEnclaveInvocationContext.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/SocketEnclaveInvocationContext.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.common;
+// 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 org.apache.teaclave.javasdk.common;
 
 /**
  * This class stores a method's necessary information for reflection
diff --git a/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveMethod.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveMethod.java
new file mode 100644
index 0000000..e9dcbff
--- /dev/null
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveMethod.java
@@ -0,0 +1,36 @@
+// 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 org.apache.teaclave.javasdk.common.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Mark a method is running inside the Enclave, but can be directly invoked from the Host.
+ * So its parameters and returned value types are required to get serialized.
+ * If a service provider's interface has been marked with {@link EnclaveService}, there is no need to mark its methods with
+ * this annotation.
+ * <p>
+ * Please refer {@link EnclaveService} for the details about automatic serialization type registration in native image scenario.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EnclaveMethod {
+}
diff --git a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveService.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveService.java
similarity index 51%
rename from sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveService.java
rename to sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveService.java
index 0b193a8..00ca8b3 100644
--- a/sdk/common/src/main/java/com/alibaba/confidentialcomputing/common/annotations/EnclaveService.java
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/annotations/EnclaveService.java
@@ -1,30 +1,21 @@
-/*
- * Copyright (c) 2021, 2021, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2021, 2021, Alibaba Group Holding Limited. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
+// 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.alibaba.confidentialcomputing.common.annotations;
+package org.apache.teaclave.javasdk.common.annotations;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
diff --git a/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/exception/ConfidentialComputingException.java b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/exception/ConfidentialComputingException.java
new file mode 100644
index 0000000..a03764e
--- /dev/null
+++ b/sdk/common/src/main/java/org/apache/teaclave/javasdk/common/exception/ConfidentialComputingException.java
@@ -0,0 +1,52 @@
+// 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 org.apache.teaclave.javasdk.common.exception;
+
+/**
+ * ConfidentialComputingException {@link ConfidentialComputingException} is base exception in
+ * Teaclave-java-tee-sdk. All exceptions thrown in Teaclave-java-tee-sdk will inherit this base exception.
+ * Programmers need to handle ConfidentialComputingException seriously.
+ */
+public class ConfidentialComputingException extends Exception {
+
+    private static final long serialVersionUID = 5964126736764332957L;
+
+    public ConfidentialComputingException() {super();}
+
+    /**
+     * @param info exception information.
+     */
+    public ConfidentialComputingException(String info) {
+        super(info);
+    }
+
+    /**
+     * @param e exception.
+     */
+    public ConfidentialComputingException(Throwable e) {
+        super(e);
+    }
+
+    /**
+     * @param info exception information.
+     * @param e    exception.
+     */
+    public ConfidentialComputingException(String info, Throwable e) {
+        super(info, e);
+    }
+}
\ No newline at end of file
diff --git a/sdk/enclave/docs/Incompatibilities.md b/sdk/enclave/docs/Incompatibilities.md
index da358fc..9472431 100644
--- a/sdk/enclave/docs/Incompatibilities.md
+++ b/sdk/enclave/docs/Incompatibilities.md
@@ -2,7 +2,7 @@ GraalVM can statically compile Java application into native library to run insid
 # JVM level
 ## The obtaining of pseudo-random number
 In OpenJDK, the pseudo-random number is obtained in`sun.security.provider.NativePRNG`class by accessing two special IO devices, `/dev/random` and `/dev/urandom`. But these virtual IO devices are inaccessbile from Enclave, leading to `IOException` when calling `NativePRNG` class. 
-The solution is to stop accessing these two IO devices, but invoke a system level random function. Classes `com.alibaba.confidentialcomputing.enclave.substitutes.NativePRNGSubstitutions` and `com.alibaba.confidentialcomputing.enclave.EnclaveRandomFeature` take care of this issue.
+The solution is to stop accessing these two IO devices, but invoke a system level random function. Classes `org.apache.teaclave.javasdk.enclave.substitutes.NativePRNGSubstitutions` and `org.apache.teaclave.javasdk.enclave.EnclaveRandomFeature` take care of this issue.
 
 ## libsunec.a has C++ symbols
 Libsunec.a has C++ symbols, `new` and `delete`, which are not supported by musl, in its JNI native implementations. More specifically, there are 5 native methods has C++ symbols:
@@ -15,17 +15,17 @@ Libsunec.a has C++ symbols, `new` and `delete`, which are not supported by musl,
 
 We rewrite the native JNI code of above 5 methods by replacing `new` with `malloc`, and `delete` with `free`. Then the pure C symbols sunec library is compiled and saved as libenc_sunec.a. The native calls to these 5 methods are redirected to libenc_sunec.a while other native calls still go to the original libsunec.a.
 
-See `src/main/resources/native/sunec/com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h`, `com.alibaba.confidentialcomputing.enclave.SUNECReplaceFeature`, `com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods` and `com.alibaba.confidentialcomputing.enclave.substitutes.SUNECSubstitutions` for more details.
+See `src/main/resources/native/sunec/org_apache_teaclave_javasdk_enclave_substitutes_NativeSunECMethods.h`, `org.apache.teaclave.javasdk.enclave.SUNECReplaceFeature`, `org.apache.teaclave.javasdk.enclave.substitutes.NativeSunECMethods` and `org.apache.teaclave.javasdk.enclave.substitutes.SUNECSubstitutions` for more details.
 # System level
 ## CPU features check
 Since 22.1.0, GraalVM reads CPU features and checks which is supported at runtime, so that it doesn't only rely on the statically set CPU features (see `com.oracle.svm.core.cpufeature.RuntimeCPUFeatureCheckFeature`).
 But Enclave SDKs don't support reading CPU features at runtime.
-A solution is to disable the `RuntimeCPUFeatureCheckFeature` (see `com.alibaba.confidentialcomputing.enclave.EnclaveFeature#afterRegistration`).
+A solution is to disable the `RuntimeCPUFeatureCheckFeature` (see `org.apache.teaclave.javasdk.enclave.EnclaveFeature#afterRegistration`).
 
 Since 22.2.0, GraalVM verifies the cpu features as early as program starts (see `com.oracle.svm.core.JavaMainWrapper#run`), but the CPU checking functions are not supported by Enclave SDKs.
 The checking is performed by the `CPUFeatureAccess` instance which is set `ImageSingletons` by `com.oracle.svm.hosted.AMD64CPUFeatureAccessFeature` at image build time.
-So we added a subclass of `AMD64CPUFeatureAccessFeature`, `com.alibaba.confidentialcomputing.enclave.cpufeatures.EnclaveAMD64CPUFeatureAccessFeature` to override the behavior of setting `CPUFeatureAccess` instance.
-`EnclaveAMD64CPUFeatureAccessFeature` sets `com.alibaba.confidentialcomputing.enclave.cpufeatures.EnclaveAMD64CPUFeatureAccess` instance into `ImageSingletons` instead of the original `AMD64CPUFeatureAccess`.
+So we added a subclass of `AMD64CPUFeatureAccessFeature`, `org.apache.teaclave.javasdk.enclave.cpufeatures.EnclaveAMD64CPUFeatureAccessFeature` to override the behavior of setting `CPUFeatureAccess` instance.
+`EnclaveAMD64CPUFeatureAccessFeature` sets `org.apache.teaclave.javasdk.enclave.cpufeatures.EnclaveAMD64CPUFeatureAccess` instance into `ImageSingletons` instead of the original `AMD64CPUFeatureAccess`.
 
 ## Memory 
 Enclave SDKs don't support reading system memory information from standard POSIX interfaces:
@@ -35,4 +35,4 @@ Enclave SDKs don't support reading system memory information from standard POSIX
 1. `sysconf(_SC_PAGE_SISE())` returns -1.
 
 GraalVM's native image gets the physical memory from the first 2 functions, and gets the virual memory from the 3rd function.
-The solution is to replace the unsupported reading with other native functions. See `com.alibaba.confidentialcomputing.enclave.system.EnclaveMemoryFeature`, `com.alibaba.confidentialcomputing.enclave.system.EnclaveVirtualMemoryProvider` and `com.alibaba.confidentialcomputing.enclave.system.EnclavePhysicalMemory` for implementation details.
+The solution is to replace the unsupported reading with other native functions. See `org.apache.teaclave.javasdkg.enclave.system.EnclaveMemoryFeature`, `org.apache.teaclave.javasdk.enclave.system.EnclaveVirtualMemoryProvider` and `org.apache.teaclave.javasdk.enclave.system.EnclavePhysicalMemory` for implementation details.
diff --git a/sdk/enclave/pom.xml b/sdk/enclave/pom.xml
index ca157ec..dba3d03 100644
--- a/sdk/enclave/pom.xml
+++ b/sdk/enclave/pom.xml
@@ -1,17 +1,28 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing</groupId>
+        <groupId>org.apache.teaclave.javasdk</groupId>
         <artifactId>JavaEnclave</artifactId>
         <version>0.1.0</version>
     </parent>
     <artifactId>enclave</artifactId>
     <packaging>jar</packaging>
     <name>JavaEnclave-Enclave</name>
-    <url></url>
     <properties>
         <graal.version>22.2.0</graal.version>
     </properties>
@@ -78,7 +89,7 @@
                             <arguments>
                                 <argument>${project.basedir}/../native/script/build_enclave_sdk/make.sh</argument>
                                 <argument>${project.basedir}</argument>
-                                <argument>${com.alibaba.enclave.platform}</argument>
+                                <argument>${org.apache.teaclave.javasdk.platform}</argument>
                                 <argument>build</argument>
                             </arguments>
                         </configuration>
@@ -177,7 +188,7 @@
                 <version>0.8.3</version>
                 <configuration>
                     <includes>
-                        <include>com/alibaba/confidentialcomputing/enclave/**/*</include>
+                        <include>org/apache/teaclave/javasdk/enclave/**/*</include>
                     </includes>
                 </configuration>
                 <executions>
@@ -237,7 +248,7 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
     </dependencies>
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveRandomFeature.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveRandomFeature.java
deleted file mode 100644
index 5744b29..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveRandomFeature.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import com.oracle.svm.core.annotate.AutomaticFeature;
-import com.oracle.svm.hosted.FeatureHandler;
-import com.oracle.svm.hosted.FeatureImpl;
-import org.graalvm.nativeimage.hosted.Feature;
-
-@AutomaticFeature
-public class EnclaveRandomFeature implements Feature {
-    @Override
-    public void afterRegistration(Feature.AfterRegistrationAccess access) {
-        if (EnclaveOptions.RunInEnclave.getValue()) {
-            FeatureImpl.AfterRegistrationAccessImpl a = (FeatureImpl.AfterRegistrationAccessImpl) access;
-            FeatureHandler featureHandler = a.getFeatureHandler();
-            EnclavePlatFormSettings.disableFeatures(featureHandler, "com.oracle.svm.core.posix.NativeSecureRandomFilesCloser");
-        }
-    }
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/SUNECReplaceFeature.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/SUNECReplaceFeature.java
deleted file mode 100644
index 072f144..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/SUNECReplaceFeature.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import com.oracle.svm.core.SubstrateOptions;
-import com.oracle.svm.core.annotate.AutomaticFeature;
-import com.oracle.svm.core.c.libc.LibCBase;
-import com.oracle.svm.core.c.libc.TemporaryBuildDirectoryProvider;
-import com.oracle.svm.core.jdk.JNIRegistrationUtil;
-import com.oracle.svm.core.util.VMError;
-import com.oracle.svm.hosted.FeatureImpl;
-import com.oracle.svm.hosted.ImageClassLoader;
-import com.oracle.svm.hosted.NativeImageGenerator;
-import org.graalvm.nativeimage.ImageSingletons;
-import org.graalvm.nativeimage.Platform;
-import org.graalvm.nativeimage.Platforms;
-import org.graalvm.nativeimage.hosted.Feature;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.alibaba.confidentialcomputing.enclave.NativeCommandUtil.GRAALVM_HOME;
-
-/**
- * THe original {@code libsunec.a} library provided by GraalVM (which is copied from OpenJDK) has C++ operations which
- * are not supported by some Enclave SDKs (e.g. OpenEnclave and Tee SDK), therefore, a substituted library that replies
- * only on C symbols is required.
- * <p>
- * This class compiles the new C only {@code libsunec.a} and outputs it into the path specified by {@link SubstrateOptions#Path}
- * options along with other SVM artifacts on demand.
- */
-@AutomaticFeature
-public class SUNECReplaceFeature extends JNIRegistrationUtil implements Feature {
-
-    public static final String LIBENC_SUNEC_A = "libenc_sunec.a";
-    private Path sunecTmpDir = null;
-
-    @Override
-    public void beforeAnalysis(BeforeAnalysisAccess access) {
-        if (EnclaveOptions.RunInEnclave.getValue()) {
-            access.registerReachabilityHandler(this::prepareEncSunEC,
-                    method(access, "com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods", "signDigest", byte[].class, byte[].class, byte[].class, byte[].class, int.class),
-                    method(access, "com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods", "verifySignedDigest", byte[].class, byte[].class, byte[].class, byte[].class),
-                    method(access, "com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods", "isCurveSupported", byte[].class),
-                    method(access, "com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods", "generateECKeyPair", int.class, byte[].class, byte[].class),
-                    method(access, "com.alibaba.confidentialcomputing.enclave.substitutes.NativeSunECMethods", "deriveKey", byte[].class, byte[].class, byte[].class));
-        }
-    }
-
-    @Platforms(Platform.LINUX.class)
-    private void prepareEncSunEC(BeforeAnalysisAccess a) {
-        if (Files.notExists(GRAALVM_HOME)) {
-            VMError.shouldNotReachHere("System environment variable GRAALVM_HOME is set to " + GRAALVM_HOME
-                    + ", but the directory does not exist!");
-        }
-        Path tempDirectory = ImageSingletons.lookup(TemporaryBuildDirectoryProvider.class).getTemporaryBuildDirectory();
-        try {
-            sunecTmpDir = tempDirectory.resolve("sunec");
-            if (Files.notExists(sunecTmpDir)) {
-                Files.createDirectory(sunecTmpDir);
-            }
-        } catch (IOException e) {
-            VMError.shouldNotReachHere("Can't create sunec directory in tmp directory.", e);
-        }
-
-        prepareCFiles((FeatureImpl.BeforeAnalysisAccessImpl) a, sunecTmpDir);
-
-        Path originalSunEC = GRAALVM_HOME.resolve("lib/static/linux-amd64/" + LibCBase.singleton().getName() + "/libsunec.a");
-        if (Files.notExists(originalSunEC)) {
-            VMError.shouldNotReachHere("Can't find original libsunec.a from $GRAALVM_HOME.");
-        }
-        List<String> command = new ArrayList<>();
-        // 1. Compile the C symbol only ECC_JNI.c into ENC_ECC_JNI.o
-        // LibCBase instance has been set in LibCFeature#afterRegistration, so it's safe to get it now.
-        command.add(LibCBase.singleton().getTargetCompiler());
-        command.add("-fPIC");
-        command.add("-I" + GRAALVM_HOME.resolve("include").toAbsolutePath());
-        command.add("-I" + GRAALVM_HOME.resolve("include/linux").toAbsolutePath());
-        command.add("-I.");
-        command.add("-L.");
-        command.add("ECC_JNI.c");
-        command.add("-c");
-        command.add("-o");
-        command.add("ENC_ECC_JNI.o");
-        NativeCommandUtil.executeNewProcess(command, sunecTmpDir);
-
-        // 2. Extract the original libsunec.a
-        command.clear();
-        command.add("ar");
-        command.add("-x");
-        command.add(originalSunEC.toAbsolutePath().toString());
-        NativeCommandUtil.executeNewProcess(command, sunecTmpDir);
-
-        // 3. Archive the ENC_ECC_JNI.o generated in step 1 and other original .o files into the new static library.
-        command.clear();
-        // Must in the form of "/bin/bash -c", otherwise the *.o is not recognized by ProcessBuilder.
-        command.add("/bin/bash");
-        command.add("-c");
-        command.add("ar rcs " + LIBENC_SUNEC_A + " *.o");
-        NativeCommandUtil.executeNewProcess(command, sunecTmpDir);
-
-        // 4. Delete the intermediate results and only keep the static library generated by step 3.
-        try {
-            Files.walkFileTree(sunecTmpDir, new SimpleFileVisitor<>() {
-                @Override
-                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
-                    if (!file.getFileName().toString().endsWith(".a")) {
-                        Files.delete(file);
-                    }
-                    return FileVisitResult.CONTINUE;
-                }
-            });
-        } catch (IOException e) {
-            VMError.shouldNotReachHere("Fail to delete temporary file for generating substituted libsunec.a", e);
-        }
-    }
-
-    private static void prepareCFiles(FeatureImpl.BeforeAnalysisAccessImpl access, Path sunecTmpDir) {
-        ImageClassLoader imageClassLoader = access.getImageClassLoader();
-
-        String dir = "native/sunec/";
-        List<String> cSources = new ArrayList<>();
-        cSources.add("com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h");
-        cSources.add("ecc_impl.h");
-        cSources.add("ECC_JNI.c");
-        cSources.add("ecl-exp.h");
-        cSources.add("jlong.h");
-        cSources.add("jlong_md.h");
-        cSources.add("jni_util.h");
-
-        for (String cSource : cSources) {
-            File file = sunecTmpDir.resolve(cSource).toFile();
-
-            try (InputStream inputStream = imageClassLoader.getClassLoader().getResourceAsStream(dir + cSource);
-                 FileOutputStream outputStream = new FileOutputStream(file)) {
-                if (inputStream == null) {
-                    VMError.shouldNotReachHere("Source file " + cSource
-                            + " doesn't exist. It is required to compile the enclave compatible libsunec.a.");
-                }
-                inputStream.transferTo(outputStream);
-                outputStream.flush();
-            } catch (IOException e) {
-                VMError.shouldNotReachHere("Can't store resource file to tmp directory", e);
-            }
-        }
-    }
-
-    /**
-     * Copy the new static library from temporary directory to the output directory.
-     */
-    @Override
-    public void afterImageWrite(AfterImageWriteAccess access) {
-        // The sunec methods are not reachable, so the new library doesn't exist
-        if (sunecTmpDir == null) {
-            return;
-        }
-        FeatureImpl.AfterImageWriteAccessImpl a = (FeatureImpl.AfterImageWriteAccessImpl) access;
-        Path outputDirectory = NativeImageGenerator.generatedFiles(a.getUniverse().getBigBang().getOptions());
-
-        Path sunecLibrary = sunecTmpDir.resolve(LIBENC_SUNEC_A);
-        if (Files.exists(sunecLibrary)) {
-            try {
-                Files.copy(sunecLibrary, outputDirectory.resolve(LIBENC_SUNEC_A), StandardCopyOption.REPLACE_EXISTING);
-            } catch (IOException e) {
-                VMError.shouldNotReachHere("Fail to copy file from temporary directory", e);
-            }
-        }
-    }
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/RemoteAttestation.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/RemoteAttestation.java
deleted file mode 100644
index 557058c..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/RemoteAttestation.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.agent;
-
-import com.alibaba.confidentialcomputing.common.EmbeddedLibOSInnerAttestationReport;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-
-public class RemoteAttestation {
-    // lib os embedded enclave remote attestation jni.so path in occlum image.
-    private final static String JNI_EXTRACTED_PACKAGE_PATH = "/usr/lib/libos_occlum_enclave_attestation/lib_occlum_attestation_generate.so";
-
-    private static native void registerNatives();
-    private static native EmbeddedLibOSInnerAttestationReport generateAttestationReportNative(byte[] userDate) throws ConfidentialComputingException;
-
-    static {
-        System.load(JNI_EXTRACTED_PACKAGE_PATH);
-        registerNatives();
-    }
-
-    public static EmbeddedLibOSInnerAttestationReport generateAttestationReport(byte[] userDate) throws ConfidentialComputingException {
-        return generateAttestationReportNative(userDate);
-    }
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveMethodInvoker.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveMethodInvoker.java
deleted file mode 100644
index 4d5d5b4..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveMethodInvoker.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-
-/**
- * There are two types of method invocations in Enclave:
- * <ul>
- * <li>Business methods: The subclass {@link ServiceMethodInvoker} of this class takes care
- * of the business method invocation.</li>
- * <li>Framework methods: The SDK defined methods that run inside the enclave to maintain the framework. These methods
- * must be static, are taken care by the subclass {@link LoadServiceInvoker}.</li>
- * </ul>
- */
-public interface EnclaveMethodInvoker<T> {
-    EnclaveInvocationResult callMethod(T input);
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/LoadServiceInvoker.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/LoadServiceInvoker.java
deleted file mode 100644
index fe6f6b7..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/LoadServiceInvoker.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-
-/**
- * This class handles loadService method invocation.
- */
-public final class LoadServiceInvoker implements EnclaveMethodInvoker<String> {
-
-    /**
-     * Call loadService method.
-     *
-     * @param inputData name of the service to load.
-     */
-    @Override
-    public EnclaveInvocationResult callMethod(String inputData) {
-        try {
-            Class<?> service = Class.forName(inputData);
-            return new EnclaveInvocationResult(EnclaveContext.getInstance().loadService(service), null);
-        } catch (ClassNotFoundException e) {
-            return new EnclaveInvocationResult(null, e);
-        }
-    }
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/UnloadServiceInvoker.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/UnloadServiceInvoker.java
deleted file mode 100644
index 0b82737..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/UnloadServiceInvoker.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-
-/**
- * This class handles the unloadService method to unload the specified service.
- */
-public class UnloadServiceInvoker implements EnclaveMethodInvoker<ServiceHandler> {
-
-    @Override
-    public EnclaveInvocationResult callMethod(ServiceHandler inputData) {
-        Object ret = EnclaveContext.getInstance().removeCache(inputData.getInstanceIdentity());
-        Throwable t = null;
-        if (ret == null) {
-            t = new ConfidentialComputingException(String.format("No instance for service %s is found with the given identity %s", inputData.getServiceInterfaceName(),
-                    inputData.getInstanceIdentity()));
-        }
-        // unloadService method's return type is void.
-        return new EnclaveInvocationResult(null, t);
-    }
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativeSunECMethods.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativeSunECMethods.java
deleted file mode 100644
index 9b64e82..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativeSunECMethods.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.substitutes;
-
-import java.security.GeneralSecurityException;
-
-public class NativeSunECMethods {
-    public static native boolean isCurveSupported(byte[] encodedParams);
-
-    public static native Object[] generateECKeyPair(int keySize,
-                    byte[] encodedParams, byte[] seed) throws GeneralSecurityException;
-
-    public static native byte[] signDigest(byte[] digest, byte[] s,
-                    byte[] encodedParams, byte[] seed, int timing)
-                    throws GeneralSecurityException;
-
-    public static native boolean verifySignedDigest(byte[] signature,
-                    byte[] digest, byte[] w, byte[] encodedParams)
-                    throws GeneralSecurityException;
-
-    public static native byte[] deriveKey(byte[] s, byte[] w,
-                    byte[] encodedParams) throws GeneralSecurityException;
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/SUNECSubstitutions.java b/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/SUNECSubstitutions.java
deleted file mode 100644
index 6eee323..0000000
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/SUNECSubstitutions.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.substitutes;
-
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import sun.security.ec.ECDHKeyAgreement;
-import sun.security.ec.ECKeyPairGenerator;
-
-import java.security.GeneralSecurityException;
-
-public class SUNECSubstitutions {
-
-    @TargetClass(ECKeyPairGenerator.class)
-    public static final class Target_sun_security_ec_ECKeyPairGenerator {
-        @Substitute
-        static Object[] generateECKeyPair(int keySize,
-                        byte[] encodedParams, byte[] seed) throws GeneralSecurityException {
-            return NativeSunECMethods.generateECKeyPair(keySize, encodedParams, seed);
-        }
-
-        @Substitute
-        static boolean isCurveSupported(byte[] encodedParams) {
-            return NativeSunECMethods.isCurveSupported(encodedParams);
-        }
-    }
-
-    @TargetClass(className = "sun.security.ec.ECDSASignature")
-    public static final class Target_sun_security_ec_ECDSASignature {
-
-        @Substitute
-        static byte[] signDigest(byte[] digest, byte[] s,
-                        byte[] encodedParams, byte[] seed, int timing)
-                        throws GeneralSecurityException {
-            return NativeSunECMethods.signDigest(digest, s, encodedParams, seed, timing);
-        }
-
-        @Substitute
-        static boolean verifySignedDigest(byte[] signature,
-                        byte[] digest, byte[] w, byte[] encodedParams)
-                        throws GeneralSecurityException {
-            return NativeSunECMethods.verifySignedDigest(signature, digest, w, encodedParams);
-        }
-    }
-
-    @TargetClass(ECDHKeyAgreement.class)
-    public static final class Target_sun_security_ec_ECDHKeyAgreement {
-        @Substitute
-        static byte[] deriveKey(byte[] s, byte[] w,
-                        byte[] encodedParams) throws GeneralSecurityException {
-            return NativeSunECMethods.deriveKey(s, w, encodedParams);
-        }
-    }
-
-}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveEntry.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveEntry.java
similarity index 82%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveEntry.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveEntry.java
index 1c0d59f..a0e9a44 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveEntry.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveEntry.java
@@ -1,10 +1,27 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.CallBacks;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.EncData;
-import com.alibaba.confidentialcomputing.enclave.framework.LoadServiceInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.ServiceMethodInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.UnloadServiceInvoker;
+package org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.CallBacks;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.EncData;
+import org.apache.teaclave.javasdk.enclave.framework.LoadServiceInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.ServiceMethodInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.UnloadServiceInvoker;
 import com.oracle.svm.core.IsolateArgumentParser;
 import com.oracle.svm.core.SubstrateGCOptions;
 import com.oracle.svm.core.annotate.Uninterruptible;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveFeature.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveFeature.java
similarity index 86%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveFeature.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveFeature.java
index 151e696..68cfc70 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveFeature.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveFeature.java
@@ -1,11 +1,28 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveMethod;
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-import com.alibaba.confidentialcomputing.enclave.framework.LoadServiceInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.ServiceMethodInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.UnloadServiceInvoker;
+package org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveMethod;
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+import org.apache.teaclave.javasdk.enclave.framework.LoadServiceInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.ServiceMethodInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.UnloadServiceInvoker;
 import com.oracle.svm.core.annotate.AutomaticFeature;
 import com.oracle.svm.core.c.libc.TemporaryBuildDirectoryProvider;
 import com.oracle.svm.core.jdk.resources.NativeImageResourceFileSystemUtil;
@@ -76,7 +93,7 @@ public class EnclaveFeature implements Feature {
         ImageSingletons.add(ServiceMethodInvoker.class, new ServiceMethodInvoker());
         ImageSingletons.add(LoadServiceInvoker.class, new LoadServiceInvoker());
         ImageSingletons.add(UnloadServiceInvoker.class, new UnloadServiceInvoker());
-        ImageSingletons.lookup(RuntimeClassInitializationSupport.class).initializeAtBuildTime("com.alibaba.confidentialcomputing.enclave.EnclavePrologue",
+        ImageSingletons.lookup(RuntimeClassInitializationSupport.class).initializeAtBuildTime("org.apache.teaclave.javasdk.enclave.EnclavePrologue",
                 "Prologue class should be initialize at build time.");
 
         FeatureImpl.DuringSetupAccessImpl config = (FeatureImpl.DuringSetupAccessImpl) access;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveOptions.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveOptions.java
similarity index 54%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveOptions.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveOptions.java
index 980b96a..78aad99 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclaveOptions.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveOptions.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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 org.apache.teaclave.javasdk.enclave;
 
 import com.oracle.svm.core.SubstrateOptions;
 import com.oracle.svm.core.option.HostedOptionKey;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePlatFormSettings.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePlatFormSettings.java
similarity index 71%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePlatFormSettings.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePlatFormSettings.java
index a06ae77..6531767 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePlatFormSettings.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePlatFormSettings.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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 org.apache.teaclave.javasdk.enclave;
 
 import com.oracle.graal.pointsto.util.AnalysisError;
 import com.oracle.svm.core.util.VMError;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePrologue.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePrologue.java
similarity index 50%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePrologue.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePrologue.java
index 596010a..52aeac8 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/EnclavePrologue.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclavePrologue.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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 org.apache.teaclave.javasdk.enclave;
 
 import com.oracle.svm.core.annotate.Uninterruptible;
 import com.oracle.svm.core.c.CGlobalData;
diff --git a/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveRandomFeature.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveRandomFeature.java
new file mode 100644
index 0000000..9857f23
--- /dev/null
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveRandomFeature.java
@@ -0,0 +1,35 @@
+// 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 org.apache.teaclave.javasdk.enclave;
+
+import com.oracle.svm.core.annotate.AutomaticFeature;
+import com.oracle.svm.hosted.FeatureHandler;
+import com.oracle.svm.hosted.FeatureImpl;
+import org.graalvm.nativeimage.hosted.Feature;
+
+@AutomaticFeature
+public class EnclaveRandomFeature implements Feature {
+    @Override
+    public void afterRegistration(Feature.AfterRegistrationAccess access) {
+        if (EnclaveOptions.RunInEnclave.getValue()) {
+            FeatureImpl.AfterRegistrationAccessImpl a = (FeatureImpl.AfterRegistrationAccessImpl) access;
+            FeatureHandler featureHandler = a.getFeatureHandler();
+            EnclavePlatFormSettings.disableFeatures(featureHandler, "com.oracle.svm.core.posix.NativeSecureRandomFilesCloser");
+        }
+    }
+}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/InvocationWrapper.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/InvocationWrapper.java
similarity index 69%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/InvocationWrapper.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/InvocationWrapper.java
index cb8ff24..66fb1ac 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/InvocationWrapper.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/InvocationWrapper.java
@@ -1,11 +1,28 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.CallBacks;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.EncData;
-import com.alibaba.confidentialcomputing.enclave.framework.EnclaveMethodInvoker;
+package org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.CallBacks;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.EncData;
+import org.apache.teaclave.javasdk.enclave.framework.EnclaveMethodInvoker;
 import org.graalvm.nativeimage.c.type.CCharPointer;
 import org.graalvm.nativeimage.c.type.CTypeConversion;
 import org.graalvm.word.PointerBase;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/NativeCommandUtil.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/NativeCommandUtil.java
similarity index 67%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/NativeCommandUtil.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/NativeCommandUtil.java
index f902231..42080f5 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/NativeCommandUtil.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/NativeCommandUtil.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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 org.apache.teaclave.javasdk.enclave;
 
 import java.io.BufferedReader;
 import java.io.IOException;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgent.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgent.java
similarity index 79%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgent.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgent.java
index 1dc7e58..b69d1c5 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgent.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgent.java
@@ -1,8 +1,25 @@
-package com.alibaba.confidentialcomputing.enclave.agent;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.SocketEnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
+package org.apache.teaclave.javasdk.enclave.agent;
+
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.SocketEnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
 import com.sun.net.httpserver.HttpServer;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgentServiceImpl.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgentServiceImpl.java
similarity index 59%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgentServiceImpl.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgentServiceImpl.java
index d407ca5..4b2f670 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveAgentServiceImpl.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveAgentServiceImpl.java
@@ -1,15 +1,32 @@
-package com.alibaba.confidentialcomputing.enclave.agent;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.EmbeddedLibOSInnerAttestationReport;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-import com.alibaba.confidentialcomputing.enclave.framework.EnclaveMethodInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.LoadServiceInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.ServiceMethodInvoker;
-import com.alibaba.confidentialcomputing.enclave.framework.UnloadServiceInvoker;
+package org.apache.teaclave.javasdk.enclave.agent;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.EmbeddedLibOSInnerAttestationReport;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+import org.apache.teaclave.javasdk.enclave.framework.EnclaveMethodInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.LoadServiceInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.ServiceMethodInvoker;
+import org.apache.teaclave.javasdk.enclave.framework.UnloadServiceInvoker;
 
 import java.io.IOException;
 
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveShutDown.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveShutDown.java
similarity index 63%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveShutDown.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveShutDown.java
index cd8538e..aaf9ed1 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/agent/EnclaveShutDown.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/EnclaveShutDown.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave.agent;
+// 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 org.apache.teaclave.javasdk.enclave.agent;
 
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
diff --git a/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/RemoteAttestation.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/RemoteAttestation.java
new file mode 100644
index 0000000..4803f51
--- /dev/null
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/agent/RemoteAttestation.java
@@ -0,0 +1,38 @@
+// 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 org.apache.teaclave.javasdk.enclave.agent;
+
+import org.apache.teaclave.javasdk.common.EmbeddedLibOSInnerAttestationReport;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+
+public class RemoteAttestation {
+    // lib os embedded enclave remote attestation jni.so path in occlum image.
+    private final static String JNI_EXTRACTED_PACKAGE_PATH = "/usr/lib/libos_occlum_enclave_attestation/lib_occlum_attestation_generate.so";
+
+    private static native void registerNatives();
+    private static native EmbeddedLibOSInnerAttestationReport generateAttestationReportNative(byte[] userDate) throws ConfidentialComputingException;
+
+    static {
+        System.load(JNI_EXTRACTED_PACKAGE_PATH);
+        registerNatives();
+    }
+
+    public static EmbeddedLibOSInnerAttestationReport generateAttestationReport(byte[] userDate) throws ConfidentialComputingException {
+        return generateAttestationReportNative(userDate);
+    }
+}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/c/EnclaveEnvironment.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/c/EnclaveEnvironment.java
similarity index 79%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/c/EnclaveEnvironment.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/c/EnclaveEnvironment.java
index cef7283..28a2b82 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/c/EnclaveEnvironment.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/c/EnclaveEnvironment.java
@@ -1,29 +1,21 @@
-/*
- * Copyright (c) 2021, 2021, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2021, 2021, Alibaba Group Holding Limited. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.alibaba.confidentialcomputing.enclave.c;
+// 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 org.apache.teaclave.javasdk.enclave.c;
 
 import com.oracle.svm.core.c.ProjectHeaderFile;
 import com.oracle.svm.core.c.libc.TemporaryBuildDirectoryProvider;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java
similarity index 59%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java
index b52ccaf..b88029a 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccess.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave.cpufeatures;
+// 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 org.apache.teaclave.javasdk.enclave.cpufeatures;
 
 import com.oracle.svm.core.amd64.AMD64CPUFeatureAccess;
 import com.oracle.svm.core.annotate.Uninterruptible;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java
similarity index 65%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java
index 8dc3e88..d1043bc 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/cpufeatures/EnclaveAMD64CPUFeatureAccessFeature.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.enclave.cpufeatures;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.EnclaveOptions;
+package org.apache.teaclave.javasdk.enclave.cpufeatures;
+
+import org.apache.teaclave.javasdk.enclave.EnclaveOptions;
 import com.oracle.svm.core.amd64.AMD64CPUFeatureAccess;
 import com.oracle.svm.core.annotate.AutomaticFeature;
 import com.oracle.svm.hosted.AMD64CPUFeatureAccessFeature;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveContext.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveContext.java
similarity index 78%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveContext.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveContext.java
index 43a1919..7f50793 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/EnclaveContext.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveContext.java
@@ -1,7 +1,24 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
+package org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveMethodInvoker.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveMethodInvoker.java
new file mode 100644
index 0000000..8daa865
--- /dev/null
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/EnclaveMethodInvoker.java
@@ -0,0 +1,33 @@
+// 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 org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+
+/**
+ * There are two types of method invocations in Enclave:
+ * <ul>
+ * <li>Business methods: The subclass {@link ServiceMethodInvoker} of this class takes care
+ * of the business method invocation.</li>
+ * <li>Framework methods: The SDK defined methods that run inside the enclave to maintain the framework. These methods
+ * must be static, are taken care by the subclass {@link LoadServiceInvoker}.</li>
+ * </ul>
+ */
+public interface EnclaveMethodInvoker<T> {
+    EnclaveInvocationResult callMethod(T input);
+}
diff --git a/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/LoadServiceInvoker.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/LoadServiceInvoker.java
new file mode 100644
index 0000000..6fff5f0
--- /dev/null
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/LoadServiceInvoker.java
@@ -0,0 +1,41 @@
+// 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 org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+
+/**
+ * This class handles loadService method invocation.
+ */
+public final class LoadServiceInvoker implements EnclaveMethodInvoker<String> {
+
+    /**
+     * Call loadService method.
+     *
+     * @param inputData name of the service to load.
+     */
+    @Override
+    public EnclaveInvocationResult callMethod(String inputData) {
+        try {
+            Class<?> service = Class.forName(inputData);
+            return new EnclaveInvocationResult(EnclaveContext.getInstance().loadService(service), null);
+        } catch (ClassNotFoundException e) {
+            return new EnclaveInvocationResult(null, e);
+        }
+    }
+}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvoker.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvoker.java
similarity index 81%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvoker.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvoker.java
index 7f12b9f..2b750ed 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvoker.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvoker.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
+package org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
 import jdk.vm.ci.meta.MetaUtil;
 
 import java.lang.reflect.Method;
diff --git a/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/UnloadServiceInvoker.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/UnloadServiceInvoker.java
new file mode 100644
index 0000000..b5789db
--- /dev/null
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/framework/UnloadServiceInvoker.java
@@ -0,0 +1,40 @@
+// 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 org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+
+/**
+ * This class handles the unloadService method to unload the specified service.
+ */
+public class UnloadServiceInvoker implements EnclaveMethodInvoker<ServiceHandler> {
+
+    @Override
+    public EnclaveInvocationResult callMethod(ServiceHandler inputData) {
+        Object ret = EnclaveContext.getInstance().removeCache(inputData.getInstanceIdentity());
+        Throwable t = null;
+        if (ret == null) {
+            t = new ConfidentialComputingException(String.format("No instance for service %s is found with the given identity %s", inputData.getServiceInterfaceName(),
+                    inputData.getInstanceIdentity()));
+        }
+        // unloadService method's return type is void.
+        return new EnclaveInvocationResult(null, t);
+    }
+}
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativePRNGSubstitutions.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/substitutes/NativePRNGSubstitutions.java
similarity index 82%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativePRNGSubstitutions.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/substitutes/NativePRNGSubstitutions.java
index 0fb9588..7a029b0 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/substitutes/NativePRNGSubstitutions.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/substitutes/NativePRNGSubstitutions.java
@@ -1,8 +1,25 @@
-package com.alibaba.confidentialcomputing.enclave.substitutes;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.EnclaveEntry;
-import com.alibaba.confidentialcomputing.enclave.EnclaveOptions;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment;
+package org.apache.teaclave.javasdk.enclave.substitutes;
+
+import org.apache.teaclave.javasdk.enclave.EnclaveEntry;
+import org.apache.teaclave.javasdk.enclave.EnclaveOptions;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment;
 import com.oracle.svm.core.annotate.Alias;
 import com.oracle.svm.core.annotate.Substitute;
 import com.oracle.svm.core.annotate.TargetClass;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMemoryFeature.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMemoryFeature.java
similarity index 58%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMemoryFeature.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMemoryFeature.java
index dfce358..433cebc 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMemoryFeature.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMemoryFeature.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.enclave.system;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.EnclaveOptions;
-import com.alibaba.confidentialcomputing.enclave.EnclavePlatFormSettings;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment;
-import com.alibaba.confidentialcomputing.enclave.system.EnclavePhysicalMemory.PhysicalMemorySupportImpl;
+package org.apache.teaclave.javasdk.enclave.system;
+
+import org.apache.teaclave.javasdk.enclave.EnclaveOptions;
+import org.apache.teaclave.javasdk.enclave.EnclavePlatFormSettings;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment;
+import org.apache.teaclave.javasdk.enclave.system.EnclavePhysicalMemory.PhysicalMemorySupportImpl;
 import com.oracle.svm.core.annotate.AutomaticFeature;
 import com.oracle.svm.core.os.VirtualMemoryProvider;
 import com.oracle.svm.core.util.VMError;
@@ -20,7 +37,7 @@ import java.util.List;
  * We define three custom native methods to get the corresponding memory information: {@link EnclaveEnvironment#getPhysicalPageNumber()},
  * {@link EnclaveEnvironment#getPhysicalPageSize()} and {@link EnclaveEnvironment#getVirtualPageSize()}. They should be
  * implemented in native code and linked by out framework. See {@code test/resources/native/enc_invoke_entry_test.c} and
- * {@code com.alibaba.confidentialcomputing.enclave.NativeImageTest#compileJNILibrary()} for details.
+ * {@code org.apache.teaclave.javasdk.enclave.NativeImageTest#compileJNILibrary()} for details.
  * <p>
  */
 @AutomaticFeature
@@ -39,7 +56,7 @@ public class EnclaveMemoryFeature implements Feature {
     public void afterRegistration(AfterRegistrationAccess access) {
         if (EnclaveOptions.RunInEnclave.getValue()) {
             RuntimeClassInitializationSupport rci = ImageSingletons.lookup(RuntimeClassInitializationSupport.class);
-            rci.initializeAtBuildTime("com.alibaba.confidentialcomputing.enclave.system.EnclaveVirtualMemoryProvider", "Native Image classes are always initialized at build time");
+            rci.initializeAtBuildTime("org.apache.teaclave.javasdk.enclave.system.EnclaveVirtualMemoryProvider", "Native Image classes are always initialized at build time");
             EnclavePlatFormSettings.replaceImageSingletonEntry(PhysicalMemorySupportImpl.getPhysicalMemorySupportClass(), new PhysicalMemorySupportImpl());
             ImageSingletons.add(VirtualMemoryProvider.class, new EnclaveVirtualMemoryProvider());
         }
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMuslLibcFeature.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMuslLibcFeature.java
similarity index 61%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMuslLibcFeature.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMuslLibcFeature.java
index 313ce5f..1312230 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveMuslLibcFeature.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveMuslLibcFeature.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave.system;
+// 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 org.apache.teaclave.javasdk.enclave.system;
 
 import com.oracle.svm.core.annotate.AutomaticFeature;
 import com.oracle.svm.core.c.libc.LibCBase;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclavePhysicalMemory.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclavePhysicalMemory.java
similarity index 60%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclavePhysicalMemory.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclavePhysicalMemory.java
index cdab91d..72130df 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclavePhysicalMemory.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclavePhysicalMemory.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.enclave.system;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment;
+package org.apache.teaclave.javasdk.enclave.system;
+
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment;
 import com.oracle.svm.core.heap.PhysicalMemory;
 import com.oracle.svm.core.util.VMError;
 import org.graalvm.word.UnsignedWord;
diff --git a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveVirtualMemoryProvider.java b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveVirtualMemoryProvider.java
similarity index 63%
rename from sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveVirtualMemoryProvider.java
rename to sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveVirtualMemoryProvider.java
index 287db8d..fa91e54 100644
--- a/sdk/enclave/src/main/java/com/alibaba/confidentialcomputing/enclave/system/EnclaveVirtualMemoryProvider.java
+++ b/sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/system/EnclaveVirtualMemoryProvider.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.enclave.system;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment;
+package org.apache.teaclave.javasdk.enclave.system;
+
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment;
 import com.oracle.svm.core.annotate.Uninterruptible;
 import com.oracle.svm.core.c.CGlobalData;
 import com.oracle.svm.core.c.CGlobalDataFactory;
diff --git a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/Makefile b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/Makefile
index cdf38d9..3bc8541 100644
--- a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/Makefile
+++ b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/Makefile
@@ -1,3 +1,20 @@
+# 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.
+
 include $(NATIVE_BASE_DIR)/config/config.mk
 include $(NATIVE_BASE_DIR)/config/platform/libos_occlum_enclave/enclave/config.mk
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.c b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.c
index a9b689e..72dbb5c 100644
--- a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.c
+++ b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -15,7 +32,7 @@ static JNINativeMethod embedded_libos_occlum_enclave_methods[] = {
     {"generateAttestationReportNative",   LIBOS_OCCLUM_ENCLAVE_REMOTE_ATTESTATION_GENERATION_SIGNATURE,   (void *)&JavaEnclave_TeeLibOSNativeRemoteAttestationGenerate},
 };
 
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation_registerNatives(JNIEnv *env, jclass cls) {
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation_registerNatives(JNIEnv *env, jclass cls) {
     (*env)->RegisterNatives(env, cls, embedded_libos_occlum_enclave_methods, sizeof(embedded_libos_occlum_enclave_methods)/sizeof(embedded_libos_occlum_enclave_methods[0]));
 }
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.h b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.h
index c88e9ed..c0150e7 100644
--- a/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.h
+++ b/sdk/enclave/src/main/native/cpp/platform/libos_occlum_enclave/remote_attestation_generate/jni_occlum_attestation_generate.h
@@ -1,22 +1,39 @@
+// 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.
+
 /* DO NOT EDIT THIS FILE - it is machine generated */
 #include <jni.h>
-/* Header for class com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation */
+/* Header for class org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation */
 
-#ifndef _Included_com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation
-#define _Included_com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation
+#ifndef _Included_org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation
+#define _Included_org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define LIBOS_OCCLUM_ENCLAVE_REMOTE_ATTESTATION_GENERATION_SIGNATURE  "([B)Lcom/alibaba/confidentialcomputing/common/EmbeddedLibOSInnerAttestationReport;"
-#define LIBOS_OCCLUM_INNER_ATTESTATION_REPORT                         "com/alibaba/confidentialcomputing/common/EmbeddedLibOSInnerAttestationReport"
-#define LIBOS_OCCLUM_ENCLAVE_REMOTE_ATTESTATION_EXCEPTION             "com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException"
+#define LIBOS_OCCLUM_ENCLAVE_REMOTE_ATTESTATION_GENERATION_SIGNATURE  "([B)Lorg/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport;"
+#define LIBOS_OCCLUM_INNER_ATTESTATION_REPORT                         "org/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport"
+#define LIBOS_OCCLUM_ENCLAVE_REMOTE_ATTESTATION_EXCEPTION             "org/apache/teaclave/javasdk/common/exception/ConfidentialComputingException"
 
 #define THROW_EXCEPTION(env, exception, info)                                  \
 {                                                                              \
     jclass ra_class = (*env)->FindClass(env, exception);                       \
     if (ra_class == NULL) {                                                    \
-        fprintf(stderr, "JavaEnclave Error:  ");                               \
+        fprintf(stderr, "Teaclave-java-tee-sdk Error:  ");                     \
         fprintf(stderr, exception);                                            \
         fprintf(stderr, " class loading failed.\n");                           \
         return;                                                                \
@@ -26,17 +43,17 @@ extern "C" {
 }
 
 /*
- * Class:     com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation
+ * Class:     org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation
  * Method:    registerNatives
  * Signature: ()V
  */
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation_registerNatives
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation_registerNatives
   (JNIEnv *, jclass);
 
 /*
- * Class:     com_alibaba_confidentialcomputing_enclave_agent_RemoteAttestation
+ * Class:     org_apache_teaclave_javasdk_enclave_agent_RemoteAttestation
  * Method:    generateAttestationReportNative
- * Signature: ([B)Lcom/alibaba/confidentialcomputing/common/agent/EmbeddedLibOSInnerAttestationReport;
+ * Signature: ([B)Lorg/apache/teaclave/javasdk/common/EmbeddedLibOSInnerAttestationReport;
  */
 JNIEXPORT jobject JNICALL JavaEnclave_TeeLibOSNativeRemoteAttestationGenerate
   (JNIEnv *, jclass, jbyteArray);
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/Makefile b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/Makefile
index 20a2a30..88a3d21 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/Makefile
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/Makefile
@@ -1,4 +1,19 @@
-# Copyright (c)
+# 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.
 
 include $(NATIVE_BASE_DIR)/config/config.mk
 include $(NATIVE_BASE_DIR)/config/platform/tee_sdk_svm/jni/config.mk
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.c b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.c
index 7618017..df780e7 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.c
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include <stdint.h>
 #include <stdio.h>
 #include <assert.h>
@@ -30,7 +47,7 @@ void* mmap(void *hint, int size, int prot, int flags) {
     void *ptr = 0;
     // flags == 0x4022, svm runtime expects to reserve a memory buffer with giving start address hint;
     // flags == 0x22 and hint == 0x0, svm runtime expects to reserve a memory buffer, the start address depends.
-    // Both the two scene, JavaEnclave SDK view them as enclave memory allocation, while not memory space reserve.
+    // Both the two scene, Teaclave-java-tee-sdk SDK view them as enclave memory allocation, while not memory space reserve.
     if ((flags == 0x4022) || (flags == 0x22 && hint == 0x0 && prot == 0x3)) {
         // fd mapping is not supported in enclave, so the last two parameters of
         // (int fd, off_t offset) must be (-1, 0);
@@ -40,15 +57,15 @@ void* mmap(void *hint, int size, int prot, int flags) {
     } else if (flags == 0x32) {
         ptr = hint;
     } else {
-        if(enable_trace_symbol_calling == 0x1) printf("JavaEnclave Warning: unsupported mmap operation in tee sdk enclave: 0x%lx, ptr is: %p, size is: %d, prot is: 0x%x, flags is: 0x%x.\n", (uint64_t)hint, ptr, size, prot, flags);
+        if(enable_trace_symbol_calling == 0x1) printf("Teaclave-java-tee-sdk Warning: unsupported mmap operation in tee sdk enclave: 0x%lx, ptr is: %p, size is: %d, prot is: 0x%x, flags is: 0x%x.\n", (uint64_t)hint, ptr, size, prot, flags);
         ASSERT();
     }
-    if(enable_trace_symbol_calling == 0x1) printf("JavaEnclave Warning: mmap operation in tee sdk enclave: 0x%lx, ptr is: %p, size is: %d, prot is: 0x%x, flags is: 0x%x.\n", (uint64_t)hint, ptr, size, prot, flags);
+    if(enable_trace_symbol_calling == 0x1) printf("Teaclave-java-tee-sdk Warning: mmap operation in tee sdk enclave: 0x%lx, ptr is: %p, size is: %d, prot is: 0x%x, flags is: 0x%x.\n", (uint64_t)hint, ptr, size, prot, flags);
     return ptr;
 }
 
 int munmap(void *addr, int size) {
     TRACE_SYMBOL_CALL();
-    if(enable_trace_symbol_calling == 0x1) printf("JavaEnclave Warning: unmmap operation in tee sdk enclave: addr is: %p, size is: %d\n", addr, size);
+    if(enable_trace_symbol_calling == 0x1) printf("Teaclave-java-tee-sdk Warning: unmmap operation in tee sdk enclave: addr is: %p, size is: %d\n", addr, size);
     return _munmap(addr, size);
 }
\ No newline at end of file
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.h b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.h
index 411340e..3aacb0a 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.h
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/sgx_mmap.h
@@ -1,3 +1,20 @@
+// 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.
+
 #include "tee_sdk_enclave_t.h"
 #include "tee_sdk_symbol.h"
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.c b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.c
index a3e5b61..81ad19a 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.c
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include "tee_sdk_enclave_t.h"
 #include "tee_sdk_symbol.h"
 
@@ -5,7 +22,6 @@ int enable_trace_symbol_calling = 0x0;
 
 void __fxstat() {TRACE_SYMBOL_CALL(); ASSERT();}
 void __fxstat64() {TRACE_SYMBOL_CALL(); ASSERT();}
-void __isnan() {TRACE_SYMBOL_CALL(); ASSERT();}
 void __libc_current_sigrtmax() {TRACE_SYMBOL_CALL(); ASSERT();}
 void __libc_malloc() {TRACE_SYMBOL_CALL(); ASSERT();}
 void __lxstat() {TRACE_SYMBOL_CALL(); ASSERT();}
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.h b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.h
index 99d6905..afa96c4 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.h
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/edge_routines/tee_sdk_symbol.h
@@ -1,3 +1,20 @@
+// 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.
+
 #ifndef _TEE_SDK_SYMBOL_H
 #define _TEE_SDK_SYMBOL_H
 
@@ -9,7 +26,7 @@ extern int enable_trace_symbol_calling;
 
 #define ENABLE_TRACE_SYSCALL
 #if defined(ENABLE_TRACE_SYSCALL)
-#define TRACE_SYMBOL_CALL()  if(enable_trace_symbol_calling == 0x1) printf("JavaEnclave Warning: %s is called in enclave svm.\n", __FUNCTION__);
+#define TRACE_SYMBOL_CALL()  if(enable_trace_symbol_calling == 0x1) printf("Teaclave-java-tee-sdk Warning: %s is called in enclave svm.\n", __FUNCTION__);
 #else
 #define TRACE_SYMBOL_CALL()
 #endif
@@ -23,7 +40,6 @@ extern int enable_trace_symbol_calling;
 
 void __fxstat();
 void __fxstat64();
-void __isnan();
 void __libc_current_sigrtmax();
 void __libc_malloc();
 void __lxstat();
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/Makefile b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/Makefile
index 957be54..d068ee7 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/Makefile
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/Makefile
@@ -1,3 +1,20 @@
+# 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.
+
 include $(NATIVE_BASE_DIR)/config/config.mk
 include $(NATIVE_BASE_DIR)/config/platform/tee_sdk_svm/jni/config.mk
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.c b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.c
index 0935fd2..0ca89c1 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.c
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include "generate_attestation_report.h"
 
 int generate_remote_attestation_report(void* hash, size_t hash_length, sgx_report_t* ra_report) {
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.h b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.h
index f93c1b4..de99340 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.h
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/remote_attestation_generate/generate_attestation_report.h
@@ -1,3 +1,20 @@
+// 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.
+
 #ifndef _GENERATE_ATTESTATION_REPORT_H_
 #define _GENERATE_ATTESTATION_REPORT_H_
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/Makefile b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/Makefile
index c9a5474..f826fd4 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/Makefile
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/Makefile
@@ -1,3 +1,20 @@
+# 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.
+
 include $(NATIVE_BASE_DIR)/config/config.mk
 include $(NATIVE_BASE_DIR)/config/platform/tee_sdk_svm/jni/config.mk
 
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.c b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.c
index b624dd4..da6aefa 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.c
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.h b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.h
index 0558c91..5bf89b6 100644
--- a/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.h
+++ b/sdk/enclave/src/main/native/cpp/platform/tee_sdk_svm/wrapper/tee_sdk_wrapper.h
@@ -1,3 +1,20 @@
+// 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.
+
 #ifndef _TEE_SDK_WRAPPER_H_
 #define _TEE_SDK_WRAPPER_H_
 
diff --git a/sdk/enclave/src/main/resources/META-INF/native-image/com.alibaba.confidentialcomputing/enclave/native-image.properties b/sdk/enclave/src/main/resources/META-INF/native-image/org.apache.teaclave.javasdk/enclave/native-image.properties
similarity index 100%
rename from sdk/enclave/src/main/resources/META-INF/native-image/com.alibaba.confidentialcomputing/enclave/native-image.properties
rename to sdk/enclave/src/main/resources/META-INF/native-image/org.apache.teaclave.javasdk/enclave/native-image.properties
diff --git a/sdk/enclave/src/main/resources/META-INF/native-image/serialization-config.json b/sdk/enclave/src/main/resources/META-INF/native-image/serialization-config.json
index 9d31c1d..64f59e6 100644
--- a/sdk/enclave/src/main/resources/META-INF/native-image/serialization-config.json
+++ b/sdk/enclave/src/main/resources/META-INF/native-image/serialization-config.json
@@ -1,15 +1,15 @@
 [
   {
-  "name":"com.alibaba.confidentialcomputing.common.EnclaveInvocationContext"
+  "name":"org.apache.teaclave.javasdk.common.EnclaveInvocationContext"
   },
   {
-    "name":"com.alibaba.confidentialcomputing.common.EnclaveInvocationResult"
+    "name":"org.apache.teaclave.javasdk.common.EnclaveInvocationResult"
   },
   {
-  "name":"com.alibaba.confidentialcomputing.common.ServiceHandler"
+  "name":"org.apache.teaclave.javasdk.common.ServiceHandler"
   },
   {
-    "name": "[Lcom.alibaba.confidentialcomputing.common.ServiceHandler;"
+    "name": "[Lorg.apache.teaclave.javasdk.common.ServiceHandler;"
   },
   {
   "name":"java.lang.String"
diff --git a/sdk/enclave/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors b/sdk/enclave/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors
index c5909f0..0c06ee2 100644
--- a/sdk/enclave/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors
+++ b/sdk/enclave/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors
@@ -1 +1 @@
-com.alibaba.confidentialcomputing.enclave.EnclaveOptions_OptionDescriptors
+org.apache.teaclave.javasdk.enclave.EnclaveOptions_OptionDescriptors
diff --git a/sdk/enclave/src/main/resources/native/enc_environment.h b/sdk/enclave/src/main/resources/native/enc_environment.h
index 884c098..cd46903 100644
--- a/sdk/enclave/src/main/resources/native/enc_environment.h
+++ b/sdk/enclave/src/main/resources/native/enc_environment.h
@@ -1,3 +1,20 @@
+// 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.
+
 typedef struct enc_data_struct{
     //char array is used as byte array to store serialized data
     char* data;
diff --git a/sdk/enclave/src/main/resources/native/sunec/ECC_JNI.c b/sdk/enclave/src/main/resources/native/sunec/ECC_JNI.c
deleted file mode 100755
index 5b65696..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/ECC_JNI.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <jni.h>
-#include "jni_util.h"
-#include "ecc_impl.h"
-#include "com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h"
-
-#define ILLEGAL_STATE_EXCEPTION "java/lang/IllegalStateException"
-#define INVALID_ALGORITHM_PARAMETER_EXCEPTION \
-        "java/security/InvalidAlgorithmParameterException"
-#define INVALID_PARAMETER_EXCEPTION \
-        "java/security/InvalidParameterException"
-#define KEY_EXCEPTION   "java/security/KeyException"
-
-/*
- * Declare library specific JNI_Onload entry if static build
- */
-JNIEXPORT jint JNICALL JNI_OnLoad_sunec(JavaVM *vm, void *reserved) {
-    return JNI_VERSION_1_8;
-}
-
-/*
- * Throws an arbitrary Java exception.
- */
-void ThrowException_C(JNIEnv *env, const char *exceptionName)
-{
-    jclass exceptionClazz = (*env)->FindClass(env, exceptionName);
-    if (exceptionClazz != NULL) {
-        (*env)->ThrowNew(env, exceptionClazz, NULL);
-    }
-}
-
-/*
- * Deep free of the ECParams struct
- */
-void FreeECParams_C(ECParams *ecparams, jboolean freeStruct)
-{
-    // Use B_FALSE to free the SECItem->data element, but not the SECItem itself
-    // Use B_TRUE to free both
-
-    SECITEM_FreeItem(&ecparams->fieldID.u.prime, B_FALSE);
-    SECITEM_FreeItem(&ecparams->curve.a, B_FALSE);
-    SECITEM_FreeItem(&ecparams->curve.b, B_FALSE);
-    SECITEM_FreeItem(&ecparams->curve.seed, B_FALSE);
-    SECITEM_FreeItem(&ecparams->base, B_FALSE);
-    SECITEM_FreeItem(&ecparams->order, B_FALSE);
-    SECITEM_FreeItem(&ecparams->DEREncoding, B_FALSE);
-    SECITEM_FreeItem(&ecparams->curveOID, B_FALSE);
-    if (freeStruct)
-        free(ecparams);
-}
-
-jbyteArray getEncodedBytes_C(JNIEnv *env, SECItem *hSECItem)
-{
-    SECItem *s = (SECItem *)hSECItem;
-
-    jbyteArray jEncodedBytes = (*env)->NewByteArray(env, s->len);
-    if (jEncodedBytes == NULL) {
-        return NULL;
-    }
-    // Copy bytes from a native SECItem buffer to Java byte array
-    (*env)->SetByteArrayRegion(env, jEncodedBytes, 0, s->len, (jbyte *)s->data);
-    if ((*env)->ExceptionCheck(env)) { // should never happen
-        return NULL;
-    }
-    return jEncodedBytes;
-}
-
-/*
- * Class:     sun_security_ec_ECKeyPairGenerator
- * Method:    isCurveSupported
- * Signature: ([B)Z
- */
-JNIEXPORT jboolean
-JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_isCurveSupported
-  (JNIEnv *env, jclass clazz, jbyteArray encodedParams)
-{
-    SECKEYECParams params_item;
-    ECParams *ecparams = NULL;
-    jboolean result = JNI_FALSE;
-
-    // The curve is supported if we can get parameters for it
-    params_item.len = (*env)->GetArrayLength(env, encodedParams);
-    params_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, encodedParams, 0);
-    if (params_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Fill a new ECParams using the supplied OID
-    if (EC_DecodeParams(&params_item, &ecparams, 0) != SECSuccess) {
-        /* bad curve OID */
-        goto cleanup;
-    }
-
-    // If we make it to here, then the curve is supported
-    result = JNI_TRUE;
-
-cleanup:
-    {
-        if (params_item.data) {
-            (*env)->ReleaseByteArrayElements(env, encodedParams,
-                (jbyte *) params_item.data, JNI_ABORT);
-        }
-        if (ecparams) {
-            FreeECParams_C(ecparams, TRUE);
-        }
-    }
-
-    return result;
-}
-
-/*
- * Class:     sun_security_ec_ECKeyPairGenerator
- * Method:    generateECKeyPair
- * Signature: (I[B[B)[[B
- */
-JNIEXPORT jobjectArray
-JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_generateECKeyPair
-  (JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed)
-{
-    ECPrivateKey *privKey = NULL; // contains both public and private values
-    ECParams *ecparams = NULL;
-    SECKEYECParams params_item;
-    jint jSeedLength;
-    jbyte* pSeedBuffer = NULL;
-    jobjectArray result = NULL;
-    jclass baCls = NULL;
-    jbyteArray jba;
-
-    // Initialize the ECParams struct
-    params_item.len = (*env)->GetArrayLength(env, encodedParams);
-    params_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, encodedParams, 0);
-    if (params_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Fill a new ECParams using the supplied OID
-    if (EC_DecodeParams(&params_item, &ecparams, 0) != SECSuccess) {
-        /* bad curve OID */
-        ThrowException_C(env, INVALID_ALGORITHM_PARAMETER_EXCEPTION);
-        goto cleanup;
-    }
-
-    // Copy seed from Java to native buffer
-    jSeedLength = (*env)->GetArrayLength(env, seed);
-    pSeedBuffer = (jbyte*)malloc(jSeedLength * sizeof(jbyte));
-
-    (*env)->GetByteArrayRegion(env, seed, 0, jSeedLength, pSeedBuffer);
-
-    // Generate the new keypair (using the supplied seed)
-    if (EC_NewKey(ecparams, &privKey, (unsigned char *) pSeedBuffer,
-        jSeedLength, 0) != SECSuccess) {
-        ThrowException_C(env, KEY_EXCEPTION);
-        goto cleanup;
-    }
-
-    jboolean isCopy;
-    baCls = (*env)->FindClass(env, "[B");
-    if (baCls == NULL) {
-        goto cleanup;
-    }
-    result = (*env)->NewObjectArray(env, 2, baCls, NULL);
-    if (result == NULL) {
-        goto cleanup;
-    }
-    jba = getEncodedBytes_C(env, &(privKey->privateValue));
-    if (jba == NULL) {
-        result = NULL;
-        goto cleanup;
-    }
-    (*env)->SetObjectArrayElement(env, result, 0, jba); // big integer
-    if ((*env)->ExceptionCheck(env)) { // should never happen
-        result = NULL;
-        goto cleanup;
-    }
-
-    jba = getEncodedBytes_C(env, &(privKey->publicValue));
-    if (jba == NULL) {
-        result = NULL;
-        goto cleanup;
-    }
-    (*env)->SetObjectArrayElement(env, result, 1, jba); // encoded ec point
-    if ((*env)->ExceptionCheck(env)) { // should never happen
-        result = NULL;
-        goto cleanup;
-    }
-
-cleanup:
-    {
-        if (params_item.data) {
-            (*env)->ReleaseByteArrayElements(env, encodedParams,
-                (jbyte *) params_item.data, JNI_ABORT);
-        }
-        if (ecparams) {
-            FreeECParams_C(ecparams, TRUE);
-        }
-        if (privKey) {
-            FreeECParams_C(&privKey->ecParams, FALSE);
-            SECITEM_FreeItem(&privKey->version, B_FALSE);
-            SECITEM_FreeItem(&privKey->privateValue, B_FALSE);
-            SECITEM_FreeItem(&privKey->publicValue, B_FALSE);
-            free(privKey);
-        }
-
-        if (pSeedBuffer) {
-            free(pSeedBuffer);
-        }
-    }
-
-    return result;
-}
-
-/*
- * Class:     sun_security_ec_ECDSASignature
- * Method:    signDigest
- * Signature: ([B[B[B[B)[B
- */
-JNIEXPORT jbyteArray
-JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_signDigest
-  (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray encodedParams, jbyteArray seed, jint timing)
-{
-    jbyte* pDigestBuffer = NULL;
-    jint jDigestLength = (*env)->GetArrayLength(env, digest);
-    jbyteArray jSignedDigest = NULL;
-
-    SECItem signature_item;
-    jbyte* pSignedDigestBuffer = NULL;
-    jbyteArray temp;
-
-    jint jSeedLength = (*env)->GetArrayLength(env, seed);
-    jbyte* pSeedBuffer = NULL;
-
-    // Copy digest from Java to native buffer
-    pDigestBuffer = (jbyte *)malloc(jDigestLength*sizeof(jbyte));
-    (*env)->GetByteArrayRegion(env, digest, 0, jDigestLength, pDigestBuffer);
-    SECItem digest_item;
-    digest_item.data = (unsigned char *) pDigestBuffer;
-    digest_item.len = jDigestLength;
-
-    ECPrivateKey privKey;
-    privKey.privateValue.data = NULL;
-
-    // Initialize the ECParams struct
-    ECParams *ecparams = NULL;
-    SECKEYECParams params_item;
-    params_item.len = (*env)->GetArrayLength(env, encodedParams);
-    params_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, encodedParams, 0);
-    if (params_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Fill a new ECParams using the supplied OID
-    if (EC_DecodeParams(&params_item, &ecparams, 0) != SECSuccess) {
-        /* bad curve OID */
-        ThrowException_C(env, INVALID_ALGORITHM_PARAMETER_EXCEPTION);
-        goto cleanup;
-    }
-
-    // Extract private key data
-    privKey.ecParams = *ecparams; // struct assignment
-    privKey.privateValue.len = (*env)->GetArrayLength(env, privateKey);
-    privKey.privateValue.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, privateKey, 0);
-    if (privKey.privateValue.data == NULL) {
-        goto cleanup;
-    }
-
-    // Prepare a buffer for the signature (twice the key length)
-    pSignedDigestBuffer = (jbyte *)malloc(ecparams->order.len * 2 * sizeof(jbyte));
-    signature_item.data = (unsigned char *) pSignedDigestBuffer;
-    signature_item.len = ecparams->order.len * 2;
-
-    // Copy seed from Java to native buffer
-    pSeedBuffer = (jbyte *)malloc(jSeedLength*sizeof(jbyte));
-    (*env)->GetByteArrayRegion(env, seed, 0, jSeedLength, pSeedBuffer);
-
-    // Sign the digest (using the supplied seed)
-    if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item,
-        (unsigned char *) pSeedBuffer, jSeedLength, 0, timing) != SECSuccess) {
-        ThrowException_C(env, KEY_EXCEPTION);
-        goto cleanup;
-    }
-
-    // Create new byte array
-    temp = (*env)->NewByteArray(env, signature_item.len);
-    if (temp == NULL) {
-        goto cleanup;
-    }
-
-    // Copy data from native buffer
-    (*env)->SetByteArrayRegion(env, temp, 0, signature_item.len, pSignedDigestBuffer);
-    jSignedDigest = temp;
-
-cleanup:
-    {
-        if (params_item.data) {
-            (*env)->ReleaseByteArrayElements(env, encodedParams,
-                (jbyte *) params_item.data, JNI_ABORT);
-        }
-        if (privKey.privateValue.data) {
-            (*env)->ReleaseByteArrayElements(env, privateKey,
-                (jbyte *) privKey.privateValue.data, JNI_ABORT);
-        }
-        if (pDigestBuffer) {
-            free(pDigestBuffer);
-        }
-        if (pSignedDigestBuffer) {
-            free(pSignedDigestBuffer);
-        }
-        if (pSeedBuffer) {
-            free(pSeedBuffer);
-        }
-        if (ecparams) {
-            FreeECParams_C(ecparams, TRUE);
-        }
-    }
-
-    return jSignedDigest;
-}
-
-/*
- * Class:     sun_security_ec_ECDSASignature
- * Method:    verifySignedDigest
- * Signature: ([B[B[B[B)Z
- */
-JNIEXPORT jboolean
-JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_verifySignedDigest
-  (JNIEnv *env, jclass clazz, jbyteArray signedDigest, jbyteArray digest, jbyteArray publicKey, jbyteArray encodedParams)
-{
-    jboolean isValid = FALSE;
-
-    // Copy signedDigest from Java to native buffer
-    jbyte* pSignedDigestBuffer = NULL;
-    jint jSignedDigestLength = (*env)->GetArrayLength(env, signedDigest);
-    pSignedDigestBuffer = (jbyte *)malloc(jSignedDigestLength*sizeof(jbyte));
-    (*env)->GetByteArrayRegion(env, signedDigest, 0, jSignedDigestLength,
-        pSignedDigestBuffer);
-    SECItem signature_item;
-    signature_item.data = (unsigned char *) pSignedDigestBuffer;
-    signature_item.len = jSignedDigestLength;
-
-    // Copy digest from Java to native buffer
-    jbyte* pDigestBuffer = NULL;
-    jint jDigestLength = (*env)->GetArrayLength(env, digest);
-    pDigestBuffer = (jbyte *)malloc(jDigestLength*sizeof(jbyte));
-    (*env)->GetByteArrayRegion(env, digest, 0, jDigestLength, pDigestBuffer);
-    SECItem digest_item;
-    digest_item.data = (unsigned char *) pDigestBuffer;
-    digest_item.len = jDigestLength;
-
-    // Extract public key data
-    ECPublicKey pubKey;
-    pubKey.publicValue.data = NULL;
-    ECParams *ecparams = NULL;
-    SECKEYECParams params_item;
-
-    // Initialize the ECParams struct
-    params_item.len = (*env)->GetArrayLength(env, encodedParams);
-    params_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, encodedParams, 0);
-    if (params_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Fill a new ECParams using the supplied OID
-    if (EC_DecodeParams(&params_item, &ecparams, 0) != SECSuccess) {
-        /* bad curve OID */
-        ThrowException_C(env, INVALID_ALGORITHM_PARAMETER_EXCEPTION);
-        goto cleanup;
-    }
-    pubKey.ecParams = *ecparams; // struct assignment
-    pubKey.publicValue.len = (*env)->GetArrayLength(env, publicKey);
-    pubKey.publicValue.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, publicKey, 0);
-
-    if (ECDSA_VerifyDigest(&pubKey, &signature_item, &digest_item, 0)
-            != SECSuccess) {
-        goto cleanup;
-    }
-
-    isValid = TRUE;
-
-cleanup:
-    {
-        if (params_item.data)
-            (*env)->ReleaseByteArrayElements(env, encodedParams,
-                (jbyte *) params_item.data, JNI_ABORT);
-
-        if (pubKey.publicValue.data)
-            (*env)->ReleaseByteArrayElements(env, publicKey,
-                (jbyte *) pubKey.publicValue.data, JNI_ABORT);
-
-        if (ecparams)
-            FreeECParams_C(ecparams, TRUE);
-
-        if (pSignedDigestBuffer)
-            free(pSignedDigestBuffer);
-
-        if (pDigestBuffer)
-            free(pDigestBuffer);
-    }
-
-    return isValid;
-}
-
-/*
- * Class:     sun_security_ec_ECDHKeyAgreement
- * Method:    deriveKey
- * Signature: ([B[B[B)[B
- */
-JNIEXPORT jbyteArray
-JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_deriveKey
-  (JNIEnv *env, jclass clazz, jbyteArray privateKey, jbyteArray publicKey, jbyteArray encodedParams)
-{
-    jbyteArray jSecret = NULL;
-    ECParams *ecparams = NULL;
-    SECItem privateValue_item;
-    privateValue_item.data = NULL;
-    SECItem publicValue_item;
-    publicValue_item.data = NULL;
-    SECKEYECParams params_item;
-    params_item.data = NULL;
-
-    // Extract private key value
-    privateValue_item.len = (*env)->GetArrayLength(env, privateKey);
-    privateValue_item.data =
-            (unsigned char *) (*env)->GetByteArrayElements(env, privateKey, 0);
-    if (privateValue_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Extract public key value
-    publicValue_item.len = (*env)->GetArrayLength(env, publicKey);
-    publicValue_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, publicKey, 0);
-    if (publicValue_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Initialize the ECParams struct
-    params_item.len = (*env)->GetArrayLength(env, encodedParams);
-    params_item.data =
-        (unsigned char *) (*env)->GetByteArrayElements(env, encodedParams, 0);
-    if (params_item.data == NULL) {
-        goto cleanup;
-    }
-
-    // Fill a new ECParams using the supplied OID
-    if (EC_DecodeParams(&params_item, &ecparams, 0) != SECSuccess) {
-        /* bad curve OID */
-        ThrowException_C(env, INVALID_ALGORITHM_PARAMETER_EXCEPTION);
-        goto cleanup;
-    }
-
-    // Prepare a buffer for the secret
-    SECItem secret_item;
-    secret_item.data = NULL;
-    secret_item.len = ecparams->order.len * 2;
-
-    if (ECDH_Derive(&publicValue_item, ecparams, &privateValue_item, B_FALSE,
-        &secret_item, 0) != SECSuccess) {
-        ThrowException_C(env, ILLEGAL_STATE_EXCEPTION);
-        goto cleanup;
-    }
-
-    // Create new byte array
-    jSecret = (*env)->NewByteArray(env, secret_item.len);
-    if (jSecret == NULL) {
-        goto cleanup;
-    }
-
-    // Copy bytes from the SECItem buffer to a Java byte array
-    (*env)->SetByteArrayRegion(env, jSecret, 0, secret_item.len,
-        (jbyte *)secret_item.data);
-
-    // Free the SECItem data buffer
-    SECITEM_FreeItem(&secret_item, B_FALSE);
-
-cleanup:
-    {
-        if (privateValue_item.data)
-            (*env)->ReleaseByteArrayElements(env, privateKey,
-                (jbyte *) privateValue_item.data, JNI_ABORT);
-
-        if (publicValue_item.data)
-            (*env)->ReleaseByteArrayElements(env, publicKey,
-                (jbyte *) publicValue_item.data, JNI_ABORT);
-
-        if (params_item.data)
-            (*env)->ReleaseByteArrayElements(env, encodedParams,
-                (jbyte *) params_item.data, JNI_ABORT);
-
-        if (ecparams)
-            FreeECParams_C(ecparams, TRUE);
-    }
-
-    return jSecret;
-}
diff --git a/sdk/enclave/src/main/resources/native/sunec/com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h b/sdk/enclave/src/main/resources/native/sunec/com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h
deleted file mode 100644
index 2586ad3..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods */
-
-#ifndef _Included_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
-#define _Included_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
- * Method:    isCurveSupported
- * Signature: ([B)Z
- */
-JNIEXPORT jboolean JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_isCurveSupported
-  (JNIEnv *, jclass, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
- * Method:    generateECKeyPair
- * Signature: (I[B[B)[Ljava/lang/Object;
- */
-JNIEXPORT jobjectArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_generateECKeyPair
-  (JNIEnv *, jclass, jint, jbyteArray, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
- * Method:    signDigest
- * Signature: ([B[B[B[BI)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_signDigest
-  (JNIEnv *, jclass, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jint);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
- * Method:    verifySignedDigest
- * Signature: ([B[B[B[B)Z
- */
-JNIEXPORT jboolean JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_verifySignedDigest
-  (JNIEnv *, jclass, jbyteArray, jbyteArray, jbyteArray, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods
- * Method:    deriveKey
- * Signature: ([B[B[B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_substitutes_NativeSunECMethods_deriveKey
-  (JNIEnv *, jclass, jbyteArray, jbyteArray, jbyteArray);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/sdk/enclave/src/main/resources/native/sunec/ecc_impl.h b/sdk/enclave/src/main/resources/native/sunec/ecc_impl.h
deleted file mode 100755
index 48aa13a..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/ecc_impl.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * Use is subject to license terms.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/* *********************************************************************
- *
- * The Original Code is the Netscape security libraries.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1994-2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Dr Vipul Gupta <vi...@sun.com> and
- *   Douglas Stebila <do...@stebila.ca>, Sun Microsystems Laboratories
- *
- * Last Modified Date from the Original Code: May 2017
- *********************************************************************** */
-
-#ifndef _ECC_IMPL_H
-#define _ECC_IMPL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-#include "ecl-exp.h"
-
-/*
- * Multi-platform definitions
- */
-#ifdef __linux__
-#define B_FALSE FALSE
-#define B_TRUE TRUE
-typedef unsigned char uint8_t;
-typedef unsigned long ulong_t;
-typedef enum { B_FALSE, B_TRUE } boolean_t;
-#endif /* __linux__ */
-
-#ifdef _ALLBSD_SOURCE
-#include <stdint.h>
-#define B_FALSE FALSE
-#define B_TRUE TRUE
-typedef unsigned long ulong_t;
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-#endif /* _ALLBSD_SOURCE */
-
-#ifdef AIX
-#define B_FALSE FALSE
-#define B_TRUE TRUE
-typedef unsigned char uint8_t;
-typedef unsigned long ulong_t;
-#endif /* AIX */
-
-#ifdef _WIN32
-typedef unsigned char uint8_t;
-typedef unsigned long ulong_t;
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-#define strdup _strdup          /* Replace POSIX name with ISO C++ name */
-#endif /* _WIN32 */
-
-#ifndef _KERNEL
-#include <stdlib.h>
-#endif  /* _KERNEL */
-
-#define EC_MAX_DIGEST_LEN 1024  /* max digest that can be signed */
-#define EC_MAX_POINT_LEN 145    /* max len of DER encoded Q */
-#define EC_MAX_VALUE_LEN 72     /* max len of ANSI X9.62 private value d */
-#define EC_MAX_SIG_LEN 144      /* max signature len for supported curves */
-#define EC_MIN_KEY_LEN  112     /* min key length in bits */
-#define EC_MAX_KEY_LEN  571     /* max key length in bits */
-#define EC_MAX_OID_LEN 10       /* max length of OID buffer */
-
-/*
- * Various structures and definitions from NSS are here.
- */
-
-#ifdef _KERNEL
-#define PORT_ArenaAlloc(a, n, f)        kmem_alloc((n), (f))
-#define PORT_ArenaZAlloc(a, n, f)       kmem_zalloc((n), (f))
-#define PORT_ArenaGrow(a, b, c, d)      NULL
-#define PORT_ZAlloc(n, f)               kmem_zalloc((n), (f))
-#define PORT_Alloc(n, f)                kmem_alloc((n), (f))
-#else
-#define PORT_ArenaAlloc(a, n, f)        malloc((n))
-#define PORT_ArenaZAlloc(a, n, f)       calloc(1, (n))
-#define PORT_ArenaGrow(a, b, c, d)      NULL
-#define PORT_ZAlloc(n, f)               calloc(1, (n))
-#define PORT_Alloc(n, f)                malloc((n))
-#endif
-
-#define PORT_NewArena(b)                (char *)12345
-#define PORT_ArenaMark(a)               NULL
-#define PORT_ArenaUnmark(a, b)
-#define PORT_ArenaRelease(a, m)
-#define PORT_FreeArena(a, b)
-#define PORT_Strlen(s)                  strlen((s))
-#define PORT_SetError(e)
-
-#define PRBool                          boolean_t
-#define PR_TRUE                         B_TRUE
-#define PR_FALSE                        B_FALSE
-
-#ifdef _KERNEL
-#define PORT_Assert                     ASSERT
-#define PORT_Memcpy(t, f, l)            bcopy((f), (t), (l))
-#else
-#define PORT_Assert                     assert
-#define PORT_Memcpy(t, f, l)            memcpy((t), (f), (l))
-#endif
-
-#define CHECK_OK(func) if (func == NULL) goto cleanup
-#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
-
-typedef enum {
-        siBuffer = 0,
-        siClearDataBuffer = 1,
-        siCipherDataBuffer = 2,
-        siDERCertBuffer = 3,
-        siEncodedCertBuffer = 4,
-        siDERNameBuffer = 5,
-        siEncodedNameBuffer = 6,
-        siAsciiNameString = 7,
-        siAsciiString = 8,
-        siDEROID = 9,
-        siUnsignedInteger = 10,
-        siUTCTime = 11,
-        siGeneralizedTime = 12
-} SECItemType;
-
-typedef struct SECItemStr SECItem;
-
-struct SECItemStr {
-        SECItemType type;
-        unsigned char *data;
-        unsigned int len;
-};
-
-typedef SECItem SECKEYECParams;
-
-typedef enum { ec_params_explicit,
-               ec_params_named
-} ECParamsType;
-
-typedef enum { ec_field_GFp = 1,
-               ec_field_GF2m
-} ECFieldType;
-
-struct ECFieldIDStr {
-    int         size;   /* field size in bits */
-    ECFieldType type;
-    union {
-        SECItem  prime; /* prime p for (GFp) */
-        SECItem  poly;  /* irreducible binary polynomial for (GF2m) */
-    } u;
-    int         k1;     /* first coefficient of pentanomial or
-                         * the only coefficient of trinomial
-                         */
-    int         k2;     /* two remaining coefficients of pentanomial */
-    int         k3;
-};
-typedef struct ECFieldIDStr ECFieldID;
-
-struct ECCurveStr {
-        SECItem a;      /* contains octet stream encoding of
-                         * field element (X9.62 section 4.3.3)
-                         */
-        SECItem b;
-        SECItem seed;
-};
-typedef struct ECCurveStr ECCurve;
-
-typedef void PRArenaPool;
-
-struct ECParamsStr {
-    PRArenaPool * arena;
-    ECParamsType  type;
-    ECFieldID     fieldID;
-    ECCurve       curve;
-    SECItem       base;
-    SECItem       order;
-    int           cofactor;
-    SECItem       DEREncoding;
-    ECCurveName   name;
-    SECItem       curveOID;
-};
-typedef struct ECParamsStr ECParams;
-
-struct ECPublicKeyStr {
-    ECParams ecParams;
-    SECItem publicValue;   /* elliptic curve point encoded as
-                            * octet stream.
-                            */
-};
-typedef struct ECPublicKeyStr ECPublicKey;
-
-struct ECPrivateKeyStr {
-    ECParams ecParams;
-    SECItem publicValue;   /* encoded ec point */
-    SECItem privateValue;  /* private big integer */
-    SECItem version;       /* As per SEC 1, Appendix C, Section C.4 */
-};
-typedef struct ECPrivateKeyStr ECPrivateKey;
-
-typedef enum _SECStatus {
-        SECBufferTooSmall = -3,
-        SECWouldBlock = -2,
-        SECFailure = -1,
-        SECSuccess = 0
-} SECStatus;
-
-#ifdef _KERNEL
-#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))
-#else
-/*
- This function is no longer required because the random bytes are now
- supplied by the caller. Force a failure.
-*/
-#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
-#endif
-#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
-#define MP_TO_SEC_ERROR(err)
-
-#define SECITEM_TO_MPINT(it, mp)                                        \
-        CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
-
-extern int ecc_knzero_random_generator(uint8_t *, size_t);
-extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);
-
-extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);
-extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);
-extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,
-    int);
-extern void SECITEM_FreeItem(SECItem *, boolean_t);
-/* This function has been modified to accept an array of random bytes */
-extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,
-    const unsigned char* random, int randomlen, int);
-/* This function has been modified to accept an array of random bytes */
-extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
-    const unsigned char* random, int randomlen, int, int timing);
-extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
-    const SECItem *, int);
-extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
-    SECItem *, int);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* _ECC_IMPL_H */
diff --git a/sdk/enclave/src/main/resources/native/sunec/ecl-exp.h b/sdk/enclave/src/main/resources/native/sunec/ecl-exp.h
deleted file mode 100755
index 8b442c6..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/ecl-exp.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
- * Use is subject to license terms.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/* *********************************************************************
- *
- * The Original Code is the elliptic curve math library.
- *
- * The Initial Developer of the Original Code is
- * Sun Microsystems, Inc.
- * Portions created by the Initial Developer are Copyright (C) 2003
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Douglas Stebila <do...@stebila.ca>, Sun Microsystems Laboratories
- *
- *********************************************************************** */
-
-#ifndef _ECL_EXP_H
-#define _ECL_EXP_H
-
-/* Curve field type */
-typedef enum {
-        ECField_GFp,
-        ECField_GF2m
-} ECField;
-
-/* Hexadecimal encoding of curve parameters */
-struct ECCurveParamsStr {
-        char *text;
-        ECField field;
-        unsigned int size;
-        char *irr;
-        char *curvea;
-        char *curveb;
-        char *genx;
-        char *geny;
-        char *order;
-        int cofactor;
-};
-typedef struct ECCurveParamsStr ECCurveParams;
-
-/* Named curve parameters */
-typedef enum {
-
-        ECCurve_noName = 0,
-
-        /* NIST prime curves */
-        ECCurve_NIST_P192,
-        ECCurve_NIST_P224,
-        ECCurve_NIST_P256,
-        ECCurve_NIST_P384,
-        ECCurve_NIST_P521,
-
-        /* NIST binary curves */
-        ECCurve_NIST_K163,
-        ECCurve_NIST_B163,
-        ECCurve_NIST_K233,
-        ECCurve_NIST_B233,
-        ECCurve_NIST_K283,
-        ECCurve_NIST_B283,
-        ECCurve_NIST_K409,
-        ECCurve_NIST_B409,
-        ECCurve_NIST_K571,
-        ECCurve_NIST_B571,
-
-        /* ANSI X9.62 prime curves */
-        /* ECCurve_X9_62_PRIME_192V1 == ECCurve_NIST_P192 */
-        ECCurve_X9_62_PRIME_192V2,
-        ECCurve_X9_62_PRIME_192V3,
-        ECCurve_X9_62_PRIME_239V1,
-        ECCurve_X9_62_PRIME_239V2,
-        ECCurve_X9_62_PRIME_239V3,
-        /* ECCurve_X9_62_PRIME_256V1 == ECCurve_NIST_P256 */
-
-        /* ANSI X9.62 binary curves */
-        ECCurve_X9_62_CHAR2_PNB163V1,
-        ECCurve_X9_62_CHAR2_PNB163V2,
-        ECCurve_X9_62_CHAR2_PNB163V3,
-        ECCurve_X9_62_CHAR2_PNB176V1,
-        ECCurve_X9_62_CHAR2_TNB191V1,
-        ECCurve_X9_62_CHAR2_TNB191V2,
-        ECCurve_X9_62_CHAR2_TNB191V3,
-        ECCurve_X9_62_CHAR2_PNB208W1,
-        ECCurve_X9_62_CHAR2_TNB239V1,
-        ECCurve_X9_62_CHAR2_TNB239V2,
-        ECCurve_X9_62_CHAR2_TNB239V3,
-        ECCurve_X9_62_CHAR2_PNB272W1,
-        ECCurve_X9_62_CHAR2_PNB304W1,
-        ECCurve_X9_62_CHAR2_TNB359V1,
-        ECCurve_X9_62_CHAR2_PNB368W1,
-        ECCurve_X9_62_CHAR2_TNB431R1,
-
-        /* SEC2 prime curves */
-        ECCurve_SECG_PRIME_112R1,
-        ECCurve_SECG_PRIME_112R2,
-        ECCurve_SECG_PRIME_128R1,
-        ECCurve_SECG_PRIME_128R2,
-        ECCurve_SECG_PRIME_160K1,
-        ECCurve_SECG_PRIME_160R1,
-        ECCurve_SECG_PRIME_160R2,
-        ECCurve_SECG_PRIME_192K1,
-        /* ECCurve_SECG_PRIME_192R1 == ECCurve_NIST_P192 */
-        ECCurve_SECG_PRIME_224K1,
-        /* ECCurve_SECG_PRIME_224R1 == ECCurve_NIST_P224 */
-        ECCurve_SECG_PRIME_256K1,
-        /* ECCurve_SECG_PRIME_256R1 == ECCurve_NIST_P256 */
-        /* ECCurve_SECG_PRIME_384R1 == ECCurve_NIST_P384 */
-        /* ECCurve_SECG_PRIME_521R1 == ECCurve_NIST_P521 */
-
-        /* SEC2 binary curves */
-        ECCurve_SECG_CHAR2_113R1,
-        ECCurve_SECG_CHAR2_113R2,
-        ECCurve_SECG_CHAR2_131R1,
-        ECCurve_SECG_CHAR2_131R2,
-        /* ECCurve_SECG_CHAR2_163K1 == ECCurve_NIST_K163 */
-        ECCurve_SECG_CHAR2_163R1,
-        /* ECCurve_SECG_CHAR2_163R2 == ECCurve_NIST_B163 */
-        ECCurve_SECG_CHAR2_193R1,
-        ECCurve_SECG_CHAR2_193R2,
-        /* ECCurve_SECG_CHAR2_233K1 == ECCurve_NIST_K233 */
-        /* ECCurve_SECG_CHAR2_233R1 == ECCurve_NIST_B233 */
-        ECCurve_SECG_CHAR2_239K1,
-        /* ECCurve_SECG_CHAR2_283K1 == ECCurve_NIST_K283 */
-        /* ECCurve_SECG_CHAR2_283R1 == ECCurve_NIST_B283 */
-        /* ECCurve_SECG_CHAR2_409K1 == ECCurve_NIST_K409 */
-        /* ECCurve_SECG_CHAR2_409R1 == ECCurve_NIST_B409 */
-        /* ECCurve_SECG_CHAR2_571K1 == ECCurve_NIST_K571 */
-        /* ECCurve_SECG_CHAR2_571R1 == ECCurve_NIST_B571 */
-
-        /* WTLS curves */
-        ECCurve_WTLS_1,
-        /* there is no WTLS 2 curve */
-        /* ECCurve_WTLS_3 == ECCurve_NIST_K163 */
-        /* ECCurve_WTLS_4 == ECCurve_SECG_CHAR2_113R1 */
-        /* ECCurve_WTLS_5 == ECCurve_X9_62_CHAR2_PNB163V1 */
-        /* ECCurve_WTLS_6 == ECCurve_SECG_PRIME_112R1 */
-        /* ECCurve_WTLS_7 == ECCurve_SECG_PRIME_160R1 */
-        ECCurve_WTLS_8,
-        ECCurve_WTLS_9,
-        /* ECCurve_WTLS_10 == ECCurve_NIST_K233 */
-        /* ECCurve_WTLS_11 == ECCurve_NIST_B233 */
-        /* ECCurve_WTLS_12 == ECCurve_NIST_P224 */
-
-        /* ECC Brainpool prime curves in RFC 5639*/
-        ECCurve_BrainpoolP256r1,
-        ECCurve_BrainpoolP320r1,
-        ECCurve_BrainpoolP384r1,
-        ECCurve_BrainpoolP512r1,
-
-        ECCurve_pastLastCurve
-} ECCurveName;
-
-/* Aliased named curves */
-
-#define ECCurve_X9_62_PRIME_192V1 ECCurve_NIST_P192
-#define ECCurve_X9_62_PRIME_256V1 ECCurve_NIST_P256
-#define ECCurve_SECG_PRIME_192R1 ECCurve_NIST_P192
-#define ECCurve_SECG_PRIME_224R1 ECCurve_NIST_P224
-#define ECCurve_SECG_PRIME_256R1 ECCurve_NIST_P256
-#define ECCurve_SECG_PRIME_384R1 ECCurve_NIST_P384
-#define ECCurve_SECG_PRIME_521R1 ECCurve_NIST_P521
-#define ECCurve_SECG_CHAR2_163K1 ECCurve_NIST_K163
-#define ECCurve_SECG_CHAR2_163R2 ECCurve_NIST_B163
-#define ECCurve_SECG_CHAR2_233K1 ECCurve_NIST_K233
-#define ECCurve_SECG_CHAR2_233R1 ECCurve_NIST_B233
-#define ECCurve_SECG_CHAR2_283K1 ECCurve_NIST_K283
-#define ECCurve_SECG_CHAR2_283R1 ECCurve_NIST_B283
-#define ECCurve_SECG_CHAR2_409K1 ECCurve_NIST_K409
-#define ECCurve_SECG_CHAR2_409R1 ECCurve_NIST_B409
-#define ECCurve_SECG_CHAR2_571K1 ECCurve_NIST_K571
-#define ECCurve_SECG_CHAR2_571R1 ECCurve_NIST_B571
-#define ECCurve_WTLS_3 ECCurve_NIST_K163
-#define ECCurve_WTLS_4 ECCurve_SECG_CHAR2_113R1
-#define ECCurve_WTLS_5 ECCurve_X9_62_CHAR2_PNB163V1
-#define ECCurve_WTLS_6 ECCurve_SECG_PRIME_112R1
-#define ECCurve_WTLS_7 ECCurve_SECG_PRIME_160R1
-#define ECCurve_WTLS_10 ECCurve_NIST_K233
-#define ECCurve_WTLS_11 ECCurve_NIST_B233
-#define ECCurve_WTLS_12 ECCurve_NIST_P224
-
-#endif /* _ECL_EXP_H */
diff --git a/sdk/enclave/src/main/resources/native/sunec/jlong.h b/sdk/enclave/src/main/resources/native/sunec/jlong.h
deleted file mode 100755
index 40fd9f1..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/jlong.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#ifndef _JLONG_H_
-#define _JLONG_H_
-
-#include "jlong_md.h"
-
-#endif
diff --git a/sdk/enclave/src/main/resources/native/sunec/jlong_md.h b/sdk/enclave/src/main/resources/native/sunec/jlong_md.h
deleted file mode 100755
index 40fb0af..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/jlong_md.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#ifndef _SOLARIS_JLONG_MD_H_
-#define _SOLARIS_JLONG_MD_H_
-
-/* Make sure ptrdiff_t is defined */
-#include <stddef.h>
-#include <stdint.h>  /* For uintptr_t */
-
-#define jlong_high(a)   ((jint)((a)>>32))
-#define jlong_low(a)    ((jint)(a))
-#define jlong_add(a, b) ((a) + (b))
-#define jlong_and(a, b) ((a) & (b))
-#define jlong_div(a, b) ((a) / (b))
-#define jlong_mul(a, b) ((a) * (b))
-#define jlong_neg(a)    (-(a))
-#define jlong_not(a)    (~(a))
-#define jlong_or(a, b)  ((a) | (b))
-#define jlong_shl(a, n) ((a) << (n))
-#define jlong_shr(a, n) ((a) >> (n))
-#define jlong_sub(a, b) ((a) - (b))
-#define jlong_xor(a, b) ((a) ^ (b))
-#define jlong_rem(a,b)  ((a) % (b))
-
-/* comparison operators */
-#define jlong_ltz(ll)   ((ll)<0)
-#define jlong_gez(ll)   ((ll)>=0)
-#define jlong_gtz(ll)   ((ll)>0)
-#define jlong_eqz(a)    ((a) == 0)
-#define jlong_eq(a, b)  ((a) == (b))
-#define jlong_ne(a,b)   ((a) != (b))
-#define jlong_ge(a,b)   ((a) >= (b))
-#define jlong_le(a,b)   ((a) <= (b))
-#define jlong_lt(a,b)   ((a) < (b))
-#define jlong_gt(a,b)   ((a) > (b))
-
-#define jlong_zero      ((jlong) 0)
-#define jlong_one       ((jlong) 1)
-#define jlong_minus_one ((jlong) -1)
-
-/* For static variables initialized to zero */
-#define jlong_zero_init  ((jlong) 0L)
-
-#ifdef _LP64
-  #ifndef jlong_to_ptr
-    #define jlong_to_ptr(a) ((void*)(a))
-  #endif
-  #ifndef ptr_to_jlong
-    #define ptr_to_jlong(a) ((jlong)(a))
-  #endif
-#else
-  #ifndef jlong_to_ptr
-    #define jlong_to_ptr(a) ((void*)(int)(a))
-  #endif
-  #ifndef ptr_to_jlong
-    #define ptr_to_jlong(a) ((jlong)(int)(a))
-  #endif
-#endif
-
-#define jint_to_jlong(a)        ((jlong)(a))
-#define jlong_to_jint(a)        ((jint)(a))
-
-/* Useful on machines where jlong and jdouble have different endianness. */
-#define jlong_to_jdouble_bits(a)
-#define jdouble_to_jlong_bits(a)
-
-#define jlong_to_int(a)     ((int)(a))
-#define int_to_jlong(a)     ((jlong)(a))
-#define jlong_to_uint(a)    ((unsigned int)(a))
-#define uint_to_jlong(a)    ((jlong)(a))
-#define jlong_to_ptrdiff(a) ((ptrdiff_t)(a))
-#define ptrdiff_to_jlong(a) ((jlong)(a))
-#define jlong_to_size(a)    ((size_t)(a))
-#define size_to_jlong(a)    ((jlong)(a))
-#define long_to_jlong(a)    ((jlong)(a))
-
-#endif /* !_SOLARIS_JLONG_MD_H_ */
diff --git a/sdk/enclave/src/main/resources/native/sunec/jni_util.h b/sdk/enclave/src/main/resources/native/sunec/jni_util.h
deleted file mode 100755
index baeb10d..0000000
--- a/sdk/enclave/src/main/resources/native/sunec/jni_util.h
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#ifndef JNI_UTIL_H
-#define JNI_UTIL_H
-
-#include "jni.h"
-#include "jlong.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This file contains utility functions that can be implemented in pure JNI.
- *
- * Caution: Callers of functions declared in this file should be
- * particularly aware of the fact that these functions are convenience
- * functions, and as such are often compound operations, each one of
- * which may throw an exception. Therefore, the functions this file
- * will often return silently if an exception has occurred, and callers
- * must check for exception themselves.
- */
-
-/* Throw a Java exception by name. Similar to SignalError. */
-JNIEXPORT void JNICALL
-JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg);
-
-/* Throw common exceptions */
-JNIEXPORT void JNICALL
-JNU_ThrowNullPointerException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowArrayIndexOutOfBoundsException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowOutOfMemoryError(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowIllegalArgumentException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowIllegalAccessError(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowIllegalAccessException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowInternalError(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowIOException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowNoSuchFieldException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowNoSuchMethodException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowClassNotFoundException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowNumberFormatException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowNoSuchFieldError(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowNoSuchMethodError(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowStringIndexOutOfBoundsException(JNIEnv *env, const char *msg);
-
-JNIEXPORT void JNICALL
-JNU_ThrowInstantiationException(JNIEnv *env, const char *msg);
-
-/* Throw an exception by name, using the string returned by
- * getLastErrorString for the detail string. If the last-error
- * string is NULL, use the given default detail string.
- */
-JNIEXPORT void JNICALL
-JNU_ThrowByNameWithLastError(JNIEnv *env, const char *name,
-                             const char *defaultDetail);
-
-/* Throw an exception by name, using a given message and the string
- * returned by getLastErrorString to construct the detail string.
- */
-JNIEXPORT void JNICALL
-JNU_ThrowByNameWithMessageAndLastError
-  (JNIEnv *env, const char *name, const char *message);
-
-/* Throw an IOException, using the last-error string for the detail
- * string. If the last-error string is NULL, use the given default
- * detail string.
- */
-JNIEXPORT void JNICALL
-JNU_ThrowIOExceptionWithLastError(JNIEnv *env, const char *defaultDetail);
-
-/* Convert between Java strings and i18n C strings */
-JNIEXPORT jstring
-NewStringPlatform(JNIEnv *env, const char *str);
-
-JNIEXPORT const char *
-GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy);
-
-JNIEXPORT jstring JNICALL
-JNU_NewStringPlatform(JNIEnv *env, const char *str);
-
-JNIEXPORT const char * JNICALL
-JNU_GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy);
-
-JNIEXPORT void JNICALL
-JNU_ReleaseStringPlatformChars(JNIEnv *env, jstring jstr, const char *str);
-
-/* Class constants */
-JNIEXPORT jclass JNICALL
-JNU_ClassString(JNIEnv *env);
-
-JNIEXPORT jclass JNICALL
-JNU_ClassClass(JNIEnv *env);
-
-JNIEXPORT jclass JNICALL
-JNU_ClassObject(JNIEnv *env);
-
-JNIEXPORT jclass JNICALL
-JNU_ClassThrowable(JNIEnv *env);
-
-/* Copy count number of arguments from src to dst. Array bounds
- * and ArrayStoreException are checked.
- */
-JNIEXPORT jint JNICALL
-JNU_CopyObjectArray(JNIEnv *env, jobjectArray dst, jobjectArray src,
-                    jint count);
-
-/* Invoke a object-returning static method, based on class name,
- * method name, and signature string.
- *
- * The caller should check for exceptions by setting hasException
- * argument. If the caller is not interested in whether an exception
- * has occurred, pass in NULL.
- */
-JNIEXPORT jvalue JNICALL
-JNU_CallStaticMethodByName(JNIEnv *env,
-                           jboolean *hasException,
-                           const char *class_name,
-                           const char *name,
-                           const char *signature,
-                           ...);
-
-/* Invoke an instance method by name.
- */
-JNIEXPORT jvalue JNICALL
-JNU_CallMethodByName(JNIEnv *env,
-                     jboolean *hasException,
-                     jobject obj,
-                     const char *name,
-                     const char *signature,
-                     ...);
-
-JNIEXPORT jvalue JNICALL
-JNU_CallMethodByNameV(JNIEnv *env,
-                      jboolean *hasException,
-                      jobject obj,
-                      const char *name,
-                      const char *signature,
-                      va_list args);
-
-/* Construct a new object of class, specifying the class by name,
- * and specififying which constructor to run and what arguments to
- * pass to it.
- *
- * The method will return an initialized instance if successful.
- * It will return NULL if an error has occurred (for example if
- * it ran out of memory) and the appropriate Java exception will
- * have been thrown.
- */
-JNIEXPORT jobject JNICALL
-JNU_NewObjectByName(JNIEnv *env, const char *class_name,
-                    const char *constructor_sig, ...);
-
-/* returns:
- * 0: object is not an instance of the class named by classname.
- * 1: object is an instance of the class named by classname.
- * -1: the class named by classname cannot be found. An exception
- * has been thrown.
- */
-JNIEXPORT jint JNICALL
-JNU_IsInstanceOfByName(JNIEnv *env, jobject object, char *classname);
-
-
-/* Get or set class and instance fields.
- * Note that set functions take a variable number of arguments,
- * but only one argument of the appropriate type can be passed.
- * For example, to set an integer field i to 100:
- *
- * JNU_SetFieldByName(env, &exc, obj, "i", "I", 100);
- *
- * To set a float field f to 12.3:
- *
- * JNU_SetFieldByName(env, &exc, obj, "f", "F", 12.3);
- *
- * The caller should check for exceptions by setting hasException
- * argument. If the caller is not interested in whether an exception
- * has occurred, pass in NULL.
- */
-JNIEXPORT jvalue JNICALL
-JNU_GetFieldByName(JNIEnv *env,
-                   jboolean *hasException,
-                   jobject obj,
-                   const char *name,
-                   const char *sig);
-JNIEXPORT void JNICALL
-JNU_SetFieldByName(JNIEnv *env,
-                   jboolean *hasException,
-                   jobject obj,
-                   const char *name,
-                   const char *sig,
-                   ...);
-
-JNIEXPORT jvalue JNICALL
-JNU_GetStaticFieldByName(JNIEnv *env,
-                         jboolean *hasException,
-                         const char *classname,
-                         const char *name,
-                         const char *sig);
-JNIEXPORT void JNICALL
-JNU_SetStaticFieldByName(JNIEnv *env,
-                         jboolean *hasException,
-                         const char *classname,
-                         const char *name,
-                         const char *sig,
-                         ...);
-
-
-/*
- * Calls the .equals method.
- */
-JNIEXPORT jboolean JNICALL
-JNU_Equals(JNIEnv *env, jobject object1, jobject object2);
-
-
-/************************************************************************
- * Thread calls
- *
- * Convenience thread-related calls on the java.lang.Object class.
- */
-
-JNIEXPORT void JNICALL
-JNU_MonitorWait(JNIEnv *env, jobject object, jlong timeout);
-
-JNIEXPORT void JNICALL
-JNU_Notify(JNIEnv *env, jobject object);
-
-JNIEXPORT void JNICALL
-JNU_NotifyAll(JNIEnv *env, jobject object);
-
-
-/************************************************************************
- * Miscellaneous utilities used by the class libraries
- */
-
-#define IS_NULL(obj) ((obj) == NULL)
-#define JNU_IsNull(env,obj) ((obj) == NULL)
-
-/************************************************************************
- * Miscellaneous utilities used by the class libraries to return from
- * a function if a value is NULL or an exception is pending.
- */
-
-#define CHECK_NULL(x)                           \
-    do {                                        \
-        if ((x) == NULL) {                      \
-            return;                             \
-        }                                       \
-    } while (0)                                 \
-
-#define CHECK_NULL_THROW_NPE(env, x, msg)         \
-    do {                                        \
-        if ((x) == NULL) {                      \
-           JNU_ThrowNullPointerException((env), (msg));\
-           return;                              \
-        }                                       \
-    } while(0)                                  \
-
-#define CHECK_NULL_THROW_NPE_RETURN(env, x, msg, z)\
-    do {                                        \
-        if ((x) == NULL) {                      \
-           JNU_ThrowNullPointerException((env), (msg));\
-           return (z);                          \
-        }                                       \
-    } while(0)                                  \
-
-#define CHECK_NULL_RETURN(x, y)                 \
-    do {                                        \
-        if ((x) == NULL) {                      \
-            return (y);                         \
-        }                                       \
-    } while (0)                                 \
-
-#ifdef __cplusplus
-#define JNU_CHECK_EXCEPTION(env)                \
-    do {                                        \
-        if ((env)->ExceptionCheck()) {          \
-            return;                             \
-        }                                       \
-    } while (0)                                 \
-
-#define JNU_CHECK_EXCEPTION_RETURN(env, y)      \
-    do {                                        \
-        if ((env)->ExceptionCheck()) {          \
-            return (y);                         \
-        }                                       \
-    } while (0)
-#else
-#define JNU_CHECK_EXCEPTION(env)                \
-    do {                                        \
-        if ((*env)->ExceptionCheck(env)) {      \
-            return;                             \
-        }                                       \
-    } while (0)                                 \
-
-#define JNU_CHECK_EXCEPTION_RETURN(env, y)      \
-    do {                                        \
-        if ((*env)->ExceptionCheck(env)) {      \
-            return (y);                         \
-        }                                       \
-    } while (0)
-#endif /* __cplusplus */
-/************************************************************************
- * Debugging utilities
- */
-
-JNIEXPORT void JNICALL
-JNU_PrintString(JNIEnv *env, char *hdr, jstring string);
-
-JNIEXPORT void JNICALL
-JNU_PrintClass(JNIEnv *env, char *hdr, jobject object);
-
-JNIEXPORT jstring JNICALL
-JNU_ToString(JNIEnv *env, jobject object);
-
-/*
- * Package shorthand for use by native libraries
- */
-#define JNU_JAVAPKG         "java/lang/"
-#define JNU_JAVAIOPKG       "java/io/"
-#define JNU_JAVANETPKG      "java/net/"
-
-/*
- * Check if the current thread is attached to the VM, and returns
- * the JNIEnv of the specified version if the thread is attached.
- *
- * If the current thread is not attached, this function returns 0.
- *
- * If the current thread is attached, this function returns the
- * JNI environment, or returns (void *)JNI_ERR if the specified
- * version is not supported.
- */
-JNIEXPORT void * JNICALL
-JNU_GetEnv(JavaVM *vm, jint version);
-
-/*
- * Warning free access to pointers stored in Java long fields.
- */
-#define JNU_GetLongFieldAsPtr(env,obj,id) \
-    (jlong_to_ptr((*(env))->GetLongField((env),(obj),(id))))
-#define JNU_SetLongFieldFromPtr(env,obj,id,val) \
-    (*(env))->SetLongField((env),(obj),(id),ptr_to_jlong(val))
-
-/*
- * Internal use only.
- */
-enum {
-    NO_ENCODING_YET = 0,        /* "sun.jnu.encoding" not yet set */
-    NO_FAST_ENCODING,           /* Platform encoding is not fast */
-    FAST_8859_1,                /* ISO-8859-1 */
-    FAST_CP1252,                /* MS-DOS Cp1252 */
-    FAST_646_US,                /* US-ASCII : ISO646-US */
-    FAST_UTF_8
-};
-
-int getFastEncoding();
-
-JNIEXPORT void InitializeEncoding(JNIEnv *env, const char *name);
-
-void* getProcessHandle();
-
-void buildJniFunctionName(const char *sym, const char *cname,
-                          char *jniEntryName);
-
-JNIEXPORT size_t JNICALL
-getLastErrorString(char *buf, size_t len);
-
-JNIEXPORT int JNICALL
-getErrorString(int err, char *buf, size_t len);
-
-#ifdef STATIC_BUILD
-/* Macros for handling declaration of static/dynamic
- * JNI library Load/Unload functions
- *
- * Use DEF_JNI_On{Un}Load when you want a static and non-static entry points.
- * Use DEF_STATIC_JNI_On{Un}Load when you only want a static one.
- *
- * LIBRARY_NAME must be set to the name of the library
- */
-
-/* These three macros are needed to get proper concatenation of
- * the LIBRARY_NAME
- *
- * NOTE: LIBRARY_NAME must be set for static builds.
- */
-#define ADD_LIB_NAME3(name, lib) name ## lib
-#define ADD_LIB_NAME2(name, lib) ADD_LIB_NAME3(name, lib)
-#define ADD_LIB_NAME(entry) ADD_LIB_NAME2(entry, LIBRARY_NAME)
-
-#define DEF_JNI_OnLoad \
-ADD_LIB_NAME(JNI_OnLoad_)(JavaVM *vm, void *reserved) \
-{ \
-  jint JNICALL ADD_LIB_NAME(JNI_OnLoad_dynamic_)(JavaVM *vm, void *reserved); \
-  ADD_LIB_NAME(JNI_OnLoad_dynamic_)(vm, reserved); \
-  return JNI_VERSION_1_8; \
-} \
-jint JNICALL ADD_LIB_NAME(JNI_OnLoad_dynamic_)
-
-#define DEF_STATIC_JNI_OnLoad \
-JNIEXPORT jint JNICALL ADD_LIB_NAME(JNI_OnLoad_)(JavaVM *vm, void *reserved) { \
-    return JNI_VERSION_1_8; \
-}
-
-#define DEF_JNI_OnUnload \
-ADD_LIB_NAME(JNI_OnUnload_)(JavaVM *vm, void *reserved) \
-{ \
-  void JNICALL ADD_LIB_NAME(JNI_OnUnload_dynamic_)(JavaVM *vm, void *reserved); \
-  ADD_LIB_NAME(JNI_OnUnload_dynamic_)(vm, reserved); \
-} \
-void JNICALL ADD_LIB_NAME(JNI_OnUnload_dynamic_)
-
-#define DEF_STATIC_JNI_OnUnload \
-ADD_LIB_NAME(JNI_OnUnload_)
-
-#else
-
-#define DEF_JNI_OnLoad JNI_OnLoad
-#define DEF_STATIC_JNI_OnLoad
-#define DEF_JNI_OnUnload JNI_OnUnload
-#define DEF_STATIC_JNI_OnUnload
-#endif
-
-#ifdef STATIC_BUILD
-/* Macros for handling declaration of static/dynamic
- * Agent library Load/Attach/Unload functions
- *
- * Use DEF_Agent_OnLoad, DEF_Agent_OnAttach or DEF_Agent_OnUnload
- *     when you want both static and non-static entry points.
- * Use DEF_STATIC_Agent_OnLoad, DEF_STATIC_Agent_OnAttach or
- *     DEF_STATIC_Agent_OnUnload when you only want a static one.
- *
- * LIBRARY_NAME must be set to the name of the library for static builds.
- */
-
-#define DEF_Agent_OnLoad \
-ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) \
-{ \
-  jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_)(JavaVM *vm, char *options, void *reserved); \
-  return ADD_LIB_NAME(Agent_OnLoad_dynamic_)(vm, options, reserved); \
-} \
-jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_)
-
-#define DEF_STATIC_Agent_OnLoad \
-JNIEXPORT jint JNICALL ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) { \
-    return JNI_FALSE; \
-}
-
-#define DEF_Agent_OnAttach \
-ADD_LIB_NAME(Agent_OnAttach_)(JavaVM *vm, char *options, void *reserved) \
-{ \
-  jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_)(JavaVM *vm, char *options, void *reserved); \
-  return ADD_LIB_NAME(Agent_OnAttach_dynamic_)(vm, options, reserved); \
-} \
-jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_)
-
-#define DEF_STATIC_Agent_OnAttach \
-JNIEXPORT jint JNICALL ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) { \
-    return JNI_FALSE; \
-}
-
-#define DEF_Agent_OnUnload \
-ADD_LIB_NAME(Agent_OnUnload_)(JavaVM *vm) \
-{ \
-  void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_)(JavaVM *vm); \
-  ADD_LIB_NAME(Agent_OnUnload_dynamic_)(vm); \
-} \
-void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_)
-
-#define DEF_STATIC_Agent_OnUnload \
-ADD_LIB_NAME(Agent_OnUnload_)
-
-#else
-#define DEF_Agent_OnLoad Agent_OnLoad
-#define DEF_Agent_OnAttach Agent_OnAttach
-#define DEF_Agent_OnUnload Agent_OnUnload
-#define DEF_STATIC_Agent_OnLoad
-#define DEF_STATIC_Agent_OnAttach
-#define DEF_STATIC_Agent_OnUnload
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* JNI_UTIL_H */
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTestable.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTestable.java
deleted file mode 100644
index 7afe107..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTestable.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import java.util.List;
-
-public interface NativeImageTestable {
-    default void runWithNativeImageAgent(){}
-    default void beforeSVMCompile(){}
-    default void afterSVMCompile(){}
-    default List<String> extraSVMOptions() {
-        return null;
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ReplaceSunECTest.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ReplaceSunECTest.java
deleted file mode 100644
index fb63c28..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ReplaceSunECTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import com.alibaba.confidentialcomputing.enclave.testservice.EncryptionService;
-import com.alibaba.confidentialcomputing.enclave.testservice.SunECOperations;
-import com.oracle.svm.core.annotate.AutomaticFeature;
-import com.oracle.svm.hosted.FeatureImpl;
-import org.graalvm.nativeimage.hosted.Feature;
-import org.graalvm.nativeimage.hosted.RuntimeSerialization;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.security.KeyPair;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class ReplaceSunECTest {
-
-    private static final String ENCRYPT_SERVICE = "com.alibaba.confidentialcomputing.enclave.testservice.EncryptionService";
-    private static final String SUNEC_OP = "com.alibaba.confidentialcomputing.enclave.testservice.SunECOperations";
-    @TestTarget(ReplaceSunECTest.class)
-    static class ReplaceSunECPreparation extends NativeImageTest{
-
-        @Override
-        SVMCompileElements specifyTestClasses() {
-            SVMCompileElements ret = new SVMCompileElements();
-            // Specify the service file
-            ret.addServices("META-INF/services/"+ENCRYPT_SERVICE);
-            ret.addClasses(EncryptionService.class, SunECOperations.class, UTFeature.class);
-            return ret;
-        }
-
-/*        @Override
-        public List<String> extraSVMOptions() {
-            return List.of("--debug-attach:5005");
-        }*/
-    }
-
-    @BeforeAll
-    public static void prepareLibraries(){
-        new ReplaceSunECPreparation().prepareNativeLibraries();
-    }
-
-    @BeforeEach
-    public void setup() {
-        EnclaveTestHelper.createIsolate();
-    }
-
-    @AfterEach
-    public void teardown() {
-        EnclaveTestHelper.destroyIsolate();
-    }
-
-    @Test
-    public void test(){
-        String id = EnclaveTestHelper.loadAndGetService(ENCRYPT_SERVICE, SUNEC_OP, 1);
-        KeyPair remoteRet = (KeyPair)EnclaveTestHelper.call(id, ENCRYPT_SERVICE, SUNEC_OP, "generateKeyPair", EnclaveTestHelper.EMPTY_STRING_ARRAY, EnclaveTestHelper.EMPTY_OBJECT_ARRAY);
-        assertNotNull(remoteRet);
-    }
-
-    @AutomaticFeature
-    static class UTFeature implements Feature {
-
-        @Override
-        public void beforeAnalysis(BeforeAnalysisAccess access) {
-            FeatureImpl.BeforeAnalysisAccessImpl a = (FeatureImpl.BeforeAnalysisAccessImpl)access;
-            Class<?> PKCS8KeyClass = a.getImageClassLoader().findClass("sun.security.pkcs.PKCS8Key").get();
-            Class<?> X509KeyClass = a.getImageClassLoader().findClass("sun.security.x509.X509Key").get();
-            RuntimeSerialization.register(PKCS8KeyClass, X509KeyClass);
-            RuntimeSerialization.registerIncludingAssociatedClasses(java.security.KeyRep.class);
-            RuntimeSerialization.registerIncludingAssociatedClasses(sun.security.ec.ECPrivateKeyImpl.class);
-            RuntimeSerialization.registerIncludingAssociatedClasses(sun.security.ec.ECPublicKeyImpl.class);
-        }
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/TestTarget.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/TestTarget.java
deleted file mode 100644
index f604331..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/TestTarget.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TestTarget {
-    Class<?> value();
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EnclaveMem.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EnclaveMem.java
deleted file mode 100644
index 778e9f6..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EnclaveMem.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import com.oracle.svm.core.heap.PhysicalMemory;
-
-public class EnclaveMem implements MemService{
-    @Override
-    public long getSize() {
-        return PhysicalMemory.size().rawValue();
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EncryptionService.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EncryptionService.java
deleted file mode 100644
index 9c5b770..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/EncryptionService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-import java.security.KeyPair;
-
-@EnclaveService
-public interface EncryptionService {
-    KeyPair generateKeyPair();
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/IntegerMath.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/IntegerMath.java
deleted file mode 100644
index 4beed50..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/IntegerMath.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-public class IntegerMath extends NumericMath {
-    @Override
-    public Number add(Number x, Number y) {
-        return super.add(x, y);
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MathService.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MathService.java
deleted file mode 100644
index 9dbef51..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MathService.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-@EnclaveService
-public interface MathService<T> {
-    T add(T x, T y);
-
-    T minus(T x, T y);
-
-    T div(T x, T y);
-
-    default int getConstant() {
-        return 100;
-    }
-
-    default byte[] getRandomNumber(int size) {
-        SecureRandom secureRandom = null;
-        try {
-            secureRandom = SecureRandom.getInstance("NativePRNG");
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        }
-        return secureRandom.generateSeed(size);
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MemService.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MemService.java
deleted file mode 100644
index 784f3fb..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/MemService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import com.alibaba.confidentialcomputing.common.annotations.EnclaveService;
-
-@EnclaveService
-public interface MemService {
-    long getSize();
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/NumericMath.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/NumericMath.java
deleted file mode 100644
index 052853e..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/NumericMath.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-public class NumericMath implements MathService<Number> {
-
-    private int counter = 0;
-
-    @Override
-    public Number add(Number x, Number y) {
-        synchronized (this) {
-            counter++;
-        }
-        return x.intValue() + y.intValue();
-    }
-
-    @Override
-    public Number minus(Number x, Number y) {
-        synchronized (this) {
-            counter++;
-        }
-        return x.intValue() - y.intValue();
-    }
-
-    @Override
-    public Number div(Number x, Number y) {
-        synchronized (this) {
-            counter++;
-        }
-        return x.intValue() / y.intValue();
-    }
-
-    public int getCounter() {
-        synchronized (this) {
-            return counter;
-        }
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/Point.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/Point.java
deleted file mode 100644
index 31623be..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/Point.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import java.io.Serializable;
-
-public class Point implements Serializable {
-
-    private static final long serialVersionUID = -3715916707782706029L;
-
-    public int x;
-    public int y;
-
-    public Point(int x, int y){
-        this.x = x;
-        this.y = y;
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/PointMath.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/PointMath.java
deleted file mode 100644
index 7d4a6c4..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/PointMath.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-public class PointMath implements MathService<Point>{
-    @Override
-    public Point add(Point x, Point y) {
-        return new Point(x.x + y.x, x.y + y.y);
-    }
-
-    @Override
-    public Point minus(Point x, Point y) {
-        return new Point(x.x - y.x, x.y - y.y);
-    }
-
-    @Override
-    public Point div(Point x, Point y) {
-        return new Point(x.x / y.x, x.y / y.y);
-    }
-
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/SunECOperations.java b/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/SunECOperations.java
deleted file mode 100644
index dfbdab9..0000000
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/testservice/SunECOperations.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.alibaba.confidentialcomputing.enclave.testservice;
-
-import java.security.KeyPair;
-import sun.security.ec.ECKeyPairGenerator;
-
-public class SunECOperations implements EncryptionService{
-    @Override
-    public KeyPair generateKeyPair() {
-        ECKeyPairGenerator pairGenerator = new ECKeyPairGenerator();
-        return pairGenerator.generateKeyPair();
-    }
-}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ConfigMemTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/ConfigMemTest.java
similarity index 57%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ConfigMemTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/ConfigMemTest.java
index 923fad2..e1e4367 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/ConfigMemTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/ConfigMemTest.java
@@ -1,7 +1,24 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.enclave.testservice.EnclaveMem;
-import com.alibaba.confidentialcomputing.enclave.testservice.MemService;
+package org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.enclave.testservice.EnclaveMem;
+import org.apache.teaclave.javasdk.enclave.testservice.MemService;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -21,7 +38,7 @@ public class ConfigMemTest {
         public SVMCompileElements specifyTestClasses() {
             SVMCompileElements ret = new SVMCompileElements();
             // Specify the service file
-            ret.addServices("META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MemService");
+            ret.addServices("META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MemService");
 
             // Specify the classes need to be statically compiled into native image for this test
             ret.addClasses(
@@ -42,13 +59,13 @@ public class ConfigMemTest {
             return List.of(*//*"--debug-attach:7788",
                     "-H:Dump=:3",
                     "-H:MethodFilter=com.oracle.svm.core.posix.PosixVirtualMemoryProvider.getPageSize",
-                    "-H:MethodFilter=com.alibaba.confidentialcomputing.enclave.system.EnclaveVirtualMemoryProvider.getVPageSize"*//*
+                    "-H:MethodFilter=org.apache.teaclave.javasdk.enclave.system.EnclaveVirtualMemoryProvider.getVPageSize"*//*
                     );
         }*/
     }
 
-    private static final String MEM_SERVICE = "com.alibaba.confidentialcomputing.enclave.testservice.MemService";
-    private static final String ENC_MEM = "com.alibaba.confidentialcomputing.enclave.testservice.EnclaveMem";
+    private static final String MEM_SERVICE = "org.apache.teaclave.javasdk.enclave.testservice.MemService";
+    private static final String ENC_MEM = "org.apache.teaclave.javasdk.enclave.testservice.EnclaveMem";
 
     @BeforeAll
     public static void prepareLibraries() {
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/EnclaveTestHelper.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/EnclaveTestHelper.java
similarity index 75%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/EnclaveTestHelper.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/EnclaveTestHelper.java
index 705769c..25dcb23 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/EnclaveTestHelper.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/EnclaveTestHelper.java
@@ -1,13 +1,30 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.enclave.testservice.IntegerMath;
-import com.alibaba.confidentialcomputing.enclave.testservice.MathService;
-import com.alibaba.confidentialcomputing.enclave.testservice.NumericMath;
-import com.alibaba.confidentialcomputing.enclave.testservice.PointMath;
+// 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 org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.enclave.testservice.IntegerMath;
+import org.apache.teaclave.javasdk.enclave.testservice.MathService;
+import org.apache.teaclave.javasdk.enclave.testservice.NumericMath;
+import org.apache.teaclave.javasdk.enclave.testservice.PointMath;
 
 import java.io.IOException;
 import java.nio.file.Files;
@@ -25,8 +42,8 @@ public class EnclaveTestHelper {
     public static final String INTEGER_MATH = IntegerMath.class.getName();
     public static final String POINT_MATH = PointMath.class.getName();
     public static final String[] MATH_ADD_PARAM_TYPES = {"java.lang.Number", "java.lang.Number"};
-    public static final String[] POINT_MATH_ADD_PARAM_TYPES = {"com.alibaba.confidentialcomputing.enclave.testservice.Point",
-            "com.alibaba.confidentialcomputing.enclave.testservice.Point"};
+    public static final String[] POINT_MATH_ADD_PARAM_TYPES = {"org.apache.teaclave.javasdk.enclave.testservice.Point",
+            "org.apache.teaclave.javasdk.enclave.testservice.Point"};
     public static final String[] EMPTY_STRING_ARRAY = new String[0];
     public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
     public static final String VM_NAME = System.getProperty("java.vm.name");
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTest.java
similarity index 91%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTest.java
index 67c3492..8209f42 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/NativeImageTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTest.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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 org.apache.teaclave.javasdk.enclave;
 
 import java.io.File;
 import java.io.IOException;
@@ -12,8 +29,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
-import static com.alibaba.confidentialcomputing.enclave.NativeCommandUtil.GRAALVM_HOME;
-import static com.alibaba.confidentialcomputing.enclave.SUNECReplaceFeature.LIBENC_SUNEC_A;
+import static org.apache.teaclave.javasdk.enclave.NativeCommandUtil.GRAALVM_HOME;
 
 public abstract class NativeImageTest implements NativeImageTestable {
     private static final String JNI_LIB_NAME = "encinvokeentrytest";
@@ -181,7 +197,7 @@ public abstract class NativeImageTest implements NativeImageTestable {
     private void compileJNILibrary() {
         System.out.println("###Prepare JNI library ...###");
         List<Path> requiredFilePaths = new ArrayList<>();
-        requiredFilePaths.add(testClassesDir.resolve("native/com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper.h"));
+        requiredFilePaths.add(testClassesDir.resolve("native/org_apache_teaclave_javasdk_enclave_EnclaveTestHelper.h"));
         requiredFilePaths.add(testClassesDir.resolve("native/" + ENC_INVOKE_ENTRY_TEST_C));
         requiredFilePaths.add(svmOutputDir.resolve("lib" + SVM_ENCLAVE_LIB + ".h"));
         requiredFilePaths.add(svmOutputDir.resolve("graal_isolate.h"));
@@ -225,9 +241,6 @@ public abstract class NativeImageTest implements NativeImageTestable {
         command.add(graalvmHome.resolve("lib/static/linux-amd64/musl/libzip.a").toString());
         command.add(graalvmHome.resolve("lib/static/linux-amd64/musl/libnet.a").toString());
         command.add(graalvmHome.resolve("lib/static/linux-amd64/musl/libjava.a").toString());
-        if (Files.exists(svmOutputDir.toAbsolutePath().resolve(LIBENC_SUNEC_A))) {
-            command.add(svmOutputDir.toAbsolutePath().resolve(LIBENC_SUNEC_A).toString());
-        }
         command.add(graalvmHome.resolve("lib/static/linux-amd64/musl/libfdlibm.a").toString());
         command.add("-std=c99");
         command.add("-lc");
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTestable.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTestable.java
new file mode 100644
index 0000000..691010a
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/NativeImageTestable.java
@@ -0,0 +1,29 @@
+// 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 org.apache.teaclave.javasdk.enclave;
+
+import java.util.List;
+
+public interface NativeImageTestable {
+    default void runWithNativeImageAgent(){}
+    default void beforeSVMCompile(){}
+    default void afterSVMCompile(){}
+    default List<String> extraSVMOptions() {
+        return null;
+    }
+}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/RunWithNativeImageTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/RunWithNativeImageTest.java
similarity index 73%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/RunWithNativeImageTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/RunWithNativeImageTest.java
index 5fd5262..95258af 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/RunWithNativeImageTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/RunWithNativeImageTest.java
@@ -1,10 +1,27 @@
-package com.alibaba.confidentialcomputing.enclave;
-
-import com.alibaba.confidentialcomputing.enclave.testservice.IntegerMath;
-import com.alibaba.confidentialcomputing.enclave.testservice.MathService;
-import com.alibaba.confidentialcomputing.enclave.testservice.NumericMath;
-import com.alibaba.confidentialcomputing.enclave.testservice.Point;
-import com.alibaba.confidentialcomputing.enclave.testservice.PointMath;
+// 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 org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.enclave.testservice.IntegerMath;
+import org.apache.teaclave.javasdk.enclave.testservice.MathService;
+import org.apache.teaclave.javasdk.enclave.testservice.NumericMath;
+import org.apache.teaclave.javasdk.enclave.testservice.Point;
+import org.apache.teaclave.javasdk.enclave.testservice.PointMath;
 import com.oracle.svm.core.annotate.AutomaticFeature;
 import org.graalvm.nativeimage.hosted.Feature;
 import org.graalvm.nativeimage.hosted.RuntimeSerialization;
@@ -15,14 +32,14 @@ import org.junit.jupiter.api.Test;
 
 import java.security.NoSuchAlgorithmException;
 
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.EMPTY_OBJECT_ARRAY;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.EMPTY_STRING_ARRAY;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.INTEGER_MATH;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_SERVICE;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.NUMERIC_MATH;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.POINT_MATH;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.POINT_MATH_ADD_PARAM_TYPES;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.EMPTY_OBJECT_ARRAY;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.EMPTY_STRING_ARRAY;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.INTEGER_MATH;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_SERVICE;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.NUMERIC_MATH;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.POINT_MATH;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.POINT_MATH_ADD_PARAM_TYPES;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -37,7 +54,7 @@ public class RunWithNativeImageTest {
         public SVMCompileElements specifyTestClasses() {
             SVMCompileElements ret = new SVMCompileElements();
             // Specify the service file
-            ret.addServices("META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MathService");
+            ret.addServices("META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MathService");
 
             // Specify the classes need to be statically compiled into native image for this test
             ret.addClasses(
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/SVMSimpleEnclaveCallTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/SVMSimpleEnclaveCallTest.java
similarity index 75%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/SVMSimpleEnclaveCallTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/SVMSimpleEnclaveCallTest.java
index af9732c..c2253c1 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/SVMSimpleEnclaveCallTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/SVMSimpleEnclaveCallTest.java
@@ -1,11 +1,28 @@
-package com.alibaba.confidentialcomputing.enclave;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.CallBacks;
-import com.alibaba.confidentialcomputing.enclave.c.EnclaveEnvironment.EncData;
+package org.apache.teaclave.javasdk.enclave;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.CallBacks;
+import org.apache.teaclave.javasdk.enclave.c.EnclaveEnvironment.EncData;
 import org.graalvm.nativeimage.Isolate;
 import org.graalvm.nativeimage.IsolateThread;
 import org.graalvm.nativeimage.Isolates;
@@ -18,10 +35,10 @@ import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_SERVICE;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.NUMERIC_MATH;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.isInNativeImage;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_SERVICE;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.NUMERIC_MATH;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.isInNativeImage;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/TestTarget.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/TestTarget.java
new file mode 100644
index 0000000..9febc6a
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/TestTarget.java
@@ -0,0 +1,29 @@
+// 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 org.apache.teaclave.javasdk.enclave;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface TestTarget {
+    Class<?> value();
+}
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvokerTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvokerTest.java
similarity index 79%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvokerTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvokerTest.java
index 22f3a70..6bf8f67 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceMethodInvokerTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceMethodInvokerTest.java
@@ -1,21 +1,38 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-import com.alibaba.confidentialcomputing.enclave.testservice.MathService;
+// 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 org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
+import org.apache.teaclave.javasdk.enclave.testservice.MathService;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.EMPTY_OBJECT_ARRAY;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.EMPTY_STRING_ARRAY;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_SERVICE;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.NUMERIC_MATH;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.isInNativeImage;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.EMPTY_OBJECT_ARRAY;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.EMPTY_STRING_ARRAY;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_ADD_PARAM_TYPES;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_SERVICE;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.NUMERIC_MATH;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.isInNativeImage;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
diff --git a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceOperationTest.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceOperationTest.java
similarity index 65%
rename from sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceOperationTest.java
rename to sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceOperationTest.java
index 1376e94..ece2fb3 100644
--- a/sdk/enclave/src/test/java/com/alibaba/confidentialcomputing/enclave/framework/ServiceOperationTest.java
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/framework/ServiceOperationTest.java
@@ -1,14 +1,31 @@
-package com.alibaba.confidentialcomputing.enclave.framework;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.enclave.testservice.NumericMath;
-import com.alibaba.confidentialcomputing.enclave.testservice.PointMath;
+package org.apache.teaclave.javasdk.enclave.framework;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.enclave.testservice.NumericMath;
+import org.apache.teaclave.javasdk.enclave.testservice.PointMath;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.MATH_SERVICE;
-import static com.alibaba.confidentialcomputing.enclave.EnclaveTestHelper.isInNativeImage;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.MATH_SERVICE;
+import static org.apache.teaclave.javasdk.enclave.EnclaveTestHelper.isInNativeImage;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EnclaveMem.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EnclaveMem.java
new file mode 100644
index 0000000..cfb4212
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EnclaveMem.java
@@ -0,0 +1,27 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import com.oracle.svm.core.heap.PhysicalMemory;
+
+public class EnclaveMem implements MemService{
+    @Override
+    public long getSize() {
+        return PhysicalMemory.size().rawValue();
+    }
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EncryptionService.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EncryptionService.java
new file mode 100644
index 0000000..3ca02ba
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/EncryptionService.java
@@ -0,0 +1,27 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+import java.security.KeyPair;
+
+@EnclaveService
+public interface EncryptionService {
+    KeyPair generateKeyPair();
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/IntegerMath.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/IntegerMath.java
new file mode 100644
index 0000000..7bafe02
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/IntegerMath.java
@@ -0,0 +1,25 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+public class IntegerMath extends NumericMath {
+    @Override
+    public Number add(Number x, Number y) {
+        return super.add(x, y);
+    }
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MathService.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MathService.java
new file mode 100644
index 0000000..7803c52
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MathService.java
@@ -0,0 +1,46 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+
+@EnclaveService
+public interface MathService<T> {
+    T add(T x, T y);
+
+    T minus(T x, T y);
+
+    T div(T x, T y);
+
+    default int getConstant() {
+        return 100;
+    }
+
+    default byte[] getRandomNumber(int size) {
+        SecureRandom secureRandom = null;
+        try {
+            secureRandom = SecureRandom.getInstance("NativePRNG");
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return secureRandom.generateSeed(size);
+    }
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MemService.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MemService.java
new file mode 100644
index 0000000..8221c4f
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/MemService.java
@@ -0,0 +1,25 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import org.apache.teaclave.javasdk.common.annotations.EnclaveService;
+
+@EnclaveService
+public interface MemService {
+    long getSize();
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/NumericMath.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/NumericMath.java
new file mode 100644
index 0000000..2509180
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/NumericMath.java
@@ -0,0 +1,53 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+public class NumericMath implements MathService<Number> {
+
+    private int counter = 0;
+
+    @Override
+    public Number add(Number x, Number y) {
+        synchronized (this) {
+            counter++;
+        }
+        return x.intValue() + y.intValue();
+    }
+
+    @Override
+    public Number minus(Number x, Number y) {
+        synchronized (this) {
+            counter++;
+        }
+        return x.intValue() - y.intValue();
+    }
+
+    @Override
+    public Number div(Number x, Number y) {
+        synchronized (this) {
+            counter++;
+        }
+        return x.intValue() / y.intValue();
+    }
+
+    public int getCounter() {
+        synchronized (this) {
+            return counter;
+        }
+    }
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/Point.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/Point.java
new file mode 100644
index 0000000..9437263
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/Point.java
@@ -0,0 +1,33 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import java.io.Serializable;
+
+public class Point implements Serializable {
+
+    private static final long serialVersionUID = -3715916707782706029L;
+
+    public int x;
+    public int y;
+
+    public Point(int x, int y){
+        this.x = x;
+        this.y = y;
+    }
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/PointMath.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/PointMath.java
new file mode 100644
index 0000000..b022c81
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/PointMath.java
@@ -0,0 +1,36 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+public class PointMath implements MathService<Point>{
+    @Override
+    public Point add(Point x, Point y) {
+        return new Point(x.x + y.x, x.y + y.y);
+    }
+
+    @Override
+    public Point minus(Point x, Point y) {
+        return new Point(x.x - y.x, x.y - y.y);
+    }
+
+    @Override
+    public Point div(Point x, Point y) {
+        return new Point(x.x / y.x, x.y / y.y);
+    }
+
+}
diff --git a/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/SunECOperations.java b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/SunECOperations.java
new file mode 100644
index 0000000..12df603
--- /dev/null
+++ b/sdk/enclave/src/test/java/org/apache/teaclave/javasdk/enclave/testservice/SunECOperations.java
@@ -0,0 +1,29 @@
+// 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 org.apache.teaclave.javasdk.enclave.testservice;
+
+import java.security.KeyPair;
+import sun.security.ec.ECKeyPairGenerator;
+
+public class SunECOperations implements EncryptionService{
+    @Override
+    public KeyPair generateKeyPair() {
+        ECKeyPairGenerator pairGenerator = new ECKeyPairGenerator();
+        return pairGenerator.generateKeyPair();
+    }
+}
diff --git a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.EncryptionService b/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.EncryptionService
deleted file mode 100644
index 86f677c..0000000
--- a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.EncryptionService
+++ /dev/null
@@ -1 +0,0 @@
-com.alibaba.confidentialcomputing.enclave.testservice.SunECOperations
\ No newline at end of file
diff --git a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MathService b/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MathService
deleted file mode 100644
index 4753cf1..0000000
--- a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MathService
+++ /dev/null
@@ -1,3 +0,0 @@
-com.alibaba.confidentialcomputing.enclave.testservice.NumericMath
-com.alibaba.confidentialcomputing.enclave.testservice.PointMath
-com.alibaba.confidentialcomputing.enclave.testservice.IntegerMath
diff --git a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MemService b/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MemService
deleted file mode 100644
index b59e2ee..0000000
--- a/sdk/enclave/src/test/resources/META-INF/services/com.alibaba.confidentialcomputing.enclave.testservice.MemService
+++ /dev/null
@@ -1 +0,0 @@
-com.alibaba.confidentialcomputing.enclave.testservice.EnclaveMem
\ No newline at end of file
diff --git a/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.EncryptionService b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.EncryptionService
new file mode 100644
index 0000000..83059a8
--- /dev/null
+++ b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.EncryptionService
@@ -0,0 +1 @@
+org.apache.teaclave.javasdk.enclave.testservice.SunECOperations
\ No newline at end of file
diff --git a/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MathService b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MathService
new file mode 100644
index 0000000..922eaa5
--- /dev/null
+++ b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MathService
@@ -0,0 +1,3 @@
+org.apache.teaclave.javasdk.enclave.testservice.NumericMath
+org.apache.teaclave.javasdk.enclave.testservice.PointMath
+org.apache.teaclave.javasdk.enclave.testservice.IntegerMath
diff --git a/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MemService b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MemService
new file mode 100644
index 0000000..1661587
--- /dev/null
+++ b/sdk/enclave/src/test/resources/META-INF/services/org.apache.teaclave.javasdk.enclave.testservice.MemService
@@ -0,0 +1 @@
+org.apache.teaclave.javasdk.enclave.testservice.EnclaveMem
\ No newline at end of file
diff --git a/sdk/enclave/src/test/resources/native/com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper.h b/sdk/enclave/src/test/resources/native/com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper.h
deleted file mode 100644
index cb437d5..0000000
--- a/sdk/enclave/src/test/resources/native/com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper */
-
-#ifndef _Included_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
-#define _Included_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    invokeEnclave
- * Signature: ([B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_invokeEnclave
-  (JNIEnv *, jclass, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    loadService
- * Signature: ([B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_loadService
-  (JNIEnv *, jclass, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    unloadService
- * Signature: ([B)[B
- */
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_unloadService
-  (JNIEnv *, jclass, jbyteArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    createIsolate
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_createIsolate__
-  (JNIEnv *, jclass);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    createIsolate
- * Signature: ([Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_createIsolate___3Ljava_lang_String_2
-  (JNIEnv *, jclass, jobjectArray);
-
-/*
- * Class:     com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper
- * Method:    destroyIsolate
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_destroyIsolate
-  (JNIEnv *, jclass);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/sdk/enclave/src/test/resources/native/enc_invoke_entry_test.c b/sdk/enclave/src/test/resources/native/enc_invoke_entry_test.c
index 5907cf5..68b4ba7 100644
--- a/sdk/enclave/src/test/resources/native/enc_invoke_entry_test.c
+++ b/sdk/enclave/src/test/resources/native/enc_invoke_entry_test.c
@@ -1,6 +1,23 @@
+// 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.
+
 #include <stdlib.h>
 #include <string.h>
-#include "com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper.h"
+#include "org_apache_teaclave_javasdk_enclave_EnclaveTestHelper.h"
 #include "enc_environment.h"
 #ifdef MUSL
 #include "libmusl_svmenclavesdk.h"
@@ -79,14 +96,14 @@ jboolean isCopy;
 	return retVal;
 }
 
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_createIsolate__
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_createIsolate__
    (JNIEnv *env, jclass clazz){
        if (graal_create_isolate(NULL, &isolate, &thread) != 0) {
          fprintf(stderr, "error on isolate creation or attach\n");
        }
 }
 
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_createIsolate___3Ljava_lang_String_2
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_createIsolate___3Ljava_lang_String_2
   (JNIEnv *env, jclass clazz, jobjectArray argv){
        int size = (*env)->GetArrayLength(env, argv);
        char** parameters = (char **)malloc(size * sizeof(char*));
@@ -105,23 +122,23 @@ JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTes
        }
 }
 
-JNIEXPORT void JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_destroyIsolate
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_destroyIsolate
      (JNIEnv *env, jclass clazz){
      //graal_tear_down_isolate(thread);
      graal_detach_all_threads_and_tear_down_isolate(thread);
 }
 
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_loadService
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_loadService
 (JNIEnv* env, jclass clazz, jbyteArray data) {
     return enclave_call(env, clazz, data, java_loadservice_invoke);
 }
 
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_unloadService
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_unloadService
   (JNIEnv* env, jclass clazz, jbyteArray data){
   return enclave_call(env, clazz, data, java_unloadservice_invoke);
 }
 
-JNIEXPORT jbyteArray JNICALL Java_com_alibaba_confidentialcomputing_enclave_EnclaveTestHelper_invokeEnclave
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_invokeEnclave
 (JNIEnv* env, jclass clazz, jbyteArray data) {
     return enclave_call(env, clazz, data, java_enclave_invoke);
 }
diff --git a/sdk/enclave/src/test/resources/native/main_c.c b/sdk/enclave/src/test/resources/native/main_c.c
index 3c94adc..99c2189 100644
--- a/sdk/enclave/src/test/resources/native/main_c.c
+++ b/sdk/enclave/src/test/resources/native/main_c.c
@@ -1,3 +1,20 @@
+// 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.
+
 #include <stdlib.h>
 #include <string.h>
 #include "enc_environment.h"
diff --git a/sdk/enclave/src/test/resources/native/org_apache_teaclave_javasdk_enclave_EnclaveTestHelper.h b/sdk/enclave/src/test/resources/native/org_apache_teaclave_javasdk_enclave_EnclaveTestHelper.h
new file mode 100644
index 0000000..b6e661f
--- /dev/null
+++ b/sdk/enclave/src/test/resources/native/org_apache_teaclave_javasdk_enclave_EnclaveTestHelper.h
@@ -0,0 +1,78 @@
+// 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.
+
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class org_apache_teaclave_javasdk_enclave_EnclaveTestHelper */
+
+#ifndef _Included_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+#define _Included_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    invokeEnclave
+ * Signature: ([B)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_invokeEnclave
+  (JNIEnv *, jclass, jbyteArray);
+
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    loadService
+ * Signature: ([B)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_loadService
+  (JNIEnv *, jclass, jbyteArray);
+
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    unloadService
+ * Signature: ([B)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_unloadService
+  (JNIEnv *, jclass, jbyteArray);
+
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    createIsolate
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_createIsolate__
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    createIsolate
+ * Signature: ([Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_createIsolate___3Ljava_lang_String_2
+  (JNIEnv *, jclass, jobjectArray);
+
+/*
+ * Class:     org_apache_teaclave_javasdk_enclave_EnclaveTestHelper
+ * Method:    destroyIsolate
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_org_apache_teaclave_javasdk_enclave_EnclaveTestHelper_destroyIsolate
+  (JNIEnv *, jclass);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/sdk/host/docs/Configuration.md b/sdk/host/docs/Configuration.md
index 11ff31d..df0b4aa 100644
--- a/sdk/host/docs/Configuration.md
+++ b/sdk/host/docs/Configuration.md
@@ -1,15 +1,15 @@
-# JavaEnclave Configuration Illustration
+# Teaclave-java-tee-sdk Configuration Illustration
 
 ## Configure file
 
-JavaEnclave provides a `java_enclave_configure.json` template file for user to set customized parameters. It provides six parameters:
+Teaclave-java-tee-sdk provides a `java_enclave_configure.json` template file for user to set customized parameters. It provides six parameters:
 
 | key                            | value(default) | illustration                                                                                                                                                                                                             |
 |--------------------------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | debuggable                     | false          | Allow `TEE_SDK` Enclave or `EMBEDDED_LIB_OS` Enclave to be debuggable or not, debuggable mode help to debug. Should make it to be not debuggable when the project is online service for security.                        |
 | enclave_type                   | TEE_SDK        | When creating an enclave instance with method `EnclaveFactory.create()`, TEE_SDK kind of Enclave will be created by default, key `enclave_type` could be one of `MOCK_IN_JVM` `MOCK_IN_SVM` `TEE_SDK` `EMBEDDED_LIB_OS`. |
-| metric_trace_enable            | false          | Enable JavaEnclave performance metric or not.                                                                                                                                                                            |
-| metric_trace_file_path         | ""             | Customized JavaEnclave metric log file path. JavaEnclave Metric feature could help to measure the cost of every service invocation and service loading/unloading.                                                        |
+| metric_trace_enable            | false          | Enable Teaclave-java-tee-sdk performance metric or not.                                                                                                                                                                  |
+| metric_trace_file_path         | ""             | Customized Teaclave-java-tee-sdk metric log file path. Teaclave-java-tee-sdk Metric feature could help to measure the cost of every service invocation and service loading/unloading.                                    |
 | enclave_max_thread             | 50             | The max thread number which enclave allows to be e-called into `TEE_SDK` Enclave or `EMBEDDED_LIB_OS` Enclave.                                                                                                           |
 | enclave_max_epc_memory_size_MB | 1500           | The max physical epc memory size in `TEE_SDK`, `EMBEDDED_LIB_OS` Enclave                                                                                                                                                 |
 
@@ -17,39 +17,39 @@ JavaEnclave provides a `java_enclave_configure.json` template file for user to s
 
 ## Property Configuration Setting
 
-JavaEnclave provides some customized property setting for different scene.
+Teaclave-java-tee-sdk provides some customized property setting for different scene.
 
-| property                          | value                                           | illustration                           |
-|-----------------------------------|-------------------------------------------------|----------------------------------------|
-| com.alibaba.enclave.type          | MOCK_IN_JVM/MOCK_IN_SVM/TEE_SDK/EMBEDDED_LIB_OS | same as be described in Configure file |
-| com.alibaba.enclave.debuggable    | true/false                                      | same as be described in Configure file |
-| com.alibaba.enclave.metric.enable | true/false                                      | same as be described in Configure file |
-| com.alibaba.enclave.metric.log    | customized metric log file path                 | same as be described in Configure file |
+| property                                          | value                                           | illustration                           |
+|---------------------------------------------------|-------------------------------------------------|----------------------------------------|
+| org.apache.teaclave.javasdk.enclave.type          | MOCK_IN_JVM/MOCK_IN_SVM/TEE_SDK/EMBEDDED_LIB_OS | same as be described in Configure file |
+| org.apache.teaclave.javasdk.enclave.debuggable    | true/false                                      | same as be described in Configure file |
+| org.apache.teaclave.javasdk.enclave.metric.enable | true/false                                      | same as be described in Configure file |
+| org.apache.teaclave.javasdk.enclave.metric.log    | customized metric log file path                 | same as be described in Configure file |
 
 ### MOCK_IN_SVM Enclave Property Configuration Setting
 
-| property                                 | value       | illustration                                 |
-|------------------------------------------|-------------|----------------------------------------------|
-| com.alibaba.enclave.mockinsvm.maxheap_MB |             | gc max heap size(MB) in mock_in_svm enclave. |
+| property                                                 | value | illustration                                 |
+|----------------------------------------------------------|-------|----------------------------------------------|
+| org.apache.teaclave.javasdk.enclave.mockinsvm.maxheap_MB |       | gc max heap size(MB) in mock_in_svm enclave. |
 
 ### TEE_SDK Enclave Property Configuration Setting
 
-| property                                | value       | illustration                                                                     |
-|-----------------------------------------|-------------|----------------------------------------------------------------------------------|
-| com.alibaba.enclave.teesdk.symbol.trace | true(false) | help to trace undefined symbols invocation in TEE_SDK, default value is disable. |
-| com.alibaba.enclave.teesdk.maxheap_MB   |             | gc max heap size(MB) in tee sdk enclave.                                         |
+| property                                                | value       | illustration                                                                     |
+|---------------------------------------------------------|-------------|----------------------------------------------------------------------------------|
+| org.apache.teaclave.javasdk.enclave.teesdk.symbol.trace | true(false) | help to trace undefined symbols invocation in TEE_SDK, default value is disable. |
+| org.apache.teaclave.javasdk.enclave.teesdk.maxheap_MB   |             | gc max heap size(MB) in tee sdk enclave.                                         |
 
 
 ### EMBEDDED_LIB_OS Enclave Property Configuration Setting
 
-| property                                         | value                                                                                     | illustration                                                                                |
-|--------------------------------------------------|-------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| com.alibaba.enclave.agent.thread.pool.size       | 5                                                                                         | agent http server thread pool size in enclave, default value is 5.                          |
-| com.alibaba.enclave.embedded.startup.timeout_ms  | 60000                                                                                     | the max startup timeout for lib os enclave startup, default timeout is 60000ms.             |
-| com.alibaba.enclave.embedded.keepalive.timeout_s | 300                                                                                       | enclave agent http long connection keep alive timeout, default timeout is 300s.             |
-| com.alibaba.enclave.embedded.keepalive.max       | 100                                                                                       | max agent http router, default number is 100.                                               |
-| com.alibaba.enclave.embedded.connect.timeout_ms  | 1000                                                                                      | agent http connection timeout, default is 1000ms.                                           |
-| com.alibaba.enclave.embedded.read.timeout_ms     | 2000                                                                                      | agent http reading timeout, default is 2000ms.                                              |
-| com.alibaba.enclave.embedded.ra.timeout_ms       | 10000                                                                                     | embedded lib os remote attestation generation and verification timeout, default is 10000ms. |
-| com.alibaba.enclave.embedded.log.level           | "off"                                                                                     | enable enclave log or not, default is off.                                                  |
-| com.alibaba.enclave.embedded.jvm.args            | "-Dsun.net.httpserver.nodelay=true,  -XX:-UseCompressedOops,  -Xmx800m,  -Dos.name=Linux" | jvm's startup args in embedded lib os enclave.                                              |
+| property                                                         | value                                                                                  | illustration                                                                                |
+|------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| org.apache.teaclave.javasdk.enclave.agent.thread.pool.size       | 5                                                                                      | agent http server thread pool size in enclave, default value is 5.                          |
+| org.apache.teaclave.javasdk.enclave.embedded.startup.timeout_ms  | 60000                                                                                  | the max startup timeout for lib os enclave startup, default timeout is 60000ms.             |
+| org.apache.teaclave.javasdk.enclave.embedded.keepalive.timeout_s | 300                                                                                    | enclave agent http long connection keep alive timeout, default timeout is 300s.             |
+| org.apache.teaclave.javasdk.enclave.embedded.keepalive.max       | 100                                                                                    | max agent http router, default number is 100.                                               |
+| org.apache.teaclave.javasdk.enclave.embedded.connect.timeout_ms  | 1000                                                                                   | agent http connection timeout, default is 1000ms.                                           |
+| org.apache.teaclave.javasdk.enclave.embedded.read.timeout_ms     | 2000                                                                                   | agent http reading timeout, default is 2000ms.                                              |
+| org.apache.teaclave.javasdk.enclave.embedded.ra.timeout_ms       | 10000                                                                                  | embedded lib os remote attestation generation and verification timeout, default is 10000ms. |
+| org.apache.teaclave.javasdk.enclave.embedded.log.level           | "off"                                                                                  | enable enclave log or not, default is off.                                                  |
+| org.apache.teaclave.javasdk.enclave.embedded.jvm.args            | "-Dsun.net.httpserver.nodelay=true, -XX:-UseCompressedOops, -Xmx800m, -Dos.name=Linux" | jvm's startup args in embedded lib os enclave.                                              |
diff --git a/sdk/host/pom.xml b/sdk/host/pom.xml
index c65e281..4b2ef51 100644
--- a/sdk/host/pom.xml
+++ b/sdk/host/pom.xml
@@ -1,17 +1,28 @@
-<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.alibaba.confidentialcomputing</groupId>
     <parent>
-        <groupId>com.alibaba.confidentialcomputing</groupId>
+        <groupId>org.apache.teaclave.javasdk</groupId>
         <artifactId>JavaEnclave</artifactId>
         <version>0.1.0</version>
     </parent>
     <artifactId>host</artifactId>
     <packaging>jar</packaging>
     <name>JavaEnclave-Host</name>
-    <url></url>
     <build>
         <plugins>
             <plugin>
@@ -29,7 +40,7 @@
                             <arguments>
                                 <argument>${project.basedir}/../native/script/build_host_sdk/make.sh</argument>
                                 <argument>${project.basedir}</argument>
-                                <argument>${com.alibaba.enclave.platform}</argument>
+                                <argument>${org.apache.teaclave.javasdk.platform}</argument>
                                 <argument>build</argument>
                             </arguments>
                         </configuration>
@@ -75,8 +86,8 @@
                 <version>0.8.3</version>
                 <configuration>
                     <includes>
-                        <include>com/alibaba/confidentialcomputing/host/*</include>
-                        <include>com/alibaba/confidentialcomputing/host/**/*</include>
+                        <include>org/apache/teaclave/javasdk/host/*</include>
+                        <include>org/apache/teaclave/javasdk/host/**/*</include>
                     </includes>
                 </configuration>
                 <executions>
@@ -104,7 +115,7 @@
     </build>
     <dependencies>
         <dependency>
-            <groupId>com.alibaba.confidentialcomputing</groupId>
+            <groupId>org.apache.teaclave.javasdk</groupId>
             <artifactId>common</artifactId>
         </dependency>
         <dependency>
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/BaseEnclaveServicesRecycler.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/BaseEnclaveServicesRecycler.java
deleted file mode 100644
index e323c3d..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/BaseEnclaveServicesRecycler.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-import java.lang.reflect.InvocationHandler;
-
-/**
- * BaseEnclaveServicesRecycler an empty enclave services recycler for MOCK_IN_JVM enclave.
- */
-class BaseEnclaveServicesRecycler {
-    BaseEnclaveServicesRecycler() {
-    }
-
-    void enqueueProxyHandler(InvocationHandler handler) {
-    }
-
-    void registerProxyHandler(Object obj, InvocationHandler handler) {
-    }
-
-    void interruptServiceRecycler() {
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSAttestationReport.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSAttestationReport.java
deleted file mode 100644
index bd15b8f..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSAttestationReport.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-/**
- * EmbeddedLibOSAttestationReport includes more detail information of remote attestation report
- * for lib_os_embedded type enclave.
- */
-final class EmbeddedLibOSAttestationReport extends SGXAttestationReport {
-    EmbeddedLibOSAttestationReport(byte[] quote, byte[] mrSigner, byte[] mrEnclave, byte[] userData) {
-        super(EnclaveType.EMBEDDED_LIB_OS, quote, mrSigner, mrEnclave, userData);
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveDebug.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveDebug.java
deleted file mode 100644
index bf8ab83..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveDebug.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-/**
- * An enumeration of enclave debug mode.
- */
-enum EnclaveDebug {
-    /**
-     * For MOCK_IN_JVM and MOCK_IN_SVM, there is no real enclave environment.
-     */
-    NONE(0),
-    /**
-     * TEE_SDK could debug by gdb tool in this mode.
-     */
-    DEBUG(1),
-    /**
-     * TEE_SDK could not debug by gdb tool in this mode.
-     */
-    RELEASE(2);
-
-    private final int value;
-
-    EnclaveDebug(int value) {
-        this.value = value;
-    }
-
-    int getValue() {
-        return value;
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoMXBean.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoMXBean.java
deleted file mode 100644
index 0bc5c93..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoMXBean.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-import java.util.List;
-
-/**
- * EnclaveInfoMXBean help query created all existed enclave's detail information.
- * Such as existed enclave instance number, every enclave's type info, is debuggable,
- * and enclave's epc memory size.
- */
-public interface EnclaveInfoMXBean {
-    /**
-     * get the number of all existed enclaves.
-     *
-     * @return number of all existed enclaves.
-     */
-    int getEnclaveInstanceNumber();
-
-    /**
-     * get all existed enclaves' EnclaveInfo details.
-     *
-     * @return List<EnclaveInfo> all existed enclaves' EnclaveInfo details.
-     */
-    List<EnclaveInfo> getEnclaveInstancesInfo();
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveSimulate.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveSimulate.java
deleted file mode 100644
index ce8b180..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveSimulate.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-/**
- * An enumeration of enclave simulate mode.
- */
-enum EnclaveSimulate {
-    /**
-     * For MOCK_IN_JVM and MOCK_IN_SVM, there is no real enclave environment.
-     */
-    NONE(0),
-    /**
-     * TEE_SDK/EMBEDDED_LIB_OS could run in simulate mode without sgx.
-     */
-    SIMULATE(1),
-    /**
-     * TEE_SDK/EMBEDDED_LIB_OS could run in hardware mode with sgx.
-     */
-    HARDWARE(2);
-
-    private final int value;
-
-    EnclaveSimulate(int value) {
-        this.value = value;
-    }
-
-    int getValue() {
-        return value;
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestationVerifyResult.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestationVerifyResult.java
deleted file mode 100644
index 2352ec0..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestationVerifyResult.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-final class RemoteAttestationVerifyResult {
-    private final int status;
-    private final int versionCheck;
-    private final int verifyFlag;
-
-    RemoteAttestationVerifyResult(int status, int versionCheck, int verifyFlag) {
-        this.status = status;
-        this.versionCheck = versionCheck;
-        this.verifyFlag = verifyFlag;
-    }
-
-    int getStatus() {
-        return this.status;
-    }
-
-    int getVersionCheck() {
-        return this.versionCheck;
-    }
-
-    int getVerifyFlag() {
-        return this.verifyFlag;
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/TeeSdkAttestationReport.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/TeeSdkAttestationReport.java
deleted file mode 100644
index 2343a71..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/TeeSdkAttestationReport.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.confidentialcomputing.host;
-
-/**
- * TeeSdkAttestationReport parse more details information from a tee sdk type enclave's remote attestation report.
- */
-final class TeeSdkAttestationReport extends SGXAttestationReport {
-    TeeSdkAttestationReport(byte[] quote, byte[] mrSigner, byte[] mrEnclave, byte[] userData) {
-        super(EnclaveType.TEE_SDK, quote, mrSigner, mrEnclave, userData);
-    }
-}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/exception/EnclaveCreatingException.java b/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/exception/EnclaveCreatingException.java
deleted file mode 100644
index 44c4d6a..0000000
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/exception/EnclaveCreatingException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.alibaba.confidentialcomputing.host.exception;
-
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
-
-/**
- * EnclaveCreatingException {@link EnclaveCreatingException} is thrown when exception happen
- * during an enclave was creating.
- * Programmers need to handle EnclaveCreatingException seriously.
- */
-public class EnclaveCreatingException extends ConfidentialComputingException {
-
-    /**
-     * @param info exception information.
-     */
-    public EnclaveCreatingException(String info) {
-        super(EnclaveNativeInvokingException.ENCLAVE_CREATING_ERROR.buildExceptionMessage(info));
-    }
-
-    /**
-     * @param e exception.
-     */
-    public EnclaveCreatingException(Throwable e) {
-        super(EnclaveNativeInvokingException.ENCLAVE_CREATING_ERROR.toString(), e);
-    }
-
-    /**
-     * @param info exception message.
-     * @param e    exception.
-     */
-    public EnclaveCreatingException(String info, Throwable e) {
-        super(EnclaveNativeInvokingException.ENCLAVE_CREATING_ERROR.buildExceptionMessage(info), e);
-    }
-}
\ No newline at end of file
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AbstractEnclave.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AbstractEnclave.java
similarity index 90%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AbstractEnclave.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AbstractEnclave.java
index 0fb5109..6c62d24 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AbstractEnclave.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AbstractEnclave.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.io.IOException;
 import java.lang.reflect.Proxy;
@@ -7,11 +24,11 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.ServiceLoader;
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.host.exception.*;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.host.exception.*;
 
 /**
  * AbstractEnclave implements all kinds of enclave platform's common operation.
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AttestationReport.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AttestationReport.java
similarity index 72%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AttestationReport.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AttestationReport.java
index c7c3d6d..ecb7f04 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/AttestationReport.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AttestationReport.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.io.Serializable;
 
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/BaseEnclaveServicesRecycler.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/BaseEnclaveServicesRecycler.java
new file mode 100644
index 0000000..5cb84c4
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/BaseEnclaveServicesRecycler.java
@@ -0,0 +1,37 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * BaseEnclaveServicesRecycler an empty enclave services recycler for MOCK_IN_JVM enclave.
+ */
+class BaseEnclaveServicesRecycler {
+    BaseEnclaveServicesRecycler() {
+    }
+
+    void enqueueProxyHandler(InvocationHandler handler) {
+    }
+
+    void registerProxyHandler(Object obj, InvocationHandler handler) {
+    }
+
+    void interruptServiceRecycler() {
+    }
+}
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSAttestationReport.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSAttestationReport.java
new file mode 100644
index 0000000..9298a9d
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSAttestationReport.java
@@ -0,0 +1,28 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+/**
+ * EmbeddedLibOSAttestationReport includes more detail information of remote attestation report
+ * for lib_os_embedded type enclave.
+ */
+final class EmbeddedLibOSAttestationReport extends SGXAttestationReport {
+    EmbeddedLibOSAttestationReport(byte[] quote, byte[] mrSigner, byte[] mrEnclave, byte[] userData) {
+        super(EnclaveType.EMBEDDED_LIB_OS, quote, mrSigner, mrEnclave, userData);
+    }
+}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclave.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclave.java
similarity index 92%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclave.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclave.java
index 33c8bb1..3503d90 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclave.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclave.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -6,8 +23,8 @@ import java.io.OutputStream;
 import java.net.*;
 import java.util.concurrent.*;
 
-import com.alibaba.confidentialcomputing.common.*;
-import com.alibaba.confidentialcomputing.host.exception.*;
+import org.apache.teaclave.javasdk.common.*;
+import org.apache.teaclave.javasdk.host.exception.*;
 
 /**
  * EmbeddedLibOSEnclave is a sgx2 enclave based on Ant's Occlum lib_os.
@@ -237,7 +254,7 @@ final class EmbeddedLibOSEnclave extends AbstractEnclave {
         synchronized (EmbeddedLibOSEnclave.class) {
             // Because enclave libos occlum doesn't support creating a new occlum instance even
             // destroy the pre-created occlum instance, Do nothing here.
-            // embedded lib os occlum instance in JavaEnclave is similar with a singleton instance.
+            // embedded lib os occlum instance in Teaclave-java-tee-sdk is similar with a singleton instance.
             try (MetricTraceContext trace = new MetricTraceContext(
                     this.getEnclaveInfo(),
                     MetricTraceContext.LogPrefix.METRIC_LOG_ENCLAVE_DESTROYING_PATTERN)) {
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclaveConfigure.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclaveConfigure.java
similarity index 77%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclaveConfigure.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclaveConfigure.java
index 7877314..769c03b 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EmbeddedLibOSEnclaveConfigure.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EmbeddedLibOSEnclaveConfigure.java
@@ -1,19 +1,36 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
 final class EmbeddedLibOSEnclaveConfigure {
-    private final static String AGENT_HTTP_THREAD_POOL_SIZE_PROPERTY = "com.alibaba.enclave.agent.thread.pool.size";
-    private final static String ENCLAVE_STARTUP_TIMEOUT_MS_PROPERTY = "com.alibaba.enclave.embedded.startup.timeout_ms";
-    private final static String ENCLAVE_DEBUG_LOG_LEVEL_PROPERTY = "com.alibaba.enclave.embedded.log.level";
-    private final static String ENCLAVE_JVM_ARGS_PROPERTY = "com.alibaba.enclave.embedded.jvm.args";
-    private final static String AGENT_HTTP_KEEP_ALIVE_TIMEOUT_S_PROPERTY = "com.alibaba.enclave.embedded.keepalive.timeout_s";
-    private final static String AGENT_HTTP_KEEP_ALIVE_POOL_SIZE_PROPERTY = "com.alibaba.enclave.embedded.keepalive.max";
-    private final static String AGENT_HTTP_CONNECT_TIMEOUT_MS_PROPERTY = "com.alibaba.enclave.embedded.connect.timeout_ms";
-    private final static String AGENT_HTTP_READ_TIMEOUT_MS_PROPERTY = "com.alibaba.enclave.embedded.read.timeout_ms";
-    private final static String AGENT_HTTP_READ_REMOTE_ATTESTATION_TIMEOUT_PROPERTY = "com.alibaba.enclave.embedded.ra.timeout_ms";
+    private final static String AGENT_HTTP_THREAD_POOL_SIZE_PROPERTY = "org.apache.teaclave.javasdk.enclave.agent.thread.pool.size";
+    private final static String ENCLAVE_STARTUP_TIMEOUT_MS_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.startup.timeout_ms";
+    private final static String ENCLAVE_DEBUG_LOG_LEVEL_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.log.level";
+    private final static String ENCLAVE_JVM_ARGS_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.jvm.args";
+    private final static String AGENT_HTTP_KEEP_ALIVE_TIMEOUT_S_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.keepalive.timeout_s";
+    private final static String AGENT_HTTP_KEEP_ALIVE_POOL_SIZE_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.keepalive.max";
+    private final static String AGENT_HTTP_CONNECT_TIMEOUT_MS_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.connect.timeout_ms";
+    private final static String AGENT_HTTP_READ_TIMEOUT_MS_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.read.timeout_ms";
+    private final static String AGENT_HTTP_READ_REMOTE_ATTESTATION_TIMEOUT_PROPERTY = "org.apache.teaclave.javasdk.enclave.embedded.ra.timeout_ms";
 
     private static EnclaveConfigure enclaveConfigure;
     private static EmbeddedLibOSEnclaveConfigure instance;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/Enclave.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/Enclave.java
similarity index 78%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/Enclave.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/Enclave.java
index 5eeef1f..7c31ab5 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/Enclave.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/Enclave.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.util.Iterator;
 
-import com.alibaba.confidentialcomputing.host.exception.ServicesLoadingException;
-import com.alibaba.confidentialcomputing.host.exception.EnclaveDestroyingException;
+import org.apache.teaclave.javasdk.host.exception.ServicesLoadingException;
+import org.apache.teaclave.javasdk.host.exception.EnclaveDestroyingException;
 
 /**
  * A {@code Enclave} is a TEE(Trust Execution Environment) instance.
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveConfigure.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveConfigure.java
similarity index 84%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveConfigure.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveConfigure.java
index 94e7500..7029c00 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveConfigure.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveConfigure.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import org.json.JSONObject;
 
@@ -15,10 +32,10 @@ final class EnclaveConfigure {
     private final static long MB = KB * 1024;
     private final static long GB = MB * 1024;
     // TEE_SDK/EMBEDDED_LIB_OS/MOCK_IN_JVM/MOCK_IN_SVM
-    private final static String ENCLAVE_TYPE_PROPERTY = "com.alibaba.enclave.type";
-    private final static String ENCLAVE_DEBUG_PROPERTY = "com.alibaba.enclave.debuggable";
-    private final static String METRIC_TRACE_LOG_FILE_PATH_PROPERTY = "com.alibaba.enclave.metric.log";
-    private final static String METRIC_TRACE_ENABLE_PROPERTY = "com.alibaba.enclave.metric.enable";
+    private final static String ENCLAVE_TYPE_PROPERTY = "org.apache.teaclave.javasdk.enclave.type";
+    private final static String ENCLAVE_DEBUG_PROPERTY = "org.apache.teaclave.javasdk.enclave.debuggable";
+    private final static String METRIC_TRACE_LOG_FILE_PATH_PROPERTY = "org.apache.teaclave.javasdk.enclave.metric.log";
+    private final static String METRIC_TRACE_ENABLE_PROPERTY = "org.apache.teaclave.javasdk.enclave.metric.enable";
 
     private final static String JAVA_ENCLAVE_CONFIG_FILE_TEMPLATE = "/opt/javaenclave/config/template/java_enclave_configure.json";
     private final static String JAVA_ENCLAVE_CONFIG_FILE = "java_enclave_configure.json";
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveDebug.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveDebug.java
new file mode 100644
index 0000000..a7a4e2f
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveDebug.java
@@ -0,0 +1,46 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+/**
+ * An enumeration of enclave debug mode.
+ */
+enum EnclaveDebug {
+    /**
+     * For MOCK_IN_JVM and MOCK_IN_SVM, there is no real enclave environment.
+     */
+    NONE(0),
+    /**
+     * TEE_SDK could debug by gdb tool in this mode.
+     */
+    DEBUG(1),
+    /**
+     * TEE_SDK could not debug by gdb tool in this mode.
+     */
+    RELEASE(2);
+
+    private final int value;
+
+    EnclaveDebug(int value) {
+        this.value = value;
+    }
+
+    int getValue() {
+        return value;
+    }
+}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveFactory.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveFactory.java
similarity index 73%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveFactory.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveFactory.java
index ab0e0b7..f16ddcf 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveFactory.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveFactory.java
@@ -1,7 +1,24 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.host.exception.EnclaveCreatingException;
-import com.alibaba.confidentialcomputing.host.exception.MetricTraceLogWriteException;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.host.exception.EnclaveCreatingException;
+import org.apache.teaclave.javasdk.host.exception.MetricTraceLogWriteException;
 
 import java.io.IOException;
 
@@ -11,10 +28,10 @@ import java.io.IOException;
  * TEE is an abstract concept, it contains many kinds of confidential compute technology.
  * From hardware's point, there are Intel's SGX/TDX, Arm's TrustZone and so on.
  * From software's point, there are SGX-SDK, OpenEnclave, TeeSDK and so on.
- * JavaEnclave is committed to make java enclave development easy and efficient.
+ * Teaclave-java-tee-sdk is committed to make java enclave development easy and efficient.
  * <p>
  * Java developer does not need to care too much about enclave's underlying technology stack.
- * And JavaEnclave will help java programmer develop a java enclave service as a common java service.
+ * And Teaclave-java-tee-sdk will help java programmer develop a java enclave service as a common java service.
  * <pre>
  * try {
  *     Enclave enclave = EnclaveFactory.create();
@@ -36,7 +53,7 @@ public final class EnclaveFactory {
      */
     public static Enclave create() throws EnclaveCreatingException {
         // create an enclave without specific enclave type.
-        // if -Dcom.alibaba.enclave.type is not set, TEE_SDK
+        // if -Dorg.apache.teaclave.javasdk.enclave.type is not set, TEE_SDK
         // type enclave will be created.
         try {
             return create(EnclaveConfigure.getInstance().getDefaultEnclaveType());
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfo.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfo.java
similarity index 50%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfo.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfo.java
index a1f5b87..4f999dd 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfo.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfo.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 /**
  * an enclave's information details.
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoMXBean.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoMXBean.java
new file mode 100644
index 0000000..b0f04ca
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoMXBean.java
@@ -0,0 +1,41 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+import java.util.List;
+
+/**
+ * EnclaveInfoMXBean help query created all existed enclave's detail information.
+ * Such as existed enclave instance number, every enclave's type info, is debuggable,
+ * and enclave's epc memory size.
+ */
+public interface EnclaveInfoMXBean {
+    /**
+     * get the number of all existed enclaves.
+     *
+     * @return number of all existed enclaves.
+     */
+    int getEnclaveInstanceNumber();
+
+    /**
+     * get all existed enclaves' EnclaveInfo details.
+     *
+     * @return List<EnclaveInfo> all existed enclaves' EnclaveInfo details.
+     */
+    List<EnclaveInfo> getEnclaveInstancesInfo();
+}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoManager.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoManager.java
similarity index 65%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoManager.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoManager.java
index 378494e..7fcc7a9 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveInfoManager.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveInfoManager.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveServicesRecycler.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveServicesRecycler.java
similarity index 73%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveServicesRecycler.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveServicesRecycler.java
index 4f95c66..40fbd62 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveServicesRecycler.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveServicesRecycler.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.host.exception.ServicesUnloadingException;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.host.exception.ServicesUnloadingException;
 
 import java.lang.ref.Cleaner;
 import java.lang.reflect.InvocationHandler;
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveSimulate.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveSimulate.java
new file mode 100644
index 0000000..a5ef567
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveSimulate.java
@@ -0,0 +1,46 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+/**
+ * An enumeration of enclave simulate mode.
+ */
+enum EnclaveSimulate {
+    /**
+     * For MOCK_IN_JVM and MOCK_IN_SVM, there is no real enclave environment.
+     */
+    NONE(0),
+    /**
+     * TEE_SDK/EMBEDDED_LIB_OS could run in simulate mode without sgx.
+     */
+    SIMULATE(1),
+    /**
+     * TEE_SDK/EMBEDDED_LIB_OS could run in hardware mode with sgx.
+     */
+    HARDWARE(2);
+
+    private final int value;
+
+    EnclaveSimulate(int value) {
+        this.value = value;
+    }
+
+    int getValue() {
+        return value;
+    }
+}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveToken.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveToken.java
similarity index 58%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveToken.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveToken.java
index 492c30e..dd58dfb 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveToken.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveToken.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicBoolean;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveType.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveType.java
similarity index 52%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveType.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveType.java
index dbfaba9..7b0b1b7 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/EnclaveType.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/EnclaveType.java
@@ -1,8 +1,25 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 /**
  * An enumeration of enclave type.
- * JavaEnclave supports three kinds of enclave, they are mock_in_jvm、mock_in_svm、tee_sdk
+ * Teaclave-java-tee-sdk supports three kinds of enclave, they are mock_in_jvm、mock_in_svm、tee_sdk
  * and embedded_lib_os.
  */
 public enum EnclaveType {
@@ -19,7 +36,7 @@ public enum EnclaveType {
      */
     MOCK_IN_SVM,
     /**
-     * An enclave based on Intel's SGX2, with Alibaba Cloud's TEESdk. Enclave application
+     * An enclave based on Intel's SGX2, with Intel's sgx sdk. Enclave application
      * was compiled to machine code and lint together with TEESdk's underlying libs,
      * host application runs in jvm environment, and enclave package were loaded by host.
      */
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ExtractLibrary.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ExtractLibrary.java
similarity index 82%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ExtractLibrary.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ExtractLibrary.java
index ff92e34..880b1a0 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ExtractLibrary.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ExtractLibrary.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
@@ -8,7 +25,7 @@ import java.io.*;
 import java.util.zip.GZIPInputStream;
 
 /**
- * JavaEnclave building tool will put native .so files or .tgz files into a java .jar file,
+ * Teaclave-java-tee-sdk building tool will put native .so files or .tgz files into a java .jar file,
  * ExtractLibrary will extract tee sdk's jni .so and enclave signed .so into a temp path
  * from the jar file.
  * extractAndDeCompressTgz will extract embedded lib os enclave's compressed .tgz image and
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTrace.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTrace.java
similarity index 72%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTrace.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTrace.java
index 683cb77..59598e0 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTrace.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTrace.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.host.exception.MetricTraceLogWriteException;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.host.exception.MetricTraceLogWriteException;
 
 import java.io.BufferedWriter;
 import java.io.FileWriter;
@@ -11,7 +28,7 @@ import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
 /**
- * MetricTrace is JavaEnclave's internal mechanism to trace metric of key enclave operation.
+ * MetricTrace is Teaclave-java-tee-sdk's internal mechanism to trace metric of key enclave operation.
  * For example, MetricTrace could metric and record the cost of enclave creation, also could
  * trace an enclave service invocation cost and so on.
  */
@@ -35,7 +52,7 @@ public abstract class MetricTrace implements AutoCloseable {
     }
 
     /**
-     * turn on/off metric trace for JavaEnclave.
+     * turn on/off metric trace for Teaclave-java-tee-sdk.
      *
      * @param flag turn on/off metric trace.
      */
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTraceContext.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTraceContext.java
similarity index 65%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTraceContext.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTraceContext.java
index 5ed22a9..92eaff1 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MetricTraceContext.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MetricTraceContext.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 final class MetricTraceContext extends MetricTrace {
     private EnclaveInfo info;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockEnclaveInfo.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockEnclaveInfo.java
similarity index 62%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockEnclaveInfo.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockEnclaveInfo.java
index 4a2db44..b18f602 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockEnclaveInfo.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockEnclaveInfo.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import javax.management.ConstructorParameters;
 
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInJvmEnclave.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInJvmEnclave.java
similarity index 64%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInJvmEnclave.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInJvmEnclave.java
index 4dfb78f..9662537 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInJvmEnclave.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInJvmEnclave.java
@@ -1,8 +1,25 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.host.exception.*;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.host.exception.*;
 
 import java.io.IOException;
 
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclave.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclave.java
similarity index 87%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclave.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclave.java
index 76d069a..efb0e88 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclave.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclave.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.host;
-
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.SerializationHelper;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.host.exception.*;
+// 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 org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.SerializationHelper;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.host.exception.*;
 
 import java.io.IOException;
 
@@ -24,7 +41,7 @@ final class MockInSvmEnclave extends AbstractEnclave {
     // enclaveHandle stores created enclave svm sdk .so file handler.
     private long enclaveSvmSdkHandle;
     // isolate stores svm created isolate instance.
-    // In JavaEnclave only one isolateHandle instance will be created.
+    // In Teaclave-java-tee-sdk only one isolateHandle instance will be created.
     private long isolateHandle;
     // isolateThreadHandle stores the first attached isolateThread Handle.
     private long isolateThreadHandle;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclaveConfigure.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclaveConfigure.java
similarity index 62%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclaveConfigure.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclaveConfigure.java
index 9668e9e..dcf8a15 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/MockInSvmEnclaveConfigure.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/MockInSvmEnclaveConfigure.java
@@ -1,11 +1,28 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.io.IOException;
 
 final class MockInSvmEnclaveConfigure {
     private final static long KB = 1024;
     private final static long MB = KB * 1024;
-    private final static String MOCK_IN_SVM_MAX_HEAP_SIZE_PROPERTY = "com.alibaba.enclave.mockinsvm.maxheap_MB";
+    private final static String MOCK_IN_SVM_MAX_HEAP_SIZE_PROPERTY = "org.apache.teaclave.javasdk.enclave.mockinsvm.maxheap_MB";
     private static EnclaveConfigure enclaveConfigure;
     private static MockInSvmEnclaveConfigure mockInSvmEnclaveConfigure;
 
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyEnclaveInvocationHandler.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyEnclaveInvocationHandler.java
similarity index 77%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyEnclaveInvocationHandler.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyEnclaveInvocationHandler.java
index 6d5ab39..91965ca 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyEnclaveInvocationHandler.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyEnclaveInvocationHandler.java
@@ -1,9 +1,26 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationContext;
-import com.alibaba.confidentialcomputing.common.EnclaveInvocationResult;
-import com.alibaba.confidentialcomputing.common.ServiceHandler;
-import com.alibaba.confidentialcomputing.common.exception.ConfidentialComputingException;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.common.EnclaveInvocationContext;
+import org.apache.teaclave.javasdk.common.EnclaveInvocationResult;
+import org.apache.teaclave.javasdk.common.ServiceHandler;
+import org.apache.teaclave.javasdk.common.exception.ConfidentialComputingException;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.InvocationHandler;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyMockJvmInvocationHandler.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyMockJvmInvocationHandler.java
similarity index 72%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyMockJvmInvocationHandler.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyMockJvmInvocationHandler.java
index db49306..5893489 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/ProxyMockJvmInvocationHandler.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ProxyMockJvmInvocationHandler.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestation.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestation.java
similarity index 75%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestation.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestation.java
index e8f695c..1a8e988 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/RemoteAttestation.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestation.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.host.exception.RemoteAttestationException;
+package org.apache.teaclave.javasdk.host;
+
+import org.apache.teaclave.javasdk.host.exception.RemoteAttestationException;
 
 import java.util.Random;
 
@@ -32,7 +49,7 @@ public final class RemoteAttestation {
      *
      * @param enclave  an enclave instance.
      * @param userData provided as user identification, its length must be 64 bytes.
-     *                 If userData is null, JavaEnclave will generate a random buffer
+     *                 If userData is null, Teaclave-java-tee-sdk will generate a random buffer
      *                 with 64 length bytes for it.
      *                 If userData's length exceeds 64 bytes, RemoteAttestationException
      *                 will be thrown.
diff --git a/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestationVerifyResult.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestationVerifyResult.java
new file mode 100644
index 0000000..3b4be81
--- /dev/null
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/RemoteAttestationVerifyResult.java
@@ -0,0 +1,42 @@
+// 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 org.apache.teaclave.javasdk.host;
+
+final class RemoteAttestationVerifyResult {
+    private final int status;
+    private final int versionCheck;
+    private final int verifyFlag;
+
+    RemoteAttestationVerifyResult(int status, int versionCheck, int verifyFlag) {
+        this.status = status;
+        this.versionCheck = versionCheck;
+        this.verifyFlag = verifyFlag;
+    }
+
+    int getStatus() {
+        return this.status;
+    }
+
+    int getVersionCheck() {
+        return this.versionCheck;
+    }
+
+    int getVerifyFlag() {
+        return this.verifyFlag;
+    }
+}
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXAttestationReport.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXAttestationReport.java
similarity index 59%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXAttestationReport.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXAttestationReport.java
index 3d66eae..72b4a7e 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXAttestationReport.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXAttestationReport.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 /**
  * SGX type enclave's remote attestation report.
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXEnclaveInfo.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXEnclaveInfo.java
similarity index 62%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXEnclaveInfo.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXEnclaveInfo.java
index 145c315..a482b50 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXEnclaveInfo.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXEnclaveInfo.java
@@ -1,4 +1,21 @@
-package com.alibaba.confidentialcomputing.host;
+// 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 org.apache.teaclave.javasdk.host;
 
 import javax.management.ConstructorParameters;
 
diff --git a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXRemoteAttestationVerify.java b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXRemoteAttestationVerify.java
similarity index 70%
rename from sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXRemoteAttestationVerify.java
rename to sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXRemoteAttestationVerify.java
index 6858478..9d59e24 100644
--- a/sdk/host/src/main/java/com/alibaba/confidentialcomputing/host/SGXRemoteAttestationVerify.java
+++ b/sdk/host/src/main/java/org/apache/teaclave/javasdk/host/SGXRemoteAttestationVerify.java
@@ -1,6 +1,23 @@
-package com.alibaba.confidentialcomputing.host;
+// 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.
 
-import com.alibaba.confidentialcomputing.host.exception.RemoteAttestationException;
+package org.apache.teaclave.javasdk.host;
+
... 6226 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org