Hi Geoff, thanks for your answer,
I think I understand the issue. The original intention of having a subfolder
for images/data was to allow users to add their own symbols, images, etc. If
we embed them in the jar this may not be so easy - am I correct?
Yes, you're pefectly right. I just mentionned that it may make a
difference from a performance point of view, but in the case of
FillPatterns plugin, users must be able to add images in a normal folder.
Another option might be to reserve a folder name (say ext/plugins) that is
excluded from the Sextant search. Each plugin can then have a suitably named
sub-folder to contain whatever data is available to the average user (images,
symbols, etc).
My proposition was to create this folder (currently FillPatterns folder)
beside ext folder and not inside (ex. lib/resources/FillPatterns/),
because OpenJUMP plugin manager does a recursive scan of the ext plugin
folder (which is convenient for plugins wich have many dependencies like
Sextante).
It would probably be possible to exclude FillPatterns folder from
Sextante search, but it seems more difficult to me because I think
Sextante uses the same mechanism as any plugin, i.e. the one which
recursively scans the ext folder and its subfolders. Indeed, sextante
loading mechanism is quite complex, and I only could prove it scans
FillPatterns from tests, not from the source code :-(
Let me know what you think.
I also send you two properties files I have translated for a long time
but forgot to send to you,
Best regards,
Michaël
Geoff
----- Original Message -----
From: Michaël Michaud<michael.mich...@free.fr>
To: OpenJump develop and use<jump-pilot-devel@lists.sourceforge.net>, Victor
Olaya<vola...@gmail.com>, ge...@cadplan.com.au
Sent: Mon, 30 Apr 2012 01:18:23 +0800 (WST)
Subject: Sextante / Cadplan plugins compatibility : the end ?
Hi Geoff, Victor, Ede, Eric...
After a full day of investigation, I now understand, more or less,
the cause of our Sextante PlugIn loading time problem.
The part of the code involved (but not guilty) is :
es.unex.sextante.Sextante.loadLibraryAlgorithms()
and more precisely class.forName() and class.newInstance()
The configuration which makes this code slow is having many
files in the classpath.
With only Sextante extension, as soon as the FillPatterns directory
(containing
individual images) is added in the ext directory, loading time goes from
7 s to 20 s
If I remove the images and put 177 empty files in the classpath (ext
directory)
the loading time climbs to 80 s (overhead in the above mentionned methods)
@Geoff : Now the proposed solution (not tested)
Put FillPatterns directory and other resources which are not embeded in
a jar
and which don't need to be in the classpath in a directory out of ext
directory
(I suggest lib/resources, and lib/resources/pluginname for plugins)
@Victor : now, I'd like to upload Sextante OpenJUMP-bindings to our svn
to ease
maintenance.
I just noticed a bug which make the current code unusable for vector
layers :
(m_Iterator.next() is called two times in in OpenJUMPFeatureIterator.next())
Regards
Michaël
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
# Properties file for the JumpChart Plugins - default language if none specified
JumpChartPlugIn=Diagrammes
JumpChart.MenuName=Extensions
JumpChart.MenuItem=Diagrammes
JumpChart.Dialog.SelectedLayer=Couche s\u00E9lectionn\u00E9e
JumpChart.Dialog.Attributes=Attributs
JumpChart.Dialog.ChartType=Type de graphique
JumpChart.Dialog.Size=Taille
JumpChart.Dialog.Scale=Echelle
JumpChart.Dialog.Width=Largeur des barres
JumpChart.Dialog.Uniform=Uniforme
JumpChart.Dialog.Variable=Variable
JumpChart.Dialog.Auto=Automatique
JumpChart.Dialog.Fixed=Fixe
JumpChart.Dialog.Cancel=Annuler
JumpChart.Dialog.About=A propos
JumpChart.Dialog.Accept=Valider
JumpChart.Dialog.Pie=Camembert
JumpChart.Dialog.PieEast=Camembert (Est)
JumpChart.Dialog.PieNorth=Camembert (Nord)
JumpChart.Dialog.Bar=Barres
JumpChart.Dialog.Column=Colonnes
JumpChart.Dialog.Labels=Etiquettes
JumpChart.Dialog.Clockwise=Sens horaire
JumpChart.Dialog.Legend=Légende
JumpChart.Dialog.SelectAll=Tout s\u00E9lectionner
JumpChart.Dialog.ClearAll=Tout d\u00E9s\u00E9lectionner
JumpChart.Dialog.Order=Ordre
JumpChart.Dialog.ShowScale=Afficher l'\u00E9chelle
JumpChart.Dialog.LocalScale=Echelle locale
JumpChart.Dialog.ShowLabels=Afficher les \u00E9tiquettes
JumpChart.Order.Order=Ordre des attributs
JumpChart.Order.MoveUp=Monter
JumpChart.Order.MoveDown=Descendre
JumpChart.Order.Accept=Valider
JumpChart.Order.Cancel=Annuler
JumpChart.message1=Vous devez s\u00E9lectionner une couche
JumpChart.message2=Erreur dans le champ \u00E9chelle ou largeur
JumpChart.message3=Vous devez choisir au moins un attribut
JumpChart.message4=Les valeurs de d\u00E9calages doivent \u00EAtre des entiers
JumpChart.message5=S\u00E9lectionner un attribut pour 'Name'
JumpChart.message6=Attribut 'Name' non trouv\u00E9
JumpChart.Legend.ChartType=Taille variable
JumpChart.Dialog.Offsets=D\u00E9calage par rapport à l'origine
# Properties file for the VertexSymbols Plugins - default language if none
specified
VertexSymbols.MenuName=Extension
VertexSymbols.MenuItem=Symboles
VertexSymbols.Dialog=Choix de symboles
VertexSymbols.Dialog.Size=Taille
VertexSymbols.Dialog.Orientation=Orientation
VertexSymbols.Dialog.ShowLine=Contour
VertexSymbols.Dialog.ShowFill=Remplissage
VertexSymbols.Dialog.Dotted=Point centr\u00E9
VertexSymbols.Dialog.BaseScale=Echelle de base
VertexSymbols.Dialog.SizeByScale=Taille variant avec l'\u00E9chelle
VertexSymbols.Dialog.Cancel=Annuler
VertexSymbols.Dialog.About=A propos
VertexSymbols.Dialog.Accept=Valider
VertexSymbols.Dialog.Clear=Supprimer tout
VertexSymbols.Dialog.Reset=R\u00E9initialiser
VertexSymbols.Dialog.Warning1=Erreur dans le champ 'Taille'
VertexSymbols.Dialog.Warning2=Erreur dans le champ 'Orientation'
VertexSymbols.Dialog.Warning3=Erreur dans le champ 'Echelle de base'
VertexSymbols.Dialog.Warning4=Vous devez choisir un type de Point
VertexSymbols.Dialog.Warning5=Vous allez enlever les symboles particuliers
associ\u00E9s \u00E0 cette couche.\nVeuillez confirmer.
VertexSymbols.Dialog.ByValue=Valeur (degr\u00E9s, sens horaire)
VertexSymbols.Dialog.ByAttribute=Attribut
VertexSymbols.Dialog.Vector=Vecteur
VertexSymbols.Dialog.Image=Image
VertexSymbols.Dialog.WKTshapes=Symbole WKT
VertexSymbols.Dialog.Enabled=Activer
VertexSymbols.Dialog.Attribute=Attribut
VertexSymbols.Dialog.Font=Police
VertexSymbols.Dialog.Position=Position
VertexSymbols.Dialog.BackColor=Couleur de fond
VertexSymbols.Dialog.ForeColor=Couleur de police
VertexSymbols.Dialog.Border=Bordure
VertexSymbols.Dialog.FillBackground=Remplissage
VertexSymbols.Dialog.Scope=Appliquer aux
VertexSymbols.Dialog.Points=Points
VertexSymbols.Dialog.Lines=Lignes
VertexSymbols.Dialog.Polygons=Polygones
VertexSymbols.Dialog.Plain=Normal
VertexSymbols.Dialog.Bold=Gras
VertexSymbols.Dialog.PlainItalic=Italique
VertexSymbols.Dialog.BoldItalic=Gras+Italique
VertexSymbols.Dialog.Left=Gauche
VertexSymbols.Dialog.Centre=Centre
VertexSymbols.Dialog.Right=Droite
VertexSymbols.Dialog.North=Nord
VertexSymbols.Dialog.NorthEast=Nord-Est
VertexSymbols.Dialog.East=Est
VertexSymbols.Dialog.SouthEast=Sud-Est
VertexSymbols.Dialog.South=Sud
VertexSymbols.Dialog.SouthWest=Sud-Ouest
VertexSymbols.Dialog.West=Ouest
VertexSymbols.Dialog.NorthWest=Nord-Ouest
VertexSymbols.Dialog.None=Aucun
VertexSymbols.Dialog.Auto=Auto
VertexSymbols.Dialog.Value=Valeur ->
VertexSymbols.Dialog.None=Aucun
VertexSymbols.Dialog.Boxed=Encadr\u00E9
VertexSymbols.Dialog.Callout=Bulle
VertexSymbols.Dialog.Labels=Étiquettes
VertexNote.Dialog.Editor=Editeur de notes
VertexNote.Dialog.Message1=Vous devez d'abord s\u00E9lectionner un objet
VertexNote.Dialog.ShowLabel=Montrer les \u00E9tiquettes
VertexNote.Dialog.Message2=Une couche doit \u00EAtre s\u00E9lectionn\u00E9e.
VertexNote.Dialog.Message3=La couche contenant des objets
s\u00E9lectionn\u00E9s doit \u00EAtre \u00E9ditable.
VertexNote.Dialog.Message4=L'objet s\u00E9lectionn\u00E9 doit \u00EAtre dans
une couche avec un symbole externe.
VertexNote.Dialog.SelectSymbol=S\u00E9lectionner un symbole
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel