Yes, you have to create a different account [1].
Afterwards you can create an enhancement request at [2].
And as you may know, we love contributions [3]. Feel free to attach your
proposed solution which should include unit tests.
And helping out with the documentation is also welcome [4].

[1] https://issues.apache.org/jira/secure/Dashboard.jspa
[2] https://issues.apache.org/jira/browse/CAMEL
[3] http://camel.apache.org/contributing.html
[4] http://camel.apache.org/how-do-i-edit-the-website.html

Best,
Christian
-----------------

Software Integration Specialist

Apache Camel committer: https://camel.apache.org/team
V.P. Apache Camel: https://www.apache.org/foundation/
Apache Member: https://www.apache.org/foundation/members.html

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Fri, Aug 16, 2013 at 6:59 PM, cartoondog <cartoon...@hotmail.com> wrote:

> Hi Chris,
>
> Do I have to create another account to log in ASF JIRA?  My user id here
> cannot log in ASF JIRA.
>
> After looking into the source code, I found that we can add support to
> Vendor Specific Optional Parameter
> by adding some codes in the AbstractSmppCommand class like below.  Please
> correct me if I am wrong.
>
>    @SuppressWarnings("rawtypes")
>     protected List<OptionalParameter> createOptionalParameters(Map<String,
> String> optinalParamaters) {
>         List<OptionalParameter> optParams = new
> ArrayList<OptionalParameter>();
>
>         for (Entry<String, String> entry : optinalParamaters.entrySet()) {
>             OptionalParameter optParam = null;
>
>             try {
>
> //add a checking to distinguish Vendor Specfic Optional Parameter
> //from other static defined optional parameters
>
>                 if
> (((String)entry.getKey()).equals.("VENDOR_SPECFIC_OPTIONAL_PARAMETER"){
>                      optParam = generateVenderSpecificOptParam(entry) ;
>                 } else {
>                     Tag tag = Tag.valueOf(entry.getKey());
>                     Class type = determineTypeClass(tag);
>
>                     if (OctetString.class.equals(type)) {
>                       optParam = new
> OptionalParameter.OctetString(tag.code(), entry.getValue());
>                     } else if (COctetString.class.equals(type)) {
>                        optParam = new
> OptionalParameter.COctetString(tag.code(), entry.getValue());
>                     } else if
> (org.jsmpp.bean.OptionalParameter.Byte.class.equals(type)) {
>                        optParam = new OptionalParameter.Byte(tag.code(),
> Byte.valueOf(entry.getValue()));
>                     } else if
> (org.jsmpp.bean.OptionalParameter.Int.class.equals(type)) {
>                        optParam = new OptionalParameter.Int(tag.code(),
> Integer.valueOf(entry.getValue()));
>                     } else if
> (org.jsmpp.bean.OptionalParameter.Short.class.equals(type)) {
>                        optParam = new OptionalParameter.Short(tag.code(),
> Short.valueOf(entry.getValue()));
>                     } else if
> (org.jsmpp.bean.OptionalParameter.Null.class.equals(type)) {
>                       optParam = new OptionalParameter.Null(tag);
>                     }
>                 }
>                 optParams.add(optParam);
>             } catch (Exception e) {
>                 log.info("Couldn't determine optional parameter for key {}
> and value {}. Skip this one.", entry.getKey(), entry.getValue());
>             }
>         }
>
>         return optParams;
>     }
>
> /*
>    <p>Since it is vendor specified, so users must have the code and type,
>         therefore users should concatenate these information as a string
>         using a separator(":") and pass this in as the Entry's value
>    </p>
>    <p>Usage: Entry<String, String>
>                   String key must equal
> "VENDOR_SPECIFIC_OPTIONAL_PARAMETER"
>                   String value should be "code:type:param_value"
> */
>     protected OptionalParameter
> generateVendorSpecificOptParam(Entry<String,
> String> entry)
>           throws SecurityException, IllegalArgumentException,
> IllegalAccessException{
>
>           OptionalParameter optParam = null ;
>
>    //code must be in 4 character and can be parsed into a hex
>             String code = entry.getValue().substring(0,4) ;
>    //code must fall inside the ranges specified in SMPP 3.4 specification
>    //0x1400 - 0x3FFF
>             if ( !(code >= 0x1400 or code <= 0x3FFF)
>                  throw new IllegalArgumentException() ;
>
>   //type must be one of the defined Class and must be in uppercase
>
>             int pos2 = entry.getValue().indexOf(':', 5) ;
>             String type = entry.getValue().substring(5,pos2-1) ;
>             if ( type.equals("OCTETSTRING") ){
>                optParam = new OptionalParameter.OctetString(hexcode,
> entry.getValue().substring(pos2+1) ;
>             }else if (type.equals("COCTETSTRING") ) {
>                optParam = new OptionalParameter.COctetString(hexcode,
> entry.getValue().substring(pos2+1 );
>             }else if(type.equals("BYTE") ){
>                optParam = new OptionalParameter.Byte(hexcode,
> Byte.valueOf(entry.getValue().substring(pos2+1)));
>             }else if (type.equals("INT") ){
>                optParam = new OptionalParameter.Int(hexcode,
> Integer.valueOf(entry.getValue().substring(pos2+1)));
>             }else if (type.equals("SHORT") ) {
>                optParam = new OptionalParameter.Short(hexcode,
> Short.valueOf(entry.getValue().substring(pos2+1)));
>             }else if (type.equals("NULL") )
>                 optParam = new OptionalParameter.Null(tag);
>             }else
>                  throw new IllegualArgumentException() ;
>             }
>
>             return optParam ;
>       }
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/How-to-add-Vendor-Specific-Optional-Parameter-in-CamelSmppOptionalParameters-tp5737268p5737427.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to