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]>*
> >
>