logo       

roller/src/org/roller/presentation/weblog/actions CommentFormAction.java,1.: msg#00036

Subject: roller/src/org/roller/presentation/weblog/actions CommentFormAction.java,1.5,1.6 WeblogCategoryFormAction.java,1.5,1.6 WeblogEntryFormAction.java,1.19,1.20
Update of /cvsroot/roller/roller/src/org/roller/presentation/weblog/actions
In directory 
sc8-pr-cvs1:/tmp/cvs-serv30138/src/org/roller/presentation/weblog/actions

Modified Files:
        CommentFormAction.java WeblogCategoryFormAction.java 
        WeblogEntryFormAction.java 
Log Message:
Made the PageCache implementation configurable.  PageCache is now just a facade 
on the implementations (OSCache vs. Commons Cache).  Changed how "clear cache" 
is called.

Index: CommentFormAction.java
===================================================================
RCS file: 
/cvsroot/roller/roller/src/org/roller/presentation/weblog/actions/CommentFormAction.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CommentFormAction.java      23 Dec 2002 21:42:20 -0000      1.5
--- CommentFormAction.java      27 Dec 2002 04:49:16 -0000      1.6
***************
*** 5,8 ****
--- 5,9 ----
  import org.roller.model.Roller;
  import org.roller.model.CommentData;
+ import org.roller.model.UserData;
  import org.roller.model.UserManager;
  import org.roller.model.WeblogEntryData;
***************
*** 156,161 ****
              mgr.storeComment( cd );
  
!             org.roller.presentation.caching.PageCache.flushCache(
!                 rreq.getServletContext());
  
              java.util.ArrayList comments = mgr.getComments( wd.getId() );
--- 157,162 ----
              mgr.storeComment( cd );
  
!             UserData user = rreq.getUser();
!             
org.roller.presentation.caching.PageCache.handler.removeFromCache( user );
  
              java.util.ArrayList comments = mgr.getComments( wd.getId() );

Index: WeblogCategoryFormAction.java
===================================================================
RCS file: 
/cvsroot/roller/roller/src/org/roller/presentation/weblog/actions/WeblogCategoryFormAction.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** WeblogCategoryFormAction.java       23 Dec 2002 21:42:20 -0000      1.5
--- WeblogCategoryFormAction.java       27 Dec 2002 04:49:16 -0000      1.6
***************
*** 29,348 ****
  /**
   * WeblogCategory action supports several operations.
!  * @struts:action name="weblogCategoryFormEx" path="/weblogCat" 
!  *    scope="request" parameter="method"
   */
! public final class WeblogCategoryFormAction extends DispatchAction 
  {
!       public ActionForward add(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = mapping.findForward("editWeblogCats");
!               ActionErrors errors = new ActionErrors();
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               try 
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               WeblogCategoryData data = 
                      ((WeblogCategoryFormEx)actionForm).getData();;
!                               WebsiteData hd = rreq.getWebsite();
!                               data.setWebsiteId(hd.getId());
!                               data.setImage("");
!                               data.setDescription("");
!                               WeblogManager mgr = 
rreq.getRoller().getWeblogManager();
!                               mgr.storeWeblogCategory( data );
! 
!                 org.roller.presentation.caching.PageCache.flushCache( 
!                     request.getSession().getServletContext());
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Exception e)
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.add.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.add.blogcat"));
!               }
!               return forward;
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward cancel(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               return (mapping.findForward("editWeblogCats"));
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward edit(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = 
mapping.findForward("editWeblogCat.page");
!               ActionErrors errors = new ActionErrors();
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               try
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               UserData ud = rreq.getUser();
!                               request.setAttribute("user",ud);
  
!                               WeblogCategoryData cd = 
rreq.getWeblogCategory();
!                               request.setAttribute(
!                                       "weblogCategoryFormEx", new 
WeblogCategoryFormEx(cd));
  
!                 org.roller.presentation.caching.PageCache.flushCache( 
!                     request.getSession().getServletContext());
  
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Exception e)
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.edit.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.edit.blogcat"));
!               }
!               return forward; 
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward editAll(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = 
mapping.findForward("editWeblogCats.page");
!               ActionErrors errors = new ActionErrors();
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               try
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               UserData ud = rreq.getUser();
!                               request.setAttribute("user",ud);
  
!                               WeblogCategoryData cd = 
rreq.getWeblogCategory();
!                               request.setAttribute(
!                                       "weblogCategoryFormEx", new 
WeblogCategoryFormEx(cd));
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Exception e)
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.editall.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.editall.blogcat"));
!               }
!               return forward; 
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward removeOk(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = 
mapping.findForward("removeWeblogCat.page");
!               ActionErrors errors = new ActionErrors();
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               try
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               UserData ud = rreq.getUser();
!                               request.setAttribute("user",ud);
  
!                               WeblogCategoryData cd = 
rreq.getWeblogCategory();
!                               request.setAttribute("weblogCategoryFormEx",
                      new WeblogCategoryFormEx(cd));
  
!                               // Put category 'inUse' flag into context
!                               WeblogManager mgr = 
rreq.getRoller().getWeblogManager();
!                               if ( mgr.isWeblogCategoryInUse( cd.getId() ) )
!                               {
!                                       request.setAttribute("inUse","true");
! 
!                                       // Put array of cats in to context      
!                                       WeblogCategoryData[] cats = 
!                                               mgr.getWeblogCategories( 
ud.getUserName() );
! 
!                                       // But not the one that is being removed
!                                       int count = 0;
!                                       WeblogCategoryData[] filtered = 
!                                               new 
WeblogCategoryData[cats.length-1];
!                                       for (int i=0; i<cats.length; i++)
!                                       {
!                                               if ( !cats[i].equals(cd) ) 
!                                               {
!                                                       filtered[count++] = 
cats[i];
!                                               }
!                                       }
!                                       request.setAttribute("cats",filtered);
!                               }
!                               else
!                               {
!                                       request.setAttribute("inUse","false");
!                               }
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Throwable e)
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.removeok.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.removeok.blogcat"),e);
  
!                       e.printStackTrace();
!               }
!               return forward;
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward remove(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = mapping.findForward("editWeblogCats");
!               ActionErrors errors = new ActionErrors();
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               try
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               WeblogCategoryFormEx form = 
(WeblogCategoryFormEx)actionForm; 
!                               WeblogCategoryData data = form.getData();
!                               WeblogManager mgr = 
rreq.getRoller().getWeblogManager();
  
!                               // If the 'move category contents' checkbox is 
checked
!                               if ( form.getMoveContents() )
!                               {
!                                       
request.getSession().getServletContext().log(
!                                               "MOVING CATEGORY CONTENTS from 
["+data.getId()
!                                               +"] to 
["+form.getMoveToWeblogCategoryId()+"]");
  
!                                       // then move folder's contents to the 
move-to folder
!                                       mgr.moveWeblogCategoryContents( 
!                                               data.getId(), 
form.getMoveToWeblogCategoryId() );
!                               }
!                               // Remove the category
!                               mgr.removeWeblogCategory( data.getId() );
  
!                 org.roller.presentation.caching.PageCache.flushCache( 
!                     request.getSession().getServletContext());
  
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Exception e)
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.remove.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.remove.blogcat"));
!               }
!               return forward; 
!       }
  
!       
//-----------------------------------------------------------------------
!       public ActionForward update(
!               ActionMapping           mapping,
!               ActionForm                      actionForm,
!               HttpServletRequest      request,
!               HttpServletResponse response)
!               throws IOException, ServletException 
!       {
!               ActionForward forward = mapping.findForward("editWeblogCats");
!               RollerRequest rreq = RollerRequest.getRollerRequest(request);
!               ActionErrors errors = new ActionErrors();
!               try 
!               {
!                       if ( rreq.isUserAuthorizedToEdit() )
!                       {
!                               WeblogCategoryData data = 
!                                       
((WeblogCategoryFormEx)actionForm).getData();;
!                               WeblogManager mgr = 
rreq.getRoller().getWeblogManager();
!                               mgr.storeWeblogCategory( data );
  
!                 org.roller.presentation.caching.PageCache.flushCache( 
!                     request.getSession().getServletContext());
  
!                       }
!                       else
!                       {
!                               forward = mapping.findForward("access-denied");
!                       }
!               }
!               catch (Exception e) 
!               {
!                       forward = mapping.findForward("error");
  
!               errors.add(ActionErrors.GLOBAL_ERROR,
!                               new ActionError("error.update.blogcat", 
e.toString()));
!                       saveErrors(request,errors);
  
!                       rreq.getRoller().getLogger().log(
!                               
getResources(request).getMessage("error.update.blogcat"));
!               }
!               return forward;
!       }
  }
  
--- 29,344 ----
  /**
   * WeblogCategory action supports several operations.
!  * @struts:action name="weblogCategoryFormEx" path="/weblogCat"
!  *  scope="request" parameter="method"
   */
! public final class WeblogCategoryFormAction extends DispatchAction
  {
!     public ActionForward add(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("editWeblogCats");
!         ActionErrors errors = new ActionErrors();
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 WeblogCategoryData data =
                      ((WeblogCategoryFormEx)actionForm).getData();;
!                 WebsiteData hd = rreq.getWebsite();
!                 data.setWebsiteId(hd.getId());
!                 data.setImage("");
!                 data.setDescription("");
!                 WeblogManager mgr = rreq.getRoller().getWeblogManager();
!                 mgr.storeWeblogCategory( data );
  
!                 UserData user = rreq.getUser();
!                 
org.roller.presentation.caching.PageCache.handler.removeFromCache( user );
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Exception e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.add.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.add.blogcat"));
!         }
!         return forward;
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward cancel(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         return (mapping.findForward("editWeblogCats"));
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward edit(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("editWeblogCat.page");
!         ActionErrors errors = new ActionErrors();
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 UserData ud = rreq.getUser();
!                 request.setAttribute("user",ud);
  
!                 WeblogCategoryData cd = rreq.getWeblogCategory();
!                 request.setAttribute(
!                     "weblogCategoryFormEx", new WeblogCategoryFormEx(cd));
  
!                 
org.roller.presentation.caching.PageCache.handler.removeFromCache( ud );
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Exception e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.edit.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.edit.blogcat"));
!         }
!         return forward;
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward editAll(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("editWeblogCats.page");
!         ActionErrors errors = new ActionErrors();
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 UserData ud = rreq.getUser();
!                 request.setAttribute("user",ud);
  
!                 WeblogCategoryData cd = rreq.getWeblogCategory();
!                 request.setAttribute(
!                     "weblogCategoryFormEx", new WeblogCategoryFormEx(cd));
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Exception e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.editall.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.editall.blogcat"));
!         }
!         return forward;
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward removeOk(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("removeWeblogCat.page");
!         ActionErrors errors = new ActionErrors();
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 UserData ud = rreq.getUser();
!                 request.setAttribute("user",ud);
  
!                 WeblogCategoryData cd = rreq.getWeblogCategory();
!                 request.setAttribute("weblogCategoryFormEx",
                      new WeblogCategoryFormEx(cd));
  
!                 // Put category 'inUse' flag into context
!                 WeblogManager mgr = rreq.getRoller().getWeblogManager();
!                 if ( mgr.isWeblogCategoryInUse( cd.getId() ) )
!                 {
!                     request.setAttribute("inUse","true");
  
!                     // Put array of cats in to context
!                     WeblogCategoryData[] cats =
!                         mgr.getWeblogCategories( ud.getUserName() );
  
!                     // But not the one that is being removed
!                     int count = 0;
!                     WeblogCategoryData[] filtered =
!                         new WeblogCategoryData[cats.length-1];
!                     for (int i=0; i<cats.length; i++)
!                     {
!                         if ( !cats[i].equals(cd) )
!                         {
!                             filtered[count++] = cats[i];
!                         }
!                     }
!                     request.setAttribute("cats",filtered);
!                 }
!                 else
!                 {
!                     request.setAttribute("inUse","false");
!                 }
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Throwable e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.removeok.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.removeok.blogcat"),e);
  
!             e.printStackTrace();
!         }
!         return forward;
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward remove(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("editWeblogCats");
!         ActionErrors errors = new ActionErrors();
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 WeblogCategoryFormEx form = (WeblogCategoryFormEx)actionForm;
!                 WeblogCategoryData data = form.getData();
!                 WeblogManager mgr = rreq.getRoller().getWeblogManager();
  
!                 // If the 'move category contents' checkbox is checked
!                 if ( form.getMoveContents() )
!                 {
!                     request.getSession().getServletContext().log(
!                         "MOVING CATEGORY CONTENTS from ["+data.getId()
!                         +"] to ["+form.getMoveToWeblogCategoryId()+"]");
  
!                     // then move folder's contents to the move-to folder
!                     mgr.moveWeblogCategoryContents(
!                         data.getId(), form.getMoveToWeblogCategoryId() );
!                 }
!                 // Remove the category
!                 mgr.removeWeblogCategory( data.getId() );
  
!                 UserData user = rreq.getUser();
!                 
org.roller.presentation.caching.PageCache.handler.removeFromCache( user );
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Exception e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.remove.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.remove.blogcat"));
!         }
!         return forward;
!     }
  
!     //-----------------------------------------------------------------------
!     public ActionForward update(
!         ActionMapping       mapping,
!         ActionForm          actionForm,
!         HttpServletRequest  request,
!         HttpServletResponse response)
!         throws IOException, ServletException
!     {
!         ActionForward forward = mapping.findForward("editWeblogCats");
!         RollerRequest rreq = RollerRequest.getRollerRequest(request);
!         ActionErrors errors = new ActionErrors();
!         try
!         {
!             if ( rreq.isUserAuthorizedToEdit() )
!             {
!                 WeblogCategoryData data =
!                     ((WeblogCategoryFormEx)actionForm).getData();;
!                 WeblogManager mgr = rreq.getRoller().getWeblogManager();
!                 mgr.storeWeblogCategory( data );
  
!                 UserData user = rreq.getUser();
!                 
org.roller.presentation.caching.PageCache.handler.removeFromCache( user );
!             }
!             else
!             {
!                 forward = mapping.findForward("access-denied");
!             }
!         }
!         catch (Exception e)
!         {
!             forward = mapping.findForward("error");
  
!             errors.add(ActionErrors.GLOBAL_ERROR,
!                 new ActionError("error.update.blogcat", e.toString()));
!             saveErrors(request,errors);
  
!             rreq.getRoller().getLogger().log(
!                 getResources(request).getMessage("error.update.blogcat"));
!         }
!         return forward;
!     }
  }
  

Index: WeblogEntryFormAction.java
===================================================================
RCS file: 
/cvsroot/roller/roller/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** WeblogEntryFormAction.java  26 Dec 2002 21:11:12 -0000      1.19
--- WeblogEntryFormAction.java  27 Dec 2002 04:49:16 -0000      1.20
***************
*** 275,279 ****
                  }
  
- 
                  WeblogCategoryData cd = weblogMgr.getWeblogCategory(
                      wf.getCategoryName(), user.getUserName() );
--- 275,278 ----
***************
*** 285,293 ****
                  weblogMgr.storeWeblogEntry( wd );
  
!                 org.roller.presentation.caching.PageCache.flushCache(
!                     request.getSession().getServletContext());
  
                  // Make sure index page displays changes
!               UDBCacheFactory.getCache().removeFromCache(user);
  
                  // remove session objects that may be left over from 
spellchecking
--- 284,291 ----
                  weblogMgr.storeWeblogEntry( wd );
  
!                 
org.roller.presentation.caching.PageCache.handler.removeFromCache( user );
  
                  // Make sure index page displays changes
!                 UDBCacheFactory.getCache().removeFromCache(user);
  
                  // remove session objects that may be left over from 
spellchecking




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
web.pylons.gene...    hurd.l4/2002-10...    kernel.commits....    user-groups.lin...    yellowdog.gener...    java.drools.use...    security.openva...    package-managem...    linux.debian.us...    qnx.openqnx.dev...    genealogy.gramp...    file-systems.if...    voip.wengophone...    tex.context/200...    ietf.smime/2003...    audio.csound.de...    culture.region....    xfree86.devel/2...    mobile.kannel.u...    distributed.con...    education.engli...    org.user-groups...    bug-tracking.gn...    recreation.bicy...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe