Modular Framework

Hi,
I am doing n app and i would like it to be dynmically extensible at runtime (plugins, modules). I will have a core set of modules in a cardlayout that can be switched using toggle buttons or some popup module switcher. I would also like the platform to have plugins that can provide other functionality. The app is promarily for monitoring public accessible computer access at the college I attend. It will site on a workstation and the operator will assign a computer to a user and momitor(JTable) all users and their time.
Core Modules:
Monitor - monitor computer usage time
User Manager - create users (admins, students, operators)
Resource Manager - create assignable resources (computers, printers etc)
Logs - tabular log (error, login access etc)
Reports - Daily usage reports etc
Now i would like to come back later (version XXX) and add a new plugin that furthers the capabilty of say the monitor module. For example i may wnt to add a Waiting List plugin that would function as a holdng pen for users waiting to use a resource.
Fred
Jason
Wayne
etc
This plugin should be able to interact with the monitor and provide the ability to say assign a users from itsel (may be a right click popup menu) to a selected resource in the monitor table (removing any other user). What is the best way to sdo something like this. Load plufgins from a plugin file say maybe plugins/myplugin.xml.
May look like this:
<plugin name="myplugin" version="1.0" mainclass="com.plugins.myplugin.MyPlugin" />
And each plugin would provide one of these and a jar file containing plugin classes. Here is a base swing framework if any one is interested to see what i mean sort of:
http://www.jetaimebannister.com/downloads/nrms/client/client.jnlp

Hm ...
even so, I want to believe you, I will not start it - no risk is more fun in this case, sorry.
For plugin-programming - which is loading and linking c l a s s e s during runtime - I use the newInstance() method of the C l a s s class (sorry, for that, I don't know how to prevent this: class) and the getClassForName(...) method to retrieve the needed C l a s s instance for that. This will only work if the c l a s s to load provides a no parameter constructor.
After creating a new instance this way, I link this new instance - i.e. adding listeners to it and add it as listener to other c l a s s e s. I always use listener interfaces to do this linkage to be able to plugin classes during runtime resp. plugin c l a s s e s from other programmers without the need to recompile or even stop my applications.
I don't know, if that is practical for you, but I hope it will help you to find your way.
greetings Marsian

Similar Messages

  • Is this possible in Web Dynpro Java?

    Hi,
    Please check if this can be done in Web Dynpro Java...
    public class TestFunction {
         boolean bool =false;
         boolean Test1()
              bool= true;
              return bool;
         void takeBool(boolean b){
              b=this.bool;
              System.out.println("The value of bool "+bool);
         public static void main(String[] args) {
              TestFunction tf = new TestFunction();
              boolean c=tf.Test1();
              tf.takeBool(c);
    Regards
    Kaushik Banerjee
    Edited by: Kaushik Banerjee on Sep 1, 2010 8:00 PM

    Further to what Faraz has said, Web Dynpro can be seen as an implementation of the Framework pattern.
    Essentially you write normal Java code with access to various Java objects exposed/generated by the Web Dynpro Framework inside "hook" functions.
    The Web Dynpro framework then calls your functions at various stages when the page renders and when actions are triggered.
    For a high level understanding of this, not specific to Web Dynpro, research the concept of OO Frameworks pattersn.
    for example [Article explaining frameworks|http://www.cs.wustl.edu/~schmidt/CACM-frameworks.html]
    Here is an excerpt from the above article which highlights the major points
    The primary benefits of OO application frameworks stem from the modularity, reusability, extensibility, and inversion of control they provide to developers, as described below:
    Modularity -- Frameworks enhance modularity by encapsulating volatile implementation details behind stable interfaces. Framework modularity helps improve software quality by localizing the impact of design and implementation changes. This localization reduces the effort required to understand and maintain existing software.
    Reusability -- The stable interfaces provided by frameworks enhance reusability by defining generic components that can be reapplied to create new applications. Framework reusability leverages the domain knowledge and prior effort of experienced developers in order to avoid re-creating and re-validating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software.
    Extensibility -- A framework enhances extensibility by providing explicit hook methods that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features.

  • ASCII character/string processing and performance - char[] versus String?

    Hello everyone
    I am relative novice to Java, I have procedural C programming background.
    I am reading many very large (many GB) comma/double-quote separated ASCII CSV text files and performing various kinds of pre-processing on them, prior to loading into the database.
    I am using Java7 (the latest) and using NIO.2.
    The IO performance is fine.
    My question is regarding performance of using char[i] arrays versus Strings and StringBuilder classes using charAt() methods.
    I read a file, one line/record at a time and then I process it. The regex is not an option (too slow and can not handle all cases I need to cover).
    I noticed that accessing a single character of a given String (or StringBuilder too) class using String.charAt(i) methods is several times (5 times+?) slower than referring to a char of an array with index.
    My question: is this correct observation re charAt() versus char[i] performance difference or am I doing something wrong in case of a String class?
    What is the best way (performance) to process character strings inside Java if I need to process them one character at a time ?
    Is there another approach that I should consider?
    Many thanks in advance

    >
    Once I took that String.length() method out of the 'for loop' and used integer length local variable, as you have in your code, the performance is very close between array of char and String charAt() approaches.
    >
    You are still worrying about something that is irrevelant in the greater scheme of things.
    It doesn't matter how fast the CPU processing of the data is if it is faster than you can write the data to the sink. The process is:
    1. read data into memory
    2. manipulate that data
    3. write data to a sink (database, file, network)
    The reading and writing of the data are going to be tens of thousands of times slower than any CPU you will be using. That read/write part of the process is the limiting factor of your throughput; not the CPU manipulation of step #2.
    Step #2 can only go as fast as steps #1 and #3 permit.
    Like I said above:
    >
    The best 'file to database' performance you could hope to achieve would be loading simple, 'known to be clean', record of a file into ONE table column defined, perhaps, as VARCHAR2(1000); that is, with NO processing of the record at all to determine column boundaries.
    That performance would be the standard you would measure all others against and would typically be in the hundreds of thousands or millions of records per minute.
    What you would find is that you can perform one heck of a lot of processing on each record without slowing that 'read and load' process down at all.
    >
    Regardless of the sink (DB, file, network) when you are designing data transport services you need to identify the 'slowest' parts. Those are the 'weak links' in the data chain. Once you have identified and tuned those parts the performance of any other step merely needs to be 'slightly' better to avoid becoming a bottleneck.
    That CPU part for step #2 is only rarely, if every the problem. Don't even consider it for specialized tuning until you demonstrate that it is needed.
    Besides, if your code is properly designed and modularized you should be able to 'plug n play' different parse and transform components after the framework is complete and in the performance test stage.
    >
    The only thing that is fixed is that all input files are ASCII (not Unicode) characters in range of 'space' to '~' (decimal 32-126) or common control characters like CR,LF,etc.
    >
    Then you could use byte arrays and byte processing to determine the record boundaries even if you then use String processing for the rest of the manipulation.
    That is what my framework does. You define the character set of the file and a 'set' of allowable record delimiters as Strings in that character set. There can be multiple possible record delimiters and each one can be multi-character (e.g. you can use 'XyZ' if you want.
    The delimiter set is converted to byte arrays and the file is read using RandomAccessFile and double-buffering and a multiple mark/reset functionality. The buffers are then searched for one of the delimiter byte arrays and the location of the delimiter is saved. The resulting byte array is then saved as a 'physical record'.
    Those 'physical records' are then processed to create 'logical records'. The distinction is due to possible embedded record delimiters as you mentioned. One logical record might appear as two physical records if a field has an embedded record delimiter. That is resolved easily since each logical record in the file MUST have the same number of fields.
    So a record with an embedded delimiter will have few fields than required meaning it needs to be combined with one, or more of the following records.
    >
    My files have no metadata, some are comma delimited and some comma and double quote delimited together, to protect the embedded commas inside columns.
    >
    I didn't mean the files themselves needed to contain metadata. I just meant that YOU need to know what metadata to use. For example you need to know that there should ultimately be 10 fields for each record. The file itself may have fewer physical fields due to TRAILING NULLCOS whereby all consecutive NULL fields at the of a record do not need to be present.
    >
    The number of columns in a file is variable and each line in any one file can have a different number of columns. Ragged columns.
    There may be repeated null columns in any like ,,, or "","","" or any combination of the above.
    There may also be spaces between delimiters.
    The files may be UNIX/Linux terminated or Windows Server terminated (CR/LF or CR or LF).
    >
    All of those are basic requirements and none of them present any real issue or problem.
    >
    To make it even harder, there may be embedded LF characters inside the double quoted columns too, which need to be caught and weeded out.
    >
    That only makes it 'harder' in the sense that virtually NONE of the standard software available for processing delimited files take that into account. There have been some attempts (you can find them on the net) for using various 'escaping' techniques to escape those characters where they occur but none of them ever caught on and I have never found any in widespread use.
    The main reason for that is that the software used to create the files to begin with isn't written to ADD the escape characters but is written on the assumption that they won't be needed.
    That read/write for 'escaped' files has to be done in pairs. You need a writer that can write escapes and a matching reader to read them.
    Even the latest version of Informatica and DataStage cannot export a simple one column table that contains an embedded record delimiter and read it back properly. Those tools simply have NO functionality to let you even TRY to detect that embedded delimiters exist let alone do any about it by escaping those characters. I gave up back in the '90s trying to convince the Informatica folk to add that functionality to their tool. It would be simple to do.
    >
    Some numeric columns will also need processing to handle currency signs and numeric formats that are not valid for the database inpu.
    It does not feel like a job for RegEx (I want to be able to maintain the code and complex Regex is often 'write-only' code that a 9200bpm modem would be proud of!) and I don't think PL/SQL will be any faster or easier than Java for this sort of character based work.
    >
    Actually for 'validating' that a string of characters conforms (or not) to a particular format is an excellent application of regular expressions. Though, as you suggest, the actual parsing of a valid string to extract the data is not well-suited for RegEx. That is more appropriate for a custom format class that implements the proper business rules.
    You are correct that PL/SQL is NOT the language to use for such string parsing. However, Oracle does support Java stored procedures so that could be done in the database. I would only recommend pursuing that approach if you were already needing to perform some substantial data validation or processing the DB to begin with.
    >
    I have no control over format of the incoming files, they are coming from all sorts of legacy systems, many from IBM mainframes or AS/400 series, for example. Others from Solaris and Windows.
    >
    Not a problem. You just need to know what the format is so you can parse it properly.
    >
    Some files will be small, some many GB in size.
    >
    Not really relevant except as it relates to the need to SINK the data at some point. The larger the amount of SOURCE data the sooner you need to SINK it to make room for the rest.
    Unfortunately, the very nature of delimited data with varying record lengths and possible embedded delimiters means that you can't really chunk the file to support parallel read operations effectively.
    You need to focus on designing the proper architecture to create a modular framework of readers, writers, parsers, formatters, etc. Your concern with details about String versus Array are way premature at best.
    My framework has been doing what you are proposing and has been in use for over 20 years by three different major nternational clients. I have never had any issues with the level of detail you have asked about in this thread.
    Throughout is limited by the performance of the SOURCE and the SINK. The processing in-between has NEVER been an issu.
    A modular framework allows you to fine-tune or even replace a component at any time with just 'plug n play'. That is what Interfaces are all about. Any code you write for a parser should be based on an interface contract. That allows you to write the initial code using the simplest possible method and then later if, and ONLY if, that particular module becomes a bottlenect, replace that module with one that is more performant.
    Your intital code should ONLY use standard well-established constructs until there is a demonstrated need for something else. For your use case that means String processing, not byte arrays (except for detecting record boundaries).

  • ASA Modular Policy Framework - Global vs. Interface

    I understand from the Cisco documentation that a service-policy applied to an interface on an ASA 5500 series firewall, will override the default global service-policy.  However, I am not clear on whether it will override the entire global service-policy, or only the parts where they overlap.  In other words, would the resulting service-policy on the interface in question be just what was applied in the service-policy on the interface, completely replacing the global service-policy?  Or, would it be a combination of the global and interface service-policies, with the interface one taking precedence where they overlap?
    if I wanted an interface to have the same service-policy as the global service-policy plus on other item, can I just add the one item in a service-policy that I apply to the interface, or do I have to replicate all the items from the global policy, plus the one additional item, and apply that to the interface.
    Thank you.

    Hi,
    Interface  service policies take precedence over the global service policy for a  given feature. For example, if you have a global policy with FTP  inspection, and an interface policy with TCP normalization, then both  FTP inspection and TCP normalization are applied to the interface.  However, if you have a global policy with FTP inspection, and an  interface policy with FTP inspection, then only the interface policy FTP  inspection is applied to that interface.
    Here is a doc for detailed study:
    http://www.cisco.com/en/US/partner/docs/security/asa/asa82/configuration/guide/mpf.html
    Hope this clears out your doubt.
    Thanks,
    Varun

  • Best use of framework events in application architecture

    Hello,
    I apologize in advance if this is not the appropriate forum to be posting about Flex framework questions.  I considered the Cairngorm forum, but thought the question applied more broadly to all flex frameworks. That, and it seems that the Cairngorm forum isn't really very active.
    My question is about using frameworks for application architecture. Reading the "Introducing Cairngorm" document,  I see that it specifically says that Cairngorm events are just those events that will handle business logic (things like grabbing data from a server, committing data to a server, etc).  So then, how does a view interact with a controller when changing state?
    Let's say I have two or three different views of the same data and I have a buttonbar to switch to the view I want. Is it then typical to dispatch a Cairngorm (or Mate/Swiz/Pure MVC, etc..)  event to the controller to change the view state of the application?  Does this effectively mean that for every button a user can click on, we'll have an event and a command associated with that event to perform some change of state or business logic? With a moderately complicated application, with several different screens, a few forms, a couple of lookups, i.e. lots of buttons for user input, that seems like an awfully huge number of events/commands...? Or do you dispatch a regular old flash Event to handle this? Or does the view data bind to the model to change the view state?
    Obviously there's never any single correct answer to application architecture questions, but I'd like to know if there's any general best practices that I should follow. I don't want to under-architect OR over-architect my app.  I'm new to Flex programming and would like not to code something egregiously ugly.
    Thanks,
    Cory

    Hi,
    Consider this, there is no such thing as an enterprise level RIA, the whole concept behind thin client was to restrict the enterprise requirements to the backend, that being said if we assume that a flex application is specifically for the client end and can maintain its own state and that MVC frameworks are more about enterprise solutions then the whole framework argument becomes what it is, academic BS.
    <start rant>
    Its really simply, in half a century nothing has changed, you have rules and requirements(model), you have access to that(view) and you wrap it up as a program/application(controller) so  why do you need convoluted multilayer abstraction of functionality to make things work ? maybe so those that can't get a real development job can run around and preach at conferences, how else could they feed their adopted kids.
    So all those nice buzzwords, design patterns(the new age terminology for modular architecture), model/view/controller, borg coding(resistance is futile) is all very fine if you want to act smart but producing quality code actually means you are smart. As you may have guessed I am not a strong proponent of MVC frameworks, and I don't even need to get into the argument that everytime a 'framework' expert gets control of a project that isn't done in their MVC  poison of choice it gets a rewrite, clients really love those associated costs and retesting requirements.
    </end rant>
    You only need 1 framework for flex and thats the flex framework.
    Have a read this blog, the section on MVC and Flex is very interesting if not overly polite.
    http://www.herrodius.com/blog/216
    David

  • Best practice/howto create extendable, modular, client-distributed java app

    Hi!
    I was adviced to re-post here, following advice from this post http://forums.sun.com/thread.jspa?messageID=10611662
    I'll try to be consise, here's what I wonder about:
    The application:
    I am writing an application which I plan to offer for download and easy installation to end-users. The application will offer a set of services to the user. It is designed to run in the background on the desktop with a tray icon for easy administration.
    What I need help with:
    I am trying to make this application modular. E.g so that I can offer new services/extensions to the application for download at a later time. The user should then only need to download the new "plug-in" or module, install it on his computer with minimum effort and it should be plugged into the already installed application.
    The question:
    What is the "best / easiest" way of doing this?
    I have been looking into the OSGi frameworks out there e.g. Knopflerfish and Equinox and have started reading about JPF the "Java Plug-in Framework"
    I also just came across Platonos Plugin Engine
    What I want is a solution which does not create a huge code overhead or is difficult to use, I want to keep it simple, both for me as developer and especially the user, is this possible?
    - Looking forward to some input!

    genernic wrote:
    What I want is a solution which does not create a huge code overhead or is difficult to use, I want to keep it simple, both for me as developer and especially the user, is this possible?For the user? Certainly. For you, the developer? Not so much. Writing software is difficult, that's all there is to it. Frameworks like Equinox (Actually, Eclipse RCP might well be right up your street) do indeed relieve you of some of the burden of, say, writing a plugin mechanism, but they come with their own learning curve. They won't just do it for you, with a couple of easy clicks of a button. Generally, the easier you make things on your user, the more pain it is for you as a developer.
    Eclipse RCP gives you some good wizards for getting started, but you'll still need to get an understanding of what's going on, or you'll be stuck when you hit a problem.

  • Modular Frustrations

    OK,
    about 8 months ago we decided to use Adobe AIR as the application framework for our Customer Admin workers. So far it has been extremely successful.
    Our customers see a flex app in a web page and our workers see an AIR application on their computers.
    In order to reduce duplication of code we share a lot of components between the AIR and flex applications. So far this has been an extremely excellent choice, and our customers on the web site are able to see exactly the same view as our admin workers. However I now seem to have hit a show-stopper.
    The admin app has very advanced functionality compared to the client app, and sometime one worker will have several hundred clients linked to the same view as them. The admin app can then send instructions, via a server, to the client app to load an external swf. The shared component in both the admin and the customer app then show the same loaded module. This module is loaded from an external content managed server and can not be distributed with the air app. The admin app can then instruct the loaded module to perform certain operations - here in lies the problem - the web app can easily communicate with the loaded swf and we see it do what the admin app has told it to do, but the AIR app is completely prevented from talking to it, except it seems through the sandbox bridge. Unfortunately this means that the loaded swf suddenly has to be different for either app - one uses a sandbox bridge and one doesn't.
    This is appalling :-( I can see no way forward and suddenly we have to rethink our whole technology decision. What annoys me most is that we KNOW that the only swf's that can be loaded by the AIR app (which is completely under our control) are safe ones- we control them too.
    How do I solve this? Currently it is completely beyond me.
    Please allow AIR to let down its guard a bit if you tell it to. Otherwise we will have to use something else...

    Since you know the SWFs are safe, you can load them with the URLLoader class as a ByteArray object and then use Loader.loadBytes() to inject them into the AIR app. To do this, you must pass a LoaderContext with allowLoadBytesCodeExecution=true.Note that older versions of Flex had difficulty with this technique, but I believe they have been resolved. I've asked the engineers for clarification on the Flex support issue, but in the meantime, here are some links that might help:
    http://blog.esofthead.com/loading-modules-in-air-application-2/
    http://flair-flash-flex-air.blogspot.com/2009/09/framework-for-modular-air-applications.ht ml
    http://opensource.adobe.com/wiki/display/flexsdk/Marshall+Plan

  • [SOLVED]Need ideas for framework level disable on af command components

    Hi all,
    I am using ADF Faces & BC, JDeveloper 10g.
    I need a framework level disable/enable design for every command component on a adf faces page. I can certainly do this one at a time by assigning an el expression on the "disable" attribute individually. However, this would put the burden on each developer to ensure proper authorization code is put in place. I would like to avoid the latter option as it is repetitive, not modular and prone to mistakes. Can anyone provide some ideas? I was thinking of using javascript to pick up special designated componentIds and assign property that way. Also, I've heard of aspect oriented approaches for Java classes, although I'm not sure how well this would integrate into our application. Any advice is appreciated.
    Thanks,
    Wes
    Edited by: Wes Fang on Sep 21, 2010 9:00 AM

    Thanks again for the idea John, I tracked down this thread:
    ADF FACES:Creating custom component on top of adf
    on how to create custom tags, everything is working with the exception one important feature. My custom tags are showing up, but I cannot seem to access the adf binding container within the UIcomponent base. I need to execute a method on the app module to find out if the button should be enabled/disabled. Would you have a solution to this issue? I also found another user with similar question over at:
    Re: Parsing EL expression in custom tag 10.1.3.4
    thanks,
    Wes

  • New, open source JavaFX OSGI framework

    First, a disclaimer: this is an open source project I started, and somebody may regard it as advertising (basically, it is ). I'm not sure if it's against forum rules. If so, please delete this thread.
    Basically, it's a framework for developing modular applications based on OSGI. It should provide support for building applications for desktop, web and mobile devices. It's called DEMUX Framework. Published under Apache License.
    http://demux.vektorsoft.com
    So far, support is available for desktop applications based on JavaFX, and mobile apps for Android. Since this is JavaFX forum, I would like some feedback from people who work with JavaFX. Basically, is this something you would find useful and worth spending time developing?
    If you have some time to throw away, give it a try. Please note that this is early stage development, so you will probably get frustrated and annoyed, buty ou should get the general idea.
    Documentation and some code samples are available on project wiki: http://demux.vektorsoft.com/wiki
    Source code for samples is available as part of binary download: https://bitbucket.org/vektorsoft/demux/downloads
    Any feedback is welcome.

    hi,
    here's a thought stop spamming this forum with your crap....
    A warning to others ignore any links this guy offers, 4/5 of his links so far are connected to spyware.
    David.

  • Crystal report 9 and framework 3.5

    Hi,
    I have a dot net application using framework 1.1 and crystal 9 ( stand alone version and not the version shipped with visual studio ). I converted this application to use framework 3.5 ( studio 2008 ) and I was able to call my old version 9 reports from the application on my machine( I have crystal 9 installed on my machine).
    My question is what do I need to do to install this application on a machine where crystal 9 is not  installed. My old installer which used to install the crystal dependencies doesn't work I get error Unable to open report : Could not load file or assembly CrystalDecisions.Windows.Forms, Version 10.5.3700.0.
    Can i create a new installer using a different crystal merge module? If yes where can I get that merge module which will help me deploy my application compiled in framework 3.5 but which needs to call reports created with crystal version 9.
    Thanks,
    Vik

    Ludek,
    I tried to include 'CRRedist2008_x86.msi in  the setup project but then it gives following errors :
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Directory' row='ProgramMenuFolder'
    Database: table='Directory' row='ProgramMenuFolder'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Directory' row='DesktopFolder'
    Database: table='Directory' row='DesktopFolder'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='ProductName'
    Database: table='Property' row='ProductName'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='ProductCode'
    Database: table='Property' row='ProductCode'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='SecureCustomProperties'
    Database: table='Property' row='SecureCustomProperties'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='ProductVersion'
    Database: table='Property' row='ProductVersion'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='Manufacturer'
    Database: table='Property' row='Manufacturer'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='DefaultUIFont'
    Database: table='Property' row='DefaultUIFont'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Property' row='UpgradeCode'
    Database: table='Property' row='UpgradeCode'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,Y'
    Database: table='Control' row='ErrorDialog,Y'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,A'
    Database: table='Control' row='ErrorDialog,A'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,C'
    Database: table='Control' row='ErrorDialog,C'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,ErrorText'
    Database: table='Control' row='ErrorDialog,ErrorText'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,I'
    Database: table='Control' row='ErrorDialog,I'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,N'
    Database: table='Control' row='ErrorDialog,N'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,O'
    Database: table='Control' row='ErrorDialog,O'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Control' row='ErrorDialog,R'
    Database: table='Control' row='ErrorDialog,R'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Dialog' row='Cancel'
    Database: table='Dialog' row='Cancel'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Dialog' row='DiskCost'
    Database: table='Dialog' row='DiskCost'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Dialog' row='ErrorDialog'
    Database: table='Dialog' row='ErrorDialog'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='Dialog' row='FilesInUse'
    Database: table='Dialog' row='FilesInUse'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='UIText' row='NewFolder'
    Database: table='UIText' row='NewFolder'
    WARNING: Error merging 'CRRedist2008_x86.msi': Unable to merge data from the merge module because it conflicts with existing data in the package.
    MergeModule: table='UIText' row='SelLocalLocal'
    Database: table='UIText' row='SelLocalLocal'
    ERROR: Unable to import merge module 'S:\TEMP\CrystalReports10_5\CRRedist2008_x86.msi'
    Any ideas,
    Thanks,
    Vik

  • Error while running a OA framework Page  Process exited with exit code 1.

    Hi all,
    I downloaded the Patch 4573517 from Metalink for JDEV with OA extension release 11i.I followed all the instruction of the setup init and installed the Jdev,also mytutorial pages got compiled successfully,but when i trie dto run the page
    Run > Run test_fwktutorial.jsp from the main menu.
    it gives me error.The error is as follows
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    C:\D drive\OA_2008\jdevbin\jdk\bin\javaw.exe -client -classpath C:\D drive\OA_2008\jdevbin\j2ee\home\oc4j.jar;C:\D drive\OA_2008\jdevbin\jdev\lib\jdev-oc4j.jar -Xbootclasspath/p:C:\D drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14.jar;C:\D drive\OA_2008\jdevbin\jdev\appslibrt\nls_charset12.zip -DFND_JDBC_STMT_CACHE_SIZE=200 -DCACHENODBINIT=true -DRUN_FROM_JDEV=true -mx256m -Doracle.j2ee.dont.use.memory.archive=false -Xverify:none -Doracle.j2ee.dont.use.memory.archive=true -Doracle.j2ee.http.socket.timeout=500 com.evermind.server.OC4JServer -config C:\D drive\OA_2008\jdevhome\jdev\system9.0.3.5.1437\oc4j-config\server.xml
    [waiting for the server to complete its initialization...]
    java.lang.NoClassDefFoundError: drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14/jar;C:\D
    Exception in thread "main"
    Process exited with exit code 1.
    I am not understanding why it is going in exception.One reason which i doubthere is the line
    java.lang.NoClassDefFoundError: drive\OA_2008\jdevbin\jdev\appslibrt\ojdbc14/jar;C:\D
    here in this line the last word is ojdbc14/jar,i think it should have been ojdbc14.jar.
    Can any body please help me out on how to correct this problem.Thanks
    Manish

    Manish,
    You should ask on the OA Framework Forum.
    john

  • Ideas or help needed for a simple, robust pluggable framework

    Hi all,
    Having written a fairly decent plugin engine, similar in concept to the Eclipse plugin engine, although at a more generic scale, I am looking for any possible ideas for a Java Swing framework that is built around the engine, with the concept of using a framework that is built on mostly plugins. My engine handles, or will soon handle, a number of features to make the engine robust enough, yet still easy enough, to use for just about any purpose.
    The engine is pretty simple, although with a bit more work I feel will be overall a pretty robust and powerful plugin engine. Each plugin is made up of one or more "services". A plugin is a .jar file that contains a plugin-conf.xml config file, the classes that implement the Service interface, and any supporting classes. The "plugin" is really the package of one or more services and supporting classes. The engine will handle the ability to work with expanded dir structures as well, so that the build process doesn't have to create .jar files on every build of a plugin. The engine has built in support to load, unload and reload a plugin at runtime. This helps during development by allowing auto-reload of a plugin service without having to restart the app. The engine has the ability to "watch" URLs in a separate thread (still working on this), and at given intervals if a change occurs to any plugin, that plugin is reloaded. This is configurable on a per plugin basis in the config file.
    Every plugin .jar file gets its own classloader instance. Because of the nature of a framework that may rely heavily on plugins, it will be very common to have plugin dependencies, where a plugin service may rely on one or more other plugin services. The dependencies are configured in the plugin-conf.xml file, and the engine resolves these when the plugin is loaded, automatically. Once all plugins have been loaded, an "init" call is made that then goes and resolves all plugin service dependencies, setting up the behind the scenes work to make sure any service can use any other service it defines to depend on. Another area is plugin versions. There will no doubt be a time when some sort of application may have legacy plugins, but also have newer plugins. For example, an application built on a "core" set of plugins, may eventually update the core plugins with newer versions. The engine allows the "old" plugins to exist and work while new versions of the same plugins may be loaded and working at the same time. This allows older plugins that depend on the old set of core plugins to work, while newer plugins that depend on the new core plugins may work also. Any plugin may depend on one or more services specified by specific versions, or a range of versions.
    Plugin services can define to be created when first loaded, or lazy instantiated. Ideally, an application would opt for lazy instantiation until a plugin is needed. For example, a number of plugins may need to add menu items or buttons that would trigger its service. The plugin does not actually need to be created until the menu or button is clicked on. There is one BIG problem with how this engine works though. Unlike the Eclipse (and other) engines where the config file defines the menu item(s), buttons, etc in an xml sort of language, this engine is built for generic use, and therefore is not specific to menu items or buttons triggering a service instantiation. Therefore, a little "hack" is required. A specific plugin that is created when first loaded will be required to set up all the menu items for specific plugins, then handle the actionPerformed() call to instruct the engine to create the service. The next step would be for the plugin service to add its own handler to the specific menu item it depends on, and remove the "old" handler the startup plugin added to it to handle the initial click. Another thought just struck me though. Because the engine must use an XML parser to load every plugin-conf.xml file, it might be possible to "extend" the parsing routine, where by an extending class could be added to the engine to parse plugin-conf.xml files. First the plugin engines own routine would parse it. Then, the extending class could parse for any extra plugin-conf.xml info, such as menu item settings, and directly set up the menu items and handlers in this manner. I will probably include this ability directly in the engine soon anyway, so that nobody else has to do this, but this is one area I would appreciate some feedback on.
    Anyway, so that is the jist of the engine. There is more to it under the hood, but that sums up a good part of it. Now, the pluggable framework, much like what the "shell" of eclipse, forte and so forth offer, is built around my engine to make it very easy to build Swing applications with a pluggable framework underneath. The idea is to package up a startup main class that is configurable, a number of useful plugins that other plugins could depend on, such as an Outlook layout, menuing, toolbars, drag/drop, history, undo/redo, macro record, open/save/search/find/replace dialogs, and so forth. This isn't just for an IDE though. The developer using the framework could deploy the basic app with the plugins of his/her choice, and add to it with his/her own plugins.
    Soooo, after this long post, what I am getting at is if anyone would be interested in helping out with ideas, feedback, testing, core framework plugins, and so forth. At this time I am keeping the code closed, but will probably public domain it, open source it, or whatever. The finished framework should make it easy for anyone to quickly build useable applications, and if all goes well, I'd like to set up a site with a location for 3rd party plugins to be uploaded, for download, comments, etc. Being a web developer, I myself will probably work on some plugins for Web Services, web stress testing, and so forth. I have lots of ideas for useable plugins.
    On that note, one application I am personally working on for my own use, is a simple yet possibly robust internet suite of apps. I want to incorporate FTP, Email, NewsGroup, and IRC/AOL IM/Yahoo IM/MSN IM/ICQ chat into a single app. Every aspect of it would be plugins. Frankly, I hate outlook, Eudora is alright, but I want to do some things with the email app. I also want a single IM/Chat app that can talk with all protocols (not an easy task, take a look at GAIM). Newsgroups are handy to work with for developers and others of interest, as is FTP. But even more so, being able to have all in one big application framework that allows them to share data between each other, work with one another, and so forth is appealing to me, and being written in Java it could potentially work on many platforms, giving some platforms a possible nice set of internet apps to use. Being able to send an email to a mailing list AND have it posted to specific newsgroups at the same time without having to copy/paste, open up separate applications and so forth has appeal. Directly emailing from any chat or newsgroup link without another app starting up is a little faster as well. Those are just "small" things that could prove to be very kewl in a complete internet app. Adding a web browser, well, I don't think I want to go that route. But if there is already a decent Java built web browser, it shouldn't be too hard to add it as a plugin.
    So, if anyone is interested, by all means, drop a post to this thread, let me know of interest, feedback, ideas, point out bad things, and so forth. I appreciate all forms of communication.
    Thanks.

    Yes I do. I am using it now with my work related project.
    I am in fact reworking the engine a bit now. I want to incorporate the notion of services (like OSGi) where by a plugin can register services. These services are "global" in scope, meaning any plugin may request the use of a service. However, services, unlike plugins, are not guaranteed to be available. Therefore, plugins using services must be coded to properly handle this possibility. As an example, imagine an email application using my engine. One plugin may provide the email gateway, including the javamail .jar library and provide the email service. Other plugins, such as the one that provides the functionality for the SEND button, would "use" this service. At runtime, when the send button was pressed it would ask the engine for the email service. If available, off goes the email. If not, it could pop up a dialog indicating some sort of message that the email service is not available.
    I am at the VERY beginning stages in this direction so I'd love to have ideas, thoughts, suggestions as to how this might be implemented. I do believe though that it will provide for a more powerful engine. The nice thing is, while the engine will support static runtime plugins, it will also support dynamic services that can come and go during the runtime. The key is that plugins using services do not maintain references to them, but instead query the engine each time a plugin needs to use a service.
    Static plugins are those that are guaranteed to be available or if not, any dependent plugin is not allowed to load. That is, if A depends on B and B is not able to be loaded, A is unloaded as well as it can't perform its job without B; it depends on B in some manner to complete its function. Imagine a plugin adding an option panel to the Preferences page only that the Preferences plugin is not loaded. It just can't work. However, with some work, there could be variations on this. That is, a plugin may provide a menu item as well as a preferences page. If the preference plugin is not available, then the plugin may simply still work via the menu item, but have no preferences panel available. This should be configurable via the plugin-conf.xml config file. However, as I have it now, using extension points and extensions like Eclipse does, it is also possible that if the Preferences plugin isn't loaded, it wont look for ANY extensions extending its extensino point, and therefore the plugins could all still run but there would simply be no preferences page. So, I am not entirely sure yet which way is best for this to work.
    My engine, as it stands now, allows for separate classloader plugin loading, it automatically resolves all dependencies by creating the plugin registry each time the engine is started up. To speed up plugin loading, it maintains a plugins.xml file in the root dir that keeps track of each plugin that was loaded and its last timestamp. Plugins can be open directory files or jarred up into .PAR files (think .WAR or .EAR files). The engine can find .par or open-dir plugins in multiple locations (including URL locations for direct .par files). When it finds a .par file, it first decompresses the .par file to a plugin work directory. Every plugin must have a plugin-conf.xml in its root dir, and either a /classes dir where compiled classes are, or a .jar file in the root path of the plugin, where the /classes dir superscedes the .jar file. Alternatively, anything in a /lib dir is automatically picked up as part of the plugin classpath. So a plugin that wraps the xerces.jar file can simply place the xerces.jar in the /lib dir and automatically present the xerces library to all dependent plugins (which can import the xerces classes but not need to distribute the xerces.jar file if a plugin they depend on has it in its /lib dir). The "parent lookup" process goes only one parent level deep. That is, if plugin A depends on a class in a /lib/*.jar file in plugin B, then the engine will resolve the class (through delegation) of plugin B. But if A depends on B, B depends on C where plugin C's /lib/*.jar file contains a class A is looking to use, this will not work and A will throw a ClassNotFoundException. In other words, the parent lookup only goes as far as the classpath of all dependent plugins, not up the chain of all dependent plugins. Eclipse allows each plugin to "export" various classes, or packages, or entire .jar files and the lookup can go all the way up the chain if need be. I haven't yet found a big reason for supporting this, so I am not too concerned with that at this point. The engine does support reloadable plugins although I have not yet implemented it. Because each plugin information object is stored in a Map keyed on the plugins GUID (found in the plugin-conf.xml file), it is easy enough to load a new plugin (since they get their own classloader) and replace the object at the GUID key and now have a reloaded plugin. The harder part is properly notifying all dependent plugins of the reload and what to do with them. Therefore I have not quite yet implemented this feature although the first step can easily be done, so long as nobody minds the "remnants" of older plugins laying around and possibly not being garbage collected.
    All of this works now, and I am using it. I do NOT have a generic UI framework just yet. I am working on that now. Eclipse has a very nice feature in that every plugin.xml file builds up the UI without any plugin code ever being created or ran. I am working on something like that now, although I am focussed more on the aspect of the engine at this point.
    Two things keep me going. First, the shear fun of working on this and seeing it succeed, even if a little bit. Second, while I love the idea of Eclipse, OSGi and other engines, so far I have yet to find one that is very easy to write plugins for, is very small, and is "generic" enough for any use. Some may argue JBoss core, at 29K can do this. I don't know if it can. It is built around JMX and I don't know that I agree JMX is the "ultimate" core plugin engine for all types of apps. Not that mine is either, but I'd like to see what I am working on become that if possible. Currently, with an xml parser (www.xmlpull.org) added as part of the code, my engine is about 40K with debug info, maybe about 28K without. I expect it to grow a bit more with services, reloadable/unloadable code, and some other stuff. However, I am thinking it will still be around 50K in size and in my opinion, with an xml read/write parser (very fast one at that), extension/extensino points, services, dependencies, multiple versions of plugins (soon), load/unload/reload capabilities, .par management (unjar into work dir, download .par files from urls, etc) and open directory capabilities, inidividual classloaders, automatic dependency resolution, dynamic dependency resolution and possibly even more, I think what my engine offers (and will offer) is pretty cool in my book.
    None the less, there is always room for improvement. One of the things I pride myself on is using as little code and keeping the code neat and easily readable, not to mention as non-archaic as possible, makes for an easily maintainable project.
    So, having said all that, YES, the engine can be used as is right now. It does not reload plugins, but you can dynamically load plugins, handle dependency resolution, have a very fast xml read/write parser at your disposal for any plugin, and for the most part easily write plugins. That is all possible now. I should put the engine I have now up on my generic-plugin-engine sourceforge project one of these days, perhaps soon I will do that! While I have no problem handing out the code, I am currently the only committer and I don't have it loaded into CVS at this point. I would like to do so very soon.
    So, if you are interested, by all means, let me know and I'll be happy to send you what I have, and love to have more help on the next version of this.

  • What is the diffrence between a blanket PO and a Framework order?

    What is the diffrence between a blanket PO and a Framework order?

    Hi
    You have to use document type Frame work order for Blanket PO.
    You can use blanket purchase orders to procure consumable materials or services for which it is not worth creating a separate purchase order for each procurement transaction. 
    Blanket purchase orders are usually valid for a longer period of time. You can directly post the invoices for the materials and services procured for this blanket purchase order.
    Raju

  • Is there smth like binding layer in another frameworks?

    Hello,
    Probably not kind of a question to post here.
    Is there something like binding layers in another Java web frameworks?
    A feature to bind data to an iterator keeping row currency and master/detail management?
    Thanks.

    I'm not sure there is something like this in the Java world.
    There is CDI in Java EE 6 that aims at simplifying the connection of Business Services to JSF UI - but I don't think it takes care of things like row currency.
    I think that .Net has some solution for binding too - but then again that's not Java.

  • How to change the start up page in Portal Framework..

    Hii guys...
    I have created a webcenter portal framework application, with two new pages - a myLogin page and a Document page(which will display content from webcenter content).
    The pages are working fine.
    I simply want to display the myLogin page when i run the application as startup page.
    For this i have made changes into the index.html fine by changing the url to the "webcenter/portalapp/pages/myLogin"
    When i run the application for the first time its working fine..
    But when i am running it for the second time the page is automatically redirecting to some login.jsp and keep getting refresh.
    I also tried running myLogin page directly by making changes in the welcome file option in web.xml.
    I have deleted index.html from welcome file list and instead added the myLogin page.
    But when i run the application it automatically load the index.html and the same problem continues.
    Do anyone knows where i am making mistake or what changes should i make to simply display the myLogin page when i run the application..!!
    Thanks..

    Hi,
    WebCenter has its own forum: WebCenter Portal
    Frank

Maybe you are looking for