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