Thanks Cesar, I will give it a go, but don't have alot of time now this week. They use myeclipse at work and its cheap to buy a licence, so I'll find out why the activity diagrams are missing.
I am also keen to take a closer look at IFML [1] in terms of it being integated with the workflow addon in Apache-Isis. This is instead of UML Activity diagrams. [1] http://www.ifml.org On Tue, Nov 24, 2015 at 3:00 AM, Cesar Lugo <[email protected]> wrote: > Hi. I also tried Papyrus, it works but the installation is a little > tricky. Best guidance I got was this YouTube video, which adds the "missing > link" to make it work. It's actually a part of a quite nice series with > Papyrus and UML tutorial videos. I hope that helps. > > https://www.youtube.com/watch?v=gmf8CswqKcs > > Cesar. > > -----Original Message----- > From: Stephen Cameron [mailto:[email protected]] > Sent: Monday, November 23, 2015 4:42 AM > To: [email protected] > Subject: Re: Thinking about re-introducing UML in our workflow > > Spent some time on this today, but did not get far. I tried Papyrus but > without success, couldn't get it to reverse engineer my code that is. Then > I tried myeclipse which does support UML2 and does reverse engineer Java > code to UML class diagrams and also updates these diagrams from any (code) > 'Model' changes afterwards. However the trial strangelly doesn't support > Activity diagrams despite them being in the documentation. So all in all > not time well spent. > > On Sat, Nov 21, 2015 at 9:31 AM, Stephen Cameron < > [email protected] > > wrote: > > > Hi, > > > > Related to this thread, my new job involves maintenance of a Struts 2 > > based website, in thinking about the best way to approach this task, > > both to learn how it has been put together and potentially make life > > easier into the future I thought the best place to start is creating > > some diagrams, maybe even UML diagrams . > > > > Then I remembered something called AndroMDA [1] from my past reading > > on UML/MDA, it has a 'cartridge' for generating a Struts > > web-application off a UML class model [2]. Just reading the > > documentation now, it can also make use of an UML Activity diagram for > > designing page navigation[3], also, it consume a BPMN diagram as a > > design model too (Hmm, just maybe this has more potential than I > imagined). > > > > I'll have a play with this myself soon (It seems like a fun way to > > learn about Struts and JBOSS), but thought in worth mentioning in this > > discussion. If I was starting from scratch to build such a 'public > facing' > > website, an approach that I can see working is to first develop an > > Apache Isis based domain model in Java and get all the systems > > integrations needed working with that. Then, to generate UML class > > diagrams off that design, add in the page navigation design (UML > > Activity diagram?), and use that combination to generate the skeleton > > of a tradition request/response type website using AndroMDA. > > > > If this all worked, it would provide something very close to a > > commercial MDA suite that I was interested in supporting called > > WebRatio [4], for which the public website design [5] market seems > > quite large. They talk about web-applications, but I like the Isis > > coded model approach better for real applications (as opposed to > > database back web-sites). For public facing web-sites, a templates > > based approach does still seem to be valid, such as Struts/JSP, and > > using a MDA probably a good way to manage that complexity. > > > > The WebRatio folk have designed a specific graphical web-site design > > language called Interacton Flow Modelling Language (IFML) [6] (but > > AndroMDA is UML focused). There is an open-source Eclipse plugin for > > IFML that they have contributed to [7]. > > > > Interested to hear thoughts, maybe a dead-end, but maybe not. > > > > Cheers > > > > > > [1] http://www.andromda.org/ > > [2] > > http://www.andromda.org/andromda-cartridges/andromda-bpm4struts-cartri > > dge/index.html > > [3] > > http://www.andromda.org/andromda-cartridges/andromda-bpm4struts-cartri > > dge/howto2.html > > [4] http://www.webratio.com > > [5] > > http://www.webratio.com/site/content/en/web-application-development > > [6] http://www.ifml.org/ > > [7] http://ifml.github.io/ > > > > > > > > > > > > > > > > > > > > On Fri, Nov 20, 2015 at 1:48 AM, Cesar Lugo <[email protected]> > > wrote: > > > >> Hi. > >> > >> I just wanted to let you guys know that I have tried Papyro in > >> eclipse. I have been able to reverse engineer java code and create > >> UML Class Diagrams (supports most of the UML types of diagrams > >> including use cases, state machine, activity and many more). I tried > >> adding a property within a domain object class, then redo java > >> engineer and it keeps my diagram and was able to include the new > >> property. I haven't been able to do the opposite, adding a property > >> within the UML and have it add it to the existing java class though. > >> Adding a new UML class generates java code just fine. I haven’t been > >> able to reverse engineer some repository classes, anything that uses > >> java.util.List fails to be imported into the UML model, I haven't > >> find the solution yet (sortedSet works fine). It doesn't > >> automatically create the diagram (like other simpler tools do), but > >> once you import your java code into the UML model, it's just a matter > >> of drag and drop and into the diagram canvas and select which > >> properties and operations (actions) you want to be shown, very > >> convenient to exclude the obvious from the diagram, like getters and > setters, maybe disableXxx / hideXxx / defaultxXX methods, your choice. > >> > >> I will keep working on it, looking good so far. > >> > >> Cesar. > >> > >> -----Original Message----- > >> From: Óscar Bou - GOVERTIS [mailto:[email protected]] > >> Sent: Monday, November 16, 2015 4:53 AM > >> To: users > >> Subject: Re: Thinking about re-introducing UML in our workflow > >> > >> > >> For you to know. > >> > >> I was just reading about “AgileJ” [1] (the video at [2] is excellent. > >> It perfectly summarizes the points-of-view expressed here about the > >> evolution last years of UML usage in dev teams). > >> > >> But I’ve also found the Papyrus Eclipse project [3]. Seems to be > >> really alive (there has been a conference this month). > >> > >> And It also seems to have full code synch from Java … See [4]. > >> > >> Any experience out there with Papyrus? > >> Could it be a good match for Apache Isis? > >> > >> > >> Cheers, > >> > >> Oscar > >> > >> > >> [1] http://www.agilej.com > >> [2] https://www.youtube.com/embed/hs9TYFsxkxE?autoplay=1&rel=0 > >> [3] http://www.eclipse.org/papyrus/ > >> [4] > >> https://www.eclipsecon.org/europe2015/session/papyrus4java-uml-diagra > >> ms-ordinary-java-developers > >> > >> > >> > >> > >> > El 16 nov 2015, a las 11:29, Óscar Bou - GOVERTIS > >> > <[email protected]> > >> escribió: > >> > > >> > > >> > Hi all. > >> > > >> > First of all, the good news for all romantics: > >> > > >> > Together is still alive !!! See [1]. > >> > > >> > [2] says it fully supports Eclipse. > >> > > >> > Really interesting, Jeroen, introducing Lombok. > >> > Look how clear and concise is the Aggregate in [3] expressed in C#. > >> > > >> > > >> > For me, my immediate need is to have a visual depiction of the new > >> features developers must work on. > >> > So an Agile diagramming tool would be ok for it. > >> > > >> > I’m used to drag-n-drop like interfaces, and I'm there are “visual” > >> tools out there that support plantuml, so it would be ok to be based on > it. > >> > > >> > Also agree that the model "must be" the code (and not “the code is > >> > the > >> model” MDA approach, despite my experience with Bold for > >> Delphi/Capable Objects was REALLY really good). > >> > > >> > > >> > > >> > Regards, > >> > > >> > Oscar > >> > > >> > > >> > > >> > [1] > >> > http://www.borland.com/en-GB/Products/Requirements-Management/Toget > >> > her > >> > [2[ > >> > http://www.borland.com/en-GB/Products/Requirements-Management/Toget > >> > her > >> > /Plugins-and-integrations [3] > >> > https://github.com/Lokad/lokad-cqrs/blob/master/SaaS.Domain/Aggrega > >> > tes > >> > /Register/RegistrationState.cs > >> > > >> > > >> > > >> >> El 16 nov 2015, a las 10:57, Mike Burton <[email protected]> > >> escribió: > >> >> > >> >> Hi Jeroen, > >> >> > >> >> My experience is similar. I was always suspicious of the "code > >> generation " approach, inevitably gives 2 "sources" that get out of > step. > >> >> > >> >> The only good exception I saw was TogetherJ where "the code is the > >> model" > >> >> > >> >> Best Regards > >> >> > >> >> Mike Burton > >> >> (Sent from my iPhone) > >> >> > >> >> > >> >> > >> >>> On 15 Nov 2015, at 23:44, Jeroen van der Wal > >> >>> <[email protected]> > >> wrote: > >> >>> > >> >>> All very interesting! > >> >>> > >> >>> Over the years I tried numerous modelling tools and only the > >> >>> low-tech ones > >> >>> stayed: drawing on a whiteboard, using coloured index cards [1] > >> >>> (learned from Dan) or using a simple online tool like yUML [2]. > >> >>> And I only use them to communicate the broad picture or for > >> >>> explorative > >> purposes. > >> >>> > >> >>> I gave up on code generators: I always ended up fighting the > >> >>> generated code. And the impression that they support rapid > >> >>> application development proved wrong: at the point where you had > >> >>> to work on more advanced stuff velocity came to a halt. If an > >> >>> application is built on lots of repeating code snippets then my > >> >>> conclusion is that the underlying framework is not good enough. > >> >>> > >> >>> I love source code that tells the story of the application. Where > >> >>> everything that could be left out of the code is eliminated. Very > >> >>> DRY, convention over code. This has drawn me to Naked Objects and > >> >>> made me decide to spend my time on Apache Isis. > >> >>> > >> >>> As you imagine by now I would not take the route from diagram to > >> >>> code. For me the code editor is the sole canvas to express your > >> >>> ideas. And I think that if we keep improving Apache Isis on a few > >> >>> points there will never be a need for an additional tool: > >> >>> > >> >>> 1) Reduce boilerplate and make writing an application skeleton as > >> >>> easy as the easiest modelling tool. This has the advantage that a > >> >>> software architect can sketch the application and leave it to his > >> >>> developers to fill in details. But everyone is working on the > >> >>> same code base using the same tools. In this area we started > >> >>> using Lombok. Also Dan had an idea to make it possible to create > >> >>> your own custom annotations which can combine multiple annotations. > >> >>> > >> >>> 2) Visualise the meta model. With contributions and mixins the > >> >>> application logic can come from anywhere. This is architecturally > >> >>> sane but makes an application hard to grasp. It would love to see > >> >>> a maven plugin that generates appealing documentation from the > >> >>> meta model of an Isis application. > >> >>> > >> >>> 3) When taking the visualisation concept a bit further it would > >> >>> be very powerful to explore and navigate the meta model within the > IDE. > >> >>> Any plugin developers here? > >> >>> > >> >>> That's just my two cents. > >> >>> > >> >>> Cheers, > >> >>> > >> >>> Jeroen > >> >>> > >> >>> > >> >>>> On 15 November 2015 at 21:01, David Tildesley > >> >>>> <[email protected]> > >> wrote: > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> On Sunday, 15 November 2015 5:37 AM, Dan Haywood < > >> >>>> [email protected]> wrote: > >> >>>>> Thanks for this James. > >> >>>> > >> >>>>> My observation re: using the (relational) data model as the > >> >>>>> initial input though is that this is likely to lead to rather > >> >>>>> coupled code, ultimately not maintainable. > >> >>>> > >> >>>> Couldn't agree more. > >> >>>> > >> >>>> > >> >>>>> So, while going from the database up to the domain is fine for > >> >>>>> a single module of 10 or so entities, any app that is bigger > >> >>>>> than this really > >> >>>> should > >> >>>>> be modelled from the domain down to the database. > >> >>>> > >> >>>> Quite right. Any business app that is non trivial should be > >> >>>> domain modelled. > >> >>>> > >> >>>> David. > >> >>>> > >> >>>>> Dan > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>> > >> >>>>> On 14 November 2015 at 15:00, James Agada > >> >>>>> <[email protected]> > >> wrote: > >> >>>>> > >> >>>>> I actually tested out using Telosys to generate an isis app > >> >>>>> from database definition. It did work but of course it meant i > >> >>>>> did the ER first. I used MySQL, did the ER modelling on the > >> >>>>> workbench, forward engineered into the database and then used > >> >>>>> telosys scripts to generate a functional Isis application. Did > >> >>>>> it as a PoC but we > >> will come back to it later. > >> >>>>> James Agada > >> >>>>> Chief Technology Officer > >> >>>>> > >> >>>>> > >> >>>>> On 14 Nov 2015, at 3:49 PM, Óscar Bou - GOVERTIS > >> >>>>> <[email protected]> > >> >>>>> wrote: > >> >>>>> > >> >>>>> Many thanks, Stephen for this detailed explanation. > >> >>>>> > >> >>>>> The problem I’m facing is that I intent to communicate the > >> >>>>> developers what’s the model to implement. > >> >>>>> > >> >>>>> And I usually don’t find big mistakes in action code, but what > >> >>>>> mostly forces us to refactor is miscommunication regarding the > >> >>>>> Domain Entities, attributes and actions names, including typos > >> >>>>> (think my team speak > >> >>>> Spanish > >> >>>>> but they’re modeling in English) or wrong or missing > >> >>>>> relationships > >> >>>> between > >> >>>>> those entities. > >> >>>>> > >> >>>>> All that could be avoided by firstly agree in a common UML > >> >>>>> Class > >> Diagram. > >> >>>>> > >> >>>>> If it can potentially generate automatically the Java skeleton > >> >>>>> with > >> >>>> Apache > >> >>>>> Isis annotations is a big plus, as it will avoid mistakes when > >> >>>>> moving > >> >>>> from > >> >>>>> design to implementation. > >> >>>>> > >> >>>>> And if it could potentially reverse engineer Java (incl. Apache > >> >>>>> Isis > >> >>>>> idioms) a really good feature. > >> >>>>> > >> >>>>> Any ideas about what tools could best adapt to the workflow > >> >>>>> (that could > >> >>>> be > >> >>>>> potentially customized to cover the last 2 whishes) ? > >> >>>>> > >> >>>>> > >> >>>>> Thanks, > >> >>>>> > >> >>>>> Oscar > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> El 14 nov 2015, a las 2:03, Stephen Cameron > >> >>>>> <[email protected]> > >> >>>>> escribió: > >> >>>>> > >> >>>>> Hi Oscar, > >> >>>>> > >> >>>>> In a qualified way I think your idea has merit. I have never > >> >>>>> used UML for design, but a few years ago I decided to take a > >> >>>>> good look at it and see > >> >>>> it > >> >>>>> if was useful. The idea of being able to draw a diagram and > >> >>>>> generate code from it seemed sensible, after all that is what > >> >>>>> is done by most other 'design' professions, such as building > >> architects and engineers. > >> >>>>> > >> >>>>> To cut a long story short I realised after some reading that it > >> >>>>> was not that simple, and that OO languages themselves are > >> >>>>> really all that are needed for the process of designing a > >> >>>>> system. This is "the code is the design" school of thought, > >> >>>>> mainly attributed to > >> Jack Reeves [1]. > >> >>>>> > >> >>>>> I found that keeping code and UML diagrams in sync in a > >> >>>>> top-down 'UML to code' design process will always be > >> >>>>> problematic (maybe why there are apparently no open-source tools > that claim to do this). > >> >>>>> Then I read about Domain Driven Design which seemed to agree > >> >>>>> with this premise, and from there found Apache Isis via Dan's > book. > >> >>>>> > >> >>>>> So now for me UML class diagrams do have an after the fact use > >> >>>>> for documentation purposes and if a solution implement was > >> >>>>> capable of that reverse generation of diagrams from code it > >> >>>>> would be a good thing to > >> >>>> have. > >> >>>>> Entity Framework can do this, its their "code first" approach. > >> >>>>> > >> >>>>> Given that the-code-is-the-design is true, I think that UML > >> >>>>> class > >> >>>> diagrams > >> >>>>> real main value is as a data model, the question then is why > >> >>>>> not use a purely data-modeling tool and generate Java classes off > it. > >> >>>>> Then the diagrams 'designed' could have a usefulness to > >> >>>>> programmers and to system users, something like those created > >> SchemaSpy [2] for example. > >> >>>>> > >> >>>>> There are already useful and free Java class generation > >> >>>>> (binding) tools from off data-models, of one sort or another, > >> >>>>> such as JAXB, > >> DataNucleus' > >> >>>>> schemaGen[3], even CAM [4]. > >> >>>>> > >> >>>>> Here is my vision of what I think would be really useful: to > >> >>>>> have a > >> >>>> design > >> >>>>> tool that can be used by non-programmers to create a simple > >> >>>>> data-model, > >> >>>> and > >> >>>>> then to have that create a working Apache Isis based CRUD system. > >> >>>>> This could serve your purpose (I guess) and also find a wider use. > >> >>>>> > >> >>>>> The means of achieving this would I think, require something > >> >>>>> like the "dynamic classes" in available in the Moxy framework > >> >>>>> [5], that is, map based so that no Java class compilation is > needed. > >> >>>>> Instead, a data-model configuration file (a schema) is read-in > >> >>>>> to configure the system. This is not a strange idea, in fact > >> >>>>> its the data-driven programming paradigm that is the basis of > >> >>>>> the original browser concept (before it was turned into > >> >>>> OO > >> >>>>> application framework via addition of Javascript). In the > >> >>>>> browser the > >> >>>> data > >> >>>>> is HTML that is turned into an in-memory Document Object Model > >> >>>>> (DOM) for rendering. > >> >>>>> > >> >>>>> As a blended solution between Apache Isis as it is currently > >> >>>>> (heavily influence by naked objects, an OO modelling based > >> >>>>> approach for creating custom *behavioural* applications) and > >> >>>>> this additional mainly data > >> >>>> focused > >> >>>>> approach, I think a programmer developing a business > >> >>>>> application would start off with these dymanic classes and then > >> >>>>> in time 'harden' the design by generating and compiling real > >> >>>>> Java classes from off the model. [A non-programmer wouldn't get > >> >>>>> past the first design 'phase' usually, but still end up with a > >> >>>>> useable UI.] > >> >>>>> > >> >>>>> In addition, by having separate abstract model-generated > >> >>>>> classes, that > >> >>>> can > >> >>>>> be overwritten if the data-model changes, and concrete > >> >>>>> implementation classes, where you put all your behavioural code > >> >>>>> and that are never overwritten, you get close to the > >> >>>>> 'round-tripping' that would seem to me > >> >>>> to > >> >>>>> be the only valid way to use UML *for design*. I think this is > >> >>>>> how the Eclipse Ecore models work, that there are model classes > >> >>>>> and > >> >>>> implementation > >> >>>>> classes that extend the model classes. The IDE will often warn > >> >>>>> you when these two sub-models have inconsistencies. This > >> >>>>> duality also offers an alternative means to achieving the goals > >> >>>>> of Lombok it > >> would seem. > >> >>>>> > >> >>>>> Of course, sitting in the middle of all this is a meta-model, > >> >>>>> that > >> >>>> creates > >> >>>>> the dynamic classes, generates and compiles the 'hardened' > >> >>>>> model classes (when used) and maps either of these means to a UI > 'viewer'. > >> >>>>> > >> >>>>> For such data-management frameworks, the complicated aspect > >> >>>>> isn't so much going from the designed data-model to Java, there > >> >>>>> are lots of examples of that, instead its being able to have > >> >>>>> also, a dynamic query capability. So that a person unfamiliar > >> >>>>> with the dataset, can, via its data-model, start querying it > >> >>>>> (and also maybe integrating it in real-time with other online > >> >>>>> resources, the > >> idea of a data-browser appeals!). > >> >>>>> > >> >>>>> In the science domain, where I worked for a few years building > >> >>>>> data-management infrastructure, there are highly advanced > >> >>>>> systems for online data access and querying e.g. [6], but at > >> >>>>> the same time a common tool used for small databases is still > Microsoft Access. > >> >>>>> Access has many strengths as a desktop database, including form > >> >>>>> generation and also > >> >>>> dynamic > >> >>>>> query-by-form, but the problems arise when you want to make > >> >>>>> such data publicly available, in the sense of being findable > >> >>>>> and searchable in real time. You might as well have used a > >> >>>>> web-based system from the start and then been able to easily > >> >>>>> open it to the > >> world at the appropriate time. > >> >>>>> > >> >>>>> Having though about this problem for a number of years and > >> >>>>> spent alot of time working on a XForms based solution as well. > >> >>>>> I'd be very interested > >> >>>> to > >> >>>>> see Apache Isis broaden its scope to offer what I have > >> >>>>> described, in fact its doesn't seem to need very much more than > >> >>>>> what is already present in > >> >>>> the > >> >>>>> Isis meta-model and Wicket viewer. The Restful objects support > >> >>>>> already provides a generic 'generated' web programming interface. > >> >>>>> > >> >>>>> In summary I know that there are some Java projects that make > >> >>>>> very effective use of a Model Driven Architecture approach (e.g > >> >>>>> [7]), but I am now not sure that UML is the > >> >>>>> 'be-all-and-end-all' basis of > >> that. > >> >>>> Actually I > >> >>>>> think that data-models are the basis of most of MDAs efficiency > >> >>>>> dividends and that there are other approaches, specifically > >> >>>>> that conceptual models offer more versatility in terms of who > >> >>>>> and how > >> you can make use of them. > >> >>>>> This thinking goes way back, such as Sowa's Conceptual Graphs > >> >>>>> [8] and > >> >>>> even > >> >>>>> to Codd [9]. A modern expression of Sowa's thoughts (I gather) > >> >>>>> is the W3C semantic web, but he was thinking of database design > >> >>>>> and > >> query way back. > >> >>>>> > >> >>>>> Apart from some additions to Isis, another interesting aspect > >> >>>>> is looking > >> >>>> at > >> >>>>> the mapping to data-stores, using a graph database of one sort > >> >>>>> or another to avoid the complexity of ORM is a simple answer to > >> >>>>> that I feel. Again, the hardening of a design might mean > >> >>>>> manually adding a few overrides of default ORM mapping rules > >> >>>>> into some behavioural-model classes, that > >> >>>> extend > >> >>>>> generated data-model classes (getters and setters only). > >> >>>>> > >> >>>>> > >> >>>>> [1]http://www.developerdotstar.com/mag/articles/reeves_design_m > >> >>>>> ain > >> >>>>> .html > >> >>>>> [2]http://schemaspy.sourceforge.net/sample/relationships.html > >> >>>>> [3] > >> >>>> http://www.datanucleus.org/products/accessplatform_2_1/rdbms/sch > >> >>>> ema > >> >>>> tool.html > >> >>>>> [4]http://camprocessor.sourceforge.net/wiki/index.php/Main_Page > >> >>>>> [5]https://wiki.eclipse.org/EclipseLink/Examples/MOXy/Dynamic > >> >>>>> [6]http://www.opendap.org/ > >> >>>>> [7]http://www.opencrx.org/ > >> >>>>> [8]https://en.wikipedia.org/wiki/Conceptual_graph > >> >>>>> [9]https://en.wikipedia.org/wiki/Relational_Model/Tasmania > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> On Fri, Nov 13, 2015 at 8:45 PM, Óscar Bou - GOVERTIS < > >> >>>> [email protected]> > >> >>>>> wrote: > >> >>>>> > >> >>>>> > >> >>>>> Hi all. > >> >>>>> > >> >>>>> I’m considering re-introducing UML Class diagrams in our > >> >>>>> workflow mainly > >> >>>>> for: > >> >>>>> - graphically design the domain entities. > >> >>>>> - modeling relationships. > >> >>>>> - agree with names of properties, collections and actions needed. > >> >>>>> > >> >>>>> It would be wonderful if the UML solution could also be > >> >>>>> “integrated” with Apache Isis or Java, automating at least the > >> >>>>> entities Java skeleton generation. > >> >>>>> > >> >>>>> I’ve worked extensively with Rational Rose and Sparx > >> >>>>> EnterpriseArchitect, but was thinking about an Eclipse-based > >> solution that could “potentially” > >> >>>>> be adapted to generate the Java entities with Isis annotations. > >> >>>>> > >> >>>>> Before joining the Apache Isis community I developed [1] for > >> >>>>> Enterprise Architect for automatically generating Spring > >> >>>>> Roo-based classes, but Isis was better suited for our project > >> >>>>> and I abandoned > >> it. > >> >>>>> > >> >>>>> > >> >>>>> Any ideas? > >> >>>>> > >> >>>>> Thanks, > >> >>>>> > >> >>>>> Oscar > >> >>>>> > >> >>>>> > >> >>>>> [1] http://roomodeler.com > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> > >> >>>>> This email and any attachment thereto are confidential and > >> priviledged. > >> >>>> if > >> >>>>> you have received it in error, please delete immediately and > >> >>>>> notify the sender. Do not disclose, copy, circulate or in any > >> >>>>> way use it. The information contained therein is for the > >> >>>>> address only, if you reply on > >> >>>> it, > >> >>>>> its at your own risk. Emails are not guaranteed to be secure or > >> >>>>> error > >> >>>> free, > >> >>>>> the message and any attachment could be intercepted, corrupted, > >> >>>>> lost, delayed, incomplete or ammended. Computer warehouse group > >> >>>>> and its > >> >>>> divisions > >> >>>>> do not accept liability for damage caused by this email or any > >> >>>> attachment. > >> >>>>> The message you tried to print is protected with Information > >> >>>>> Rights Management. You don't have the necessary user rights to > >> >>>>> print the > >> >>>> message. > >> >>>>> > >> >>>>> > >> >>>>> This email and any attachment thereto are confidential and > >> priviledged. > >> >>>> if > >> >>>>> you have received it in error, please delete immediately and > >> >>>>> notify the sender. Do not disclose, copy, circulate or in any > >> >>>>> way use it. The information contained therein is for the > >> >>>>> address only, if you reply on > >> >>>> it, > >> >>>>> its at your own risk. Emails are not guaranteed to be secure or > >> >>>>> error > >> >>>> free, > >> >>>>> the message and any attachment could be intercepted, corrupted, > >> >>>>> lost, delayed, incomplete or ammended. Computer warehouse group > >> >>>>> and its > >> >>>> divisions > >> >>>>> do not accept liability for damage caused by this email or any > >> >>>> attachment. > >> >>>>> The message you tried to print is protected with Information > >> >>>>> Rights Management. You don't have the necessary user rights to > >> >>>>> print the > >> >>>> message. > >> >>>> > >> > > >> > >> > >> > >> --- > >> This email has been checked for viruses by Avast antivirus software. > >> https://www.avast.com/antivirus > >> > >> > > > > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > >
