Skip to content

Commit 9905fed

Browse files
committed
Merge branch '449-introscope-property' into 3.x
2 parents 1f7695b + 94abd1b commit 9905fed

2 files changed

Lines changed: 53 additions & 32 deletions

File tree

lib/java_buildpack/framework/introscope_agent.rb

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,18 @@ def compile
3434
def release
3535
credentials = @application.services.find_service(FILTER)['credentials']
3636
java_opts = @droplet.java_opts
37-
java_opts.add_javaagent(@droplet.sandbox + 'Agent.jar')
38-
java_opts.add_system_property('com.wily.introscope.agentProfile',
39-
@droplet.sandbox + 'core/config/IntroscopeAgent.profile')
40-
41-
agent_host_name java_opts
42-
agent_name java_opts, credentials
43-
default_process_name java_opts
44-
host_name java_opts, credentials
45-
port java_opts, credentials
46-
ssl_socket_factory java_opts, credentials
37+
38+
java_opts
39+
.add_javaagent(agent_jar)
40+
.add_system_property('com.wily.introscope.agentProfile', agent_profile)
41+
.add_system_property('introscope.agent.hostName', agent_host_name)
42+
.add_system_property('com.wily.introscope.agent.agentName', agent_name(credentials))
43+
.add_system_property('introscope.agent.defaultProcessName', default_process_name)
44+
.add_system_property('introscope.agent.enterprisemanager.transport.tcp.host.DEFAULT', host_name(credentials))
45+
.add_system_property('agentManager.url.1', agent_manager(credentials))
46+
47+
add_port(credentials, java_opts)
48+
add_socket_factory(credentials, java_opts)
4749
end
4850

4951
protected
@@ -59,35 +61,55 @@ def supports?
5961

6062
private_constant :FILTER
6163

62-
def agent_host_name(java_opts)
63-
java_opts.add_system_property('introscope.agent.hostName', @application.details['application_uris'][0])
64+
def add_port(credentials, java_opts)
65+
port = port(credentials)
66+
java_opts.add_system_property('introscope.agent.enterprisemanager.transport.tcp.port.DEFAULT', port) if port
67+
end
68+
69+
def add_socket_factory(credentials, java_opts)
70+
return unless ssl?(credentials)
71+
java_opts.add_system_property('introscope.agent.enterprisemanager.transport.tcp.socketfactory.DEFAULT',
72+
'com.wily.isengard.postofficehub.link.net.SSLSocketFactory')
6473
end
6574

66-
def agent_name(java_opts, credentials)
67-
name = credentials['agent-name'] || @configuration['default_agent_name']
68-
java_opts.add_system_property('com.wily.introscope.agent.agentName', name.to_s)
75+
def agent_host_name
76+
@application.details['application_uris'][0]
6977
end
7078

71-
def default_process_name(java_opts)
72-
java_opts.add_system_property('introscope.agent.defaultProcessName', @application.details['application_name'])
79+
def agent_jar
80+
@droplet.sandbox + 'Agent.jar'
81+
end
82+
83+
def agent_manager(credentials)
84+
agent_manager = ssl?(credentials) ? 'https://' : 'http://'
85+
agent_manager += host_name(credentials)
86+
87+
port = port(credentials)
88+
port ? "#{agent_manager}:#{port}" : agent_manager
7389
end
7490

75-
def host_name(java_opts, credentials)
76-
host_name = credentials['host-name']
77-
raise "'host-name' credential must be set" unless host_name
78-
java_opts.add_system_property 'introscope.agent.enterprisemanager.transport.tcp.host.DEFAULT', host_name
91+
def agent_name(credentials)
92+
credentials['agent-name'] || @configuration['default_agent_name']
7993
end
8094

81-
def port(java_opts, credentials)
82-
port = credentials['port']
83-
java_opts.add_system_property 'introscope.agent.enterprisemanager.transport.tcp.port.DEFAULT', port if port
95+
def agent_profile
96+
@droplet.sandbox + 'core/config/IntroscopeAgent.profile'
8497
end
8598

86-
def ssl_socket_factory(java_opts, credentials)
87-
return unless credentials['ssl'].to_b
99+
def default_process_name
100+
@application.details['application_name']
101+
end
102+
103+
def host_name(credentials)
104+
credentials['host-name']
105+
end
106+
107+
def port(credentials)
108+
credentials['port']
109+
end
88110

89-
java_opts.add_system_property 'introscope.agent.enterprisemanager.transport.tcp.socketfactory.DEFAULT',
90-
'com.wily.isengard.postofficehub.link.net.SSLSocketFactory'
111+
def ssl?(credentials)
112+
credentials['ssl'].to_b
91113
end
92114

93115
end

spec/java_buildpack/framework/introscope_agent_spec.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@
5454
expect(sandbox + 'Agent.jar').to exist
5555
end
5656

57-
it 'raises error if host-name not specified' do
58-
expect { component.release }.to raise_error(/'host-name' credential must be set/)
59-
end
60-
6157
context do
6258

6359
let(:credentials) { { 'host-name' => 'test-host-name' } }
@@ -71,6 +67,7 @@
7167
expect(java_opts).to include('-Dintroscope.agent.defaultProcessName=test-application-name')
7268
expect(java_opts).to include('-Dintroscope.agent.hostName=test-application-uri-0')
7369
expect(java_opts).to include('-Dintroscope.agent.enterprisemanager.transport.tcp.host.DEFAULT=test-host-name')
70+
expect(java_opts).to include('-DagentManager.url.1=http://test-host-name')
7471
expect(java_opts).to include('-Dcom.wily.introscope.agent.agentName=$(expr "$VCAP_APPLICATION" : ' \
7572
'\'.*application_name[": ]*\\([A-Za-z0-9_-]*\\).*\')')
7673
end
@@ -92,6 +89,7 @@
9289
component.release
9390

9491
expect(java_opts).to include('-Dintroscope.agent.enterprisemanager.transport.tcp.port.DEFAULT=test-port')
92+
expect(java_opts).to include('-DagentManager.url.1=http://test-host-name:test-port')
9593
end
9694
end
9795

@@ -103,6 +101,7 @@
103101

104102
expect(java_opts).to include('-Dintroscope.agent.enterprisemanager.transport.tcp.socketfactory.DEFAULT=' \
105103
'com.wily.isengard.postofficehub.link.net.SSLSocketFactory')
104+
expect(java_opts).to include('-DagentManager.url.1=https://test-host-name')
106105
end
107106
end
108107
end

0 commit comments

Comments
 (0)