Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4F21D200C62 for ; Wed, 26 Apr 2017 22:29:37 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4C237160BA8; Wed, 26 Apr 2017 20:29:37 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4661416090A for ; Wed, 26 Apr 2017 22:29:36 +0200 (CEST) Received: (qmail 8678 invoked by uid 500); 26 Apr 2017 20:29:35 -0000 Mailing-List: contact user-help@uima.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@uima.apache.org Delivered-To: mailing list user@uima.apache.org Received: (qmail 8666 invoked by uid 99); 26 Apr 2017 20:29:35 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Apr 2017 20:29:35 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id AA2C5C18AA for ; Wed, 26 Apr 2017 20:29:34 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.897 X-Spam-Level: X-Spam-Status: No, score=-0.897 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id xDWsY_VyK3-9 for ; Wed, 26 Apr 2017 20:29:32 +0000 (UTC) Received: from mail-wr0-f169.google.com (mail-wr0-f169.google.com [209.85.128.169]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 90A475F1BA for ; Wed, 26 Apr 2017 20:29:32 +0000 (UTC) Received: by mail-wr0-f169.google.com with SMTP id l9so6297017wre.1 for ; Wed, 26 Apr 2017 13:29:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=pbPARBJN17aq8hcUnjDXqc9zs8P8LSgvsGXVMEgbXwI=; b=DLqBhqmmcJOReBPt3cmepkD+mbdyEZwW4qlic4TpvACEyZ0nggMs1/vvaLqPOUWmzj 4OtvL7/N/Q3D962Ozhyx23mH1Be6hHowFyEmEO44KsoPmdTA98XYmLguHvwx3G/E5bjp yDmzolxfVscO1zjFQrbe+Pod9VDa6dJlP/Gd+U2YPXzSg5FTYhUnEkvD7lg2hywqy5Fj LJFlAzRnEsJn4asztBBqm7eS/jvwWmw+O4aHirwJEZYpn8clA5zzIPOoqOXL4Qjot2FM ajHTtfEcET2quMGKZ7e+Ai61BZ7XjKgEl6sks1SoLs1suK4+qJcs4D6ORidx5SzIn3Dq f44Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=pbPARBJN17aq8hcUnjDXqc9zs8P8LSgvsGXVMEgbXwI=; b=g1CKUoGfnvQSRUdG8eOURk/QobJVFxy5AeGPMN6RBfXTMnJbpwEmA8cCLrSD55D99L x+vu5i1DJKrNIUCev0TE3fgLA2NfyLdGzi2SzpRpyLpBoFndty9taS0HDxeKbhXg+QaZ AXgXqhjgsX/u0LtKmbXnEeJjnwaXYEt0cKh4/XMYFRUS4kaNksf83v9eh33MdDDHqIZa D4BYVdnRVghCUKxthtGjKjHrzsWmnC+y5h345lh+ndVgw8Pau3Wl9g8PsfmTCe3VbUPR sOqdOjq6hcdnYZTu8MbDPQDkw7gCKpS9GTgDz3ZETTes791CCbOAmQljMsVpFvVIRZ8x Ngvw== X-Gm-Message-State: AN3rC/6D56EL9mWfL5JKvQETSdHFByoJ7n3tRDpq7otQ2mrx3Q87YTrQ WgAY6GTgpMxUsSMR+dhyt190rsYqzhE0 X-Received: by 10.223.151.216 with SMTP id t24mr1184159wrb.130.1493238571303; Wed, 26 Apr 2017 13:29:31 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?Sm9zw6kgVG9tw6FzIEF0cmlh?= Date: Wed, 26 Apr 2017 20:29:19 +0000 Message-ID: Subject: @ConfParam initialization of values from symbol name of static instance? To: "user@uima.apache.org" Content-Type: multipart/mixed; boundary=94eb2c1b5e0a9bace6054e17b20f archived-at: Wed, 26 Apr 2017 20:29:37 -0000 --94eb2c1b5e0a9bace6054e17b20f Content-Type: multipart/alternative; boundary=94eb2c1b5e0a9bacd8054e17b20d --94eb2c1b5e0a9bacd8054e17b20d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello all! I know that UIMA-FIT is capable of initializing enum-typed configuration parameters from a string equal to the name of one of the values in an enum class. i.e. this works as documented: public static enum SomeEnum { A_VALUE; } @ConfigurationParameter( name =3D "example", mandatory =3D false, defaultValue=3D"A_VALUE" ) private SomeEnum enumValue; However, I recently had to refactor one my enums into a normal class with static members, and I found that UIMA-FIT is equally capable of initializing these parameters from a string equal to the symbol of a class instance set up as a static member i.e. this also works: public static class SomeClass { public static final SomeClass A_VALUE =3D new SomeClass() } @ConfigurationParameter( name =3D "example", mandatory =3D false, defaultValue=3D"A_VALUE" ) private SomeClass classValue; Is this known behaviour? I tried stepping through the conf param initialization logic, but I got lost in the depths of Spring, and I get the feeling that this is basically a side-effect of spring's implementation of enum initialization details, which seems a little unreliable... Then again, enum types are basically immutable collections of class instances as static members, no? Is it reasonable to use this "feature"? if so, should it be mentioned in the documentation? I have attached a working example of what I mean if my explanation above doesn't make sense. Any comments would be welcome, I'm very curious to know why this works and whether it is reliable enough to be used in production... Thanks! jta ps: reposting from the abandoned uima-fit mailing list. Sorry for crossposting! --=20 sent from a phone. please excuse terseness and tpyos. enviado desde un tel=C3=A9fono. por favor disculpe la parquedad y los erroe= rs. --94eb2c1b5e0a9bacd8054e17b20d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello a= ll!

I know that UIMA-FIT is capable of initializing enum-typed configu= ration parameters from a string equal to the name of one of the values in a= n enum class.=C2=A0i.e. this works as documented:

public static enum SomeEnum {
=C2=A0 =C2=A0 A_VALUE;
}

@ConfigurationParameter( name =3D "example", mandatory= =3D false, defaultValue=3D"A_VALUE" )
private SomeEnum enumValue;

However, I recently had to refact= or one my enums into a normal class with static members, and I found that U= IMA-FIT is equally capable of initializing these parameters from a string e= qual to the symbol of a class instance set up as a static member i.e. this = also works:

public static class SomeClass {
=C2=A0 =C2=A0 public= static final SomeClass A_VALUE =3D new SomeClass()
}

@C= onfigurationParameter( name =3D "example", mandatory =3D false, d= efaultValue=3D"A_VALUE" )
private SomeClass classValue;

Is this know= n behaviour? I tried stepping through the conf param initialization logic, = but I got lost in the depths of Spring, and I get the feeling that this is = basically a side-effect of spring's implementation of enum initializati= on details, which seems a little unreliable... Then again, enum types are b= asically immutable collections of class instances as static members, no?

Is it reasonable t= o use this "feature"? if so, should it be mentioned in the docume= ntation?

I h= ave attached a working example of what I mean if my explanation above doesn= 't make sense.
<= br>
Any comments wou= ld be welcome, I'm very curious to know why this works and whether it i= s reliable enough to be used in production...

Thanks!
j= ta

ps: reposting from the abandoned uima-fit mailing list. Sorry for= crossposting!
--

sent from a phone. please excuse tersen= ess and tpyos.

enviado desde un tel=C3=A9fono. por favor disculpe la parque= dad y los erroers.

--94eb2c1b5e0a9bacd8054e17b20d-- --94eb2c1b5e0a9bace6054e17b20f Content-Type: text/x-java; charset=US-ASCII; name="demo.java" Content-Disposition: attachment; filename="demo.java" Content-Transfer-Encoding: base64 Content-ID: <15babf3ff042cbd1b4d1> X-Attachment-Id: 15babf3ff042cbd1b4d1 cGFja2FnZSBkZW1vOwoKaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CgppbXBvcnQgb3JnLmFw YWNoZS51aW1hLmFuYWx5c2lzX2VuZ2luZS5BbmFseXNpc0VuZ2luZURlc2NyaXB0aW9uOwppbXBv cnQgb3JnLmFwYWNoZS51aW1hLmFuYWx5c2lzX2VuZ2luZS5BbmFseXNpc0VuZ2luZVByb2Nlc3NF eGNlcHRpb247CmltcG9ydCBvcmcuYXBhY2hlLnVpbWEuY2FzLkNBUzsKaW1wb3J0IG9yZy5hcGFj aGUudWltYS5jb2xsZWN0aW9uLkNvbGxlY3Rpb25FeGNlcHRpb247CmltcG9ydCBvcmcuYXBhY2hl LnVpbWEuY29sbGVjdGlvbi5Db2xsZWN0aW9uUHJvY2Vzc2luZ0VuZ2luZTsKaW1wb3J0IG9yZy5h cGFjaGUudWltYS5jb2xsZWN0aW9uLkNvbGxlY3Rpb25SZWFkZXJEZXNjcmlwdGlvbjsKaW1wb3J0 IG9yZy5hcGFjaGUudWltYS5jb2xsZWN0aW9uLkVudGl0eVByb2Nlc3NTdGF0dXM7CmltcG9ydCBv cmcuYXBhY2hlLnVpbWEuY29sbGVjdGlvbi5TdGF0dXNDYWxsYmFja0xpc3RlbmVyOwppbXBvcnQg b3JnLmFwYWNoZS51aW1hLmNvbGxlY3Rpb24ubWV0YWRhdGEuQ3BlRGVzY3JpcHRvckV4Y2VwdGlv bjsKaW1wb3J0IG9yZy5hcGFjaGUudWltYS5maXQuY29tcG9uZW50LkpDYXNBbm5vdGF0b3JfSW1w bEJhc2U7CmltcG9ydCBvcmcuYXBhY2hlLnVpbWEuZml0LmNvbXBvbmVudC5KQ2FzQ29sbGVjdGlv blJlYWRlcl9JbXBsQmFzZTsKaW1wb3J0IG9yZy5hcGFjaGUudWltYS5maXQuY3BlLkNwZUJ1aWxk ZXI7CmltcG9ydCBvcmcuYXBhY2hlLnVpbWEuZml0LmRlc2NyaXB0b3IuQ29uZmlndXJhdGlvblBh cmFtZXRlcjsKaW1wb3J0IG9yZy5hcGFjaGUudWltYS5maXQuZmFjdG9yeS5BbmFseXNpc0VuZ2lu ZUZhY3Rvcnk7CmltcG9ydCBvcmcuYXBhY2hlLnVpbWEuZml0LmZhY3RvcnkuQ29sbGVjdGlvblJl YWRlckZhY3Rvcnk7CmltcG9ydCBvcmcuYXBhY2hlLnVpbWEuamNhcy5KQ2FzOwppbXBvcnQgb3Jn LmFwYWNoZS51aW1hLnJlc291cmNlLlJlc291cmNlSW5pdGlhbGl6YXRpb25FeGNlcHRpb247Cmlt cG9ydCBvcmcuYXBhY2hlLnVpbWEudXRpbC5JbnZhbGlkWE1MRXhjZXB0aW9uOwppbXBvcnQgb3Jn LmFwYWNoZS51aW1hLnV0aWwuUHJvZ3Jlc3M7CmltcG9ydCBvcmcueG1sLnNheC5TQVhFeGNlcHRp b247CgpwdWJsaWMgY2xhc3MgU3RhdGljSW5pdCBleHRlbmRzIEpDYXNBbm5vdGF0b3JfSW1wbEJh c2UgewoKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBUkFNX0VYMSA9ICJleDEiOwog ICAgQENvbmZpZ3VyYXRpb25QYXJhbWV0ZXIoIG5hbWUgPSBQQVJBTV9FWDEsIG1hbmRhdG9yeSA9 IGZhbHNlLAogICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJTT01FX1ZBTFVFIgogICAgKQogICAgcHJp dmF0ZSBFeGFtcGxlMSBleDE7CgogICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFSQU1f RVgyID0gImV4MiI7CiAgICBAQ29uZmlndXJhdGlvblBhcmFtZXRlciggbmFtZSA9IFBBUkFNX0VY MSwgbWFuZGF0b3J5ID0gZmFsc2UsCiAgICAgICAgZGVmYXVsdFZhbHVlID0gIlNPTUVfVkFMVUUi CiAgICApCiAgICBwcml2YXRlIEV4YW1wbGUyIGV4MjsKCiAgICBAT3ZlcnJpZGUKICAgIHB1Ymxp YyB2b2lkIHByb2Nlc3MoIEpDYXMgYUpDYXMgKSB0aHJvd3MgQW5hbHlzaXNFbmdpbmVQcm9jZXNz RXhjZXB0aW9uIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIGV4MS5mb28gKTsKICAgICAg ICBTeXN0ZW0ub3V0LnByaW50bG4oIGV4Mi5mb28gKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGlj IGVudW0gRXhhbXBsZTEgewogICAgICAgIFNPTUVfVkFMVUUoICJUaGlzIGlzIGFuIGVudW0iLCAi IiApCiAgICAgICAgOwoKICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBmb287CiAgICAgICAg cHJpdmF0ZSBmaW5hbCBTdHJpbmcgYmFyOwoKICAgICAgICBwcml2YXRlIEV4YW1wbGUxKCBTdHJp bmcgZm9vLCBTdHJpbmcgYmFyICkgewogICAgICAgICAgICB0aGlzLmZvbyA9IGZvbzsKICAgICAg ICAgICAgdGhpcy5iYXIgPSBiYXI7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMg Y2xhc3MgRXhhbXBsZTIgewogICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRXhhbXBsZTIgU09N RV9WQUxVRSA9IG5ldyBFeGFtcGxlMiggIlRoaXMgaXMgYSBzdGF0aWMgbWVtYmVyIiwgIiIgKTsK CiAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgZm9vOwogICAgICAgIHByaXZhdGUgZmluYWwg U3RyaW5nIGJhcjsKCiAgICAgICAgcHJpdmF0ZSBFeGFtcGxlMiggU3RyaW5nIGZvbywgU3RyaW5n IGJhciApIHsKICAgICAgICAgICAgdGhpcy5mb28gPSBmb287CiAgICAgICAgICAgIHRoaXMuYmFy ID0gYmFyOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiggU3Ry aW5nW10gYXJncyApIHRocm93cyBSZXNvdXJjZUluaXRpYWxpemF0aW9uRXhjZXB0aW9uLCBJT0V4 Y2VwdGlvbiwgU0FYRXhjZXB0aW9uLCBDcGVEZXNjcmlwdG9yRXhjZXB0aW9uLCBJbnZhbGlkWE1M RXhjZXB0aW9uIHsKICAgICAgICBDb2xsZWN0aW9uUmVhZGVyRGVzY3JpcHRpb24gY3JkID0gQ29s bGVjdGlvblJlYWRlckZhY3RvcnkuY3JlYXRlUmVhZGVyRGVzY3JpcHRpb24oIFNvbWVSZWFkZXIu Y2xhc3MgKTsKCiAgICAgICAgQW5hbHlzaXNFbmdpbmVEZXNjcmlwdGlvbiBhZSA9IEFuYWx5c2lz RW5naW5lRmFjdG9yeS5jcmVhdGVFbmdpbmVEZXNjcmlwdGlvbihTdGF0aWNJbml0LmNsYXNzICk7 CgogICAgICAgIENwZUJ1aWxkZXIgY3BiID0gbmV3IENwZUJ1aWxkZXIoKTsKICAgICAgICBjcGIu c2V0UmVhZGVyKCBjcmQgKTsKICAgICAgICBjcGIuc2V0QW5hbHlzaXNFbmdpbmUoIGFlICk7CiAg ICAgICAgQ29sbGVjdGlvblByb2Nlc3NpbmdFbmdpbmUgY3BlID0gY3BiLmNyZWF0ZUNwZSggbmV3 IFNvbWVDYWxsY2FrTGlzdGVuZXIoKSApOwogICAgICAgIGNwZS5wcm9jZXNzKCk7CiAgICB9Cgog ICAgcHVibGljIHN0YXRpYyBjbGFzcyBTb21lUmVhZGVyIGV4dGVuZHMgSkNhc0NvbGxlY3Rpb25S ZWFkZXJfSW1wbEJhc2UgewogICAgICAgIHByaXZhdGUgYm9vbGVhbiBuZXh0ID0gdHJ1ZTsKICAg ICAgICBwdWJsaWMgU29tZVJlYWRlcigpIHt9CiAgICAgICAgQE92ZXJyaWRlIHB1YmxpYyB2b2lk IGdldE5leHQoIEpDYXMgakNhcyApIHRocm93cyBJT0V4Y2VwdGlvbiwgQ29sbGVjdGlvbkV4Y2Vw dGlvbiB7fQogICAgICAgIEBPdmVycmlkZSBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgdGhyb3dz IElPRXhjZXB0aW9uLCBDb2xsZWN0aW9uRXhjZXB0aW9uIHsKICAgICAgICAgICAgYm9vbGVhbiBu b3cgPSBuZXh0OwogICAgICAgICAgICB0aGlzLm5leHQgPSBmYWxzZTsKICAgICAgICAgICAgcmV0 dXJuIG5vdzsKICAgICAgICB9CiAgICAgICAgQE92ZXJyaWRlIHB1YmxpYyBQcm9ncmVzc1tdIGdl dFByb2dyZXNzKCkgeyByZXR1cm4gbnVsbDsgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgY2xh c3MgU29tZUNhbGxjYWtMaXN0ZW5lciBpbXBsZW1lbnRzIFN0YXR1c0NhbGxiYWNrTGlzdGVuZXIg ewogICAgICAgIEBPdmVycmlkZSBwdWJsaWMgdm9pZCBlbnRpdHlQcm9jZXNzQ29tcGxldGUoIENB UyBhQ2FzLCBFbnRpdHlQcm9jZXNzU3RhdHVzIGFTdGF0dXMgKSB7fQogICAgICAgIEBPdmVycmlk ZSBwdWJsaWMgdm9pZCBpbml0aWFsaXphdGlvbkNvbXBsZXRlKCkge30KICAgICAgICBAT3ZlcnJp ZGUgcHVibGljIHZvaWQgYmF0Y2hQcm9jZXNzQ29tcGxldGUoKSB7fQogICAgICAgIEBPdmVycmlk ZSBwdWJsaWMgdm9pZCBjb2xsZWN0aW9uUHJvY2Vzc0NvbXBsZXRlKCkge30KICAgICAgICBAT3Zl cnJpZGUgcHVibGljIHZvaWQgcGF1c2VkKCkge30KICAgICAgICBAT3ZlcnJpZGUgcHVibGljIHZv aWQgcmVzdW1lZCgpIHt9CiAgICAgICAgQE92ZXJyaWRlIHB1YmxpYyB2b2lkIGFib3J0ZWQoKSB7 fQogICAgfQoKfQoK --94eb2c1b5e0a9bace6054e17b20f--