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

Reply via email to