diff options
author | Zhaoxing <meng.zhaoxing1@zte.com.cn> | 2017-08-08 14:02:53 +0800 |
---|---|---|
committer | Zhaoxing <meng.zhaoxing1@zte.com.cn> | 2017-08-08 14:02:53 +0800 |
commit | c0604184b2aa8cff924ca783ec6b36f1f5988775 (patch) | |
tree | 1c70ffe1ad90c915b3382a37eb2fa80901519c7b /wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java | |
parent | 706fc9fed496972968fde136c3e4e10f9578a5b3 (diff) |
init code
Change-Id: Icd0948118397b256da70dfbcbbec5520dc5eafd4
Signed-off-by: Zhaoxing <meng.zhaoxing1@zte.com.cn>
Diffstat (limited to 'wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java')
17 files changed, 0 insertions, 2372 deletions
diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelApplication.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelApplication.java deleted file mode 100644 index 5cec239..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelApplication.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel; - -import io.dropwizard.Application; -import io.dropwizard.assets.AssetsBundle; -import io.dropwizard.configuration.EnvironmentVariableSubstitutor; -import io.dropwizard.configuration.SubstitutingSourceProvider; -import io.dropwizard.server.SimpleServerFactory; -import io.dropwizard.setup.Bootstrap; -import io.dropwizard.setup.Environment; -import io.swagger.jaxrs.config.BeanConfig; -import io.swagger.jaxrs.listing.ApiListingResource; - -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.openo.carbon.bpel.common.Config; -import org.openo.carbon.bpel.common.ServiceRegistrer; -import org.openo.carbon.bpel.resources.BpsPackage; -import org.openo.carbon.bpel.resources.BpsProcess; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonInclude; - - - -public class Wso2BpelApplication extends Application<Wso2BpelConfiguration> { - private static final Logger LOGGER = LoggerFactory.getLogger(Wso2BpelApplication.class); - private static final String API_RESOURCE = "org.openo.carbon.bpel.resources"; - - public static void main(String[] args) throws Exception { - new Wso2BpelApplication().run(args); - } - - - @Override - public String getName() { - return "hello-wso2bpel"; - } - - @Override - public void initialize(Bootstrap<Wso2BpelConfiguration> bootstrap) { - bootstrap.setConfigurationSourceProvider(new SubstitutingSourceProvider( - bootstrap.getConfigurationSourceProvider(), new EnvironmentVariableSubstitutor(false))); - // binding jar static resource - bootstrap.addBundle(new AssetsBundle("/api-doc", "/api-doc", "index.html", "api-doc")); - } - - private void initService() { - Thread registerWso2bpelService = new Thread(new ServiceRegistrer()); - registerWso2bpelService.setName("register wso2bpel service to Microservice Bus"); - registerWso2bpelService.start(); - } - - - - @Override - public void run(Wso2BpelConfiguration configuration, Environment environment) { - environment.jersey().register(MultiPartFeature.class); - environment.jersey().register(new BpsPackage()); - environment.jersey().register(new BpsProcess()); - // init Swagger conf - initSwaggerConfig(environment, configuration); - Config.setConfigration(configuration); - initService(); - } - - private void initSwaggerConfig(Environment environment, Wso2BpelConfiguration configuration) { - // register swagger scan class - environment.jersey().register(new ApiListingResource()); - environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); - - BeanConfig config = new BeanConfig(); - config.setTitle(configuration.getApiDescription()); - config.setVersion("1.0"); - config.setResourcePackage(API_RESOURCE); - - // read rootPath config from yml - SimpleServerFactory simpleServerFactory = - (SimpleServerFactory) configuration.getServerFactory(); - String basePath = simpleServerFactory.getApplicationContextPath(); - String rootPath = simpleServerFactory.getJerseyRootPath(); - - // set basepath for rest api - rootPath = rootPath.substring(0, rootPath.indexOf("/*")); - basePath = basePath.equals("/") ? rootPath - : (new StringBuilder()).append(basePath).append(rootPath).toString(); - - LOGGER.info("getApplicationContextPath:" + basePath); - config.setBasePath(basePath); - config.setScan(true); - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelConfiguration.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelConfiguration.java deleted file mode 100644 index 953a919..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/Wso2BpelConfiguration.java +++ /dev/null @@ -1,200 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel; - -import io.dropwizard.Configuration; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.dropwizard.db.DataSourceFactory; -import org.hibernate.validator.constraints.NotEmpty; - -import javax.validation.Valid; -import javax.validation.constraints.NotNull; - -public class Wso2BpelConfiguration extends Configuration { - @NotEmpty - private String template; - @NotEmpty - private String apiDescription = "Wso2bps REST API"; - @NotNull - private DataSourceFactory database = new DataSourceFactory(); - - @NotEmpty - private String msbServerAddr; - - @NotEmpty - private String wso2Host; - - @NotEmpty - private String wso2HostPort; - - @NotEmpty - private String wso2AuthUserName; - - @NotEmpty - private String wso2AuthPassword; - - @NotEmpty - private String wso2Path; - - @NotEmpty - private String wso2UploadFilePath; - - @NotEmpty - private String wso2SslJksFile; - - @NotEmpty - private String wso2SslJksPassword; - - @Valid - private String serviceIp; - - @JsonProperty - public String getTemplate() { - return template; - } - - @JsonProperty - public String getApiDescription() { - return apiDescription; - } - - @JsonProperty("database") - public DataSourceFactory getDataSourceFactory() { - return database; - } - - @JsonProperty - public DataSourceFactory getDatabase() { - return database; - } - - @JsonProperty - public void setDatabase(DataSourceFactory database) { - this.database = database; - } - - @JsonProperty - public String getMsbServerAddr() { - return msbServerAddr; - } - - @JsonProperty - public void setMsbServerAddr(String msbServerAddr) { - this.msbServerAddr = msbServerAddr; - } - - @JsonProperty - public String getWso2Host() { - return wso2Host; - } - - @JsonProperty - public void setWso2Host(String wso2Host) { - this.wso2Host = wso2Host; - } - - @JsonProperty - public String getWso2HostPort() { - return wso2HostPort; - } - - @JsonProperty - public void setWso2HostPort(String wso2HostPort) { - this.wso2HostPort = wso2HostPort; - } - - @JsonProperty - public String getWso2AuthUserName() { - return wso2AuthUserName; - } - - @JsonProperty - public void setWso2AuthUserName(String wso2AuthUserName) { - this.wso2AuthUserName = wso2AuthUserName; - } - - @JsonProperty - public String getWso2AuthPassword() { - return wso2AuthPassword; - } - - @JsonProperty - public void setWso2AuthPassword(String wso2AuthPassword) { - this.wso2AuthPassword = wso2AuthPassword; - } - - @JsonProperty - public String getWso2Path() { - return wso2Path; - } - - @JsonProperty - public void setWso2Path(String wso2Path) { - if (wso2Path.startsWith("/") == false) { - this.wso2Path = System.getProperty("WSO2_EXT_HOME") + "/" + wso2Path; - } else { - this.wso2Path = wso2Path; - } - } - - @JsonProperty - public String getWso2UploadFilePath() { - return wso2UploadFilePath; - } - - @JsonProperty - public void setWso2UploadFilePath(String wso2UploadFilePath) { - if (wso2UploadFilePath.startsWith("/") == false) { - this.wso2UploadFilePath = System.getProperty("WSO2_EXT_HOME") + "/" + wso2UploadFilePath; - } else { - this.wso2UploadFilePath = wso2UploadFilePath; - } - } - - @JsonProperty - public String getWso2SslJksFile() { - return wso2SslJksFile; - } - - @JsonProperty - public void setWso2SslJksFile(String wso2SslJksFile) { - if (wso2SslJksFile.startsWith("/") == false) { - this.wso2SslJksFile = System.getProperty("WSO2_EXT_HOME") + "/" + wso2SslJksFile; - } else { - this.wso2SslJksFile = wso2SslJksFile; - } - } - - @JsonProperty - public String getWso2SslJksPassword() { - return wso2SslJksPassword; - } - - @JsonProperty - public void setWso2SslJksPassword(String wso2SslJksPassword) { - this.wso2SslJksPassword = wso2SslJksPassword; - } - - @JsonProperty - public String getServiceIp() { - return serviceIp; - } - - @JsonProperty - public void setServiceIp(String serviceIp) { - this.serviceIp = serviceIp; - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/Config.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/Config.java deleted file mode 100644 index f3e83cf..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/Config.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.common; - -import org.openo.carbon.bpel.Wso2BpelConfiguration; - -public class Config { - private static Wso2BpelConfiguration configration; - - public static Wso2BpelConfiguration getConfigration() { - return configration; - } - - public static void setConfigration(Wso2BpelConfiguration config) { - configration = config; - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/ServiceRegistrer.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/ServiceRegistrer.java deleted file mode 100644 index 03d88aa..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/common/ServiceRegistrer.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.common; - -import org.openo.carbon.bpel.externalservice.entity.ServiceRegisterEntity; -import org.openo.carbon.bpel.externalservice.msb.MicroserviceBusConsumer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ServiceRegistrer implements Runnable { - private static final Logger LOG = LoggerFactory.getLogger(ServiceRegistrer.class); - private final ServiceRegisterEntity wso2bpelEntity = new ServiceRegisterEntity(); - - public ServiceRegistrer() { - initServiceEntity(); - } - - @Override - public void run() { - LOG.info("start wso2bpelEntity microservice register"); - boolean flag = false; - int retry = 0; - while (!flag && retry < 1000) { - LOG.info("wso2bpel microservice register.retry:" + retry); - retry++; - flag = MicroserviceBusConsumer.registerService(wso2bpelEntity); - if (flag == false) { - LOG.warn("microservice register failed, sleep 30S and try again."); - threadSleep(30000); - } else { - LOG.info("microservice register success!"); - break; - } - } - LOG.info("wso2bpel microservice register end."); - } - - private void threadSleep(int second) { - LOG.info("start sleep ...."); - try { - Thread.sleep(second); - } catch (InterruptedException error) { - LOG.error("thread sleep error.errorMsg:" + error.getMessage()); - } - LOG.info("sleep end ."); - } - - private void initServiceEntity() { - wso2bpelEntity.setServiceName("wso2bpel"); - wso2bpelEntity.setProtocol("REST"); - wso2bpelEntity.setVersion("v1"); - wso2bpelEntity.setUrl("/openoapi/wso2bpel/v1"); - wso2bpelEntity.setSingleNode(Config.getConfigration().getServiceIp(), "8101", 0); - wso2bpelEntity.setVisualRange("1"); - } - -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceNode.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceNode.java deleted file mode 100644 index 5f0d3bb..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceNode.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.externalservice.entity; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@JsonIgnoreProperties(ignoreUnknown = true) -public class ServiceNode { - private String ip; - private String port; - private int ttl; -} - diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceRegisterEntity.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceRegisterEntity.java deleted file mode 100644 index 3dd336d..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/entity/ServiceRegisterEntity.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.externalservice.entity; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.ArrayList; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@JsonIgnoreProperties(ignoreUnknown = true) -public class ServiceRegisterEntity { - private String serviceName; - private String version; - private String url; - private String protocol; - private String visualRange; - private ArrayList<ServiceNode> nodes = new ArrayList<ServiceNode>(); - - /** - * set service entity. - * - * @param ip node ip. can be null - * @param port service port - * @param ttl service survival time - */ - public void setSingleNode(String ip, String port, int ttl) { - ServiceNode node = new ServiceNode(); - if (ip != null && ip.length() > 0) { - node.setIp(ip); - } else { - node.setIp(null); - } - node.setPort(port); - node.setTtl(ttl); - nodes.add(node); - } - -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusConsumer.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusConsumer.java deleted file mode 100644 index b5086e8..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusConsumer.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.externalservice.msb; - -import com.eclipsesource.jaxrs.consumer.ConsumerFactory; - -import org.glassfish.jersey.client.ClientConfig; -import org.openo.carbon.bpel.common.Config; -import org.openo.carbon.bpel.externalservice.entity.ServiceRegisterEntity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - - - -public class MicroserviceBusConsumer { - private static final Logger LOG = LoggerFactory.getLogger(MicroserviceBusConsumer.class); - - /** - * @param entity service entity - * @return register service to msb success return true, else return false. - */ - public static boolean registerService(ServiceRegisterEntity entity) { - ClientConfig config = new ClientConfig(); - try { - MicroserviceBusRest resourceserviceproxy = ConsumerFactory.createConsumer( - Config.getConfigration().getMsbServerAddr(), config, MicroserviceBusRest.class); - resourceserviceproxy.registerServce("false", entity); - } catch (Exception error) { - LOG.error("microservice register failed!" + error.getMessage()); - return false; - } - return true; - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusRest.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusRest.java deleted file mode 100644 index 83a6941..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/externalservice/msb/MicroserviceBusRest.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.externalservice.msb; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; - -import org.openo.carbon.bpel.externalservice.entity.ServiceRegisterEntity; - - - - -@Path("/openoapi/microservices/v1/services") -// @Path("/api/microservices/v1/services") -public interface MicroserviceBusRest { - @Path("") - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public ServiceRegisterEntity registerServce(@QueryParam("createOrUpdate") String createOrUpdate, - ServiceRegisterEntity entity)throws Exception; -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsPackage.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsPackage.java deleted file mode 100644 index e11c1eb..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsPackage.java +++ /dev/null @@ -1,632 +0,0 @@ -/** - * Copyright 2016-2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.resources; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.atomic.AtomicLong; - -import javax.activation.DataHandler; -import javax.activation.DataSource; -import javax.activation.FileDataSource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.QueryParam; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.axis2.AxisFault; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.client.Options; -import org.apache.axis2.rpc.client.RPCServiceClient; -import org.apache.axis2.transport.http.HTTPConstants; -import org.apache.axis2.transport.http.HttpTransportProperties; -import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator; -import org.apache.commons.io.FileUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.glassfish.jersey.media.multipart.FormDataContentDisposition; -import org.glassfish.jersey.media.multipart.FormDataMultiPart; -import org.glassfish.jersey.media.multipart.FormDataParam; -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; -import org.wso2.carbon.bpel.stub.upload.types.UploadedFileItem; -import org.openo.carbon.bpel.common.Config; -import org.openo.carbon.bpel.util.JsonUtil; -import org.openo.carbon.bpel.util.Xml2JsonUtil; - -import com.codahale.metrics.annotation.Timed; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; - -@Path("/") -@Api(tags = {"wso2 bpel api"}) -public class BpsPackage { - - private static final Log log = LogFactory.getLog(BpsPackage.class); - - public static final int STATUS_SUCCESS = 1; - public static final int STATUS_FAIL = 0; - /** - * 无错误 - */ - public static final int ERROR_CODE_NOERROR = 0; - /** - * 不支持的文件类型 - */ - public static final int ERROR_CODE_PACKAGE_UNSUPPORED_FILE = 10001; - /** - * 同名的包正在操作中 - */ - public static final int ERROR_CODE_PACKAGE_STATUS_BUSY = 10002; - /** - * 包名重复 - */ - public static final int ERROR_CODE_PACKAGE_DUPLICATED_NAME = 10003; - /** - * 未获取到包部署的信息 - */ - public static final int ERROR_CODE_PACKAGE_DEPLOY_INFORMATION_IS_LOST = 10004; - /** - * 卸载包失败 - */ - public static final int ERROR_CODE_PACKAGE_UNDEPLOY_FAILED = 10005; - /** - * 包不存在 - */ - public static final int ERROR_CODE_PACKAGE_NOTEXISTS = 10006; - /** - * 服务运行时异常 - */ - public static final int ERROR_CODE_RUNTIME_EXCEPTION = 20001; - /** - * Axis运行时异常 - */ - public static final int ERROR_CODE_RUNTIME_EXCEPTION_AXIS = 20002; - /** - * IO运行时异常 - */ - public static final int ERROR_CODE_RUNTIME_EXCEPTION_IO = 20003; - - public static Set<String> packageNameSet = new HashSet<String>(); - - private Map<String, String> configMap = null; - - @SuppressWarnings("unused") - private final AtomicLong counter; - - public BpsPackage() { - this.counter = new AtomicLong(); - } - - private synchronized String getConfig(String key) { - if (configMap == null) { - configMap = new HashMap<String, String>(); - String uploadFilePath = Config.getConfigration().getWso2UploadFilePath(); - String jksFile = Config.getConfigration().getWso2SslJksFile(); - String trustStorePassword = Config.getConfigration().getWso2SslJksPassword(); - String httpUsername = Config.getConfigration().getWso2AuthUserName(); - String httpPassword = Config.getConfigration().getWso2AuthPassword(); - String host = Config.getConfigration().getWso2Host(); - String port = Config.getConfigration().getWso2HostPort(); - configMap.put("uploadFilePath", uploadFilePath); - configMap.put("jksFile", jksFile); - configMap.put("trustStorePassword", trustStorePassword); - configMap.put("httpUsername", httpUsername); - configMap.put("httpPassword", httpPassword); - configMap.put("host", host); - configMap.put("port", port); - } - if (configMap.containsKey(key)) { - return configMap.get(key); - } else { - return ""; - } - } - - public static boolean lockPackageName(String packageName) { - boolean succeed = false; - synchronized (packageNameSet) { - if (!packageNameSet.contains(packageName)) { - packageNameSet.add(packageName); - succeed = true; - } - } - return succeed; - } - - public static boolean unlockPackageName(String packageName) { - boolean succeed = false; - synchronized (packageNameSet) { - if (packageNameSet.contains(packageName)) { - packageNameSet.remove(packageName); - succeed = true; - } - } - return succeed; - } - - @POST - @Path(value = "package") - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(value = MediaType.APPLICATION_JSON) - @ApiOperation(value = "package process", response = Map.class) - @Timed - public Map<String, Object> uploadFile(@FormDataParam("filename") String filename, - @FormDataParam("file") InputStream fileInputStream, - @FormDataParam("file") FormDataContentDisposition fileDetail, - @Context HttpServletRequest request, @Context HttpServletResponse response) - throws IOException { - Map<String, Object> map = new LinkedHashMap<String, Object>(); - String errorMessage = "unkown"; - int errorCode = ERROR_CODE_NOERROR; - - String fileName = fileDetail.getFileName(); - String fullName = getConfig("uploadFilePath") + "/" + fileName; - File file = new File(fullName); - String packageName = null; - try { - if (fileName.endsWith(".zip")) { - packageName = fileName.substring(0, fileName.length() - 4); - } else { - errorCode = ERROR_CODE_PACKAGE_UNSUPPORED_FILE; - throw new Exception("Only support *.zip file."); - } - if (!lockPackageName(packageName)) { - errorCode = ERROR_CODE_PACKAGE_STATUS_BUSY; - throw new Exception("Package " + packageName + " is operating."); - } - FileUtils.copyInputStreamToFile(fileInputStream, file); - System.setProperty("javax.net.ssl.trustStore", "*.keystore"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.trustStore", getConfig("jksFile")); - System.setProperty("javax.net.ssl.trustStorePassword", getConfig("trustStorePassword")); - - HttpTransportProperties.Authenticator authenticator = - new HttpTransportProperties.Authenticator(); - List<String> auth = new ArrayList<String>(); - auth.add(Authenticator.BASIC); - authenticator.setAuthSchemes(auth); - authenticator.setUsername(getConfig("httpUsername")); - authenticator.setPassword(getConfig("httpPassword")); - authenticator.setPreemptiveAuthentication(true); - - map.putAll(bpsDeployPackage(fileName, fullName, packageName, authenticator)); - map.put("status", STATUS_SUCCESS); - map.put("message", "success"); - return map; - } catch (AxisFault e) { - errorMessage = e.getLocalizedMessage(); - errorCode = ERROR_CODE_RUNTIME_EXCEPTION_AXIS; - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (IOException e) { - errorMessage = e.getLocalizedMessage(); - errorCode = ERROR_CODE_RUNTIME_EXCEPTION_IO; - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Throwable e) { - errorMessage = e.getLocalizedMessage(); - if (e instanceof BpsServiceException) { - errorCode = ((BpsServiceException) e).getErrorCode(); - } else { - errorCode = ERROR_CODE_RUNTIME_EXCEPTION; - } - log.error(e.getMessage(), e); - e.printStackTrace(); - } finally { - if (packageName != null) { - unlockPackageName(packageName); - } - } - map.put("errorCode", errorCode); - map.put("status", STATUS_FAIL); - map.put("message", errorMessage); - return map; - } - - @SuppressWarnings("rawtypes") - private Map<String, Object> bpsDeployPackage(String fileName, String fullName, String packageName, - HttpTransportProperties.Authenticator authenticator) - throws JsonParseException, JsonMappingException, IOException, AxisFault, Exception { - Map<String, Object> map = new HashMap<String, Object>(); - Map deployedPackageInfoMap = getDeployedPackageInfo(authenticator, packageName, ""); - if (deployedPackageInfoMap.get("packageName") != null) { - throw new BpsServiceException(ERROR_CODE_PACKAGE_DUPLICATED_NAME,"Package " + deployedPackageInfoMap.get("packageName") - + " exist, please undeploy it first."); - } - OMElement element = deployPackage(fileName, fullName, authenticator); - System.out.println(Xml2JsonUtil.xml2JSON(element.toString())); - - long timeout = 60 * 1000L; - long timeStart = System.currentTimeMillis(); - while (System.currentTimeMillis() - timeStart < timeout) { - deployedPackageInfoMap = getDeployedPackageInfo(authenticator, packageName, ""); - if (deployedPackageInfoMap.get("packageName") == null) { - Thread.sleep(2000); - } else { - break; - } - } - if (deployedPackageInfoMap.get("packageName") == null) { - throw new BpsServiceException(ERROR_CODE_PACKAGE_DEPLOY_INFORMATION_IS_LOST, - "Package " + packageName + " deploy failed or deploy information is lost."); - } - map.put("packageName", deployedPackageInfoMap.get("packageName")); - map.put("processId", deployedPackageInfoMap.get("pid")); - return map; - } - - private OMElement deployPackage(String fileName, String fullName, - HttpTransportProperties.Authenticator authenticator) throws AxisFault { - String url = - "https://" + getConfig("host") + ":" + getConfig("port") + "/services/BPELUploader?wsdl"; - RPCServiceClient serviceClient = new RPCServiceClient(); - EndpointReference targetEPR = new EndpointReference(url); - Options options = serviceClient.getOptions(); - options.setTo(targetEPR); - options.setAction("urn:uploadService"); - options.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(300000)); - options.setProperty(HTTPConstants.AUTHENTICATE, authenticator); - serviceClient.setOptions(options); - - QName qname = new QName("http://services.deployer.bpel.carbon.wso2.org", "uploadService"); - UploadedFileItem fileItem = new UploadedFileItem(); - fileItem.setFileName(fileName); - fileItem.setFileType("zip"); - - DataSource dataSource = new FileDataSource(fullName); - fileItem.setDataHandler(new DataHandler(dataSource)); - UploadedFileItem[] parameters = new UploadedFileItem[] {fileItem}; - OMElement element = serviceClient.invokeBlocking(qname, parameters); - return element; - } - - @Path(value = "package/{packageName}") - @DELETE - @Produces(value = MediaType.APPLICATION_JSON) - @ApiOperation(value = "delete", response = Map.class) - @Timed - public Map<String, Object> delete(@PathParam("packageName") String packageName, - @Context HttpServletRequest request) { - Map<String, Object> map = new LinkedHashMap<String, Object>(); - String errorMessage = "unkown"; - int errorCode = ERROR_CODE_NOERROR; - try { - if (!lockPackageName(packageName)) { - throw new Exception("Package " + packageName + " is operating."); - } - System.setProperty("javax.net.ssl.trustStore", "*.keystore"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.trustStore", getConfig("jksFile")); - System.setProperty("javax.net.ssl.trustStorePassword", getConfig("trustStorePassword")); - - HttpTransportProperties.Authenticator authenticator = - new HttpTransportProperties.Authenticator(); - List<String> auth = new ArrayList<String>(); - auth.add(Authenticator.BASIC); - authenticator.setAuthSchemes(auth); - authenticator.setUsername(getConfig("httpUsername")); - authenticator.setPassword(getConfig("httpPassword")); - authenticator.setPreemptiveAuthentication(true); - - map.putAll(bpsUndeployPackage(packageName, authenticator)); - - return map; - } catch (AxisFault e) { - errorMessage = e.getLocalizedMessage(); - errorCode = ERROR_CODE_RUNTIME_EXCEPTION_AXIS; - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Throwable e) { - errorMessage = e.getLocalizedMessage(); - if (e instanceof BpsServiceException) { - errorCode = ((BpsServiceException) e).getErrorCode(); - } else { - errorCode = ERROR_CODE_RUNTIME_EXCEPTION; - } - log.error(e.getMessage(), e); - e.printStackTrace(); - } finally { - if (packageName != null) { - unlockPackageName(packageName); - } - } - map.put("errorCode", errorCode); - map.put("status", STATUS_FAIL); - map.put("message", errorMessage); - return map; - } - - @SuppressWarnings({"rawtypes", "unused"}) - private Map<String, Object> bpsUndeployPackage(String packageName, - HttpTransportProperties.Authenticator authenticator) - throws JsonParseException, JsonMappingException, IOException, AxisFault, Exception { - Map<String, Object> map = new HashMap<String, Object>(); - Map deployedPackageInfoMap = getDeployedPackageInfo(authenticator, packageName, ""); - if (deployedPackageInfoMap.get("packageName") == null) { - throw new BpsServiceException(ERROR_CODE_PACKAGE_NOTEXISTS,"Package " + deployedPackageInfoMap.get("packageName") - + " does not exist, please deploy it first."); - } - OMElement element = undeployPackage(authenticator, packageName); - deployedPackageInfoMap = getDeployedPackageInfo(authenticator, packageName, ""); - if (deployedPackageInfoMap.get("packageName") != null) { - throw new BpsServiceException(ERROR_CODE_PACKAGE_UNDEPLOY_FAILED, - "Package " + deployedPackageInfoMap.get("packageName") + " undeploy failed."); - } - map.put("status", STATUS_SUCCESS); - map.put("message", "success"); - - return map; - } - - private OMElement undeployPackage(HttpTransportProperties.Authenticator authenticator, - String packageName) throws AxisFault { - String url = "https://" + getConfig("host") + ":" + getConfig("port") - + "/services/BPELPackageManagementService?wsdl"; - RPCServiceClient serviceClient = new RPCServiceClient(); - EndpointReference targetEPR = new EndpointReference(url); - Options options = serviceClient.getOptions(); - options.setTo(targetEPR); - options.setAction("sch:undeployBPELPackage"); - options.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(300000)); - options.setProperty(HTTPConstants.AUTHENTICATE, authenticator); - serviceClient.setOptions(options); - OMFactory fac = OMAbstractFactory.getOMFactory(); - OMNamespace omNs = fac.createOMNamespace("http://wso2.org/bps/management/schema", "sch"); - OMElement method = fac.createOMElement("undeployBPELPackage", omNs); - OMElement content = fac.createOMElement("package", omNs); - content.addChild(fac.createOMText(content, packageName)); - method.addChild(content); - method.build(); - OMElement res = serviceClient.sendReceive(method); - return res; - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - private Map getFullDeployedPackageInfo(HttpTransportProperties.Authenticator authenticator, - String packageName, String page) throws Exception { - String result; - String jsonTemplate = - "{'listDeployedPackagesPaginated':{'page':'${page}','packageSearchString':'${searchString}'}}"; - Map jsonParamMap = new HashMap(); - jsonParamMap.put("page", page); - jsonParamMap.put("searchString", packageName); - Object params = getParams(jsonTemplate, jsonParamMap); - result = BpsProcess.invokeWsdl("https://" + getConfig("host") + ":" + getConfig("port") - + "/services/BPELPackageManagementService?wsdl", params, authenticator); - Map<String, Object> processMap = JsonUtil.json2Bean(result, Map.class); - return processMap; - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - private Map getDeployedPackageInfo(HttpTransportProperties.Authenticator authenticator, - String packageName, String page) throws Exception { - Map resultMap = new HashMap(); - Map<String, Object> processMap = getFullDeployedPackageInfo(authenticator, packageName, page); - Object packages = ((Map) processMap.get("deployedPackagesPaginated")).get("package"); - Map deployedPackage = null; - if (packages instanceof List) { - for (Iterator iter = ((List) packages).iterator(); iter.hasNext();) { - Map packageMap = (Map) iter.next(); - String deployedPackageName = (String) packageMap.get("name"); - if (deployedPackageName.equals(packageName)) { - deployedPackage = packageMap; - break; - } - } - } else if (packages instanceof Map) { - String deployedPackageName = (String) ((Map) packages).get("name"); - if (deployedPackageName.equals(packageName)) { - deployedPackage = (Map) packages; - } - } - if (deployedPackage != null) { - String fullPackageName = null; - String pid = null; - Object versions = ((Map) deployedPackage.get("versions")).get("version"); - Map lastestVersion = null; - if (versions instanceof List) { - for (Iterator iter = ((List) versions).iterator(); iter.hasNext();) { - Map version = (Map) iter.next(); - if (version.get("isLatest").equals("true")) { - lastestVersion = version; - } - } - } else if (versions instanceof Map) { - lastestVersion = (Map) versions; - } - fullPackageName = (String) ((Map) ((Map) lastestVersion.get("processes")).get("process")) - .get("packageName"); - pid = (String) ((Map) ((Map) lastestVersion.get("processes")).get("process")).get("pid"); - resultMap.put("packageName", fullPackageName); - resultMap.put("pid", pid); - } - return resultMap; -} - - - @SuppressWarnings({"rawtypes", "unchecked"}) - public static Map<String, Object> getParams(String jsonTemplate, Map<String, Object> paramMap) - throws JsonParseException, JsonMappingException, IOException { - String json = jsonTemplate.replaceAll("'", "\""); - for (Iterator iter = paramMap.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - String value = ""; - if (paramMap.get(key) != null) { - value = paramMap.get(key).toString().replaceAll("\"", "\\\\\""); - } - json = json.replaceAll("\\$\\{" + key + "\\}", value); - } - return JsonUtil.json2Bean(json, Map.class); - } - - @GET - @Path(value = "listPackages") - @Produces(value = MediaType.APPLICATION_JSON) - @ApiOperation(value = "list packages", response = Map.class) - @Timed - public Map<String, Object> listPackages(@QueryParam("page") String page, - @QueryParam("searchString") String searchString, @Context HttpServletRequest request) - throws IOException { - Map<String, Object> map = new LinkedHashMap<String, Object>(); - String errorMessage = "unkown"; - int errorCode = ERROR_CODE_NOERROR; - String packageName = null; - try { - System.setProperty("javax.net.ssl.trustStore", "*.keystore"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.trustStore", getConfig("jksFile")); - System.setProperty("javax.net.ssl.trustStorePassword", getConfig("trustStorePassword")); - - HttpTransportProperties.Authenticator authenticator = - new HttpTransportProperties.Authenticator(); - List<String> auth = new ArrayList<String>(); - auth.add(Authenticator.BASIC); - authenticator.setAuthSchemes(auth); - authenticator.setUsername(getConfig("httpUsername")); - authenticator.setPassword(getConfig("httpPassword")); - authenticator.setPreemptiveAuthentication(true); - - map.putAll(getFullDeployedPackageInfo(authenticator,searchString,page)); - - map.put("status", STATUS_SUCCESS); - map.put("message", "success"); - return map; - } catch (AxisFault e) { - errorMessage = e.getLocalizedMessage(); - errorCode = ERROR_CODE_RUNTIME_EXCEPTION_AXIS; - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (IOException e) { - errorMessage = e.getLocalizedMessage(); - errorCode = ERROR_CODE_RUNTIME_EXCEPTION_IO; - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Throwable e) { - if (e instanceof BpsServiceException) { - errorCode = ((BpsServiceException) e).getErrorCode(); - } else { - errorCode = ERROR_CODE_RUNTIME_EXCEPTION; - } - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } finally { - if (packageName != null) { - unlockPackageName(packageName); - } - } - map.put("errorCode", errorCode); - map.put("status", STATUS_FAIL); - map.put("message", errorMessage); - return map; - } - - @SuppressWarnings("rawtypes") - public static void main(String[] args) { - try { - - boolean remoteDebug = true; - boolean localDebug = false; - if (remoteDebug) { - Client client = ClientBuilder.newBuilder().register(MultiPartFeature.class).build(); - WebTarget target = client.target("http://localhost:8101/openoapi/wso2bpel/v1/package"); - FileDataBodyPart bodyPart = new FileDataBodyPart("file", - new File("F:\\wso2bps-3.5.1\\wso2bps-3.5.1\\repository\\samples\\bpel\\Alarm.zip")); - FormDataMultiPart formDataMultiPart = new FormDataMultiPart(); - formDataMultiPart.field("fileName", "Alarm.zip").bodyPart(bodyPart); - String result = target.request(MediaType.APPLICATION_JSON) - .post(Entity.entity(formDataMultiPart, formDataMultiPart.getMediaType()), String.class); - System.out.println(result); - } - // - // System.out.println("************************************************************************"); - // - // bodyPart = new FileDataBodyPart("file", new - // File("D:\\temp\\bpel-sample\\AssignDate\\AssignDate.zip")); - // formDataMultiPart = new FormDataMultiPart(); - // formDataMultiPart.field("fileName", - // "AssignDate.zip").bodyPart(bodyPart); - // result = target.request(MediaType.APPLICATION_JSON) - // .post(Entity.entity(formDataMultiPart, - // formDataMultiPart.getMediaType()), String.class); - // System.out.println(result); - // - if (localDebug) { - System.setProperty("javax.net.ssl.trustStore", "*.keystore"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.trustStore", - "D:\\software\\WSO2\\wso2bps-3.5.1\\repository\\resources\\security\\wso2carbon.jks"); - System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon"); - HttpTransportProperties.Authenticator authenticator = - new HttpTransportProperties.Authenticator(); - List<String> auth = new ArrayList<String>(); - auth.add(Authenticator.BASIC); - authenticator.setAuthSchemes(auth); - authenticator.setUsername("admin"); - authenticator.setPassword("admin"); - authenticator.setPreemptiveAuthentication(true); - // - // String packageName = "RESTProcess"; - // Map deployedPackageInfoMap = - // getDeployedPackageInfo(authenticator, packageName); - - BpsPackage packageTest = new BpsPackage(); - Map map; - // map = packageTest.bpsUndeployPackage("AssignDate", - // authenticator); - // System.out.println(JsonUtil.bean2Json(map)); - map = packageTest.bpsDeployPackage("AssignDate.zip", - "D:\\temp\\bpel-sample\\AssignDate\\AssignDate.zip", "AssignDate", authenticator); - System.out.println(JsonUtil.bean2Json(map)); - map = packageTest.bpsUndeployPackage("AssignDate", authenticator); - System.out.println(JsonUtil.bean2Json(map)); - } - - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsProcess.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsProcess.java deleted file mode 100644 index 148e309..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsProcess.java +++ /dev/null @@ -1,544 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.resources; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.atomic.AtomicLong; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMAttribute; -import org.apache.axiom.om.OMDocument; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.axiom.om.OMText; -import org.apache.axiom.om.OMXMLBuilderFactory; -import org.apache.axiom.om.OMXMLParserWrapper; -import org.apache.axiom.om.util.StAXParserConfiguration; -import org.apache.axis2.AxisFault; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.client.Options; -import org.apache.axis2.client.ServiceClient; -import org.apache.axis2.rpc.client.RPCServiceClient; -import org.apache.axis2.transport.http.HTTPConstants; -import org.apache.axis2.transport.http.HttpTransportProperties; -import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.openo.carbon.bpel.common.Config; -import org.openo.carbon.bpel.util.JsonUtil; -import org.openo.carbon.bpel.util.SoapUtil; -import org.openo.carbon.bpel.util.Xml2JsonUtil; - -import com.codahale.metrics.annotation.Timed; -import com.eviware.soapui.model.iface.MessagePart; -import com.eviware.soapui.model.iface.Request; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; - -@Path("/") -@Api(tags = {"wso2 bpel api"}) -public class BpsProcess { - - private static final Log log = LogFactory.getLog(BpsProcess.class); - - public static final int STATUS_SUCCESS = 1; - public static final int STATUS_FAIL = 0; - - private Map<String, String> configMap = null; - - @SuppressWarnings("unused") - private final AtomicLong counter; - - public BpsProcess() { - this.counter = new AtomicLong(); - } - - private synchronized String getConfig(String key) { - if (configMap == null) { - configMap = new HashMap<String, String>(); - //Config.getConfigration().getMsbServerAddr(); - /* String uploadFilePath = ConfigManager.getInstance().getProperty("wso2.uploadfile.path"); - String jksFile = ConfigManager.getInstance().getProperty("wso2.ssl.jks.file"); - String trustStorePassword = - ConfigManager.getInstance().getProperty("wso2.ssl.trustStorePassword"); - String httpUsername = - ConfigManager.getInstance().getProperty("wso2.http.authenticator.username"); - String httpPassword = - ConfigManager.getInstance().getProperty("wso2.http.authenticator.password"); - String host = ConfigManager.getInstance().getProperty("wso2.host"); - String port = ConfigManager.getInstance().getProperty("wso2.http.port");*/ - String uploadFilePath = Config.getConfigration().getWso2UploadFilePath(); - String jksFile = Config.getConfigration().getWso2SslJksFile(); - String trustStorePassword = Config.getConfigration().getWso2SslJksPassword(); - String httpUsername = Config.getConfigration().getWso2AuthUserName(); - String httpPassword = Config.getConfigration().getWso2AuthPassword(); - String host = Config.getConfigration().getWso2Host(); - String port = Config.getConfigration().getWso2HostPort(); - configMap.put("uploadFilePath", uploadFilePath); - configMap.put("jksFile", jksFile); - configMap.put("trustStorePassword", trustStorePassword); - configMap.put("httpUsername", httpUsername); - configMap.put("httpPassword", httpPassword); - configMap.put("host", host); - configMap.put("port", port); - } - if (configMap.containsKey(key)) { - return configMap.get(key); - } else { - return ""; - } - } - - @SuppressWarnings("unchecked") - @POST - @Path("process/instance") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(value = MediaType.APPLICATION_JSON) - @ApiOperation(value = "startProcess", response = Map.class) - @Timed - public Map<String, Object> startProcess(JsonNode jsonObj, @Context HttpServletRequest request) { - Map<String, Object> map = new LinkedHashMap<String, Object>(); - String errorMessage = "unkown"; - - Map<String, Object> paramMap = new HashMap<String, Object>(); - try { - paramMap = JsonUtil.json2Bean(jsonObj.toString(), Map.class); - String processId = (String) paramMap.get("processId"); - - Object params = paramMap.get("params"); - - String wsdlUrl = getWsdlUrl(processId); - String response = invokeWsdl(wsdlUrl, params); - - map.put("status", STATUS_SUCCESS); - map.put("message", "success"); - // map.put("wsdl", wsdlUrl); - map.put("response", response); - return map; - } catch (JsonParseException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (JsonMappingException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (IOException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Exception e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } - - map.put("status", STATUS_FAIL); - map.put("message", errorMessage); - return map; - } - - public static String invokeWsdl(String wsdlUrl, Object params) throws Exception { - return invokeWsdl(wsdlUrl, params, null); - } - - @SuppressWarnings({"unused", "rawtypes"}) - public static String invokeWsdl(String wsdlUrl, Object params, - HttpTransportProperties.Authenticator authenticator) throws Exception { - SoapUtil soapUtil = new SoapUtil(); - Request[] requestTemplates = soapUtil.getRequestTemplate(wsdlUrl); - String requestTemplate = null; - Request invokeRequest = null; - for (Request requestXML : requestTemplates) { - - InputStream is = new ByteArrayInputStream(requestXML.getRequestContent().getBytes()); - OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder( - OMAbstractFactory.getOMFactory(), StAXParserConfiguration.STANDALONE, is); - OMElement root = builder.getDocumentElement(); - OMDocument omDocument = builder.getDocument(); - Iterator iter = omDocument.getChildren(); - OMElement bodyElement = null; - while (iter.hasNext()) { - OMElement node = (OMElement) iter.next(); - String nodeName = node.getLocalName(); - if (nodeName.equals("Envelope")) { - Iterator envChildren = node.getChildElements(); - while (envChildren.hasNext()) { - Object childNode = envChildren.next(); - if (childNode instanceof OMElement) { - if (((OMElement) childNode).getLocalName().equals("Body")) { - bodyElement = (OMElement) childNode; - } - } - } - } - } - Set<String> paramSet = new HashSet<String>(); - Iterator bodyIter = bodyElement.getChildElements(); - while (bodyIter.hasNext()) { - Object obj = bodyIter.next(); - OMElement requestBody = (OMElement) obj; - paramSet.add(requestBody.getLocalName()); - } - if (params instanceof Map) { - Set paramKeySet = ((Map) params).keySet(); - boolean matched = true; - for (Object key : paramKeySet) { - if (!paramSet.contains(key)) { - matched = false; - continue; - } - } - if (matched) { - invokeRequest = requestXML; - requestTemplate = requestXML.getRequestContent(); - break; - } - } - } - if (requestTemplate == null) { - throw new Exception("Invalid param."); - } - - InputStream is = new ByteArrayInputStream(requestTemplate.getBytes()); - OMXMLParserWrapper builder = OMXMLBuilderFactory - .createOMBuilder(OMAbstractFactory.getOMFactory(), StAXParserConfiguration.STANDALONE, is); - OMElement root = builder.getDocumentElement(); - OMDocument omDocument = builder.getDocument(); - Iterator iter = omDocument.getChildren(); - OMElement bodyElement = null; - while (iter.hasNext()) { - OMElement node = (OMElement) iter.next(); - String nodeName = node.getLocalName(); - if (nodeName.equals("Envelope")) { - Iterator envChildren = node.getChildElements(); - while (envChildren.hasNext()) { - Object childNode = envChildren.next(); - if (childNode instanceof OMElement) { - if (((OMElement) childNode).getLocalName().equals("Body")) { - bodyElement = (OMElement) childNode; - } - } - } - } - } - - Options options = new Options(); - EndpointReference targetEPR = new EndpointReference(wsdlUrl); - options.setTo(targetEPR); - if (authenticator != null) { - options.setProperty(HTTPConstants.AUTHENTICATE, authenticator); - } - ServiceClient sender = new ServiceClient(); - sender.setOptions(options); - OMFactory factory = OMAbstractFactory.getOMFactory(); - OMElement requestBody = null; - Iterator bodyIter = bodyElement.getChildElements(); - while (bodyIter.hasNext()) { - Object obj = bodyIter.next(); - requestBody = (OMElement) obj; - } - - // Iterator requestBodyIter = requestBody.getChildElements(); - setParams(requestBody, params); - - requestBody.build(); - OMElement result = null; - boolean needResponse = false; - try { - MessagePart[] parts = invokeRequest.getResponseParts(); - if (parts != null && parts.length > 0) { - needResponse = true; - } - } catch (RuntimeException e) { - e.printStackTrace(); - } catch (Throwable e) { - e.printStackTrace(); - } - if (needResponse) { - result = sender.sendReceive(requestBody); - return Xml2JsonUtil.xml2JSON(result.toString()); - } else { - sender.sendRobust(requestBody); - return ""; - } - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - private static void setParams(OMElement requestBody, Object params) { - Object currentParams = null; - if (params instanceof Map) { - currentParams = ((Map) params).get((requestBody).getLocalName()); - Object obj = requestBody.getFirstElement(); - if (obj == null) { - if (currentParams instanceof String) { - requestBody.setText((String) currentParams); - } - } else { - Iterator<OMElement> iter = requestBody.getChildElements(); - while (iter.hasNext()) { - OMElement child = iter.next(); - setParams((OMElement) child, currentParams); - } - } - } - } - - @SuppressWarnings("unchecked") - public String getWsdlUrl(String pid) { - log.warn("rest begin..."); - String wsdlUrl = null; - try { - System.setProperty("javax.net.ssl.trustStore", "*.keystore"); - - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - - System.setProperty("javax.net.ssl.trustStore", getConfig("jksFile")); - System.setProperty("javax.net.ssl.trustStorePassword", getConfig("trustStorePassword")); - - String url = "https://" + getConfig("host") + ":" + getConfig("port") - + "/services/ProcessManagementService?wsdl"; - RPCServiceClient serviceClient = new RPCServiceClient(); - EndpointReference targetEPR = new EndpointReference(url); - Options options = serviceClient.getOptions(); - options.setTo(targetEPR); - // options.setAction("sch:undeployBPELPackage"); - - options.setProperty(HTTPConstants.SO_TIMEOUT, new Integer(300000)); - HttpTransportProperties.Authenticator authenticator = - new HttpTransportProperties.Authenticator(); - List<String> auth = new ArrayList<String>(); - auth.add(Authenticator.BASIC); - authenticator.setAuthSchemes(auth); - authenticator.setUsername(getConfig("httpUsername")); - authenticator.setPassword(getConfig("httpPassword")); - authenticator.setPreemptiveAuthentication(true); - options.setProperty(HTTPConstants.AUTHENTICATE, authenticator); - - serviceClient.setOptions(options); - - OMFactory fac = OMAbstractFactory.getOMFactory(); - OMNamespace omNs = fac.createOMNamespace("http://wso2.org/bps/management/schema", "sch"); - - OMElement method = fac.createOMElement("getProcessInfoIn", omNs); - QName pidQName = QName.valueOf(pid); - OMElement pidElement = fac.createOMElement("pid", omNs); - - pidElement.addChild(fac.createOMText(pidElement, pidQName)); - method.addChild(pidElement); - - method.build(); - - OMElement res = serviceClient.sendReceive(method); - res.getFirstElement().getText(); - - // System.out.println(JsonUtil.bean2Json(parse(res))); - - Iterator<OMElement> iter = res.getChildrenWithLocalName("endpoints"); - if (iter.hasNext()) { - OMElement endPoints = (OMElement) iter.next(); - Iterator<OMElement> endPointIter = endPoints.getChildrenWithLocalName("endpointRef"); - if (endPointIter.hasNext()) { - OMElement endpointRef = (OMElement) endPointIter.next(); - Iterator<OMElement> endpointRefIter = - endpointRef.getChildrenWithLocalName("serviceLocations"); - if (endpointRefIter.hasNext()) { - OMElement serviceLocations = (OMElement) endpointRefIter.next(); - Iterator<OMElement> serviceLocationsIter = - serviceLocations.getChildrenWithLocalName("serviceLocation"); - while (serviceLocationsIter.hasNext()) { - OMElement serviceLocation = (OMElement) serviceLocationsIter.next(); - String sUrl = serviceLocation.getText(); - if (sUrl.endsWith("wsdl")) { - wsdlUrl = sUrl; - break; - } - } - } - } - } - - } catch (AxisFault e) { - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Throwable e) { - log.error(e.getMessage(), e); - e.printStackTrace(); - } finally { - log.warn("invoke finally..."); - } - return wsdlUrl; - } - - @SuppressWarnings({"unused", "rawtypes", "unchecked"}) - private Map parse(OMElement node) { - Map resultMap = new HashMap(); - Iterator attrIter = node.getAllAttributes(); - while (attrIter.hasNext()) { - OMAttribute attr = (OMAttribute) attrIter.next(); - resultMap.put(attr.getLocalName(), attr.getAttributeValue()); - } - boolean hasChild = false; - List<Map> childList = new ArrayList<Map>(); - Iterator childIter = node.getChildren();// getChildElements(); - while (childIter.hasNext()) { - hasChild = true; - Object child = childIter.next(); - if (child instanceof OMText) { - resultMap.put(node.getLocalName(), ((OMText) child).getText()); - } else if (child instanceof OMElement) { - childList.add(parse((OMElement) child)); - resultMap.put(node.getLocalName(), childList); - } - } - return resultMap; - } - - public static void main1(String[] args) { - Client client = ClientBuilder.newBuilder().register(MultiPartFeature.class).build(); - WebTarget target = client.target("http://127.0.0.1:8080/wso2bpel/v1/process/instance"); - String jsonObj = - "{\"processId\":\"{http://ode/bpel/unit-test}HelloWorld2-18\",\"params\": {\"hello\":{\"TestPart\":\"AAA\"}}}"; - Response response = target.request(MediaType.APPLICATION_JSON) - .post(Entity.entity(jsonObj, MediaType.APPLICATION_JSON)); - int responseCode = response.getStatus(); - if (responseCode == 200) { - String excuteRespJson = response.readEntity(String.class); - // context.setExcuteRespJson(excuteRespJson); - // System.out.println("excute responseJson=====" + - // context.getExcuteRespJson()); - System.out.println(excuteRespJson); - } - - System.out.println("************************************************************************"); - jsonObj = - "{\"processId\":\"{http://ode/bpel/unit-test}HelloWorld2-18\",\"params\": {\"hello\":{\"TestPart\":\"AAA\"}}}"; - BpsProcess process = new BpsProcess(); - try { - Map<String, Object> resultMap = process.startProcess(JsonUtil.getJsonNode(jsonObj), null); - System.out.println(JsonUtil.bean2Json(resultMap)); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("************************************************************************"); - jsonObj = - "{\"processId\":\"{http://ode/bpel/unit-test}HelloXslWorld-3\",\"params\": {\"helloXsl\":{\"TestPart\":{\"content\":\"AAA\"}}}}"; - process = new BpsProcess(); - try { - Map<String, Object> resultMap = process.startProcess(JsonUtil.getJsonNode(jsonObj), null); - System.out.println(JsonUtil.bean2Json(resultMap)); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("************************************************************************"); - jsonObj = - "{\"processId\":\"{http://wso2.org/bps/samples/While}While-5\",\"params\": {\"WhileRequest\":{\"input\":\"365\"}}}"; - process = new BpsProcess(); - try { - Map<String, Object> resultMap = process.startProcess(JsonUtil.getJsonNode(jsonObj), null); - System.out.println(JsonUtil.bean2Json(resultMap)); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } catch (IOException e) { - } - - } - - @SuppressWarnings("unchecked") - public static void main(String[] args) { - - Map<String, Object> map = new LinkedHashMap<String, Object>(); - String errorMessage = "unkown"; - - Map<String, Object> paramMap = new HashMap<String, Object>(); - try { - String param = - "{\"planInput\":{\"sfc_count\":\"2\",\"nsInstanceId\":\"223\",\"vnfmId\":\"112\",\"instanceId\":\"334\",\"object_context\":\"{\\\"e\\\":{\\\"f\\\":\\\"4\\\"}}\",\"vnf_count\":\"2\",\"serviceTemplateId\":\"?\",\"vl_count\":\"2\",\"containerapiUrl\":\"?\",\"object_additionalParamForVnf\":\"[{\\\"b\\\":1},{\\\"c\\\":{\\\"d\\\":\\\"2\\\"}}}]\",\"object_additionalParamForNs\":\"[{\\\"a\\\":3},{\\\"e\\\":{\\\"f\\\":\\\"4\\\"}}}]\"}}"; - String jsonObj = - "{\"processId\":\"{http://wso2.org/bps/samples/While}While-5\",\"params\":" + param + "}"; - paramMap = JsonUtil.json2Bean(jsonObj.toString(), Map.class); - Object params = paramMap.get("params"); - String wsdlUrl = "http://10.74.151.36:9763/services/initService?wsdl"; - String response = invokeWsdl(wsdlUrl, params); - map.put("status", STATUS_SUCCESS); - map.put("message", "success"); - map.put("response", response); - System.out.println(JsonUtil.bean2Json(map)); - } catch (JsonParseException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (JsonMappingException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (IOException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } catch (Exception e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } - - map.put("status", STATUS_FAIL); - map.put("message", errorMessage); - try { - System.out.println(JsonUtil.bean2Json(map)); - } catch (IOException e) { - errorMessage = e.getLocalizedMessage(); - log.error(e.getMessage(), e); - e.printStackTrace(); - } - - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsServiceException.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsServiceException.java deleted file mode 100644 index bd05a95..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/BpsServiceException.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2017 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.resources; - -public class BpsServiceException extends Exception { - - int errorCode = 0; - - public int getErrorCode() { - return errorCode; - } - - public BpsServiceException(int errorCode, String message) { - super(message); - this.errorCode = errorCode; - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/RestAppConfig.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/RestAppConfig.java deleted file mode 100644 index b81fbe9..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/resources/RestAppConfig.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.resources; - -import javax.ws.rs.ApplicationPath; - -import org.glassfish.jersey.filter.LoggingFilter; -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.glassfish.jersey.server.ResourceConfig; - -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; - -@ApplicationPath("/v1") -public class RestAppConfig extends ResourceConfig { - - public RestAppConfig() { - packages("org.wso2.carbon.bpel.rest.ext.v1"); - register(JacksonJsonProvider.class); - register(MultiPartFeature.class); - // register(MultiPartResource.class); - register(LoggingFilter.class); - } - -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/ClientWsdlLoader.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/ClientWsdlLoader.java deleted file mode 100644 index 70a9588..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/ClientWsdlLoader.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.util; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.net.URL; -import org.apache.log4j.Logger; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.httpclient.methods.GetMethod; - -import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader; - -public class ClientWsdlLoader extends WsdlLoader { - private static Logger logger = Logger.getLogger(ClientWsdlLoader.class); - - private boolean isAborted = false; - private HttpClient httpClient; - - public ClientWsdlLoader(String url, HttpClient httpClient) { - super(url); - this.httpClient = httpClient; - } - - public InputStream load(String url) throws Exception { - GetMethod httpGetMethod; - - if (url.startsWith("file")) { - return new URL(url).openStream(); - } - - // Authentication is not being overridden on the method. It needs - // to be present on the supplied HttpClient instance! - httpGetMethod = new GetMethod(url); - httpGetMethod.setDoAuthentication(true); - - try { - int result = httpClient.executeMethod(httpGetMethod); - - if (result != HttpStatus.SC_OK) { - if (result < 200 || result > 299) { - throw new HttpException( - "Received status code '" + result + "' on WSDL HTTP (GET) request: '" + url + "'."); - } else { - logger.warn( - "Received status code '" + result + "' on WSDL HTTP (GET) request: '" + url + "'."); - } - } - - return new ByteArrayInputStream(httpGetMethod.getResponseBody()); - } finally { - httpGetMethod.releaseConnection(); - } - } - - public boolean abort() { - isAborted = true; - return true; - } - - public boolean isAborted() { - return isAborted; - } - - public void close() {} -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/JsonUtil.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/JsonUtil.java deleted file mode 100644 index f2a4d97..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/JsonUtil.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.util; - -import java.io.IOException; -import java.io.StringWriter; - -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class JsonUtil { - - @SuppressWarnings("deprecation") - public static String bean2Json(Object obj) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - StringWriter sw = new StringWriter(); - JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); - mapper.writeValue(gen, obj); - gen.close(); - return sw.toString(); - } - - public static <T> T json2Bean(String jsonStr, Class<T> objClass) - throws JsonParseException, JsonMappingException, IOException { - ObjectMapper mapper = new ObjectMapper(); - return mapper.readValue(jsonStr, objClass); - } - - @SuppressWarnings("deprecation") - public static <T> T readJson(String jsonStr, Class<?> collectionClass, Class<?>... elementClasses) - throws Exception { - ObjectMapper mapper = new ObjectMapper(); - JavaType javaType = - mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); - return mapper.readValue(jsonStr, javaType); - } - - public static JsonNode getJsonNode(String json) throws JsonProcessingException, IOException { - return new ObjectMapper().readTree(json); - } - -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/LRULinkedHashMap.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/LRULinkedHashMap.java deleted file mode 100644 index deb07c6..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/LRULinkedHashMap.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.util; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -/** - * - * @author bsli - * - * @param <K> - * @param <V> - */ -@SuppressWarnings("serial") -public class LRULinkedHashMap<K, V> extends LinkedHashMap<K, V> { - private final int maxCapacity; - - private static final float DEFAULT_LOAD_FACTOR = 0.75f; - - private final Lock lock = new ReentrantLock(); - - public LRULinkedHashMap(int maxCapacity) { - super(maxCapacity, DEFAULT_LOAD_FACTOR, true); - this.maxCapacity = maxCapacity; - } - - @Override - protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { - return size() > maxCapacity; - } - - @Override - public boolean containsKey(Object key) { - try { - lock.lock(); - return super.containsKey(key); - } finally { - lock.unlock(); - } - } - - @Override - public V get(Object key) { - try { - lock.lock(); - return super.get(key); - } finally { - lock.unlock(); - } - } - - @Override - public V put(K key, V value) { - try { - lock.lock(); - return super.put(key, value); - } finally { - lock.unlock(); - } - } - - public int size() { - try { - lock.lock(); - return super.size(); - } finally { - lock.unlock(); - } - } - - public void clear() { - try { - lock.lock(); - super.clear(); - } finally { - lock.unlock(); - } - } - - public Collection<Map.Entry<K, V>> getAll() { - try { - lock.lock(); - return new ArrayList<Map.Entry<K, V>>(super.entrySet()); - } finally { - lock.unlock(); - } - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/SoapUtil.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/SoapUtil.java deleted file mode 100644 index 6f7bf0d..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/SoapUtil.java +++ /dev/null @@ -1,156 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.util; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import javax.naming.ConfigurationException; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.log4j.Logger; - -import com.eviware.soapui.impl.wsdl.WsdlInterface; -import com.eviware.soapui.impl.wsdl.WsdlProject; -import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader; -import com.eviware.soapui.model.iface.Operation; -import com.eviware.soapui.model.iface.Request; - -public class SoapUtil { - private static final Logger log = Logger.getLogger(SoapUtil.class); - - private DocumentBuilderFactory docBuilderFactory; - private Map<String, WsdlInterface[]> wsdls = new LRULinkedHashMap<String, WsdlInterface[]>(256); - - public SoapUtil() { - docBuilderFactory = DocumentBuilderFactory.newInstance(); - docBuilderFactory.setNamespaceAware(true); - } - - public Request[] getRequestTemplate(String wsdlUrl) - throws UnsupportedOperationException, IOException { - Request[] requests = new Request[0]; - List<Request> requestList = new ArrayList<Request>(); - Operation operationInst = null; - WsdlInterface[] wsdlInterfaces = getWsdlInterfaces(wsdlUrl, null); - for (WsdlInterface wsdlInterface : wsdlInterfaces) { - Operation opr = wsdlInterface.getOperationAt(0); - if (opr != null) { - operationInst = opr; - String requestTemplate = operationInst.getRequestAt(0).getRequestContent(); - requestList.add(operationInst.getRequestAt(0)); - } - } - requests = requestList.toArray(new Request[0]); - return requests; - } - - /** - * - * @param wsdl - * @param operation - * @param httpClientProps - * @return - * @throws IOException - * @throws UnsupportedOperationException - */ - private Operation getOperation(String wsdl, String operation, Properties httpClientProps) - throws IOException, UnsupportedOperationException { - WsdlInterface[] wsdlInterfaces = getWsdlInterfaces(wsdl, httpClientProps); - for (WsdlInterface wsdlInterface : wsdlInterfaces) { - Operation operationInst = wsdlInterface.getOperationByName(operation); - - if (operationInst != null) { - return operationInst; - } - } - wsdls.remove(wsdl); - wsdlInterfaces = getWsdlInterfaces(wsdl, httpClientProps); - for (WsdlInterface wsdlInterface : wsdlInterfaces) { - Operation operationInst = wsdlInterface.getOperationByName(operation); - if (operationInst != null) { - return operationInst; - } - } - - throw new UnsupportedOperationException( - "Operation '" + operation + "' not supported by WSDL '" + wsdl + "'."); - } - - /** - * - * @param wsdl - * @param httpClientProps - * @return - * @throws IOException - */ - private WsdlInterface[] getWsdlInterfaces(String wsdl, Properties httpClientProps) - throws IOException { - try { - WsdlInterface[] wsdlInterfaces = wsdls.get(wsdl); - if (wsdlInterfaces == null) { - WsdlProject wsdlProject = new WsdlProject(); - WsdlLoader wsdlLoader = createWsdlLoader(wsdl, httpClientProps); - - wsdlInterfaces = wsdlProject.importWsdl(wsdl, true, wsdlLoader); - - wsdls.put(wsdl, wsdlInterfaces); - } - return wsdlInterfaces; - } catch (Exception e) { - e.printStackTrace(); - log.error(e.getMessage()); - throw new RuntimeException("Failed to import WSDL '" + wsdl + "'."); - } - } - - /** - * - * @param wsdl - * @param httpClientProps - * @return - * @throws ConfigurationException - */ - private WsdlLoader createWsdlLoader(String wsdl, Properties httpClientProps) - throws ConfigurationException { - HttpClient httpClient = new HttpClient(); - return new ClientWsdlLoader(wsdl, httpClient); - } - - public static void main(String[] args) { - SoapUtil soapUtil = new SoapUtil(); - - try { - String url = "http://10.74.151.36:9763/services/initService?wsdl"; - Request[] requestXMLs = soapUtil.getRequestTemplate(url); - - for (Request requestXML : requestXMLs) { - String requestJson = Xml2JsonUtil.xml2JSON(requestXML.getRequestContent()); - System.out.println("===================================="); - System.out.println(requestJson); - } - - } catch (UnsupportedOperationException e1) { - e1.printStackTrace(); - } catch (IOException e1) { - e1.printStackTrace(); - } - } -} diff --git a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/Xml2JsonUtil.java b/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/Xml2JsonUtil.java deleted file mode 100644 index 7f05a84..0000000 --- a/wso2bpel-ext/wso2bpel-core/wso2bpel-mgr/src/main/java/org/openo/carbon/bpel/util/Xml2JsonUtil.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Copyright 2016 ZTE Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openo.carbon.bpel.util; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.InputStream; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import net.sf.json.JSONObject; - -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.input.SAXBuilder; - -public class Xml2JsonUtil { - /** - * transform xml to json - * - * @param xml xml format string - * @return return json string when success; otherwise return null - */ - public static String xml2JSON(String xml) { - JSONObject obj = new JSONObject(); - try { - InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8")); - SAXBuilder sb = new SAXBuilder(); - Document doc = sb.build(is); - Element root = doc.getRootElement(); - obj.put(root.getName(), iterateElement(root)); - return obj.toString(); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * transform xml file to json string - * - * @param file java.io.File is an effective xml file - * @return return json string when success; otherwise return null - */ - public static String xml2JSON(File file) { - JSONObject obj = new JSONObject(); - try { - SAXBuilder sb = new SAXBuilder(); - Document doc = sb.build(file); - Element root = doc.getRootElement(); - obj.put(root.getName(), iterateElement(root)); - return obj.toString(); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * an iteration function - * - * @param parentElement : org.jdom.Element - * @return java.util.Map - */ - @SuppressWarnings({"unchecked", "rawtypes"}) - private static Map iterateElement(Element parentElement) { - List node = parentElement.getChildren(); - Element element = null; - Map map = new HashMap(); - List list = null; - for (int i = 0; i < node.size(); i++) { - element = (Element) node.get(i); - if (element.getTextTrim().equals("")) { - if (element.getChildren().size() == 0) - continue; - if (map.containsKey(element.getName())) { - Object obj = map.get(element.getName()); - if (obj instanceof Map) { - list = new LinkedList(); - list.add(obj); - list.add(iterateElement(element)); - map.remove(element.getName()); - map.put(element.getName(), list); - } else if (obj instanceof List) { - list = (List) obj; - list.add(iterateElement(element)); - } - } else { - map.put(element.getName(), iterateElement(element)); - } - } else { - map.put(element.getName(), element.getTextTrim()); - } - } - return map; - } - - public static void main(String[] args) { - System.out.println(Xml2JsonUtil.xml2JSON("<MapSet>" + "<MapGroup id='Sheboygan'>" + "<Map>" - + "<Type>MapGuideddddddd</Type>" + "<SingleTile>true</SingleTile>" + "<Extension>" - + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>" + "<Map>" + "<Type>ccc</Type>" - + "<SingleTile>ggg</SingleTile>" + "<Extension>" + "<ResourceId>aaa</ResourceId>" - + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>" + "<ddd>" + "33333333" - + "</ddd>" + "<ddd>" + "444" + "</ddd>" + "</MapSet>")); - - String xml = - "<body> <p:helloXsl xmlns:p=\"http://ode/bpel/unit-test.wsdl\"> <!--Exactly 1 occurrence--> <TestPart> <!--Exactly 1 occurrence--> <content>fdsafasdfasdf</content> </TestPart> </p:helloXsl></body>"; - - System.out.println(Xml2JsonUtil.xml2JSON(xml)); - - xml = - "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:unit=\"http://ode/bpel/unit-test.wsdl\"> <soapenv:Header/> <soapenv:Body> <unit:helloXsl> <TestPart> <content>?</content> </TestPart> </unit:helloXsl> </soapenv:Body></soapenv:Envelope>"; - - System.out.println(Xml2JsonUtil.xml2JSON(xml)); - - xml = - "<ns:uploadServiceResponse xmlns:ns=\"http://services.deployer.bpel.carbon.wso2.org\"><ns:return xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/></ns:uploadServiceResponse>"; - - System.out.println(Xml2JsonUtil.xml2JSON(xml)); - - xml = - "<body> <p:planInput xmlns:p=\"http://www.open-o.org/tosca/nfv/2015/12\"> <!--Exactly 1 occurrence--> <p:sfc_count>2</p:sfc_count> <!--Exactly 1 occurrence--> <p:iaUrl></p:iaUrl> <!--Exactly 1 occurrence--> <p:vnfmId>112</p:vnfmId> <!--Exactly 1 occurrence--> <p:object_context>{\"e\":{\"f\":\"4\"}}</p:object_context> <!--Exactly 1 occurrence--> <p:statusUrl></p:statusUrl> <!--Exactly 1 occurrence--> <p:serviceTemplateId>?</p:serviceTemplateId> <!--Exactly 1 occurrence--> <p:roUrl></p:roUrl> <!--Exactly 1 occurrence--> <p:vl_count>2</p:vl_count> <!--Exactly 1 occurrence--> <p:containerapiUrl>?</p:containerapiUrl> <!--Exactly 1 occurrence--> <p:flavor></p:flavor> <!--Exactly 1 occurrence--> <p:nsInstanceId>223</p:nsInstanceId> <!--Exactly 1 occurrence--> <p:instanceId>334</p:instanceId> <!--Exactly 1 occurrence--> <p:resourceUrl></p:resourceUrl> <!--Exactly 1 occurrence--> <p:vnf_count>2</p:vnf_count> <!--Exactly 1 occurrence--> <p:callbackId></p:callbackId> <!--Exactly 1 occurrence--> <p:object_additionalParamForVnf>[{\"b\":1},{\"c\":{\"d\":\"2\"}}}]</p:object_additionalParamForVnf> <!--Exactly 1 occurrence--> <p:object_additionalParamForNs>[{\"a\":3},{\"e\":{\"f\":\"4\"}}}]</p:object_additionalParamForNs> <!--Exactly 1 occurrence--> <p:flavorParams></p:flavorParams> </p:planInput></body>"; - - System.out.println(Xml2JsonUtil.xml2JSON(xml)); - } -} |