7:06:08 PM (Executor) The "task for hdb build" process started.
7:06:08 PM (Executor) Started the "task for hdb build" provision.
7:07:31 PM (Provision) Service provisioning for module: "/db"
7:07:31 PM (Provision) Created the 'Products-Products-db-hdi-container8HPfzrS/PBqVvnsD' instance of the 'hanatrial' service type for the 'Products-db-hdi-container' resource.
7:07:34 PM (Executor) Starting process: "cd /projects/Products/db; export DEVX_MTA_RESOLVED_PLACEHOLDERS="{"services":[{"platformName":"Products-Products-db-hdi-container8HPfzrS/PBqVvnsD","resourceName":"Products-db-hdi-container","resourceProperties":{},"resourceType":"com.sap.xs.hdi-container","serviceKeyName":"SharedDevKey","serviceTarget":{"endpoint":"https://api.cf.eu10.hana.ondemand.com","org":"i042416trial","space":"dev"}}]}"; export CF_HOME=/projects/.webide/cf/edbc155888065bb94beb7f3f61ed2125;
export DEVX_MTA_HDI_BUILD_OPTIONS="{"IsSelectiveBuild":false,"SelectedFiles":[],"IsSimulateBuild":false,"AdditionalOptions":{"migrationtable-development-mode":true}}"; export PROJECT_PATH=/projects/Products/db; mkdir -p $CF_HOME/.cf/plugins/ && cp -u $CF_PLUGIN_PATH/config.json $CF_HOME/.cf/plugins/config.json 2>/dev/null || :;hdi-space-builder build"
7:07:34 PM (HDB) Executing Build command:
7:07:34 PM (HDB) HDI BUILDER VERSION:1.1.8-20200126111401
7:07:34 PM (HDB) temp folder created at: /tmp/hdispacebuilder986302952
7:07:34 PM (HDB) Starting pre-hdiBuild operations...
7:08:54 PM (HDB) Creating module zip...
7:08:54 PM (HDB) module directory is: /projects/Products/db
7:08:54 PM (HDB) executing NPM script at: /projects/Products/db
7:08:54 PM (HDB) zipping folder.....
7:08:57 PM (HDB) zip created at: /tmp/hdispacebuilder986302952/db.zip
7:09:03 PM (HDB) connection to hdi deployer passed
7:09:03 PM (HDB) No protocol version provided, using the latest version: 1.0.0
7:09:03 PM (HDB) Log id: 27336d30f2a39a5fccf48579937d8bbfaa56280a
7:09:03 PM (HDB) Using protocol version 1.0.0
7:09:03 PM (HDB) FILE TRANSFER READY
7:09:04 PM (HDB) File transfer completed successfully: Checksums match.
7:09:08 PM (HDB) Requested version of @sap/hdi-deploy is 3.11.6, found in node_modules.
这个node_modules里的文件夹不少:
7:09:08 PM (HDB) .build.js,csv,data-model.cds,node_modules,package-lock.json,package.json,src
7:09:08 PM (HDB) @sap/hdi-deploy, version 3.11.6 (mode default), server version 2.00.040.00.1563450557 (2.0.40.0), node version 8.12.0, HDI version 2, container API version 44
7:09:08 PM (HDB) The server does not support live updating of make messages. The messages will be displayed, when the make is done.
7:09:08 PM (HDB) No ignore file at /tmp/hdi-space-deploy-4293TqEXf5dEAL-content/.hdiignore.
7:09:08 PM (HDB) Collecting files...
7:09:08 PM (HDB) Collecting files... ok (0s 4ms)
7:09:08 PM (HDB) 3 directories collected8 files collected0 reusable modules collectedTarget service: Products-Products-db-hdi-container8HPfzrS/PBqVvnsD
7:09:08 PM (HDB) Session variable APPLICATION is set to "SAP_HDI//".
7:09:08 PM (HDB) Previous build with request ID 498789 finished at 2020-02-15 11:06:20.552861000 with status Finished and message: Configuring libraries in the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"; removing []; updating or adding [com.sap.hana.di.afllangprocedure, com.sap.hana.di.analyticprivilege, com.sap.hana.di.applicationtime, com.sap.hana.di.calculationview, com.sap.hana.di.cds, com.sap.hana.di.collection, com.sap.hana.di.constraint, com.sap.hana.di.copyonly, com.sap.hana.di.dropcreatetable, com.sap.hana.di.flowgraph, com.sap.hana.di.fulltextindex, com.sap.hana.di.function, com.sap.hana.di.graphworkspace, com.sap.hana.di.index, com.sap.hana.di.library, com.sap.hana.di.logicalschema, com.sap.hana.di.procedure, com.sap.hana.di.projectionview, com.sap.hana.di.remotetable, com.sap.hana.di.reptask, com.sap.hana.di.resultcache, com.sap.hana.di.role, com.sap.hana.di.searchruleset, com.sap.hana.di.sequence, com.sap.hana.di.statistics, com.sap.hana.di.structuredprivilege, com.sap.hana.di.synonym, com.sap.hana.di.systemversioning, com.sap.hana.di.table, com.sap.hana.di.tabledata, com.sap.hana.di.tabletype, com.sap.hana.di.textconfig, com.sap.hana.di.textdictionary, com.sap.hana.di.textminingconfig, com.sap.hana.di.textrule, com.sap.hana.di.trigger, com.sap.hana.di.view, com.sap.hana.di.virtualfunction, com.sap.hana.di.virtualfunctionpackage, com.sap.hana.di.virtualpackage, com.sap.hana.di.virtualprocedure, com.sap.hana.di.virtualtable]... ok.
7:09:08 PM (HDB) Processing revoke files...
7:09:08 PM (HDB) Processing revoke files... ok (0s 0ms)
7:09:08 PM (HDB) Processing grants files...
7:09:08 PM (HDB) Processing grants files... ok (0s 0ms)
7:09:08 PM (HDB) Preprocessing files...
7:09:08 PM (HDB) Preprocessing files... ok (0s 0ms)
7:09:08 PM (HDB) Connecting to the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...
7:09:08 PM (HDB) Connecting to the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (0s 64ms)
7:09:08 PM (HDB) Locking the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...
7:09:09 PM (HDB) Locking the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (0s 342ms)
7:09:09 PM (HDB) Synchronizing files with the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...
7:09:10 PM (HDB) Synchronizing files with the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (1s 285ms)
7:09:11 PM (HDB) 8 modified or added files are scheduled for deploy based on delta detection
7:09:11 PM (HDB) 0 deleted files are scheduled for undeploy based on delta detection (filtered by undeploy whitelist)
7:09:11 PM (HDB) 0 files are scheduled for deploy based on explicit specification
7:09:11 PM (HDB) 0 files are scheduled for undeploy based on explicit specification
7:09:11 PM (HDB) Deploying to the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...
7:09:15 PM (HDB) Starting make in the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16" with 8 files to deploy, 0 files to undeploy...
7:09:15 PM (HDB) Disabling table replication for the container schema "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... Disabling table replication for the container schema "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (0s 109ms) Migrating libraries... Migrating libraries... ok (0s 10ms) Making... Preparing... Preparing the make transaction... Deploying the configuration file "src/.hdiconfig"... Deploying the configuration file "src/.hdiconfig"... ok (0s 56ms) Deploying the configuration file "src/gen/.hdiconfig"... Deploying the configuration file "src/gen/.hdiconfig"... ok (0s 5ms) Deploying the namespace file "src/gen/.hdinamespace"... Deploying the namespace file "src/gen/.hdinamespace"... ok (0s 28ms)
7:09:15 PM (HDB) Adding "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds" for deploy... Adding "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds" for deploy... ok (0s 18ms) Adding "src/gen/MY_APP_PRODUCTS.hdbcds" for deploy... Adding "src/gen/MY_APP_PRODUCTS.hdbcds" for deploy... ok (0s 0ms) Adding "src/gen/csv/my.bookshop-Authors.csv" for deploy... Adding "src/gen/csv/my.bookshop-Authors.csv" for deploy... ok (0s 32ms) Adding "src/gen/csv/my.bookshop-Books.csv" for deploy... Adding "src/gen/csv/my.bookshop-Books.csv" for deploy... ok (0s 0ms) Adding "src/gen/csv/my.bookshop-Orders.csv" for deploy...
7:09:15 PM (HDB) Adding "src/gen/csv/my.bookshop-Orders.csv" for deploy... ok (0s 0ms) Preparing... ok (0s 229ms) Preparing the make transaction... ok (1s 261ms) Calculating dependencies... Expanding... Expanding... ok (0s 19ms)
7:09:15 PM (HDB) Precompiling... Precompiling "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... Precompiling "src/gen/MY_APP_PRODUCTS.hdbcds"... Precompiling "src/gen/csv/my.bookshop-Authors.csv"... Precompiling "src/gen/csv/my.bookshop-Books.csv"... Precompiling "src/gen/csv/my.bookshop-Orders.csv"... Precompiling "src/gen/csv/my.bookshop-Authors.csv"... ok (0s 2ms)
7:09:15 PM (HDB) Precompiling "src/gen/csv/my.bookshop-Books.csv"... ok (0s 1ms) Precompiling "src/gen/csv/my.bookshop-Orders.csv"... ok (0s 1ms) Precompiling "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... ok (0s 12ms) Precompiling "src/gen/MY_APP_PRODUCTS.hdbcds"... ok (0s 11ms) Precompiling... ok (0s 23ms)
7:09:15 PM (HDB) Merging... Merging "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... Merging "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... ok (0s 0ms) Precompiling "$cds.merge/CATALOGSERVICE_PRODUCTS" (merged)... Merged from "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds" Merging "src/gen/MY_APP_PRODUCTS.hdbcds"...
7:09:15 PM (HDB) Merging "src/gen/MY_APP_PRODUCTS.hdbcds"... ok (0s 0ms) Precompiling "$cds.merge/MY_APP_PRODUCTS" (merged)... Merged from "src/gen/MY_APP_PRODUCTS.hdbcds" Precompiling "$cds.merge/CATALOGSERVICE_PRODUCTS" (merged)... ok (0s 11ms) Precompiling "$cds.merge/MY_APP_PRODUCTS" (merged)... ok (0s 12ms) Merging... ok (0s 122ms)
7:09:15 PM (HDB) Calculating dependencies... ok (0s 291ms) Processing work list... Deploying "$cds.merge/MY_APP_PRODUCTS"... Merged from "src/gen/MY_APP_PRODUCTS.hdbcds" Deploying "src/gen/csv/my.bookshop-Authors.csv"... Deploying "src/gen/csv/my.bookshop-Books.csv"...
7:09:15 PM (HDB) Deploying "src/gen/csv/my.bookshop-Orders.csv"... Deploying "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... Deploying "$cds.merge/CATALOGSERVICE_PRODUCTS"... Merged from "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds" Deploying "src/gen/csv/my.bookshop-Authors.csv"... ok (0s 9ms) Deploying "src/gen/csv/my.bookshop-Books.csv"... ok (0s 10ms)
7:09:15 PM (HDB) Deploying "src/gen/csv/my.bookshop-Orders.csv"... ok (0s 10ms) Deploying "$cds.merge/MY_APP_PRODUCTS"... ok (1s 507ms) Deploying "src/gen/CATALOGSERVICE_PRODUCTS.hdbcds"... ok (1s 506ms) Deploying "$cds.merge/CATALOGSERVICE_PRODUCTS"... ok (1s 506ms) Deploying "src/gen/MY_APP_PRODUCTS.hdbcds"... Deploying "src/gen/MY_APP_PRODUCTS.hdbcds"... ok (0s 0ms)
7:09:15 PM (HDB) Processing work list... ok (1s 520ms) Finalizing... Finalizing... ok (0s 543ms) Make succeeded (0 warnings): 8 files deployed (effective 10), 0 files undeployed (effective 0), 0 dependent files redeployed Making... ok (3s 663ms) Enabling table replication for the container schema "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...
7:09:15 PM (HDB) Enabling table replication for the container schema "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (0s 130ms) Starting make in the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16" with 8 files to deploy, 0 files to undeploy... ok (3s 922ms)
7:09:15 PM (HDB) Deploying to the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (4s 579ms)No default-access-role handling needed; global role "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16::access_role" will not be adaptedUnlocking the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"...Unlocking the container "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16"... ok (0s 0ms)Deployment to container PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16 done [depId].
7:09:15 PM (HDB) (7s 665ms)
7:09:15 PM (HDB)
7:09:15 PM (HDB) STRUCTURED LOG CHECKSUM a28860dc590f7211c66dba602054e18713fbc55b03fcd9f8e4066338ecc8078e
7:09:15 PM (HDB) STRUCTURED LOG SIZE27946
7:09:15 PM (HDB) SENDING STRUCTURED LOG
7:09:15 PM (HDB) Build of /Products/db completed successfully.
自动生成的文件:
成功build:
右键菜单,选择Run as Java Application:
运行成功后,能看到对应生成的应用:
该应用分配的hanatrial实例:
{
"host": "zeus.hana.prod.eu-central-1.whitney.dbaas.ondemand.com",
"port": "23803",
"driver": "com.sap.db.jdbc.Driver",
"url": "jdbc:sap://zeus.hana.prod.eu-central-1.whitney.dbaas.ondemand.com:23803?encrypt=true&validateCertificate=true¤tschema=PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16",
"schema": "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16",
"hdi_user": "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16_0JRJH2X7P53ZTZFMEUJ0Y30QD_DT",
"hdi_password": "Is1pWy",
"user": "PRODUCTS_PRODUCTS_DB_HDI_CONTAINER_16_0JRJH2X7P53ZTZFMEUJ0Y30QD_RT",
"password": "If7ocUggpCzBOpRI_",
"certificate": "-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEa4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
"
Service provisioning started
Build started
Application is starting
Application is running
{ "written_at":"2020-02-15T12:02:08.423Z","written_ts":129294238166275,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.startup.Catalina","thread":"main","level":"INFO","categories":[],"msg":"Initialization processed in 1589 ms" } { "written_at":"2020-02-15T12:02:08.561Z","written_ts":129294374761562,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.core.StandardService","thread":"main","level":"INFO","categories":[],"msg":"Starting service [Catalina]" } { "written_at":"2020-02-15T12:02:08.562Z","written_ts":129294375310895,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.core.StandardEngine","thread":"main","level":"INFO","categories":[],"msg":"Starting Servlet Engine: Apache Tomcat/8.5.32" }
{ "written_at":"2020-02-15T12:02:23.609Z","written_ts":129309422671273,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/]","thread":"localhost-startStop-1","level":"ERROR","categories":[],"msg":"For security constraints with URL pattern [/] only the HTTP methods [HEAD OPTIONS] are covered. All other methods are uncovered." }
{ "written_at":"2020-02-15T12:02:23.610Z","written_ts":129309423281926,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/]","thread":"localhost-startStop-1","level":"ERROR","categories":[],"msg":"For security constraints with URL pattern [/odata/v2/] the HTTP methods [HEAD DELETE POST GET PUT PATCH] are uncovered." }
{ "written_at":"2020-02-15T12:02:23.995Z","written_ts":129309807953337,"component_type":"application","component_id":"94a8badb-81ce-4bc5-91f3-be5aae9134d7","space_name":"dev","component_name":"Vaf93ft3OHSHevAk-Products-srv","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"a0d84f41-0fc0-4cd5-8c29-26ed5a8f44a4","container_id":"10.0.138.17","type":"log","logger":"org.apache.catalina.startup.Catalina","thread":"main","level":"INFO","categories":[],"msg":"Server startup in 15463 ms" }
Java应用的实现代码:
package my.app;
import java.util.ArrayList;
import java.util.List;
import com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory;
import com.sap.cloud.sdk.service.prov.api.*;
import com.sap.cloud.sdk.service.prov.api.annotations.*;
import com.sap.cloud.sdk.service.prov.api.exits.*;
import com.sap.cloud.sdk.service.prov.api.request.*;
import com.sap.cloud.sdk.service.prov.api.response.*;
import org.slf4j.*;
public class OrdersService {
private static final Logger LOG = CloudLoggerFactory.getLogger(OrdersService.class.getName());
@BeforeRead(entity = "Orders", serviceName = "CatalogService")
public BeforeReadResponse beforeReadOrders(ReadRequest req, ExtensionHelper h) {
LOG.error("##### Orders - beforeReadOrders ########");
return BeforeReadResponse.setSuccess().response();
}
@AfterRead(entity = "Orders", serviceName = "CatalogService")
public ReadResponse afterReadOrders(ReadRequest req, ReadResponseAccessor res, ExtensionHelper h) {
EntityData ed = res.getEntityData();
EntityData ex = EntityData.getBuilder(ed).addElement("amount", 1000).buildEntityData("Orders");
return ReadResponse.setSuccess().setData(ex).response();
}
@AfterQuery(entity = "Orders", serviceName = "CatalogService")
public QueryResponse afterQueryOrders(QueryRequest req, QueryResponseAccessor res, ExtensionHelper h) {
List<EntityData> dataList = res.getEntityDataList(); // original list
List<EntityData> modifiedList = new ArrayList<EntityData>(dataList.size()); // modified list
for (EntityData ed : dataList) {
EntityData ex = EntityData.getBuilder(ed).addElement("amount", 1000).buildEntityData("Orders");
modifiedList.add(ex);
}
return QueryResponse.setSuccess().setData(modifiedList).response();
}
}
要获取更多Jerry的原创文章,请关注公众号"汪子熙":