Niclas Hedhman a écrit :
> There are three ways this can be fixed;
>
> a. Do character replacements in the identity, per filesystem, to create
> valid files. Downside; One can't move the store to another OS and remain
> compatible.
>
> b. Do character replacement in the identity, same on all filesystem, to
> create portable filenames. Downside; Existing stores will break.
>
> c. Introduce a IdentityConstraint in the FileEntityStore, which must be
> applied to all entities in the application if one use this ES. Downside;
> Scheduler (others?) will required to be changed and introduces an
> incompatibility from previous version.
>
> Not sure which is most reasonable.
a. and c. looks like bad ideas to me.

b., the one that would break existing stores, feels like the good one to
me :/

That's the FileES that is naïve about it's handling of identities.
Encoding theses for filesystems is its responsibility.

Questions are:
1/ what cross-platform filename "encoding" to use?
2/ how to provide a migration path?

1/ hash(identity) ? safe but may be costly
   urlencode(identity) ? pretty ugly but safe
   something_custom(identity) ? I don't like it custom ...

2/ If we use something "standard" for 1/ then we could write a small
migration script

WDYT?

Cheers

/Paul

Reply via email to