January 2008 Archives

Integrating ALBPM 6.0 with Subversion

Comments (0)

As you all may know, the AquaLogic BPM Studio 6.0 was built on top of the Eclipse platform. Because of this, many of the plugins that are available for Eclipse, can be used with ALBPM Studio. We created a video to show you how easy it is to use the automatic update feature of Eclipse to connect ALBPM with one of the more popular version control systems out there, Subversion (http://subversion.tigris.org/). In this video, we are installing a plugin called Subversive (http://www.polarion.org/index.php?page=overview&project=subversive) that was developed to integrate Eclipse with Subversion. If you visit the Subversive site, you can find out a lot more information on the plug. Also on the site, there are many download URLs, but the one that you need for ALBPM 6.0, and the one I use in the video is:

http://www.polarion.org/projects/subversive/download/1.1/update-site/

For an iPhone/iPod Touch compatible link, click here. Hope this video helps some of you out!

Tag Login Portlet

Comments (0)

Today's an easy one for you all. It's been around forever (years!), but I usually find myself working on existing portals and not having to customize the login portlet, so I often forget about these files existing. Even if you've got a mature portal, if nothing else these are working adaptive tag reference samples that ship with your ALUI portal. I've mentioned simple string replacement as a means of "customizing" the login portlet, but if you really want to tweak its look and feel, you no longer have to use the UI Customization installer and muck around in the depths of the MVC model (at least, that's how we used to do it in 5.x).

Instead, just find your friendly Tag Login Portlet in the "Portal Resources" folder:

Rather than using the old intrinsic portlet (which required breaking out the UICI for customization), this login portlet brings in HTML riddled with those magic and versatile adaptive tags from the image server:

Just load up the folder and tweak away! Notice there's also a tagnav folder that contains a sample header, which is chock-full of useful tag examples if you want a jump start on creating your own custom headers.

So you may be wondering why I bring up such a benign topic. Well, for now, just trust me: tags are your friends. Learn them. Live them. Love them. More to come.

Here's a neat trick: ALUI Publisher allows any HTML in the "Instructions" field for properties in a Data Entry Template. Because this HTML is then included when creating or editing a Content Item, you can do all sorts of things with the page.

One of the cooler things you can do is leverage adaptive tags in this field. So, say you want a portlet that allows you to highlight various communities in your portal, and you want content managers to be able to just select a community from a list rather than looking up and typing in an ID. This is just one example; obviously you could select any object with the tree control, so use your imagination if you'd like to select users, portlets, or any other administrative object.

You can use the Unified Tree View adaptive tag in the "Instructions" field for a particular property, then use the Common Opener adaptive tag in your presentation template to automatically link to the community. Content Managers then don't have to worry about all the nuances of creating links to other communities, and don't have to remember community IDs when creating the Content Items.

For example, create a new portlet based off the "News" Portlet Template, and make some minor tweaks:

  1. Add a new Integer property called comm_id to the "News Article" Data Entry Template:


  2. Open the property and go to the "HTML" view for the instructions:

    The instructions contain the tree view adaptive tag and a call-back function that changes the text of the property based off the item selected:

    <script language="JavaScript">
    function PickerSubmit(arrIn) {
    document.getElementsByName('ptext4')[0].value = arrIn[0].ObjectID;
    }
    </script>

    <pt:standard.tree xmlns:pt='http://www.plumtree.com/xmlschemas/ptui/' value="Pick a Community" class="gContentSection" pt:windowName='myWindow' pt:windowFeatures='location=no,menubar=no,height=500,width=300' pt:RootID='1' pt:Multi='false' pt:SelectMd='2' pt:SubmitMd='2' pt:Submit='PickerSubmit' pt:Title='Community' pt:SubTitle='Pick a Community' pt:Class='512'/>

  3. Finally, this property can be used in the "News Article" presentation template just like you would any other pcs:value; you can even include it inside a commonopener adaptive tag to automatically create a link to that community.

Now, when people go to create/edit the Content Item based off this DET, they'll see a button underneath the property field where they would normally see "instructions". Clicking it opens a popup to get the list of communities, and selecting a community populates the field!

Cool Tools Part VIII: ProxyTrace

Comments (0)

Visibility into network traffic can be a huge help in diagnosing issues. We've already covered TcpTrace, which allows you to proxy traffic through it and view the traffic as it flows.

TcpTrace is great for most applications (such as monitoring traffic between ALUI portal tiers), but it can be a little limiting when you're trying the monitor traffic between the browser and the portal. The reason for this is that you point your browser at TcpTrace and have it make the request to the portal on your behalf. This causes the browser to "see" different URLs for different content: from the browser's perspective, portal pages are coming from http://localhost:9999/, but images and js still come from http://portal.function1.com/imageserver/. And the "host" header sent to the portal is "localhost" rather than the name of the actual server, which can result in JS errors or other unexpected server-side behavior.

A better way to monitor traffic from the browser to the portal is ProxyTrace. ProxyTrace is a virtual proxy server that routes traffic to the target site transparently, so the browser's URL will go to http://portal.function1.com/portal/server.pt, but you'll still be able to see the traffic because it's routed through the proxy.

Setting up ProxyTrace is simple: you just give it a port to listen on. You don't even need to set a destination IP and port, because that information comes from the browser. Once it's running, you configure your browser to use this port for your proxy server (in IE, it's Tools: Internet Options: Connections: LAN Settings):

Next time you make any HTTP requests, you'll see all the traffic coming from the browser:

Windows Services Tips

Comments (0)

If you've got a Windows ALUI portal, you know the procedure for restarting services: Remote Desktop to the affected system, open the Service Control Manager, and restart. If there are already people using the available Remote Desktop sessions, you can kick them off or use the console session, but if you just want to do a quick restart, there's an easier way: use the Service Control Manager on your desktop, and just connect to the SCM on the production system (firewall and domain policy rules permitting, of course).

Just start up Service Control Manager (Start: Control Panel: Administrative Tools: Services), and select Action: Connect to another computer:

From there, just enter the name or IP of the system you want to manage (you will probably have to authenticate), and you'll be able to manage any services on the remote machine:

While we're on the topic of managing services, you know you can manage services via the command line, right? Just use:

net start|stop <service display name>

The best use of the command line is to create shutdown and startup batch files that can stop or start all ALUI services on the system with one shortcut. For example:

net stop Apache2
net stop "Apache Tomcat"
net stop "BEA ALI API Service"
net stop "BEA ALI Content Upload Service"
net stop "BEA ALI Logger"

Community Collaboration Projects

Comments (4)

A Community Collaboration project is a special type of Collab project that syncs security with a community. They're created automatically when you add Collab portlets to a community, and it's easy to quickly start using them without considering the long-term implications of the project being closely tied to the Community.

But, if a project evolves (as they always do) and this model doesn't quite match your community security any more, you're stuck with the community's security settings. Maybe you've added some Community Members but you don't want them to be members of this project. The problem is, there's no way in the UI to remove these "intrinsic" groups from the Roles and Permissions page for the project:

The trick to getting the delete link to show back up is to make this project a regular project, and not a community project. Since there's no way to do this in the UI, you have to resort to updating the database. The good news is, it's easy. Find the object ID for the project, and run the following SQL against collabdb:

UPDATE CSPROJECTS SET CommunityID=0 WHERE ObjectID=’<object_id>’

Viola! Now your community is just a regular old community, and you can delete whatever groups you want: