When defining any ports in Carbon, there is a recommended way of doing it.
Some time back, we decided that it should be possible for a user to change
all relevant ports from a single location. That is why we have the Ports
section in the carbon.xml file. Once you define a new port, it should be
overridable from the carbon.xml.
Here is the ports section
<Ports>
106
107 <!-- Ports offset. This entry will set the value of the ports
defined below to
108 the define value + Offset.
109 e.g. Offset=2 and HTTPS port=9443 will set the effective HTTPS
port to 9445
110 -->
111 <Offset>0</Offset>
112
113 <!-- The JMX Ports -->
114 <JMX>
115 <!--The port RMI registry is exposed-->
116 <RMIRegistryPort>9999</RMIRegistryPort>
117 <!--The port RMI server should be exposed-->
118 <RMIServerPort>11111</RMIServerPort>
119 </JMX>
120
121 <!-- Embedded LDAP server specific ports -->
122 <EmbeddedLDAP>
123 <!-- Port which embedded LDAP server runs -->
124 <LDAPServerPort>10389</LDAPServerPort>
125 <!-- Port which KDC (Kerberos Key Distribution Center)
server runs -->
126 <KDCServerPort>8000</KDCServerPort>
127 </EmbeddedLDAP>
128
129 <!-- Embedded Qpid broker ports -->
130 <EmbeddedQpid>
131 <!-- Broker TCP Port -->
132 <BrokerPort>5672</BrokerPort>
133 <!-- SSL Port -->
134 <BrokerSSLPort>8672</BrokerSSLPort>
135 </EmbeddedQpid>
136
137 <!--
138 Override datasources JNDIproviderPort defined in bps.xml
and datasources.properties files
139 -->
140 <!--<JNDIProviderPort>2199</JNDIProviderPort>-->
141 <!--Override receive port of thrift based entitlement
service.-->
142
<ThriftEntitlementReceivePort>10500</ThriftEntitlementReceivePort>
143
144 </Ports>
So, when these ports are defined in the relevant file, you are supposed to
use the keys, e.g. JMX.RMIRegistryPort is defined in the jmx.xml file,
instead of a hard coded port. Now you have to use the below CarbonUtil
method to get the proper port along with the portOffset.
Here is the relevant method in CarbonUtils.
/**
* This is to read the port values defined in other config files,
which are overridden
* from those in carbon.xml.
* @param property
* @return
*/
public static int getPortFromServerConfig(String property) {
String port;
int portNumber = -1;
int indexOfStartingChars = -1;
int indexOfClosingBrace;
ServerConfiguration serverConfiguration =
ServerConfiguration.getInstance();
// The following condition deals with ports specified to be
read from carbon.xml.
// Ports are specified as templates: eg
${Ports.EmbeddedLDAP.LDAPServerPort},
if (indexOfStartingChars < property.indexOf("${") &&
(indexOfStartingChars = property.indexOf("${")) != -1 &&
(indexOfClosingBrace = property.indexOf('}')) != -1) { //
Is this template used?
String portTemplate = property.substring(indexOfStartingChars + 2,
indexOfClosingBrace);
port = serverConfiguration.getFirstProperty(portTemplate);
if (port != null) {
portNumber = Integer.parseInt(port);
}
}
String portOffset = System.getProperty("portOffset",
serverConfiguration.getFirstProperty("Ports.Offset"));
//setting up port offset properties as system global property
which allows this
//to available at the other context as required (fix 2011-11-30)
System.setProperty("portOffset", portOffset);
return portOffset == null? portNumber : portNumber +
Integer.parseInt(portOffset);
}
On Tue, Apr 2, 2013 at 3:31 PM, Afkham Azeez <[email protected]> wrote:
> Port offset has to be obtained from the CarbonUtil class. There is a
> method there. If you use that standard method, it will always give the
> correct portOffset. This is what the well-behaved components have used.
>
> Azeez
>
>
> On Tue, Apr 2, 2013 at 3:28 PM, Sinthuja Ragendran <[email protected]>wrote:
>
>> I tested the BAM 2.2.0 with -DportOffset and seems like only http and
>> https ports are getting changed when starting with -DportOffset and thrift
>> port, cassandra port, etc is not getting changed.
>>
>> After further digging into the code, I see we are getting the port
>> offset from ServerConfigurationService which is set as OSGI service and
>> that is not returning the correct offset value. Is there anything wrong
>> here?
>>
>> Thanks,
>> Sinthuja.
>>
>>
>> On Tue, Apr 2, 2013 at 2:47 PM, Afkham Azeez <[email protected]> wrote:
>>
>>> $subject
>>>
>>> Looks like we are forced to edit the carbon.xml file and set the offset.
>>> Is this crrect? If so why has this platform best practice not been followed?
>>>
>>> --
>>> *Afkham Azeez*
>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>> Member; Apache Software Foundation; http://www.apache.org/
>>> * <http://www.apache.org/>**
>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>> *
>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>> *
>>> *
>>> *Lean . Enterprise . Middleware*
>>>
>>
>>
>>
>> --
>> *Sinthuja Rajendran*
>> Software Engineer <http://wso2.com/>
>> WSO2, Inc.:http://wso2.com
>>
>> Blog: http://sinthu-rajan.blogspot.com/
>> Mobile: +94774273955
>>
>>
>>
>
>
> --
> *Afkham Azeez*
> Director of Architecture; WSO2, Inc.; http://wso2.com
> Member; Apache Software Foundation; http://www.apache.org/
> * <http://www.apache.org/>**
> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
> *
> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
> *
> *
> *Lean . Enterprise . Middleware*
>
--
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>**
email: **[email protected]* <[email protected]>* cell: +94 77 3320919
blog: **http://blog.afkham.org* <http://blog.afkham.org>*
twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
*
linked-in: **http://lk.linkedin.com/in/afkhamazeez*
*
*
*Lean . Enterprise . Middleware*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev