Camel blueprint + karaf 企业总线架构
来源:互联网 发布:js防水涂料施工图集 编辑:程序博客网 时间:2024/05/21 06:25
代码片段(3)[全屏查看所有代码]
1. [代码]blueprint-context-netty-loadbalancer.xml
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<
blueprint
xmlns
=
"http://www.osgi.org/xmlns/blueprint/v1.0.0"
03
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
=
"http://www.springframework.org/schema/context"
04
xmlns:cm
=
"http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
05
xmlns:jaxws
=
"http://cxf.apache.org/blueprint/jaxws"
xmlns:camel
=
"http://camel.apache.org/schema/blueprint"
06
xsi:schemaLocation="
07
http://www.springframework.org/schema/beans
08
http://www.springframework.org/schema/beans/spring-beans.xsd
09
http://www.springframework.org/schema/context
10
http://www.springframework.org/schema/context/spring-context.xsd
11
http://www.osgi.org/xmlns/blueprint/v1.0.0
12
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
13
14
15
16
<
bean
id
=
"properties"
17
class
=
"org.apache.camel.component.properties.PropertiesComponent"
>
18
<
property
name
=
"location"
value
=
"file:${karaf.base}/deploy/camel-loadbalance.properties"
/>
19
<
bean
id
=
"service"
20
class
=
"cn.com.cardinfo.service.nocardpayment.action.PackageAction"
/>
21
<
bean
id
=
"logService"
class
=
"cn.com.cardinfo.service.nocardpayment.action.LogAction"
/>
22
<!-- open mq config -->
23
<
bean
id
=
"openmq"
class
=
"org.apache.camel.component.jms.JmsComponent"
>
24
<
property
name
=
"connectionFactory"
ref
=
"mqConnectionFactory"
/>
25
</
bean
>
26
<
bean
id
=
"mqConnectionFactory"
27
class
=
"cn.com.cardinfo.service.nocardpayment.jmsfactory.OpenMQConnectionFactory"
28
scope
=
"singleton"
>
29
<
property
name
=
"configuration"
>
30
<
props
>
31
<
prop
key
=
"imqAddressList"
>localhost:7676</
prop
>
32
<
prop
key
=
"imqDefaultPassword"
>admin</
prop
>
33
<
prop
key
=
"imqDefaultUsername"
>admin</
prop
>
34
<
prop
key
=
"imqAddressListBehavior"
>PRIORITY</
prop
>
35
</
props
>
36
</
property
>
37
</
bean
>
38
<
camelContext
xmlns
=
"http://camel.apache.org/schema/blueprint"
>
39
<
route
id
=
"tcpReceiver"
>
40
<
from
41
uri
=
"netty:tcp://{{balance.host}}:{{balance.port}}?textline=true&delimiter=NULL&noReplyLogLevel=ERROR"
/>
42
<
bean
ref
=
"service"
method
=
"createReport"
/>
43
<
to
uri
=
"direct:loadbalance"
/>
44
</
route
>
45
46
<
route
id
=
"JmsReceiver"
>
47
<
from
48
uri
=
"openmq:queue:{{queue}}?exchangePattern={{exchangePattern}}&replyTo={{replyTo}}&replyToType={{replyToType}}&concurrentConsumers={{concurrentConsumers}}&maxConcurrentConsumers={{maxConcurrentConsumers}}"
></
from
>
49
<
bean
ref
=
"service"
method
=
"createReport"
/>
50
<
to
uri
=
"direct:loadbalance"
/>
51
</
route
>
52
53
<
route
id
=
"loadbalancer"
>
54
<
from
uri
=
"direct:loadbalance"
/>
55
<
loadBalance
>
56
<
roundRobin
/>
57
<
camel:to
uri
=
"netty:tcp://{{node.host1}}:{{node.port1}}?sync=true"
/>
58
<
camel:to
uri
=
"netty:tcp://{{node.host2}}:{{node.port2}}?sync=true"
/>
59
</
loadBalance
>
60
<
bean
ref
=
"logService"
method
=
"log"
/>
61
<
log
message
=
"${body}"
/>
62
</
route
>
63
</
camelContext
>
64
</
blueprint
>
2. [代码][Java]代码
01
import
java.util.Properties;
02
03
import
javax.jms.JMSException;
04
05
import
com.sun.messaging.InvalidPropertyException;
06
import
com.sun.messaging.jmq.jmsclient.JMSXAQueueConnectionFactoryImpl;
07
08
public
class
OpenMQConnectionFactory
extends
JMSXAQueueConnectionFactoryImpl {
09
10
private
static
final
long
serialVersionUID = 1L;
11
private
Properties configuration;
12
13
public
void
setConfiguration(Properties configuration) {
14
this
.configuration = configuration;
15
}
16
17
/**
18
* Returns a single configuration property value given the property name.
19
*
20
* @param propname
21
* The name of the configuration property.
22
*
23
* @return The value of the configuration property <code>propname</code>.
24
*
25
* @exception InvalidPropertyException
26
* If an invalid property name is being requested. The
27
* Exception string is the name of the invalid property.
28
*/
29
@Override
30
public
String getProperty(String propname)
throws
JMSException {
31
if
(propname ==
null
) {
32
throw
new
InvalidPropertyException(propname);
33
}
34
// Convert JMQ prefix if present to imq prefix
35
if
((propname.length() >
3
) && (propname.startsWith(
"JMQ"
))) {
36
propname =
"imq"
+ propname.substring(
3
);
37
}
38
String propval = (String) configuration.get(propname);
39
if
(propval ==
null
) {
40
super
.getProperty(propname);
41
}
42
if
(propval ==
null
) {
43
throw
new
InvalidPropertyException(propname);
44
}
45
return
propval;
46
}
47
48
}
3. [代码]log conf
01
# Root logger
02
log4j.rootLogger=INFO, out, osgi:*
03
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
04
05
# To avoid flooding the log when using DEBUG level on an ssh connection and doing log:tail
06
log4j.logger.org.apache.sshd.server.channel.ChannelSession = INFO
07
08
# CONSOLE appender not used by default
09
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
10
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
11
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
12
13
# File appender
14
log4j.appender.out=org.apache.log4j.RollingFileAppender
15
log4j.appender.out.layout=org.apache.log4j.PatternLayout
16
log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
17
log4j.appender.out.file=${karaf.data}/log/karaf.log
18
log4j.appender.out.append=true
19
log4j.appender.out.maxFileSize=1MB
20
log4j.appender.out.maxBackupIndex=10
21
22
# Sift appender
23
log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
24
log4j.appender.sift.key=bundle.name
25
log4j.appender.sift.default=karaf
26
log4j.appender.sift.appender=org.apache.log4j.FileAppender
27
log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
28
log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
29
log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
30
log4j.appender.sift.appender.append=true
31
32
# nocard appender
33
log4j.appender.nocard=org.apache.log4j.RollingFileAppender
34
log4j.appender.nocard.layout=org.apache.log4j.PatternLayout
35
log4j.appender.nocard.layout.ConversionPattern=%d{ISO8601} | %-32.32C{1} | %m%n
36
log4j.appender.nocard.file=${karaf.data}/log/nocard.log
37
log4j.appender.nocard.append=true
38
39
# mpi appender
40
log4j.appender.mpi=org.apache.log4j.RollingFileAppender
41
log4j.appender.mpi.layout=org.apache.log4j.PatternLayout
42
log4j.appender.mpi.layout.ConversionPattern=%d{ISO8601} | %-32.32C{1} | %m%n
43
log4j.appender.mpi.file=${karaf.data}/log/mpi.log
44
log4j.appender.mpi.append=true
45
46
#Log nocardpayment commands to separate file
47
log4j.logger.cn.com.cardinfo.service.nocardpayment=INFO, nocard
48
log4j.additivity.cn.com.cardinfo.service.nocardpayment=false
49
50
#Log mpi commands to separate file
51
log4j.logger.mpi=INFO, mpi
52
log4j.additivity.mpi=false
- Camel blueprint + karaf 企业总线架构
- Camel-blueprint
- karaf-blueprint小例子
- Servicemix,Karaf和Camel
- Servicemix,Karaf和Camel
- Apache Camel http4 blueprint
- 企业服务总线架构介绍
- osgi+camel+karaf运行环境搭建(1)
- osgi+camel+karaf运行环境搭建(2)
- osgi + camel + karaf配置日志输出
- Karaf教程第7部分- Camel JPA和JTA事务
- Karaf教程第9部分基于注解的blueprint和JPA
- blueprint
- Blueprint
- BLUEPRINT
- blueprint
- Karaf教程第5部分-在OSGi中运行 Apache Camel集成
- 企业服务总线
- Cassandra数据分布和副本
- PHP安全设置
- 序列化泛型 反序列化JSON
- silverlight调用Geometry服务实现缓冲区
- Jsp与servlet的区别
- Camel blueprint + karaf 企业总线架构
- 抗1,倘若生活不顺天意,我死你们活
- jbpm流程设计之fork、join
- 利用反射将Datatable、SqlDataReader转换成List模型
- Windows server 2008 PHP环境搭建
- Serv-u安全设置
- android编译环境搭建的问题
- HTTpClient实现get方式下载
- {dede:php}生成一个随机整数