Hi Chris,

Thanks for your explanation. 
I adopted your proposed solution in the PR. Please check.
https://github.com/apache/incubator-iotdb/pull/1714




Best,

----------------
Wei





At 2020-09-09 19:26:51, "Christofer Dutz" <[email protected]> wrote:
>Hi Wie,
>
>Your proposed change would remove the ability to load the config from 
>classpath as you can't reference a classpath resource with a File.
>However we could get an url from a File ... perhaps that's a way to go. In 
>general perhaps using a File object and accessing that objects: "new 
>File("").toURI().toURL()" instead would allow both.
>I also noticed my PR wasn't merged as I submitted it. By changing:
>
>    // If the url doesn't contain a ":" it's provided as a normal path.
>    // So we need to add the prefix "file:" to make it a real URL.
>    if(!urlString.contains(":")) {
>      urlString = "file:" + urlString;
>    }
>
>To:
>
>    // If the url doesn't start with "file:" it's provided as a normal path.
>    // So we need to add it to make it a real URL.
>    if(!urlString.startsWith("file:")) {
>      urlString = "file:" + urlString;
>    }
>
>Again the ability to use a classpath resource is eliminated as a classpath 
>resource is referenced via:
>
>classpath:/path/to/resource.properties
>
>Instead of:
>
>file:/path/to/resource.properties
>
>But I can imaging that particularly in combination with windows systems it 
>might be better to use:
>
>    // If the url doesn't start with "file:" or "classpath:" it's provided as 
> a normal path.
>    // So we need to add it to make it a real URL.
>    if(!urlString.startsWith("file:") && !urlString.startsWith("classpath:")) {
>      urlString = "file:" + urlString;
>    }
>
>This should avoid the problem.
>
>
>Chris
>
>
>
>Am 09.09.20, 12:41 schrieb "Wei Shao" <[email protected]>:
>
>    Hi Chris,
>
>
>    When I was looking into issue [1], I discovered that IoTDB failed to load 
> iotdb-engine.properties file on Windows.
>    It looks like in IoTDBDescriptor getPropsUrl() line 127, Windows file path 
> like "D:\\path" will not be accepted by URL constructor, thus an exception 
> thrown.
>
>
>    I've submitted a PR [2] for this case. Would you please take a look and 
> check this PR? I suppose it is the same cause with your Windows VM failure.
>    Also, I haven't got a SprintBoot environment to test URLs like 
> "classpath:path". It would be great if you could test the "classpath" 
> scenario on your machine, in case it made some regression. :D
>
>
>    [1] https://issues.apache.org/jira/browse/IOTDB-869
>    [2] https://github.com/apache/incubator-iotdb/pull/1714
>
>
>
>
>    Thanks,
>    ------------------
>    Wei
>
>
>
>
>
>    At 2020-08-31 17:10:11, "Christofer Dutz" <[email protected]> 
> wrote:
>    >I'm currently working on fine-tuning it ... not sure however why it's 
> failing on Windows ...
>    >I could reproduce the failure on my Windows 10 VM however. So I'll setup 
> an IDE there and investigate.
>    >
>    >Chris
>    >
>    >
>    >Am 31.08.20, 05:32 schrieb "Xiangdong Huang" <[email protected]>:
>    >
>    >    Hi,
>    >
>    >    It makes sense to support claiming a file path or a classpath.
>    >    Thanks for seeing your PR once again @Chris.
>    >
>    >    And ... just read the readme of Merlot. An interesting project!
>    >
>    >    Best,
>    >    -----------------------------------
>    >    Xiangdong Huang
>    >    School of Software, Tsinghua University
>    >
>    >     黄向东
>    >    清华大学 软件学院
>    >
>    >
>    >    Cesar Garcia <[email protected]> 于2020年8月31日周一 上午6:13写道:
>    >
>    >    > Interesting proposal,
>    >    >
>    >    > I did some tests for the one to run in embedded mode, declaring the 
> IOTDB
>    >    > system variables in a bundle. All directories are within the Karaf
>    >    > structure. IoTDB Rock !.
>    >    >
>    >    > https://github.com/glcj/Merlot/tree/master/com.ceos.merlot.iotdb.svr
>    >    >
>    >    > If the proposal facilitates integration, I would try to evaluate it 
> in
>    >    > Karaf.
>    >    >
>    >    > Best regards,
>    >    >
>    >    > El dom., 30 ago. 2020 a las 17:31, Christofer Dutz (<
>    >    > [email protected]>) escribió:
>    >    >
>    >    > > Yeah ...
>    >    > >
>    >    > > already committed ... wanted to create the PR but Dinner 
> interrupted ...
>    >    > > but I think in general a little cleanup of the getPropsUrl() to 
> also
>    >    > allow
>    >    > > explicitly naming the property file differently.
>    >    > >
>    >    > > With my changes I have to name the config-url "classpath:" which 
> sort of
>    >    > > feels silly ;-)
>    >    > >
>    >    > > Chris
>    >    > >
>    >    > >
>    >    > > Am 30.08.20, 17:23 schrieb "Julian Feinauer" <
>    >    > > [email protected]>:
>    >    > >
>    >    > >     Hey Chris,
>    >    > >
>    >    > >     Good idea... What about... A PR? :D
>    >    > >
>    >    > >     Julian
>    >    > >
>    >    > >     Von meinem Mobiltelefon gesendet
>    >    > >
>    >    > >
>    >    > >     -------- Ursprüngliche Nachricht --------
>    >    > >     Von: Christofer Dutz <[email protected]>
>    >    > >     Datum: So., 30. Aug. 2020, 17:19
>    >    > >     An: [email protected]
>    >    > >     Betreff: Configuring IoTDB when run programatically
>    >    > >     Hi all,
>    >    > >
>    >    > >     I’m currently doing my first steps with IoTDB and am currently
>    >    > > struggling to get IoTDB to startup in an embedded mode.
>    >    > >     I am setting up IoTDB to be setup as a service in my 
> SpringBoot
>    >    > > application. For this I have my iotdb-engine.properties in my 
> classpath.
>    >    > >     However I want IoTDB to have all of its files in my 
> applications home
>    >    > > directory.
>    >    > >
>    >    > >     Now it seems as if this szenario isn’t supported nicely as If 
> I
>    >    > > specify the IOTDB_HOME, it wants to load the properties from 
> there too,
>    >    > but
>    >    > > I would like to leave the properties in my classpath.
>    >    > >     The reason for this is that I don’t need any setup steps to 
> prepare
>    >    > > the directories.
>    >    > >
>    >    > >     It would be cool if in IoTDBDescriptor line 128 wouldn’t 
> expect the
>    >    > > URL to be a File URL. I could also have a classpath URL
>    >    > > “classpath:/iotdb-engine.properties” but that causes trouble ;-)
>    >    > >
>    >    > >     Chris
>    >    > >
>    >    > >
>    >    >
>    >    > --
>    >    > *CEOS Automatización, C.A.*
>    >    > *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,*
>    >    > *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*
>    >    >
>    >    > *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
>    >    > *Ing. César García*
>    >    >
>    >    > *Cel: +58 414-760.98.95*
>    >    >
>    >    > *Hotline Técnica SIEMENS: 0800 1005080*
>    >    >
>    >    > *Email: [email protected]
>    >    > <[email protected]>*
>    >    >
>    >
>

Reply via email to