From: <mcu...@jb...> - 2005-07-30 17:54:18
|
Ben, This sounds like it has some potential. You might also want to think about ways this could aid in the creation of a JBossCashAOP applications / projects. A standard wizard we create for all of our major plugins is a "Project Wizard" which automatically places the necessary JARs etc in the users's project for compiling and using in their application. This removes the need for them to keep track of JARs manually in their classpath. Other things you might want to think about: - We have a very good AOP plugin that supports a pretty good subset of AOP's functionality in eclipse. We use visual cues all over the place to deliver useful information to AOP developers. You might want to expand / extend upon some of those visual cues for Cached POJO field or method interception, as an example. - I'm not sure how effecient or doable it is, but it's also nice in alot of cases to offer code completion wherever possible. Something that comes to mind would be for instance when looking up a POJO from the TreeCache, possibly a popup that shows all the current POJOs in the cache. This might be tough since it's runtime information, but just an idea. I'm sure there are more things specific to CacheAop that I haven't thought of as I only know the product on the surface =). At any rate, moving forward with discussion about the new extension, if you do decide that you want this done, do you have any ideas for who will be implementing? ATM we have our hands pretty full with the 4 of us on the IDE team. We can certainly be there to help smooth the transition etc, and give out best practices for developing with eclipse. I recommend you take a look at our developer cookbook guide to get a good feel for eclipse. It has a lot of good step-by-step examples for extending eclipse. Here's the URL: http://jboss.org/products/jbosside/docs Make sure to download the "Example Projects" .. it's a zip with lots of helpful source (the cookbook uses it). View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3887483#3887483 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3887483 |
From: <max...@jb...> - 2005-07-30 18:33:28
|
How should eclipse hook into the cache ? By running as a node or ? Is that possibly to do more or less transparently ? Does it require the users classes loaded in the eclipse plugin ? View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3887484#3887484 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3887484 |
From: <mcu...@jb...> - 2005-07-30 20:27:22
|
I would imagine that the plugin would face similar technical hurdles as the Hibernate Tools plugin (loading user classes to inspect their runtime data / make them changeable / etc). I think his tree cache view will be similar (albeit more complex) to the entity properties view in Hibernate Tools View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3887497#3887497 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3887497 |
From: <ben...@jb...> - 2005-08-01 07:34:34
|
Guys, Thanks for the info. To further the discussion: 1. Yes, I envision the IDE gui will either be run as another cache instance (and thus running as replicated mode) or just subscribe to the remote cache events. Either way, the job of the gui is to display the visual information (like object graphs or updated *dirty* fields). We can also support additonal query (like the pojos, etc.) That is certainly doable. 2. We certainly want to leverage the JBossAop plugin. First of all, troubleshooting will be easier since often times, Aop is the most difficult part. Second, support of additional JbossCacheAop annotation (used for dynamic aop) will be needed as well. 3. I was hoping for some free resource from the IDE team to help out. But if we can't, maybe we should spec it out and then publish on the forum looking for volunteer then. Thanks, -ben View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3887643#3887643 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3887643 |
From: <koe...@jb...> - 2005-08-02 21:51:08
|
Couldn't we grab some ideas and maybe even code from the spider plugin of Beck and Gamma? This is kind of an object graph inspection tool for Eclipse. It inspects static object graphs, but I guess there are possible reuses there... View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888046#3888046 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888046 |
From: <ben...@jb...> - 2005-08-05 05:31:44
|
Do you further details for that plugin? View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888580#3888580 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888580 |
From: <koe...@jb...> - 2005-08-05 06:47:21
|
There is a screenshot of this spiderstuff at http://blogs.cocoondev.org/crafterm/archives/2004_08.html#002060, but the referenced website seems out of order. I found an Eclipse update site containing the spider at http://javaspider.sourceforge.net/updatesite. I just checked it out and it still seems to work for Eclipse 3.x. But there is no sourcecode, so I guess the work has to be redone anyway... Nevertheless, I played with it while I was reading the Gamma/Beck book on Eclipse plug-ins and it was really cool. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888586#3888586 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888586 |
From: gurkanerdogdu <do-...@jb...> - 2005-10-24 07:43:29
|
I have finished the JBoss Cache IDE eclipse plug-in prototype working. Could we disscuss about the prototype and define requirements for implementing the next version? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3902926#3902926 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3902926 |
From: <max...@jb...> - 2005-10-24 07:47:05
|
My initial thoughts are: The wizard are too complex - simplify. Add field validation - currently next/finish buttons are messed up when you click on them without guessing what is needed ;) Provide a way for users to give you their cache configuration instead of you dictating where it is placed. ... /max View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3902927#3902927 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3902927 |
From: <max...@jb...> - 2005-10-24 07:47:29
|
btw. the source for javaspider is at http://cvs.sourceforge.net/viewcvs.py/javaspider/ but it probably needs some updating to integrate well with the improvements done in eclipse 3.1 debugging. It still works though - but feels clunky. The idea is good though. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3902928#3902928 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3902928 |
From: gurkanerdogdu <do-...@jb...> - 2005-10-25 07:59:07
|
Hi Max; -I looked and played with Spider plug-in you are considering. In our plug-in I have already shown the all contents of the cache to the user in the tree view. -I have already discovered the primitive contents of the cache node in the node content view. The problem is how to show contents of the cache nodes containing real objects(or pojo objects in AOP). Last time we talked with the Ben, we can use toString() method that show all the primitive field of the object. (But this requires overriding toString() of the Object and may be user do not wants to this). Then, we can use the idea Spider plug-in did. Gurkan View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3903168#3903168 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3903168 |
From: <max...@jb...> - 2005-10-25 08:02:58
|
im not much for recommending the spider approach (i just commented on koen saying he couldn't find the source) In the hibernate tools we just use hibernates meta model to get the list of properties name, type and value. I guess you can do the same just via reflection (i'll probably also add reflection based view for hibernate since we can also get objects that are not hibernate objects) Maybe it can use the same code. But it's pretty simple, just look in hibernate console plugin code for HibernatePropertySourceProvider, CollectionPropertySource and EntityPropertySource. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3903169#3903169 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3903169 |
From: <ben...@jb...> - 2005-10-25 12:06:00
|
In POJO cache, the pojo instance class is first stored under the cache. We can read out that class name and then do reflection, and basically reverse engineering of what I do in the code to re-assemble the object. I don't know what Spider approach can do. Maybe Gurkan when we chat next time, you can educate me. But it will be nice if we have a way to displaying the object graph and can drill down to it, etc. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3903212#3903212 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3903212 |
From: gurkanerdogdu <do-...@jb...> - 2005-10-28 07:11:35
|
Hi; I would like to create some requirements for the next version of the plug-in and to ask some questions... 1- I will do some improvements on the cache creation wizards. The verbose part of the wizard is JChannel configuration. I will remove this part. When the user presses finish button, I will show content of the xml file in the editor with default JChannel values. Then user can correct the values if he/she wants. In the prototype, I saved this configuration file in the plug-in registry. I think this was good. I will show the file in the "Cache Configuration View" of the plug-in as the part of the cache instance. So when user wants to change configuration, he/she is able to open the file and does change on the file and save it. I think this solves the wizard problems. 2- I will get necessary jars from the user from wizard. I think to show the content of the objects; that are the user defined objects not regular Java objects ; in the plug-in, users must provide these jars so that I can touch these objects at run-time. Otherwise I am getting java.lang.ClassNotFoundException. Because; when new object is created in another cache instance, the plug-in is registered as listener to nodeCreated events but it can not create objetcs because class of the object not found by using BundleClassLoader in Eclipse. Max ; Could I put these jars into the bundle classpath at runtime? 3- In addition to the creating cache instance in the plug-in, I will provide new functionality that connects to the cache instance running in the JBoss server. So I will take jndi parameters from the user, and provide remote connection to the MBean registered in the server using jndi name; 4- In TreeCacheAOP I will try to provide object graph view of the cache, and users are able to play with on this graph. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3903983#3903983 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3903983 |
From: <max...@jb...> - 2005-10-28 07:45:08
|
#1 I don't think keeping the cache configuration in the plugin storage is a good idea. The file should be in the users projects so they can easily access it and actually use it. #2 If you by bundle mean jbosscaches eclipse bundle then no - that is not possible. The way to do it is to set the current thread context loader before accessing jbosscache with userclasses end then reset it afterwards (reset - is VERY important do to otherwise it will screw up other plugins work ;) #3 sounds cool. #4 cool View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3903992#3903992 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3903992 |
From: <ben...@jb...> - 2005-10-28 21:46:19
|
Couple more comments after our conversation for book keeping: 1. Cache access. Is it remote access to another instance or create another fresh cache instance (under IDE) 2. Cache content display. a) For plain cache, can use plain reflection to display the fields. b) For pojo cache, can retrieve the class name from the internal node. Do a reflection and retrieve the field value from the node. In this case, we don't display the inividual cache node value. 3. Some cache management like clear cache, e.g. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3904237#3904237 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3904237 |
From: gurkanerdogdu <do-...@jb...> - 2005-11-28 15:50:56
|
Hi; I would like to ask some questions that was arised when I have been implementing the new version of the IDE. The problems are appeared when the user jars come into the Eclipse platform, related with the classloaders. 1- In TreeCache, before I connect to the cache I am setting current thread classloader with newly created classloader that is related with user jars. then in the next operations there is no problems, everything is fine. But I did not grasp the why there is no problem? As far as I understand from the code if fetchstateonstartup() is true, then you will call state generator for the coordinator and integrate it to the cache via the state integrator. When the new cache node added to the cache, you will call remoteMethod with parameter MethodCall actually implemented in JGroup code stack. Then serilization and deserilization occurs with readObject and writeObject. 2- In TreeCacheAOP, when calling the getObject() with fqn, then I am getting exception with ClassNotFound exception where the exception occurs is in TreeCacheAOPDelegate getObject_(String fqn) with the code if (Advised.class.isAssignableFrom(clazz)) { try { obj = clazz.newInstance(); // TODO Need to populate the object from the cache as well. } catch(Exception e) { throw new CacheException("failed creating instance of " + clazz.getName(), e); } Exception class is : org.jboss.aop.AOPManager blabla... not found, becuase clazz object is loaded my custom classloader when I explained in the 1. subject. Then I will try to solve this problem with setting the context classloader of the calling thread with my classloader as I did in 1. but problem not solved. 3- In TreeCacheAOP, if node data is referenced from another node, I can not get the childrens from the referencing node with getChildrens() For example; put("/a/b",Mary); and Mary has course so tree is /a/b and /a/b/course put("/c",Mary) --> this is reference so when getChildren on /c then I am getting nothing. How can I show the /course node under the /c. I want to try to get contents of the /c with getObject() but then 2. problem appears. 4- I tried to use UserMarshalling option true. I registered my custom class loader with region / and inactiveonstartup false. But then I got java.io.EOF exception from the JGroups. 4- As a last chance :) I will try to some work that I dropped all cache related jars and user jars from the Eclipse classloader to my custom classloader and use reflection on every cache operations. 5- In the meanwhile as a remainder, - I simplified wizards - I put edit and delete configuration - I put new view to show the object fields and values. - I put object graph shown with tree but this just shows the node name and class within in. For example if a node with fqn /a/b and class Student in it and Student has a course then I am showing like /a/b --> Student /a/b/course --> Course class How can I show the references? Thanks Gurkan View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3909354#3909354 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3909354 |
From: <mcu...@jb...> - 2005-11-29 13:48:26
|
Hi Gurkan.. It looks like you're having some pretty complex technical issues related to the way JBossCache works, for those questions I'll try to point Ben & Bela to this forum to hopefully get you some answers. As far as your classloader errors w/ JBossAOP classes, are the correct jboss aop jars in your classpath? It might be prudent to depend on the JBossAOP core plugin which provides a JBossAOP Classpath container of the latest stable jboss aop release... View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3909537#3909537 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3909537 |
From: <max...@jb...> - 2005-11-29 13:53:39
|
if your eclipse plugin uses AOP jars AND they are also on the custom classpath you set you will end up in very weird classloading issues since you will be loading the same classes from different classloader and make the jvm complain. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3909542#3909542 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3909542 |
From: gurkanerdogdu <do-...@jb...> - 2006-03-18 16:12:16
|
Manic Comments on the milestone version of the ide Hi all. I've looked at Gurkan Erdogdu's JBoss Cache IDE Milestone 1 release, and have the following comments and thoughts. I'd like to kick off a discussion on this to help pinpoint the requirements better, and as a result help guide Gurkan with further releases of the IDE plugin. Overall - Worked fairly well, integrated with Eclipse (3.1.2) quite easily. - Was hard to 'get started' using it - needs documentation to say that the JBossCacheIDE views need to be enabled in Eclipse. Config Generator - Configuration generator is good, works, but needs a few tweaks/new features: - EvictionPolicy nonexistent - Should have all the Eviction Polcy classes we ship - Should be able to type in a custom eviction policy loader class - Should be able to type in CacheLoader classes for custom cacheloaders - Defaults should have the complete set of cache loaders shipped with JBoss Cache - Configs should be updated to JBC 1.3.0 style cacheloader configs ( i.e. multiple cacheloaders) - Cacheloader preload should have a disabled/none check box - Cacheloader properties should be a text box where users can enter a set of key/value pairs. Important for custom cache loaders. - Perhaps pre-populate this set of key/value pairs for properties required for the cache loaders shipped with JBoss Cache. - Transaction manager lookup drop down should allow for GenericTransactionManagerLookup (default) as well as -- none -- option - Should be able to type in the name of a custom Transaction Manager Lookup. - Other JBoss Cache 1.3.0 options such as NodeLockingScheme - Ability to query org.jboss.cache.Version and hide options not available to specific versions. Also display specific version number of JBoss Cache being used. - Cache configuration file name to default to treecache_generated_by_jbosscache_ide.xml - JGroups group name to default to GENERATED_BY_JBOSSCACHE_IDE - What does the "jar selection" section do? - Config translator - ability to translate a JBoss Cache 1.2.x style configuration into a JBoss Cache 1.3.0 style one. Starting TreeCache/Object Graph/Cache Contents - Ability to start a TreeCache - is this useful? - so what if we can create nodes, we cannot create key/value pairs - what use is the object graph and cache content pane if we cannot put things into the cache? - In general, what is the point of running an instance of the cache in your IDE, which your running code cannot get a reference to? - May make more sense to connect to a running TreeCache instance via JMX - Allows you to view/publish stats of a running system as well as cache contents. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931129#3931129 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931129 |
From: gurkanerdogdu <do-...@jb...> - 2006-03-18 16:39:17
|
Conifugration Management | | - I will take corrections consideration with Manic's comments | | Starting TreeCache/Object Graph/Cache Contents | | - Old Functionality 1) Create New Cache Instance and related operations like create new node, remove node etc... in the ide will be removed. Because this disturbs the cache from outside of the cache group. | | | | - New Functionality 1 ) Able to create new JBoss Cache project in the ide (this will put all jboss cache related jars into the classpath, create default configuration file etc... in the ide workspace) | | | | - New Functionality 2 ) Able to doing operations on remote cache instance in the JBoss AS via JMX. This will give the user to manage JBoss Cache instance MBean operations via the eclipse.What will available operations to the user ? Sample operations may be start cache,stop cache, show contents etc... View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931130#3931130 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931130 |
From: <ben...@jb...> - 2006-03-18 17:17:57
|
I think remote peruse of contents are definitely useful. We should provide some sort of lazy viewing if possible so user can traverse them on the fly (minizing the traffice spike). Gurkan, have you resolved the aop problem? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931136#3931136 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931136 |
From: gurkanerdogdu <do-...@jb...> - 2006-03-21 17:26:55
|
anonymous wrote : Gurkan, have you resolved the aop problem? Yes, I tried with JBoss Cache 1.2.4 Beta version, it works great and works even with collections great. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931646#3931646 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931646 |
From: <man...@jb...> - 2006-03-22 11:45:49
|
Re: JMX, as of 1.3.0, you can even view statistics of a cache group - e.g., number of cache hits and misses, commits and rollbacks, etc. So perhaps you should be able to: 1. Connect to a remote cache cluster via JMX 2. View stats on the cluster (if running cache >= 1.3.0) 3. Walk the tree structure. The TreeCacheMBean has a lot of the same public methods of TreeCache, such as get(). I don't think starting/stopping a cluster makes sense from within Eclipse. And there is the project stuff - like you said, "Start new JBossCache project" sounds very good. This could copy jars and a skeleton jboss cache config file, and could we make it so it launches the config editor when someone double clicks on the jboss cache config file? Perhaps have a 'wizard' and 'src' view, kind of like the Eclipse plugin XML editors? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3931833#3931833 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3931833 |
From: gurkanerdogdu <do-...@jb...> - 2006-03-23 11:35:42
|
Hi all; I have just finished the JBoss Cache IDE Version 1.0. It works with JBoss Cache 1.2.4 SP2. Next service pack for ide will include also JBoss Cache 1.3 capability when JBoss Cache 1.3 releases. Main functionality of the ide as follows: 1- Able to create new JBoss Cache 1.2.4 SP2 project in the eclipse workspace. Put all cache dependent libraries to the project classpath and also create default_tree_cache-service.xml file, and open the xml editor to edit created cache service file. 2- Able to connect remote working cache instance in the JBoss AS via JMX rmi adaptor. User supplies necessay information (server ip, (jnp)port, cache jndi name). Using JBoss AS rmi adaptor, user is able to connect, disconnect and get cache contents from the remote cache. 3- Able to create new cache instances in the local. User supplies default configuration informations in the opened wizard. This gives user to start,stop cache, create,remove new nodes, get contents of the cache etc... Thanks very much for JBoss Cache team and JBoss IDE team for great helping In the next SP of the cache ide, I will also add some operations about the cache, such as cache hits, miss, etc... Cheers; View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3932096#3932096 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3932096 |