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