embedlets-developer Mailing List for Outpost Embedlet Container (Page 14)
Status: Alpha
Brought to you by:
tkosan
You can subscribe to this list here.
| 2003 |
Jan
(135) |
Feb
(402) |
Mar
(162) |
Apr
(22) |
May
(13) |
Jun
(67) |
Jul
(59) |
Aug
(27) |
Sep
(1) |
Oct
(28) |
Nov
(81) |
Dec
(16) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(2) |
Feb
(21) |
Mar
(6) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2006 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Christopher S. <cs...@oo...> - 2003-05-30 07:01:32
|
To clarify (I hope)
It is usually advisable to maintain unidirectional visibility from the top
of a functional stack toward the bottom. This allows lower levels to be
utilized in a variety of unforeseen but useful ways, without dependence on
superfluous functionality of the upper layers.
My feeling is that it is Ok for Embedlets to be aware of and utilize the
JAPL Abstract API only, not the concrete JAPL classes. JAPL should not be
aware of the Embedlet layer (with one caviate). Here is the logic:
1. JAPL is in place to buffer the application logic (Embedlets) from the
nasty details of hardware initialization, operation and vendor specifics.
All that JAPL needs to know for that task is the hardware details, some way
to receive initialization properties and send notifications back.
2. Asynchronous communication back to the application logic should be
handled by a JAPLEvent notifying a JAPLEventListener. Embedlets can receive
events in this manner and translate them into the appropriate EmbedletEvent.
(this is already agreed to by all, I believe )
4. The JAPL layer should be isolated from Embedlets via interfaces so that
the implementing JAPL classes can be readily swapped out to accommodate
different hardware platforms. Embedlets should NEVER reference or
instantiate a concrete JAPL class.
5. JAPL should provide for dynamic instantiation of the implementing classes
in order to disconnect the Embedlet from specific JAPL classes and
properties. This neatly skirts the issue of where the 'impedance match'
takes place as you will see below. Each class handles it's specific
responsibility.
6. The JAPL API should be devoid of hardware specific references like
setBaudRate(9600), setParity(1), getPinNumber(0x80), setRegister(0x10,0xf4)
etc. These should be handled in the JAPL initialization code under the
covers. Embedlets should be able to simply 'grab' an output and start
sending info.
Here is a short code segment that outlines my expectation of an
Embedlet/JAPLOutput interaction, The input scenario would be a mirror image.
/** An vendor neutral Embedlet to adapt a Vendor specific JAPL output
driver.
* Provides an initialization environment and Event translation for the
driver.
*/
public class BooleanOutput extends Embedlet implements EventComsumer,
Persistent{
private JAPLBooleanOutput output; // Interface only - no reference to
concrete JAPL class
private EventProducer eventSource;
private boolean value;
//...
/** Component property initialization from Persistent interface
*/
public void readProperties(Properties properties) {
value = properties.getIntProperty("InitialValue", value);
// The specific JAPL class and its properties are defined
// in the persistent initialization store. The Embedlet is just grabing
// a reference to a ready-to-go JAPL device
output = properties.getObjectProperty("OutputDevice", output);
// Embedlet wiring
eventSource = properties.getObjectProperty("EventSource", eventSource);
}
/** Component initialization
*/
public void initialize() {
// Housekeeping
super.initialize();
// These may be handled by the container
// Connect the wiring
eventSource.registerEventConsumer(this);
// Notify the output to get ready
output.initialize();
}
/** Component start signal
*/
public void start() {
super.start();
output.setValue(value);
}
/** Service the incoming embedlet event by sending the boolean value
* on to the JAPLOutput
*/
public void receive(Event event) {
BooleanEvent e = event;
value = e.getValue();
output.setValue(value);
}
}
(Please excuse any none-compile-able code this is for demonstration of
principle only)
The assumption here is that JAPL class implements the Persistent interface
so that it can be dynamically instantiated and receive initialization
parameters independent of the Embedlet (I can hear the uproar already). Note
that the Embedlet does not know any of the specifics of the underlying JAPL
device, other than it takes a boolean value and makes something happen out
there.
The deployment scenario would be:
1. A vendor provides the JAPL driver class (jar) and an XML snippet to
initialize the device.
2. The class gets included in the classPath or 'forName' linker list
3. The XML snippet gets placed inside of the Embedlet deployment descriptor:
<Embedlet
name="DoorOpen"
class="org.embedlet.io.BooleanOutput"
InitialValue="true">
<!-- Vendor specific IO driver snippet-->
<Output
name="IODriver"
class="com.acme.io.GPIOPortPin"
pinNumber="0x80"
direction="1"
/>
<!-- End of vendor IO driver snippet-->
<!-- Embedlet event wiring -->
<EventSource href="components.logic.overflowLimit">
</Embedlet>
Using these guidelines there should be little overlap of functionality or
control. The layers are cleanly isolated yet interact efficiently.
The issue is going to be the dependence on the Persistent interface. My
response to that is that there is no way to avoid 'persistence' in a general
sense. Hard coded initialization of variables is a form of read-only
persistence. If the issue is not addressed at the JAPL level then it just
gets pushed up to the Embedlet level. Then every JAPL driver would need to
have a 'brother' Embedlet to manage its initialization. Pushing the
Persistent interface down to the JAPL level allows the layers to work
independent of each other and manage their own initialization
responsibilities.
If the application uses hard coded initialization values it is easy to
create a 'HardCodedProperties' class that holds the values in code. In this
scenario the container instantiates the 'HardCodedProperties' class and
hands it to the Embedlet readProperties() method. The JAPLDriver and
Embedlet work the same, unaware of the source of the Properties.
This allows a common Embedlet and JAPL code base to handle the dynamic
persistence store such as XML or fileStream as well as the the hard-coded
set-and-forget initialization.
My recomendation to side step the 'unidirectional' dictate above is to move
the Persistence API outside of, but common to, the Embedlet and JAPL API's,
limiting the baggage that needs to be hauled around for that function.
I have rambled on enough for tonight, it will probably make as much sense in
the morning as those drug induced, inspirational evenings of my youth.
Christopher Smith
OopScope, LLC.
www.oopscope.com
cs...@oo...
805-276-0598
> -----Original Message-----
> From: emb...@li...
> [mailto:emb...@li...]On Behalf Of Ted
> Kosan
> Sent: Thursday, May 29, 2003 3:54 PM
> To: emb...@li...
> Subject: [Embedlets-dev] RE: repost of JAPL question...
>
>
> Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE]
> _______________________________________________
>
> I am in the process of jumping back into Embedlets 'hot-and-heavy' again
> (details to follow) but I would like to work through the JAPL
> Wrapper issue
> first. The following is a repost of my latest question on this
> issue and I
> still really want to be convinced that using a JAPL Wrapper to
> only receive
> messages from a JAPL device and using an Embedlet to only send
> messages to a
> JAPL device is a good idea.
>
> Ted
>
>
> </repost>
>
> Andrzej,
>
> >Have my explanations of the use of a JAPL Wrapper class helped
> resolve this?
>
> Well, we are getting there but I still have some more questions
> so I hope you
> will bear with me! ;-)
>
>
>
> >Maybe I am misinterpreting what JAPL does. If all it provides is a
> >thin generalization layer for specific classes of peripherals, then
> >we may need a Device Driver level of code layered on top of that.
>
> The understanding of JAPL peripherals that I have been working
> under is that
> they are generic, standardized interfaces for any kind of peripheral I/O
> circuits from simple I/O ports through medium complexity devices
> like UARTs and
> up to highly sophisticated I/O systems like a RobotScanner. My working
> definition of what a device driver means in the context of
> Embedlets is that it
> is the piece of software that is responsible for doing the
> impedance matching
> between the I/O level semantics of the JAPL peripheral and the application
> level semantics of the Embedlet based application.
>
> For example, if a cannon were attached to bit 3 of a JAPL I/O
> port, then an
> event like fire forward cannon from the FireControl Embedlet
> would eventually
> get translated into something like JaplPort.setBit(3, true);
>
>
> >As for the asynchronous notifications (interrupts basically), see my
> >last post about using a JAPL Wrapper class as a mediation layer that
> >converts such an async callback into an Embedlet Event. There is
> >MASSIVE benefit to using such an approach....the principal one being
> >keeping the JAPL and Embedlet layers nicely decoupled and flexible
> >(so that JAPL can be used outside of an Embedlet Container).
>
> Well, I am trying to understand how the Embedlet registering itself as a
> listener for Events coming from a JAPL peripheral it already has
> a reference to
> makes the JAPL peripheral at all dependent on the Embedlet code base? My
> approach was to have the JAPL library contain an interface like
> the following:
>
> package org.japl;
>
> public interface JaplEventListener
> {
> void receiveJaplEvent(Object japlEvent);
> }//end method
>
> and then the Embedlet would implement this interface and then
> register itself
> as a JaplEventListener just like any other JAPL client would. If
> the Embedlet
> already has a dependency on the JAPL peripheral, what is the harm
> of allowing
> it to have a further dependency on a JAPL interface?
>
> My thought was that for any given JAPL peripheral, one Embedlet in the
> application would be used to wrap around it and then all the code
> needed to
> perform the semantic impedance matching with this JAPL device
> would be isolated
> inside of this single Embedlet (including messaging code and JAPL event
> handling code).
>
>
> >1) Hold direct references to JAPL peripherals.
> >2) Accept interrupt events from these peripherals.
> >3) Convert the peripheral's interrupt events into Embedlet events.
> >
> >The combination of the JAPL peripheral (and any "device driver code)
> >and the proposed JAPL wrapper approach nicely handle all of the
> >above situations. But an Embedlet can hold a reference to a JAPL
> >peripheral (so as to issue API method calls on it to get it's work
> >done. eg. japl.setSwitch( true ) ).
>
> I am still trying to understand what the benefit is of allowing
> an Embedlet to
> send sub-application-semantic-level messages directly to a JAPL
> peripheral but
> to have sub-application-semantic-level asynchronous events
> coming from the
> JAPL peripheral to be broadcast to an arbitrary number of
> Embedlets via the
> Embedlets event mechanism?
>
> I think you are going to say that the JAPL wrapper will convert
> between the I/O
> level semantics of the JAPL peripheral and the application-level
> semantics of
> the application but I still can't see why all of this impedance
> matching is not
> happening in one place (either all in one Embedlet or all in the
> JAPL wrapper)?
>
> From my perspective, this is the kind of situation that is confusing me:
>
> - A SerialTerminalEmbedlet instantiates a JaplUart peripheral and
> initializes
> it to 9600,8,N,1 in its initialize() method using I/O level semantics.
>
> - All application-semantic-level data that is sent to the
> terminal's screen by
> other Embedlets in the application is sent via Embedlet events to the
> SerialTerminalEmbedlet because it is the only piece of software in the
> application that has a reference to the JaplUart and so can send
> messages to
> it.
>
>
> - As asynchronous I/O level semantic data comes in from the
> JaplUart, it is
> routed through the JAPL wrapper and then published to the Embedlet event
> system. As posted in earlier emails, only application level
> semantics should
> be sent through the Embedlet event system so the JAPL wrapper
> would need to
> convert the I/O event semantics into application level semantics before
> publishing to the application.
>
> So, why does all of the outgoing Embedlet/JAPL impedance matching
> happen in an
> Embedlet and all of the incoming JAPL/Embedlet impedance matching
> happen in a
> completely separate and unrelated piece of software (the JAPL
> wrapper)? Why
> not let one Embedlet handle impedance matching in both directions
> since having
> an Embedlet implement something like the JaplEventListener
> interface completely
> prevents JAPL peripherals from having dependencies on Embedlets?
>
>
> Again, my main goal here is to completely understand the
> reasoning behind the
> decisions being made in this part of the architecture so please
> bear with me
> because I am having a tough time with it! ;-)
>
> Ted
>
> </repost>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
> http://calendar.yahoo.com
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: eBay
> Get office equipment for less on eBay!
> http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
> _______________________________________________
> Embedlets-developer mailing list
> Emb...@li...
> https://lists.sourceforge.net/lists/listinfo/embedlets-developer
>
|
|
From: Brill P. <bri...@ro...> - 2003-05-30 04:34:47
|
I'm still neck deep here... and I havn't touched the Cork/JAPL or the
Piccadilly embedlets container since I started...
If anyone on the list would like to manage the current Cork/JAPL tree, and
maybe work out some of the remaining issues, I'd be glad to hand it off for
a while.
I will have to dive back in eventually, but I have had *no* time recently.
- Brill Pappin
----- Original Message -----
From: "Ted Kosan" <tk...@ya...>
To: <emb...@li...>
Sent: Thursday, May 29, 2003 6:54 PM
Subject: [Embedlets-dev] RE: repost of JAPL question...
> Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE]
> _______________________________________________
>
> I am in the process of jumping back into Embedlets 'hot-and-heavy' again
> (details to follow) but I would like to work through the JAPL Wrapper
issue
> first. The following is a repost of my latest question on this issue and
I
> still really want to be convinced that using a JAPL Wrapper to only
receive
> messages from a JAPL device and using an Embedlet to only send messages to
a
> JAPL device is a good idea.
>
> Ted
>
>
> </repost>
>
> Andrzej,
>
> >Have my explanations of the use of a JAPL Wrapper class helped resolve
this?
>
> Well, we are getting there but I still have some more questions so I hope
you
> will bear with me! ;-)
>
>
>
> >Maybe I am misinterpreting what JAPL does. If all it provides is a
> >thin generalization layer for specific classes of peripherals, then
> >we may need a Device Driver level of code layered on top of that.
>
> The understanding of JAPL peripherals that I have been working under is
that
> they are generic, standardized interfaces for any kind of peripheral I/O
> circuits from simple I/O ports through medium complexity devices like
UARTs and
> up to highly sophisticated I/O systems like a RobotScanner. My working
> definition of what a device driver means in the context of Embedlets is
that it
> is the piece of software that is responsible for doing the impedance
matching
> between the I/O level semantics of the JAPL peripheral and the application
> level semantics of the Embedlet based application.
>
> For example, if a cannon were attached to bit 3 of a JAPL I/O port, then
an
> event like "fire forward cannon" from the FireControl Embedlet would
eventually
> get translated into something like JaplPort.setBit(3, true);
>
>
> >As for the asynchronous notifications (interrupts basically), see my
> >last post about using a JAPL Wrapper class as a mediation layer that
> >converts such an async callback into an Embedlet Event. There is
> >MASSIVE benefit to using such an approach....the principal one being
> >keeping the JAPL and Embedlet layers nicely decoupled and flexible
> >(so that JAPL can be used outside of an Embedlet Container).
>
> Well, I am trying to understand how the Embedlet registering itself as a
> listener for Events coming from a JAPL peripheral it already has a
reference to
> makes the JAPL peripheral at all dependent on the Embedlet code base? My
> approach was to have the JAPL library contain an interface like the
following:
>
> package org.japl;
>
> public interface JaplEventListener
> {
> void receiveJaplEvent(Object japlEvent);
> }//end method
>
> and then the Embedlet would implement this interface and then register
itself
> as a JaplEventListener just like any other JAPL client would. If the
Embedlet
> already has a dependency on the JAPL peripheral, what is the harm of
allowing
> it to have a further dependency on a JAPL interface?
>
> My thought was that for any given JAPL peripheral, one Embedlet in the
> application would be used to wrap around it and then all the code needed
to
> perform the semantic impedance matching with this JAPL device would be
isolated
> inside of this single Embedlet (including messaging code and JAPL event
> handling code).
>
>
> >1) Hold direct references to JAPL peripherals.
> >2) Accept interrupt events from these peripherals.
> >3) Convert the peripheral's interrupt events into Embedlet events.
> >
> >The combination of the JAPL peripheral (and any "device driver code)
> >and the proposed JAPL wrapper approach nicely handle all of the
> >above situations. But an Embedlet can hold a reference to a JAPL
> >peripheral (so as to issue API method calls on it to get it's work
> >done. eg. japl.setSwitch( true ) ).
>
> I am still trying to understand what the benefit is of allowing an
Embedlet to
> send sub-application-semantic-level messages directly to a JAPL peripheral
but
> to have sub-application-semantic-level asynchronous events coming from
the
> JAPL peripheral to be broadcast to an arbitrary number of Embedlets via
the
> Embedlets event mechanism?
>
> I think you are going to say that the JAPL wrapper will convert between
the I/O
> level semantics of the JAPL peripheral and the application-level semantics
of
> the application but I still can't see why all of this impedance matching
is not
> happening in one place (either all in one Embedlet or all in the JAPL
wrapper)?
>
> From my perspective, this is the kind of situation that is confusing me:
>
> - A SerialTerminalEmbedlet instantiates a JaplUart peripheral and
initializes
> it to 9600,8,N,1 in its initialize() method using I/O level semantics.
>
> - All application-semantic-level data that is sent to the terminal's
screen by
> other Embedlets in the application is sent via Embedlet events to the
> SerialTerminalEmbedlet because it is the only piece of software in the
> application that has a reference to the JaplUart and so can send messages
to
> it.
>
>
> - As asynchronous I/O level semantic data comes in from the JaplUart, it
is
> routed through the JAPL wrapper and then published to the Embedlet event
> system. As posted in earlier emails, only application level semantics
should
> be sent through the Embedlet event system so the JAPL wrapper would need
to
> convert the I/O event semantics into application level semantics before
> publishing to the application.
>
> So, why does all of the outgoing Embedlet/JAPL impedance matching happen
in an
> Embedlet and all of the incoming JAPL/Embedlet impedance matching happen
in a
> completely separate and unrelated piece of software (the JAPL wrapper)?
Why
> not let one Embedlet handle impedance matching in both directions since
having
> an Embedlet implement something like the JaplEventListener interface
completely
> prevents JAPL peripherals from having dependencies on Embedlets?
>
>
> Again, my main goal here is to completely understand the reasoning behind
the
> decisions being made in this part of the architecture so please bear with
me
> because I am having a tough time with it! ;-)
>
> Ted
>
> </repost>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
> http://calendar.yahoo.com
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: eBay
> Get office equipment for less on eBay!
> http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
> _______________________________________________
> Embedlets-developer mailing list
> Emb...@li...
> https://lists.sourceforge.net/lists/listinfo/embedlets-developer
>
|
|
From: James C. <ca...@vi...> - 2003-05-30 02:17:49
|
Hi All, Well I am coming out of hibernation also! Having just cleared a contract.. so I am cashed up and ready to burn some muvium and embedlet hours 24x7 for at least the next 6 months so get ready for the final onslaught. I want to jump back into this JAPL conversation because I have the whole time held a slightly different opinion to the breakup of the JAPL layer and I think it is important for my goals with muvium to converge nicely on the Embedlet layers. Now that I have completed the port to the 18F family ( you heard it here first ) you get up to 64k program space on the 18F8720 and when you think about what squeezes on the 8K uvm-877A that's A LOT of code - more than enough to host a serious embedlet container.. Especially when I throw in extended mode with a 32K external RAM for heap.. So muvium is certainly going to be embedlet capable.. Also of note will be the embedlet container running in Virtual Breadboard/ muvium emulation.. Which means virtual circuits (with nice graphics for Ted) with all sorts of moving robots and stepper motors all controlled from an embedlet container emulation. Excellent way for people to learn about/develop for/contribute to the embedlets codebase without having to even touch a real chip or wire a real robot or blow anything up! I think this is a very important step.. The convergence of Virtual Breadboard with muvium real-time emulation, and any Embedlet containers compliant JVM's, .. May even make a special type of breadboard that you can drop wireable components to create applications.. Lot's of scope. The implementation of the embedlet container itself for muvium is something I will implement in assembler so it needs to be pretty clear what I am building before I build it as assemblers a bitch so that's why they invented java :-) Well, just a heads up really. I am moving (again) this weekend to (another) new homebase in Holland this time so once I am settled in it will be full stream ahead! (pun intended) Cheers all, James Caska www.muvium.com uVM - 'Java Bred for Embedded' -----Original Message----- From: emb...@li... [mailto:emb...@li...] On Behalf Of Ted Kosan Sent: Thursday, 29 May 2003 11:54 PM To: emb...@li... Subject: [Embedlets-dev] RE: repost of JAPL question... Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE] _______________________________________________ I am in the process of jumping back into Embedlets 'hot-and-heavy' again (details to follow) but I would like to work through the JAPL Wrapper issue first. The following is a repost of my latest question on this issue and I still really want to be convinced that using a JAPL Wrapper to only receive messages from a JAPL device and using an Embedlet to only send messages to a JAPL device is a good idea. Ted </repost> Andrzej, >Have my explanations of the use of a JAPL Wrapper class helped resolve >this? Well, we are getting there but I still have some more questions so I hope you will bear with me! ;-) >Maybe I am misinterpreting what JAPL does. If all it provides is a >thin generalization layer for specific classes of peripherals, then >we may need a Device Driver level of code layered on top of that. The understanding of JAPL peripherals that I have been working under is that they are generic, standardized interfaces for any kind of peripheral I/O circuits from simple I/O ports through medium complexity devices like UARTs and up to highly sophisticated I/O systems like a RobotScanner. My working definition of what a device driver means in the context of Embedlets is that it is the piece of software that is responsible for doing the impedance matching between the I/O level semantics of the JAPL peripheral and the application level semantics of the Embedlet based application. For example, if a cannon were attached to bit 3 of a JAPL I/O port, then an event like "fire forward cannon" from the FireControl Embedlet would eventually get translated into something like JaplPort.setBit(3, true); >As for the asynchronous notifications (interrupts basically), see my >last post about using a JAPL Wrapper class as a mediation layer that >converts such an async callback into an Embedlet Event. There is >MASSIVE benefit to using such an approach....the principal one being >keeping the JAPL and Embedlet layers nicely decoupled and flexible >(so that JAPL can be used outside of an Embedlet Container). Well, I am trying to understand how the Embedlet registering itself as a listener for Events coming from a JAPL peripheral it already has a reference to makes the JAPL peripheral at all dependent on the Embedlet code base? My approach was to have the JAPL library contain an interface like the following: package org.japl; public interface JaplEventListener { void receiveJaplEvent(Object japlEvent); }//end method and then the Embedlet would implement this interface and then register itself as a JaplEventListener just like any other JAPL client would. If the Embedlet already has a dependency on the JAPL peripheral, what is the harm of allowing it to have a further dependency on a JAPL interface? My thought was that for any given JAPL peripheral, one Embedlet in the application would be used to wrap around it and then all the code needed to perform the semantic impedance matching with this JAPL device would be isolated inside of this single Embedlet (including messaging code and JAPL event handling code). >1) Hold direct references to JAPL peripherals. >2) Accept interrupt events from these peripherals. >3) Convert the peripheral's interrupt events into Embedlet events. > >The combination of the JAPL peripheral (and any "device driver code) >and the proposed JAPL wrapper approach nicely handle all of the >above situations. But an Embedlet can hold a reference to a JAPL >peripheral (so as to issue API method calls on it to get it's work >done. eg. japl.setSwitch( true ) ). I am still trying to understand what the benefit is of allowing an Embedlet to send sub-application-semantic-level messages directly to a JAPL peripheral but to have sub-application-semantic-level asynchronous events coming from the JAPL peripheral to be broadcast to an arbitrary number of Embedlets via the Embedlets event mechanism? I think you are going to say that the JAPL wrapper will convert between the I/O level semantics of the JAPL peripheral and the application-level semantics of the application but I still can't see why all of this impedance matching is not happening in one place (either all in one Embedlet or all in the JAPL wrapper)? From my perspective, this is the kind of situation that is confusing me: - A SerialTerminalEmbedlet instantiates a JaplUart peripheral and initializes it to 9600,8,N,1 in its initialize() method using I/O level semantics. - All application-semantic-level data that is sent to the terminal's screen by other Embedlets in the application is sent via Embedlet events to the SerialTerminalEmbedlet because it is the only piece of software in the application that has a reference to the JaplUart and so can send messages to it. - As asynchronous I/O level semantic data comes in from the JaplUart, it is routed through the JAPL wrapper and then published to the Embedlet event system. As posted in earlier emails, only application level semantics should be sent through the Embedlet event system so the JAPL wrapper would need to convert the I/O event semantics into application level semantics before publishing to the application. So, why does all of the outgoing Embedlet/JAPL impedance matching happen in an Embedlet and all of the incoming JAPL/Embedlet impedance matching happen in a completely separate and unrelated piece of software (the JAPL wrapper)? Why not let one Embedlet handle impedance matching in both directions since having an Embedlet implement something like the JaplEventListener interface completely prevents JAPL peripherals from having dependencies on Embedlets? Again, my main goal here is to completely understand the reasoning behind the decisions being made in this part of the architecture so please bear with me because I am having a tough time with it! ;-) Ted </repost> __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com ------------------------------------------------------- This SF.net email is sponsored by: eBay Get office equipment for less on eBay! http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 _______________________________________________ Embedlets-developer mailing list Emb...@li... https://lists.sourceforge.net/lists/listinfo/embedlets-developer |
|
From: Ted K. <tk...@ya...> - 2003-05-29 22:54:01
|
I am in the process of jumping back into Embedlets 'hot-and-heavy' again
(details to follow) but I would like to work through the JAPL Wrapper issue
first. The following is a repost of my latest question on this issue and I
still really want to be convinced that using a JAPL Wrapper to only receive
messages from a JAPL device and using an Embedlet to only send messages to a
JAPL device is a good idea.
Ted
</repost>
Andrzej,
>Have my explanations of the use of a JAPL Wrapper class helped resolve this?
Well, we are getting there but I still have some more questions so I hope you
will bear with me! ;-)
>Maybe I am misinterpreting what JAPL does. If all it provides is a
>thin generalization layer for specific classes of peripherals, then
>we may need a Device Driver level of code layered on top of that.
The understanding of JAPL peripherals that I have been working under is that
they are generic, standardized interfaces for any kind of peripheral I/O
circuits from simple I/O ports through medium complexity devices like UARTs and
up to highly sophisticated I/O systems like a RobotScanner. My working
definition of what a device driver means in the context of Embedlets is that it
is the piece of software that is responsible for doing the impedance matching
between the I/O level semantics of the JAPL peripheral and the application
level semantics of the Embedlet based application.
For example, if a cannon were attached to bit 3 of a JAPL I/O port, then an
event like fire forward cannon from the FireControl Embedlet would eventually
get translated into something like JaplPort.setBit(3, true);
>As for the asynchronous notifications (interrupts basically), see my
>last post about using a JAPL Wrapper class as a mediation layer that
>converts such an async callback into an Embedlet Event. There is
>MASSIVE benefit to using such an approach....the principal one being
>keeping the JAPL and Embedlet layers nicely decoupled and flexible
>(so that JAPL can be used outside of an Embedlet Container).
Well, I am trying to understand how the Embedlet registering itself as a
listener for Events coming from a JAPL peripheral it already has a reference to
makes the JAPL peripheral at all dependent on the Embedlet code base? My
approach was to have the JAPL library contain an interface like the following:
package org.japl;
public interface JaplEventListener
{
void receiveJaplEvent(Object japlEvent);
}//end method
and then the Embedlet would implement this interface and then register itself
as a JaplEventListener just like any other JAPL client would. If the Embedlet
already has a dependency on the JAPL peripheral, what is the harm of allowing
it to have a further dependency on a JAPL interface?
My thought was that for any given JAPL peripheral, one Embedlet in the
application would be used to wrap around it and then all the code needed to
perform the semantic impedance matching with this JAPL device would be isolated
inside of this single Embedlet (including messaging code and JAPL event
handling code).
>1) Hold direct references to JAPL peripherals.
>2) Accept interrupt events from these peripherals.
>3) Convert the peripheral's interrupt events into Embedlet events.
>
>The combination of the JAPL peripheral (and any "device driver code)
>and the proposed JAPL wrapper approach nicely handle all of the
>above situations. But an Embedlet can hold a reference to a JAPL
>peripheral (so as to issue API method calls on it to get it's work
>done. eg. japl.setSwitch( true ) ).
I am still trying to understand what the benefit is of allowing an Embedlet to
send sub-application-semantic-level messages directly to a JAPL peripheral but
to have sub-application-semantic-level asynchronous events coming from the
JAPL peripheral to be broadcast to an arbitrary number of Embedlets via the
Embedlets event mechanism?
I think you are going to say that the JAPL wrapper will convert between the I/O
level semantics of the JAPL peripheral and the application-level semantics of
the application but I still can't see why all of this impedance matching is not
happening in one place (either all in one Embedlet or all in the JAPL wrapper)?
From my perspective, this is the kind of situation that is confusing me:
- A SerialTerminalEmbedlet instantiates a JaplUart peripheral and initializes
it to 9600,8,N,1 in its initialize() method using I/O level semantics.
- All application-semantic-level data that is sent to the terminal's screen by
other Embedlets in the application is sent via Embedlet events to the
SerialTerminalEmbedlet because it is the only piece of software in the
application that has a reference to the JaplUart and so can send messages to
it.
- As asynchronous I/O level semantic data comes in from the JaplUart, it is
routed through the JAPL wrapper and then published to the Embedlet event
system. As posted in earlier emails, only application level semantics should
be sent through the Embedlet event system so the JAPL wrapper would need to
convert the I/O event semantics into application level semantics before
publishing to the application.
So, why does all of the outgoing Embedlet/JAPL impedance matching happen in an
Embedlet and all of the incoming JAPL/Embedlet impedance matching happen in a
completely separate and unrelated piece of software (the JAPL wrapper)? Why
not let one Embedlet handle impedance matching in both directions since having
an Embedlet implement something like the JaplEventListener interface completely
prevents JAPL peripherals from having dependencies on Embedlets?
Again, my main goal here is to completely understand the reasoning behind the
decisions being made in this part of the architecture so please bear with me
because I am having a tough time with it! ;-)
Ted
</repost>
__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
|
|
From: Ted K. <tk...@ya...> - 2003-05-14 17:23:05
|
Chris, Ok, getting closer. Here is my latest attempt to run the persistence demo: <shell-dump> [tkosan@localhost outpost]$ java -cp/home/tkosan/embedlets/chris/outpost/lib/emb edlet.jar:/home/tkosan/embedlets/chris/outpost/lib/kxml-min.jar:/home/tkosan/embe dlets/chris/outpost/build/classes -DConfigFile=/home/tkosan/embedlets/chris/outpo st/src/org/outpost/persistence/config.xml org.outpost.persistence.xml.Launcher Error: org.embedlet.lifecycle.LifecycleError: Component Create failed for: outpost.Logging, org.embedlet.lifecycle.LifecycleException: Service Category unknown for: outpost.Loggingorg.embedlet.lifecycle.LifecycleException: Component Create failed for : outpost.Logging, org.embedlet.lifecycle.LifecycleException: Service Category unknown for: outpost.Logging </shell-dump> Evidently I need to figure out what a 'Service Category unknown' error is in order to fix this but I will not have time until tomorrow. Almost there though... Ted __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
|
From: Christopher S. <cs...@oo...> - 2003-05-12 16:20:23
|
Try it now - I missed the new event classes on checkin. Christopher Smith OopScope, LLC. www.oopscope.com cs...@oo... 805-276-0598 > > Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE] > _______________________________________________ > > Chris, > > Ok, I am working on trying out your persistence code. > > > > To try things out: > > > > 1. Update using the tag Persistent > > I just when ahead did a fresh checkout of 'embedlet' and 'outpost'. > > > > 2. Copy the org/outpost/persistence/xml/kxml-min.jar to the outpost/lib > > folder. This the parser that I used. > > No problems here. > > > > 2. Recompile embedlets and outpost using the make.compile > > Did you mean 'ant compile' here? I did this and I received the following > compiler errors: > > <dump> > > [tkosan@localhost outpost]$ ant compile > Buildfile: build.xml > > init: > > compile: > [javac] Compiling 33 source files to > /home/tkosan/embedlets/chris/outpost/build/classes > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:74: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: package event > [javac] import org.outpost.event.BooleanEvent; > [javac] ^ > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:157: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: class org.outpost.components.digital.Counter > [javac] BooleanEvent i = (BooleanEvent) event; > [javac] ^ > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:157: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: class org.outpost.components.digital.Counter > [javac] BooleanEvent i = (BooleanEvent) event; > [javac] ^ > [javac] 3 errors > > BUILD FAILED > > </dump> > > > Its late and I am a bit 'fuzzy brained' but is BooleanEvent a > class that you > added? > > > Ted > > __________________________________ > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. > http://search.yahoo.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Embedlets-developer mailing list > Emb...@li... > https://lists.sourceforge.net/lists/listinfo/embedlets-developer > |
|
From: Christopher S. <cs...@oo...> - 2003-05-12 16:09:39
|
Ted, I have been away for most of last week and will take a look at this today. Chris > > > Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE] > _______________________________________________ > > Chris, > > Ok, I am working on trying out your persistence code. > > > > To try things out: > > > > 1. Update using the tag Persistent > > I just when ahead did a fresh checkout of 'embedlet' and 'outpost'. > > > > 2. Copy the org/outpost/persistence/xml/kxml-min.jar to the outpost/lib > > folder. This the parser that I used. > > No problems here. > > > > 2. Recompile embedlets and outpost using the make.compile > > Did you mean 'ant compile' here? I did this and I received the following > compiler errors: > > <dump> > > [tkosan@localhost outpost]$ ant compile > Buildfile: build.xml > > init: > > compile: > [javac] Compiling 33 source files to > /home/tkosan/embedlets/chris/outpost/build/classes > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:74: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: package event > [javac] import org.outpost.event.BooleanEvent; > [javac] ^ > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:157: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: class org.outpost.components.digital.Counter > [javac] BooleanEvent i = (BooleanEvent) event; > [javac] ^ > [javac] > /home/tkosan/embedlets/chris/outpost/src/org/outpost/components/di > gital/Counter.java:157: > cannot resolve symbol > [javac] symbol : class BooleanEvent > [javac] location: class org.outpost.components.digital.Counter > [javac] BooleanEvent i = (BooleanEvent) event; > [javac] ^ > [javac] 3 errors > > BUILD FAILED > > </dump> > > > Its late and I am a bit 'fuzzy brained' but is BooleanEvent a > class that you > added? > > > Ted > > __________________________________ > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. > http://search.yahoo.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Embedlets-developer mailing list > Emb...@li... > https://lists.sourceforge.net/lists/listinfo/embedlets-developer > |
|
From: Ted K. <tk...@ya...> - 2003-05-06 07:21:46
|
Chris,
Ok, I am working on trying out your persistence code.
> To try things out:
>
> 1. Update using the tag Persistent
I just when ahead did a fresh checkout of 'embedlet' and 'outpost'.
> 2. Copy the org/outpost/persistence/xml/kxml-min.jar to the outpost/lib
> folder. This the parser that I used.
No problems here.
> 2. Recompile embedlets and outpost using the make.compile
Did you mean 'ant compile' here? I did this and I received the following
compiler errors:
<dump>
[tkosan@localhost outpost]$ ant compile
Buildfile: build.xml
init:
compile:
[javac] Compiling 33 source files to
/home/tkosan/embedlets/chris/outpost/build/classes
[javac]
/home/tkosan/embedlets/chris/outpost/src/org/outpost/components/digital/Counter.java:74:
cannot resolve symbol
[javac] symbol : class BooleanEvent
[javac] location: package event
[javac] import org.outpost.event.BooleanEvent;
[javac] ^
[javac]
/home/tkosan/embedlets/chris/outpost/src/org/outpost/components/digital/Counter.java:157:
cannot resolve symbol
[javac] symbol : class BooleanEvent
[javac] location: class org.outpost.components.digital.Counter
[javac] BooleanEvent i = (BooleanEvent) event;
[javac] ^
[javac]
/home/tkosan/embedlets/chris/outpost/src/org/outpost/components/digital/Counter.java:157:
cannot resolve symbol
[javac] symbol : class BooleanEvent
[javac] location: class org.outpost.components.digital.Counter
[javac] BooleanEvent i = (BooleanEvent) event;
[javac] ^
[javac] 3 errors
BUILD FAILED
</dump>
Its late and I am a bit 'fuzzy brained' but is BooleanEvent a class that you
added?
Ted
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
|
|
From: Ted K. <tk...@ya...> - 2003-05-02 17:48:19
|
Chris, > After taking some time to feed the family I put some work into the > persistence model. I had a number of things I needed to attend to also but I am almost out from under them now and ready to switch back to Embedlets again. > I have a working PersistentContainer (OutpostContainer subclass) that gets > loaded from an XML file, creates the services defined in the XML file and > then starts up. [snip] This is great! I will checkout your additions this weekend and start playing with them. Ted __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
|
From: Christopher S. <cs...@oo...> - 2003-05-01 23:42:22
|
After taking some time to feed the family I put some work into the persistence model. I have a working PersistentContainer (OutpostContainer subclass) that gets loaded from an XML file, creates the services defined in the XML file and then starts up. I will be following up with some mode documentation and sample components, but wanted to get it archived at a plateau and visible for feedback so I checked it in under the 'Persistence tag'. Please check it out and give me some feedback good or bad. This required a number of new interfaces and classes as you might of expected. I made every effort leave the existing classes intact and only had to change a couple of exposure levels to public in order to subclass the various objects and add a few 'setter' methods. Andrzej please forgive the minor trespasses. The core concept is the persistence.Persistent and persistence.Properties interfaces that allow classes to be saved and restored from a variety of persistent or transient stores. In this case the store is an XML file which is controlled by the XMLProperties class and XMLPersistenceManager. In a remotely controlled model the 'store' is a TCP/IP stream. I am converting an example of this from the OPC components code. Another important class is the PersistentCollection that provides aggregation for other Persistent objects, thus supporting the object tree. References between classes are defined by the href="Identity" attribute The first cut applies a persistence interface to the Context objects that Andrzej created. This is done by sub classing the particular Context class as org.outpost.persistence.PersistentXxxxxContext and implementing the org.embedlet.persistence.Persistent interface to support loading the contexts. I used a small class (org.outpost.persistence.xml.Launcher) to start things off and create the Container and its services from the persistence source at run time. This will allow us to use several launch modes and persistence media with the same container rather than requiring a different container for each. To try things out: 1. Update using the tag Persistent 2. Copy the org/outpost/persistence/xml/kxml-min.jar to the outpost/lib folder. This the parser that I used. 2. Recompile embedlets and outpost using the make.compile 4. Run: java -cp yourClasspath -DConfigFile=YourSrcFolder\org\outpost\persistence\config.xml org.embedlet.persistence.xml.Launcher 5. It should load and run the container and its services. I have created three sample components: a timer, a toggle and a counter. These will be started with the container on the next go around. Chris Christopher Smith OopScope, LLC. www.oopscope.com cs...@oo... 805-276-0598 |
|
From: Ted K. <tk...@ya...> - 2003-04-14 05:26:45
|
James said: > I would like you to consider openVBB as your GUI framework when I > release Virtual Breadboard with java capability in the next few days. I > will take the effort to put in a embedlet container in the real-time > emulator if you will consider this. I will definitely look at it. I have also discovered that Sun did some experimenting on a GUI toolkit called Truffle which was optimized for use with displays like touchscreens: http://java.sun.com/products/personaljava/truffle/ For industrial machines like CNCs, it seems like it would be a good idea to control them with touchscreens but I will need to research this further. Also, I am going to experiment with using uVM for providing the implementation for a realtime JAPL 3 Axis motion control peripheral. I am finding that coming up with well-thought-out JAPL peripheral specifications is quite a challenge but even at this early and crude stage it looks like this technology is going to be a winner. The other candidates for the implementation are: - An 80X86 based realtime multitasking kernal I developed a while back. About 5 years ago I used to kernel to concurrently control 12 stepper motors on a large filter wrapping machine that I helped build for a company. I am very interested to see how a 100% Java based system compares to this kernel because it was written in pure assembly language. - TimeSys's newly released RTSJ compliant JTime. - A JStamp or a JStik but to be honest I have been holding off doing any serious development on JStamp or JStik until Ajile releases their CDC/RTSJ software. My initial work with uVM, though, leads me to believe that it will up to the task. Ted __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
|
From: James C. <ca...@vi...> - 2003-04-13 18:36:46
|
Hi, I would like you to consider openVBB as your GUI framework when I release Virtual Breadboard with java capability in the next few days. I will take the effort to put in a embedlet container in the real-time emulator if you will consider this. openVBB uses the XML standard SVG (Scalor Vector Graphics) as its basis and you develop components that can plug into the openVBB framework... More soon but keep it in mind. Also.. Keep in mind that I will be embedlet enabling virtual breadboard with embedlet components also very shortly.. Lots of good things happening. James Caska www.muvium.com uVM - 'Java Bred for Embedded' -----Original Message----- From: emb...@li... [mailto:emb...@li...] On Behalf Of Holger Baxmann Sent: Sunday, 13 April 2003 3:06 AM To: emb...@li... Subject: Re: [Embedlets-dev] GUI pattern for Embedlets? Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE] _______________________________________________ > As soon as I am done with my Robocode/Embedlets experimenting I plan > on building an Embedlets/JAPL based milling machine CNC controller. > Has anyone given some thought to the proper way to interface a Swing > based GUI to an > Embedlets application? My initial inclination is to treat the GUI as > a JAPL > peripheral and then have communication between the two occur > completely through > events. i think the service activator may help here to decouple the 'clientside' gui and the 'serverside' embedlet container via some messageing like xml-rpc or else. bax > Ted > > __________________________________________________ > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more > http://tax.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The > debugger > for complex code. Debugging C/C++ programs can leave you feeling lost > and > disoriented. TotalView can help you find your way. Available on major > UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Embedlets-developer mailing list > Emb...@li... > https://lists.sourceforge.net/lists/listinfo/embedlets-developer > > Holger Baxmann - bitwind e.K. 41539 Dormagen/NRW/Germany Vom-Stein-Str. 29 +49 2133 537747 ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ Embedlets-developer mailing list Emb...@li... https://lists.sourceforge.net/lists/listinfo/embedlets-developer |
|
From: Holger B. <hba...@ma...> - 2003-04-12 17:06:34
|
> As soon as I am done with my Robocode/Embedlets experimenting I plan on > building an Embedlets/JAPL based milling machine CNC controller. Has > anyone > given some thought to the proper way to interface a Swing based GUI to > an > Embedlets application? My initial inclination is to treat the GUI as > a JAPL > peripheral and then have communication between the two occur > completely through > events. i think the service activator may help here to decouple the 'clientside' gui and the 'serverside' embedlet container via some messageing like xml-rpc or else. bax > Ted > > __________________________________________________ > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more > http://tax.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The > debugger > for complex code. Debugging C/C++ programs can leave you feeling lost > and > disoriented. TotalView can help you find your way. Available on major > UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Embedlets-developer mailing list > Emb...@li... > https://lists.sourceforge.net/lists/listinfo/embedlets-developer > > Holger Baxmann - bitwind e.K. 41539 Dormagen/NRW/Germany Vom-Stein-Str. 29 +49 2133 537747 |
|
From: Ted K. <tk...@ya...> - 2003-04-12 06:50:40
|
As soon as I am done with my Robocode/Embedlets experimenting I plan on building an Embedlets/JAPL based milling machine CNC controller. Has anyone given some thought to the proper way to interface a Swing based GUI to an Embedlets application? My initial inclination is to treat the GUI as a JAPL peripheral and then have communication between the two occur completely through events. Ted __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
|
From: Ted K. <tk...@ya...> - 2003-04-05 20:38:52
|
Brill said, > http://wireless.java.sun.com/personal/ttips/ixc/ > > Hmm... might be able to adapt this... I've done some XLet programming for iTV applications: http://www.javadevices.org/dtcourse and what I am thinking is that XLets could benefit greatly by using Embedlets. To me the Embedlet event model appears to be much better than any other inter-XLet communications mechanism that have been developed to date. Ted __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
|
From: Brill P. <bri...@ro...> - 2003-04-05 04:49:38
|
http://wireless.java.sun.com/personal/ttips/ixc/ Hmm... might be able to adapt this... - Brill Pappin Rogue Robotics www.roguerobotics.com |
|
From: Andrzej J. T. <an...@ch...> - 2003-04-04 03:03:32
|
Ted asks: > Well, the Embedlets sourceforge page indicates that the project has not > released any files to users yet. So, are you saying that we should offically > release the embedlet_004.zip, outpost_004.zip and outhouse_002.zip files using > the standard sourceforge site release mechanism? Sure....if you want to be "official" about it. I see no harm in doing so. It will make it easier for non-developer types to find and familiarize themselves with work to date. ...Andrzej Chaeron Corporation http://www.chaeron.com |
|
From: Johan M. <jm...@ba...> - 2003-04-03 11:08:05
|
>Well, the Embedlets sourceforge page indicates that the project has not >released any files to users yet. So, are you saying that we should offically >release the embedlet_004.zip, outpost_004.zip and outhouse_002.zip files using >the standard sourceforge site release mechanism? Hi guys, I found why i was not able to see the embedlet code..... i downloaded only the outpost zip file... because i read that 'outpost' was the actual implementation of the reference embedlet design.... But now iam there. Tnx and goodluck, Johan Maas |
|
From: Johan M. <jm...@ba...> - 2003-04-03 06:07:53
|
Hi Ted, >How familiar are you with CVS and Ant and what operating system are you using >on your workstation? Different o.s.. Windows 2000, Windows XP, Windows 98 and Linux. I am not familiar with CVS and the ant tool. But i can learn...hi. Professionaly iam building already for 11 yrs enterprise applications, with 1 year experience using Java. But in my spare time iam doing some embedded programming using different languages like 'c' and jal (www.voti.nl/jal), some machine code and lately i discoverded java. I started using muvium (www.muvium.com) created by James Caska. He pointed to sourceforge group embedlets.... so here iam. Iam always interested to become as productive as possible, using the right abstration, frameworks and be as much as possible platform independent. The idea of translating the 'container concept' to the embedded world feels very promising. To make use and get used to java and embedlets i have plans to buy the TINI. Ok i will start looking into CVS and try to gather the components. Goodluck, Johan |
|
From: Holger B. <hba...@ma...> - 2003-04-03 05:18:19
|
The OP of this thread is underway or gone lost in space on my side. If you want to 'Release' via CVS, why don't you use CVS? There are Branching and Tagging technics to solve the leading-edge-HEAD and the stable-release Branch issue. This is what CVS is for. Do not get it yet. What is a "Zip"? What is the difference between the User and the 'who-not-be-named'? What about backporting and bugfixing? bax Am Donnerstag, 03.04.03, um 05:14 Uhr (Europe/Budapest) schrieb Brill Pappin: > Topic tags:[ARCH][JAPL][WIRING][DOCS][MGMT][STRATEGY][NEWBIE] > _______________________________________________ > > >> Let me repeat....CVS is for core Embedlet/Outpost developers. Users >> should stick to published (zipped) releases. > > Sorry guy, I don't have time tonight to read back through this > thread... > just happened to see this. > > It looks as if someone wants to "release" embedlets from the CVS > repository? > I don't think you will find a *single* project that does this, for good > reason, though we can easily provide a "DIY" ant build file for > hard-core > people that will check everything out... I don't recommend > *distributing > releases* via CVS. > > - Brill Pappin > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ValueWeb: > Dedicated Hosting for just $79/mo with 500 GB of bandwidth! > No other company gives more support or power for your dedicated server > http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/ > _______________________________________________ > Embedlets-developer mailing list > Emb...@li... > https://lists.sourceforge.net/lists/listinfo/embedlets-developer > > Holger Baxmann - bitwind e.K. 41539 Dormagen/NRW/Germany Vom-Stein-Str. 29 +49 2133 537747 |
|
From: Brill P. <bri...@ro...> - 2003-04-03 03:14:41
|
> Let me repeat....CVS is for core Embedlet/Outpost developers. Users > should stick to published (zipped) releases. Sorry guy, I don't have time tonight to read back through this thread... just happened to see this. It looks as if someone wants to "release" embedlets from the CVS repository? I don't think you will find a *single* project that does this, for good reason, though we can easily provide a "DIY" ant build file for hard-core people that will check everything out... I don't recommend *distributing releases* via CVS. - Brill Pappin |
|
From: Ted K. <tk...@ya...> - 2003-04-03 02:54:32
|
Andrzej, >> As it turns out the .zip files in the releases directory are obsolete > > No they are not. Users should stick to using the zip distributions. [snip] Well, the Embedlets sourceforge page indicates that the project has not released any files to users yet. So, are you saying that we should offically release the embedlet_004.zip, outpost_004.zip and outhouse_002.zip files using the standard sourceforge site release mechanism? Ted __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
|
From: Andrzej J. T. <an...@ch...> - 2003-04-03 01:45:26
|
Johan: >> But the zip file does not contain the javadoc for the org.embedlet > classes, can that be added? The core embedlet class javadocs are part of the embedlet jar file. That is a deliberate decision on our part. They will never be part of the Outpost distribution. Ted says: > As it turns out the .zip files in the releases directory are obsolete No they are not. Users should stick to using the zip distributions. The CVS repository is for the next release (which is still some time away) and is for developers of the Embedlet/Outpost core stuff, or for very adventurous users (ones that understand that using the latest/greatest CVS images means that NO support will be offered). > How familiar are you with CVS and Ant and what operating system are you > using on your workstation? Let me repeat....CVS is for core Embedlet/Outpost developers. Users should stick to published (zipped) releases. ...Andrzej Chaeron Corporation http://www.chaeron.com |
|
From: Ted K. <tk...@ya...> - 2003-04-02 19:00:11
|
Johan, > I downloaded the outpost zip file. I looked through the files and i started > some tests using junit. As it turns out the .zip files in the releases directory are obsolete and in order to get the latest files you will need to obtain them from the CVS repository. To answer you question, however, you can find the extra files you need in the embedlet_004.zip file and the outhouse_002.zip file. The outhouse file contains a small test application you can run in order to see some embedlets running in an embedlet container. How familiar are you with CVS and Ant and what operating system are you using on your workstation? Ted __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com |
|
From: Johan M. <jm...@ba...> - 2003-04-02 14:39:37
|
Hello, I downloaded the outpost zip file. I looked through the files and i started some tests using junit. Iam thinking of buying the TINI. Further more i am interested in using the system level software you guys are making. But the zip file does not contain the javadoc for the org.embedlet classes, can that be added? Regards, Johan Maas |