Thanks for detailed explanation. I'll update all BAM related components
(data-bridge, cassandra) to use the above CarbonUtil method to get the port
offset.

Thanks,
Sinthuja.


On Tue, Apr 2, 2013 at 3:38 PM, Afkham Azeez <[email protected]> wrote:

> 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*
>



-- 
*Sinthuja Rajendran*
Software Engineer <http://wso2.com/>
WSO2, Inc.:http://wso2.com

Blog: http://sinthu-rajan.blogspot.com/
Mobile: +94774273955
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to