root
we are used to that there is where properties file are (hibernate/logging)

johan


Jonathan Locke wrote:

here's the code (there's even less of it!). only one thing... i wonder if wicket.properties should just go in the root folder of the jar. people are less likely to miss it there than
if it's in META-INF...

   /**
    * Initializes wicket components
    */
   private final void initializeComponents()
   {
       // Load any wicket components we can find
       try
       {
           // Load components used by all applications
           for (Enumeration e = getClass().getClassLoader().getResources(
                   "META-INF/wicket.properties"); e.hasMoreElements();)
           {
               final URL url = (URL)e.nextElement();
               final Properties properties = new Properties();
               properties.load(url.openStream());
               initializeComponents(properties);
           }
       }
       catch (IOException e)
       {
throw new WicketRuntimeException("Unable to load initializers file", e);
       }
   }

   /**
    * @param properties
* Properties table with names of any library initializers in it
    */
   private void initializeComponents(final Properties properties)
   {
instantiateLibraryInitializer(properties.getProperty("library-initializer")); instantiateLibraryInitializer(properties.getProperty(getName() + "-library-initializer"));
   }

   /**
    * Instantiate initializer with the given class name
    *
    * @param className
    *            The name of the library initializer class
    */
   private void instantiateLibraryInitializer(final String className)
   {
       if (!Strings.isEmpty(className))
       {
           try
           {
               Class c = Class.forName(className);
               ((IComponentInitializer)c.newInstance()).init(this);
           }
           catch (ClassCastException e)
           {
throw new WicketRuntimeException("Unable to initialize " + className, e);
           }
           catch (ClassNotFoundException e)
           {
throw new WicketRuntimeException("Unable to initialize " + className, e);
           }
           catch (InstantiationException e)
           {
throw new WicketRuntimeException("Unable to initialize " + className, e);
           }
           catch (IllegalAccessException e)
           {
throw new WicketRuntimeException("Unable to initialize " + className, e);
           }
       }
   }


Johan Compagner wrote:

but that is how i see the current implementation.
It is a library initialization class.. (ok could not be only 1 could be more. But mostly there will be one for a package resource)

But i am a bit confused now. What do we want to change? How is it that class (what ever it is called) instantiated?

johan


Jonathan Locke wrote:


the idea of pushing the library intialization into a single class is a good idea though regardless of where we register that class in metadata...

all we do in terms of loading is instantiate the bootstrapper class for the library (if the library is appropriate to the application). the class does the rest and it's all in java!

Johan Compagner wrote:

that is something we also could use yes..
We have to see how we are storing inside it and how we can read this easy.

There are or could be problems by using manifest files they could get very crowded (if you for example use signing)



Martijn Dashorst wrote:

Just as a side note. I was thinking how Oscar does this. They basically have the same problem: how to find which things a bundle exports. They have created two things for auto-registration to take place: - add meta data to the MANIFEST.MF file in the JAR. They explicitly set an Activator classname in the MANIFEST.MF, which is then instantiated - the Activator class (user supplied) then registers the bundle services with the Oscar registry.

This is a rather neat interface I think. It puts configuration back into the Java, and doesn't introduce another file and fileformat into the game.

I'm not saying this is any good, but it is an option.

Martijn

Johan Compagner wrote:

no hate that
then i prefer the current one
just lines of classes..
Why again some xml tags around it?

I think room for future i not needed.
If we introduce something else then i still want to go very quickly to java code
So what we can do then is use the same file
But check what the class implements and call that interface method

johan


Igor Vaynberg wrote:

You know guys, working with wicket ive been going through xml-withdrawl, so
maybe this is a good place to introduce some xml!!!!

<wicket-bootstrap>
    <component-initializers>
    <component-initializer>com.foo.class1</component-initializer>
    <component-initializer>com.fool.class2</component-initializer>
    </component-initializers>
    <room for future expansion/>
</wicket-bootstrap>

This is way better then com.foo.class1,com.foo.class2!!!

-Igor
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jonathan Locke
Sent: Thursday, August 11, 2005 2:27 PM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor and paging navigation


true.
the name came from "wicket-" to identify the META-INF file as wicket-related, followed by "component-initializers" to identify that the components in the file implement IComponentInitializer, followed by ".txt" to allow the file to be opened in notepad or whatever by just clicking on it. i'm not saying this is ideal. it's just how it is right now.

if we want to move to a properties file, we could go for this instead:

wicket.properties:
components=wicket.Foo,wicket.Bar,...

we'd of course search for <AppName-wicket.properties> as well.

that would allow us to expand the usage beyond just initializing components if we ever needed something like that...

it might be prudent to do it this way...

Johan Compagner wrote:

it is not really a properties file. A property file is



something like:
xxx=yyyy

johan


Cameron Braid wrote:

It looks to me like there is no other way.

I'm not so bothered by a single text file that contains a list of classnames.

Why is it called wicket-component-initializers.txt ?
I think the .txt extension is a bad idea. Since if I use



eclipse to

refactor classes - I usually get it to scan for fully



quanified class

names in .properties files (and .xml files) Would it be a



bade idea

to use the.properties extension ?

Cameron

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:wicket-develop-
[EMAIL PROTECTED] On Behalf Of Johan Compagner
Sent: Friday, 12 August 2005 6:32 AM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor and paging navigation

I don't think there is a standard way.
We could test if the ClassLoader was a URLClassLoader



(and then call
getUrls() on it)
But this doesn't have to be the case i think..

Also File.list() can't work on a classloader. Because you



don't have

a dir (you could have but you could have anything)

johanm

Cameron Braid wrote:
One other issue that comes to mind - where would the



classpath list

of jars/folders come from - since we can't rely on
System.getProperty("java.class.path") from within



servlet containers.



Is
there a standard way to obtain the servlet context's classpath ?

Cameron


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:wicket-



develop-
[EMAIL PROTECTED] On Behalf Of Gili
Sent: Friday, 12 August 2005 6:21 AM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor and paging navigation


Good point. So going back to the original proposal,



it sounds

like it'll be very fast if we use



File.listFiles(FilenameFilter).
Gili

Cameron Braid wrote:

This would be worse - you would still need to scan all jars / folders



on
the

class path - then for any filename ending in .class -



you would

have



to
do

Class.forName() which will load the class - thereby



loading EVERY



class
on

the classpath - not a good idea.

Cameron



-----Original Message-----
From: [EMAIL PROTECTED]



[mailto:wicket-



develop-
[EMAIL PROTECTED] On Behalf Of Gili
Sent: Friday, 12 August 2005 6:06 AM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor and paging navigation


Taking one step further... would it be possible



to drop the

resource file altogether and use pure reflection?



Specifically,

we search the classpath for classes which implement interface IComponentInitializer and if so we assume they contribute resources and invoke their
init(Application) method.

Cameron is right that someone should profile this but I think this is ideal in that it is truely object oriented and zero-configuration --



and
it is a one-time cost at startup.

Gili

Cameron Braid wrote:


This would mean searching every sub-directory of every classpath



entry
(i.e.


jars and folders)

This will have a performance impact on the startup time of wicket -



how
large - I dunno - someone cart to implement and profile ?

If the performance hit is insignificant - I think



this is the

better




way

to


do it. Although - why not name the file ComponentClassName.wicket



:)
Cheers,

Cameron.




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:wicket-




develop-

[EMAIL PROTECTED] On Behalf Of Gili
Sent: Friday, 12 August 2005 5:10 AM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor and paging



navigation
I'm +1 on Igor's proposal (.resource files) because amongst



other
things, it'll allow you to merge multiple JAR files



into one

easily (should you wish to do such a thing) and ship a JAR with a whole



bunch
of related components as opposed to having to have



a different

JAR



for
each component. Right now you'd have to merge the META-INF/



resource
file by hand. Also, obfuscators such as Proguard will automatically



do
this sort of JAR file merging and "shrinking" but



will not be

able



to
handle merging these META-INF files. Anyway... just food for



thought.
Gili

Jonathan Locke wrote:



sorry. didn't mean to jump on you, igor. i just



wanted to

make



sure
we


didn't throw
out something that's worth keeping... because there have been



some
problems with
resources, a lot of people have been clamoring to



change the

whole plan. since i've been the one behind the



current plan

and wrote most or all of the




code

for it, i have
been trying to explain why i wrote it that way. it's not perfect



for
sure (nothing ever is!),
but i think the basic idea is not only not broken, but it's



actually
pretty solid... especially
with the fixes we did last night.

i agree about the init thing, but i think that
Classloader.getResources() would have to be enhanced to do this... not 100% sure though... if there's a



reasonable way

to do this, we should look into it.

Igor Vaynberg wrote:




Yes I see Jon. Thank you for a very long and detailed explanation



as
to why
my idea sucked. I still think there is some room for improvement



in
the


current situation. Cant we do a saerch through avail packages




looking

for a
.resources file (im not sure how this would be done).

It would be nice to simply have



DatePicker.resources side by

side




with

DatePicker.java. It would eliminate refactoring



headaches at



least
as

far as
the package names go and it wouldn't be sitting in some separate




folder.



-Igor







-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jonathan Locke
Sent: Thursday, August 11, 2005 1:17 AM
To: [email protected]
Subject: Re: [Wicket-develop] feedback refactor



and paging



navigation

actually it's not just that the service



registration info

has to



be
put somewhere, it's that a client component



that's using a



service
to

create a dynamic resource like, for example,



some kind of

panel




that

wants a dynamic button image created...
/that component/ would have to be able to create



its images



/when
the

app starts/ (because of clustering and server



restarts).
and



/only
the panel component itself/ can or should know



about this

/and/



it
has to be done on startup. wicket's resource handling classes are already fully featured, object-oriented "services" (but less vague and more OO powerful)



by virtue

of the fact that they




implement

the IResourceListener interface and respond to



requests for



resources

(ANY resource). so i just don't see any value at all in this




service

concept beyond what we've already got. in fact,



i think it



would
significantly /subtract/ from wicket's existing



support for



dynamic
resources (think "service" if you prefer)... and again, even if



we
did change the world, it wouldn't solve the bootstrapping



problem
we

have for components.

Johan Compagner wrote:






how does a component with a dynamically



generated image

make




that

image available in your scheme?
the component has to register the image with the service,




doesn't

it?




The component doesn't need to register an image with a








service,
it

can register the service that creates the images.
The images themselves can be created on the



first request
http://www..../app?service=mydynamicbuttons&button=A

Whenever this url is hit wicket forwards the



control to

the registered mydynamicbuttons service (registered by whatever component) which creates the image A, caches it, and streams








it
to

response. Or precreate whatever you need when



the service








object is




created and registered with the application.











And THIS last part is just the problem

how does it register itself? When?
Where is it specified that a component does that?
I think in the end we have exactly the same thing...
you have a file like:
mydynamicbuttons=my.class.that.exposes.this.Service

johan







------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference &



EXPO
September 19-22, 2005 * San Francisco, CA * Development



Lifecycle
Practices Agile & Plan-Driven Development * Managing




Projects & Teams




* Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ Wicket-develop mailing list [email protected]




https://lists.sourceforge.net/lists/listinfo/wicket-develo
p






------------------------------------------------------- SF.Net email is Sponsored by the Better Software



Conference

&



EXPO
September 19-22, 2005 * San Francisco, CA * Development



Lifecycle
Practices Agile & Plan-Driven Development * Managing Projects &




Teams

* Testing & QA Security * Process Improvement &



Measurement

* http://www.sqe.com/bsce5sf _______________________________________________ Wicket-develop mailing list [email protected]




https://lists.sourceforge.net/lists/listinfo/wicket-develop






-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference

&



EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams *




Testing

& QA
Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf



_______________________________________________
Wicket-develop mailing list
[email protected]




https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference &

EXPO September 19-22, 2005 * San Francisco, CA *



Development

Lifecycle




Practices



Agile & Plan-Driven Development * Managing



Projects & Teams *



Testing
&

QA



Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf



_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





--
http://www.desktopbeautifier.com/


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference &

EXPO September 19-22, 2005 * San Francisco, CA *



Development

Lifecycle Practices Agile & Plan-Driven Development



* Managing

Projects & Teams *



Testing
&

QA


Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf


_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference &

EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle




Practices


Agile & Plan-Driven Development * Managing Projects & Teams *



Testing &
QA


Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf


_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





--
http://www.desktopbeautifier.com/


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development *



Managing

Projects & Teams * Testing



&
QA

Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf

_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle




Practices

Agile & Plan-Driven Development * Managing Projects & Teams * Testing



&
QA

Security * Process Improvement & Measurement *




http://www.sqe.com/bsce5sf

_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





--
http://www.desktopbeautifier.com/


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference & EXPO

September 19-22, 2005 * San Francisco, CA * Development



Lifecycle

Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing &



QA
Security * Process Improvement & Measurement *



http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference & EXPO

September 19-22, 2005 * San Francisco, CA * Development Lifecycle



Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing &



QA
Security * Process Improvement & Measurement *



http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF.Net email is Sponsored by the Better Software



Conference & EXPO

September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement &



Measurement *

http://www.sqe.com/bsce5sf _______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing



Projects & Teams

* Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop





-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing



Projects & Teams

* Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop










-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop






-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop






-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to